Dynamic Node Graphs with Python in Nuke

Taught by Daniel Miller
Duration:
5 hours 45 minutes
Software Version:
16 
Launch Date:
May 2025 
Course Number:
NUK248
vfx
Modern compositing pipelines require speed, flexibility and reusability. Python scripting in Nuke can help you achieve all three. In this intermediate course, Daniel Mark Miller shares his production-proven approach to building robust, user-friendly templates that streamline common CG compositing tasks directly within the node graph.

You’ll learn how to create dynamic tools and automate workflows using Python, while reinforcing core concepts around compositing math, expression-based tricks, and even a little regex (don’t be scared). Along the way, Daniel focuses on writing clean, maintainable code that’s easy to debug, document, and improve.

Daniel brings over 15 years of industry experience to this training, with credits spanning film, television, and advertising. He is currently a Compositing Supervisor at Lola Post. An early fxphd postgrad, Daniel has worked at studios like One of Us, Framestore, Molinare, and The Mill, with recent projects including Matrix Resurrections, The Crown, Pinocchio, Walking with Dinosaurs 2025, and high-end work for Sony, Netflix, Disney, Apple TV, the BBC, and director Alex Garland.
 

Class Listing

Class 1: Intro to Node Graph Manipulation

Learn how to manipulate the Nuke node graph using Python plus a few common gotchas to avoid. By the end of this class, you'll have built the foundation for a fully working tool: NodeFlipper, designed to help organize scripts efficiently in production.

Class 2: What's in a Name?

Work with VFX filenames using regex and Python. Regex can seem off-putting at first, but we’ll explore tools and workflows that make it efficient, approachable, and even fun.

Class 3: Planning Our Template

Before writing any Python code, we'll create the first version of our AOV template directly in Nuke's node graph. This class covers the logic behind the layout, its use cases, and how Python will later take it to the next level.

Class 4: Coding the Basic Tool

We begin coding our tool by building logic to break out lightgroups. We’ll ensure it's robust enough to handle a wide variety of renders in real production scenarios.

Class 5: Node Graph Flow

Learn how to finalize the structure of your node graph and efficiently manage all the connections. After completing the first working version of our tool, we'll upload it to GitHub to track changes and avoid breaking features as we continue development.

Class 6: Improving the User Experience

In this class, we enhance usability by making the node graph clearer for artists, adding a debugging tool, and introducing user controls for customizing how the script is generated.

Class 7: Working with Materials

Now that we’ve handled lightgroups, we’ll build a similar system for materials. You’ll learn how to translate a basic materials rebuild into Python and integrate it into your setup.

Class 8: Lights and Materials

Grading materials and grading lightroups can seem incompatible, but we’ll explore a simple workaround. We will then update our script to clearly organize all AOVS, offering flexible options tailored to different production needs.

Class 9: Maintaining and Refining Our Code

Just like a messy node graph, cluttered code leads to errors. In this class, we focus on refactoring, improving the input panel, and discussing when it’s better to use Python-enhanced templates versus fully scripted solutions.

Class 10: Putting It All Together

In our final class, we’ll look at an example composite built using our toolset. You’ll apply your regex knowledge from Class 02 to manage utilities and files, and we’ll explore options for installing your tool suite in a facility. By the end, you’ll walk away with a working, extensible toolset ready for your own productions.