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
vfx
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.