Nodes/Nuke Nodes for ComfyUI/Nuke Shuffle Pass
ComfyUI Node

Nuke Shuffle Pass

Grab one AOV out of that multi-pass bundle

By sumitchatterjee13·Created about a year ago·Updated 9 days ago· 59
Nuke Shuffle Pass
  • passes
  • image
  • info
pass_nameRGBA
channel_modeauto
on_missingblack

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 - the NUKE_PASSES bundle from NukeReadMultiPass.
  • pass_name - string, default RGBA. 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) or error (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 with print_pass_list on, read the console output, and copy the names from there - guessing is how you end up with black frames.
  • Use black while exploring. on_missing="error" raises and halts the whole queue the moment you typo a name. Keep it on black until your pass names are confirmed, then harden up.
  • Data passes don't look like pictures. A normal or depth pass with auto mode can render as near-black because the values live outside 0–1, or get crushed by the range. That's expected - the info output tells you the true range. Convert data passes to viewable form (normalize, or single_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 info output plus the multipass_nodes.py source are your support desk.
CategoryNuke/IO

Inputs (4)

NameTypeDefaultDescription
passesNUKE_PASSES
pass_nameSTRINGRGBA
channel_modeoptCOMBOautoHow 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_missingoptCOMBOblackIf the named pass is not found: return black or raise

Outputs (2)

NameTypeDescription
imageIMAGE
infoSTRING