Nuke Icon Toolkit

Some gizmos dynamically hide/show a number of knobs with the KnobChanged python callback. This is a good option to keep your gizmo's UI clean, but can start to get very heavy when you have too many knobs to handle, and too many nodes inside your gizmo.
Instead, it can be cleaner to use Python Script Buttons to add/remove knobs/nodes from your gizmo to keep things fast, neat and tidy.
I whipped up the following example node, which you can download here, to see how this works.
There are two common ways you can expression-link knobs in Nuke.
The TCL syntax for expression-linking knobs is simple: {node_name}.{knob_name}
.
However, there are some knobs that are a little more difficult to expression-link. For example, a channels knob can only be linked to other channels knobs, by CTRL+dragging+dropping the = button between them. Additionally, there is no visible option to expression-link Pulldown Knobs, such as a node's filter knob. However, we can solve these problems with a little bit of Python.
In the following example, we're going to be expression-linking Transform2's filter knob to Transform1's filter knob. Let's write one line of Python to help us do this in the Script Editor.
Gizmos Nuke Python VFX Industry Workflow
When adding a new gizmo to a menu inside of Nuke, I like to recycle the existing icons so I can keep everything thematically consistent. However, these icons are buried inside Nuke's install directory, and I always forget exactly where they live...
Matching grain can be tricky at times. The best way to add grain to your comp & get it to match the plate is to just use the grain from the plate!
For this example, I'm going to be using this stock footage from videvo.net.
First, we have to identify when this technique is useful, and when it might not be...