How to create multiple render outputs in nuke?

I would like to be able to create 3 different outputs for nuke write nodes, but right now I can only have 1. In settings I have created the different outputs, but I can’t seem to find anywhere to use them. Other than the main one.

hello,
I’m also very interrested to know how to do that. This is it user configurable or do we really need to do it in python?

@A-Stroem have you looked at project_settings/global/publish/ExtractOIIOTranscode ?
With this plugin you can output multiple transcodes of the renders.

Here is step by step tutorial on how to create multitude of different presets triggered by the variant name.

  1. Create a new preset in your project settings at project_settings/nuke/imageio/nodes/overrideNodes with the following configuration:
  • Copy the text in this block and right-click on project_settings/nuke/imageio/nodes/overrideNodes/0, then paste it.
{
    "plugins": [
        "CreateWriteRender"
    ],
    "nukeNodeClass": "Write",
    "subsets": [
        "GreenType"
    ],
    "knobs": [
        {
            "type": "text",
            "name": "file_type",
            "value": "tiff"
        },
        {
            "type": "text",
            "name": "datatype",
            "value": "16 bit"
        },
        {
            "type": "text",
            "name": "compression",
            "value": "LZW"
        },
        {
            "type": "bool",
            "name": "autocrop",
            "value": true
        },
        {
            "type": "color_gui",
            "name": "tile_color",
            "value": [
                74,
                223,
                0,
                255
            ]
        },
        {
            "type": "text",
            "name": "channels",
            "value": "rgb"
        },
        {
            "type": "text",
            "name": "colorspace",
            "value": "compositing_log"
        },
        {
            "type": "bool",
            "name": "create_directories",
            "value": true
        }
    ]
}
  1. Go to project_settings/nuke/create/CreateWriteRender/default_variants settings and add GreenType to the variants as shown in the image:

  2. Open Nuke in the same project, go to your workfile, select any node in the scene, and open Create from our menu. Click on Render (write) product type and notice that the Variant option now includes GreenType. Use the enumerator uncollapse arrow to see all available options. Set it to GreenType and click Create.

  3. Notice that a new write render instance node has been created and the color is set to Green. This color is different from the original color set at project_settings/nuke/imageio/nodes/requiredNodes/0, which is usually set to Red.

You can imagine the potential of this feature. You can override anything within any node, triggered by different variant names. Keep in mind that the Subset list of inputs on override nodes is practically a regex pattern, so you can also use triggers for partially named subsets/product names.

image

Just wanted to remark that if those fields refer to Variant and not the full Subset name that the label is confusing to say the least and should be fixed.

If they are full Subset names then I expect your first example subset=GreenType without the regex would not work because the subset is renderCompGreenType - correct?

I understand that it may seem confusing, but the current Label is correct as it is. The raw text used for searching is Subset name > renderCompositingGreenType, but we are only searching for the variant name within it, which is GreenType . While the regex expression has been simplified and is not necessary to include, you can still search for a specific subset name by using the task with CompositingGreenType . The only difference is that you are not required to add the full regex expression, but only the sequence of words you are searching for.

I see - so Subsets in the settings should actually be labeled Variants to be correct.

Since they are in fact Subset names, then they should be called Subsets - variants can be searched in them.

But matching exactly GreenType wouldn’t match subset name renderCompositingGreenType - right? Unless it allows partial matches and thus is always equal to matching .*{name}.*
For renderCompositingGreenType the subset name is based on {family}{Task}{Variant}

The GreenType actually being the variant is also visible in this CreateWriteRender settings you showed:

Yes but that is just another way of using it. It can also be used with exact match to renderCompositingMain on other places in settings or here.

Sorry to comment again. But it’s still unclear to me - would this match renderCompositingGreenType or not? :slight_smile:

If it does, then that text field would either:

  1. represent a partial match so the regex actually used is .*GreenType.*
  2. or the field refers to the Variant instead of the Subset

If it’s 1) then your other example seems to be redundant?

Because it’d already match like that to begin with.
If it’s 2) then the label is still wrong, right?

I do apologize I was not that clear before. I guess it needs to be repeated again.

The label is not wrong. We are searching in Subset name. We are searching a Variant name in this case. And since the Variant is usually part of Subset name it should work. You can either write .*GreenType.* or just simple GreenType, both would work. Subset is used here because it is a filtering applicable to subset names matching enhanced with Regex functionality which is searching even partial name matching.

I hope it is more clear now @BigRoy.

Thanks for your Replay @jakub.jezek just saw that today, a little bit late :slight_smile: