Nuke Shuffle Pass
Grab one AOV out of that multi-pass bundle
- passes
- image
- info
So you loaded a multi-channel EXR with NukeReadMultiPass and got a NUKE_PASSES bundle with a dozen passes in it. Now what? ComfyUI's nodes eat plain images, not pass bundles - which is exactly the gap NukeShufflePass fills. Give it the bundle and a pass name, and it pulls that single pass out as a normal IMAGE you can preview, grade, or feed into anything downstream. It's the pass extractor of the pack, the Nuke "Shuffle" for one layer at a time.
You reach for it the moment your workflow needs a specific AOV: the diffuse pass to regrade, the N normal pass to feed a lighting operation, the Z depth pass to drive a blur or fog effect, a cryptomattte channel you want to touch as data. Name the pass, get the image.
How it works
It looks up pass_name in the bundle and converts the pass array into a proper image. The channel_mode dropdown controls the conversion: auto (default) does the sensible thing - single-channel passes become grayscale, 2-channel get padded, 3/4-channel pass through, 5+ channels take the first four; rgb forces 3 channels, rgba forces 4 (padding alpha to 1), and single_to_rgb always treats a multi-channel pass as if it were a single-channel grayscale. The second output, info, is a small STRING report: channel count, resolution, and the actual data range of the pass - the last one is genuinely useful when a depth pass has values spanning 0 to 47 and you're wondering why it looks all black.
Inputs and output
passes- theNUKE_PASSESbundle from NukeReadMultiPass.pass_name- string, defaultRGBA. Type the layer name as it appears in the pass list.channel_mode-auto,rgb,rgba,single_to_rgb.on_missing- what to do if the pass isn't there:black(default, return a black frame) orerror(raise and brick the graph).
Outputs: image (the extracted pass) and info (STRING).
Installing it
Part of the Nuke Nodes pack. Manager: search "Nuke Nodes", install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/sumitchatterjee13/nuke-nodes-comfyui.git nuke-nodes
cd nuke-nodes
pip install -r requirements.txt
Restart, find it under Add Node → Nuke → IO. No models, no extra deps beyond the pack's - this node is pure tensor shuffling.
Gotchas
- Pass names are exact and case-sensitive.
"diffuse"won't match"Diffuse". Run NukeReadMultiPass once withprint_pass_liston, read the console output, and copy the names from there - guessing is how you end up with black frames. - Use
blackwhile exploring.on_missing="error"raises and halts the whole queue the moment you typo a name. Keep it onblackuntil your pass names are confirmed, then harden up. - Data passes don't look like pictures. A normal or depth pass with
automode can render as near-black because the values live outside 0–1, or get crushed by the range. That's expected - theinfooutput tells you the true range. Convert data passes to viewable form (normalize, orsingle_to_rgb) rather than assuming the node broke. - This pack is young with zero community footprint, so there's no thread to link for "why is my depth black." The
infooutput plus themultipass_nodes.pysource are your support desk.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| passes | NUKE_PASSES | — | |
| pass_name | STRING | RGBA | — |
| channel_modeopt | COMBO | auto | How to convert the pass to a 3/4-channel IMAGE: auto: 1ch->gray, 2ch->pad, 3/4ch->as-is, 5+->first 4 rgb: force 3 channels rgba: force 4 channels (add alpha=1) single_to_rgb: always treat as grayscale |
| on_missingopt | COMBO | black | If the named pass is not found: return black or raise |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| info | STRING | — |