Nodes/Nukomfy Suite/Nukomfy Read
ComfyUI Node

Nukomfy Read

Read plates and frame sequences like you never left Nuke

By francescolorussi·Created 3 months ago·Updated 2 months ago· 1
Nukomfy Read
    • rgb
    • alpha
    • extra_layers
    file_path
    read_modeInput Range
    first_frame1
    last_frame1
    missing_frameserror
    apply_color_transformfalse
    input_transformLinear Rec.709 (sRGB)

    ComfyUI has never had a great story for "give me a real frame sequence off disk and treat it like a plate." Load Image is one PNG, batch nodes are workarounds, and every EXR you care about arrives mangled or clipped. Nukomfy Read is the fix: a mirror of Nuke's Read node for the common case, backed by OpenImageIO instead of PIL. You point it at a file, a sequence, or a folder, and you get frames out as a proper batch tensor - alpha split off, extra EXR layers preserved, colorspace handled if you want it handled.

    It's also the required entry point for the Nukomfy Nuke plugin. Nukomfy runs ComfyUI workflows as Nuke gizmos, and the contract is simple: a workflow's input must go through a Nukomfy Read node and its output through a Nukomfy Write node. That's how the plugin knows where to feed frames in and where to collect results. No Read node, no Nukomfy render - which is why this suite is required on every ComfyUI host the plugin talks to.

    How it works

    The reader takes whatever OpenImageIO can decode: EXR, JPEG, PNG, TIFF, DPX, HDR, TGA, BMP, and more. The file path accepts three flavors, and knowing them saves you the first trip to the error log:

    • image.####.exr or image.%04d.jpg - a sequence with Nuke-style (or printf-style) padding
    • image.0008.png or image.tif - a literal single frame
    • /path/to/folder/ - auto-detect the one sequence inside the folder

    There are two read modes, mirroring Nuke. Input Range (default) scans disk and reads every frame that matches the pattern; First/Last Frame are ignored. Custom Range reads the frames between First Frame and Last Frame, and if First is greater than Last it plays the sequence in reverse. Gaps inside a custom range are handled by the Missing Frames policy, with four honest options: error (stop and list them), black, checkerboard, or nearest (closest existing frame on disk).

    The color part matters if you're compositing. Apply Color Transform defaults to off, which means pixels pass through untouched and Input Transform is ignored - that's the right call for a lot of graphs. Turn it on and the node converts from the chosen Input Transform to linear Rec.709. This is exactly the sRGB-tensor-vs-scene-linear problem the color-management crowd keeps warning about: if your plate is sRGB footage and the comp expects linear light, decode here, don't fix it downstream. The dropdown lists the full OCIO colorspace set from the active config (the suite boots with the ACES Studio Config v4.0.0 by default).

    Inputs and outputs that matter

    You'll set three things as a beginner: Source (the path or pattern), Read Mode, and Missing Frames if you're working with gaps. Leave the transforms alone until color is actually wrong.

    Three outputs:

    • rgb - the image as a 3-channel tensor
    • alpha - the source alpha as a separate 1-channel mask. Files with no alpha (JPEG, HDR, RGB-only PNG, 3-channel EXR) get zeros here
    • extra_layers - a bundle of any extra EXR layers (depth, normal, position, motion…) the node detected by parsing channel names. Empty for non-EXR files. Feed it to Nukomfy MultiLayer Unpack to get individual passes out

    Install

    ComfyUI Manager, search Nukomfy Suite, install, restart. Or the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/francescolorussi/ComfyUI-Nukomfy-Suite
    cd ComfyUI-Nukomfy-Suite
    pip install -r requirements.txt
    

    Two Python deps: OpenImageIO>=3.1.10 and fileseq. No model downloads, no weights, nothing heavy beyond OIIO itself - and OIIO is a chunky wheel, so the first install takes a minute.

    Troubleshooting

    The one you'll actually hit: a red "Graph nodes unavailable" banner in the Nukomfy sidebar, with the Nukomfy nodes missing from the menu. That means OpenImageIO or fileseq isn't in the ComfyUI Python environment - the node import failed, not the whole pack. Install the deps and restart. The boot log should print [Nukomfy Suite] INFO: loaded (0.1.0) when everything is healthy.

    "No frames found" usually means a wrong padding token or a folder holding more than one sequence - the node raises a clear error naming them. And if a saved workflow's colorspace dropdown ever looks wrong after an OIIO upgrade, that's the config changing under you; resave the workflow.

    CategoryNukomfy/Image

    Inputs (7)

    NameTypeDefaultDescription
    file_pathSTRINGFile to read. Any format supported by OpenImageIO is accepted (EXR, JPEG, PNG, TIFF, DPX, HDR, TGA, BMP, …). Examples: • image.####.exr or image.%04d.jpg : sequence • image.0008.png or image.tif : single frame • /path/folder/ : auto-detect in folder
    read_modeCOMBOInput RangeHow to decide which frames to read. • Input Range: read every frame that matches the File pattern on disk. First Frame, Last Frame and Missing Frames are ignored. • Custom Range: read the frames between First Frame and Last Frame. Any gaps inside that range are filled per the Missing Frames policy.
    first_frameINT1-999999–999999First frame number of the sequence to read. Used only in Custom Range mode. When First Frame is greater than Last Frame, the sequence is read in reverse.
    last_frameINT1-999999–999999Last frame number of the sequence to read. Used only in Custom Range mode.
    missing_framesCOMBOerrorHow to handle missing frames inside the requested range. • error: stop with a message listing the missing frames. • black: return a black frame for each gap. • checkerboard: return a magenta and black pattern for each gap. • nearest: return the closest existing frame on disk.
    apply_color_transformBOOLEANfalseWhen enabled, the file pixels are converted from Input Transform to linear Rec.709. When disabled, the file pixels pass through unchanged and Input Transform is ignored.
    input_transformCOMBOLinear Rec.709 (sRGB)Colorspace the file is in. When Apply Color Transform is enabled, pixels are converted from this colorspace to linear Rec.709. Entries are the full OCIO colorspace list from the active config.

    Outputs (3)

    NameTypeDescription
    rgbIMAGERGB image (3 channels). Source alpha, if any, is dropped here and exposed separately on the alpha output.
    alphaMASKSource alpha as a 1-channel mask. When the file has no alpha (JPEG, HDR, RGB-only PNG, EXR 3-channel, grayscale), this is filled with zeros. Use a Combine Image With Alpha node (or similar) upstream of Nukomfy Write if you need to round-trip the source alpha into a 4-channel output file.
    extra_layersNUKOMFY_MULTILAYERBundle of extra EXR layers (depth, normal, position, motion, …) detected by parsing the file's channel names. Empty for non-EXR files and EXR files without extra layers. Connect to Nukomfy Multilayer Unpack to extract individual layers by name.