Nodes/Nukomfy Suite/Nukomfy Write
ComfyUI Node

Nukomfy Write

Write EXR sequences that Nuke will actually read

By francescolorussi·Created 3 months ago·Updated 2 months ago· 1
Nukomfy Write
  • image
  • extra_layers
    file_path
    file_type
    frame_start1
    apply_color_transformfalse
    output_transformLinear Rec.709 (sRGB)
    create_directoriestrue

    The other end of the Nukomfy contract. If Nukomfy Read is how frames get into a ComfyUI workflow, Nukomfy Write is how they get back out to disk in a format a Nuke comp will open without wincing. It's a mirror of Nuke's Write node for the common case, and it's the node that finally makes multilayer EXR from ComfyUI a realistic thing - not a "technically valid EXR that Nuke half-reads," but an EXR with proper layer names and channel prefixes.

    Like Read, it's required for Nukomfy to work at all: the plugin feeds the workflow through Read, collects results from Write, and reads back the frame count the node reports. But even outside Nukomfy, if you're delivering AI output to a compositing pipeline, this is the save node you want.

    How it works

    Write takes a batch tensor and writes one file per frame, substituting the padding token in the path with frame_start + i for batch index i. The file path wants a sequence pattern for multi-frame renders - image.####.exr or image.%04d.exr - and a literal image.exr for a single frame. This is the classic gotcha: hand a 24-frame batch a path with no padding and the node errors instead of quietly overwriting.

    Output formats: EXR, JPEG, PNG, TIFF, DPX, HDR, TGA. The File Type dropdown is dynamic - it shows only the knobs valid for the format you pick. For EXR that's Data Type (16-bit half / 32-bit float) and Compression (Zip, PIZ, RLE, B44, DWAA/DWAB with its quality level). JPEG gets quality and chroma sub-sampling, DPX gets bits-per-sample and a transfer characteristic (log / linear / printing density), TIFF and TGA get compression. The knob names and options deliberately mirror Nuke, so muscle memory carries over.

    Two things worth knowing about pixels. Apply Color Transform defaults to off - pixels are written through unchanged. Flip it on and the node converts from linear Rec.709 to the chosen Output Transform before writing; that's how you deliver sRGB EXRs that don't come back blown out. And formats without alpha (JPEG, DPX, HDR) always write 3 channels, matching Nuke. HDR-on-integer also clips silently, which is Nuke behavior - it won't warn you.

    The multilayer trick

    The standout input is the optional extra_layers socket. Connect a Nukomfy MultiLayer Pack bundle and, when File Type is EXR, Write produces a multilayer EXR: your main image becomes the rgba layer with no channel prefix, and every extra pass gets its name as a prefix - depth.Z, normal.RGB, motion.u/.v, and so on, following Nuke's channel conventions. That's the file a compositor reads back as one node with the passes already separated. Connect extra layers to a non-EXR file type and it's silently ignored with a warning logged - the main image still writes.

    There's also Create Directories (default on), which makes missing parent folders instead of erroring.

    Inputs and outputs

    The few you'll actually touch: image (wire your render here), Output (the path/pattern), File Type, and Frame Start for sequence numbering. No outputs - it's an output node. It does report back a nukomfy_written result with the paths and frame count so the Nukomfy plugin can verify the write via /api/history.

    Install and gotchas

    ComfyUI Manager → search Nukomfy Suite, or:

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

    Dependencies are OpenImageIO>=3.1.10 and fileseq - no model files. Missing deps show up as a red "Graph nodes unavailable" banner while the rest of the suite's manager keeps working; install and restart to clear it.

    One trap specific to this suite: Nukomfy Read splits alpha out into a separate mask, so if you round-trip a 4-channel EXR through a workflow, recombine the alpha with a Combine Image With Alpha node before Write or your output comes back 3-channel. If the file you want is a sequence, don't forget the padding token - "Multi-frame renders need a sequence pattern" is the error you'll see until it clicks.

    CategoryNukomfy/Image

    Inputs (8)

    NameTypeDefaultDescription
    imageIMAGE
    file_pathSTRINGFile to write. Examples: • image.####.exr or image.%04d.exr : sequence • image.0008.exr or image.exr : single frame Multi-frame renders need a sequence pattern (#### or %04d).
    file_typeCOMBOOutput format. Only the knobs valid for the format are shown.
    frame_startINT1-999999–999999Frame number written for the first input image.
    apply_color_transformBOOLEANfalseWhen enabled, the input pixels are converted from linear Rec.709 to Output Transform before being written. When disabled, the input pixels are written through unchanged and Output Transform is ignored.
    output_transformCOMBOLinear Rec.709 (sRGB)Colorspace the file is written in. When Apply Color Transform is enabled, pixels are converted from linear Rec.709 to this colorspace. Entries are the full OCIO colorspace list from the active config.
    create_directoriesBOOLEANtrueCreate missing parent directories. When disabled and the parent is missing, the node raises an error.
    extra_layersoptNUKOMFY_MULTILAYEROptional bundle of extra image layers (depth, normal, mask, motion, …) from Nukomfy Multilayer Pack or the extra_layers output of Nukomfy Read. When connected and File Type is EXR, writes a multilayer EXR with the main image as the rgba layer (no channel prefix) plus every extra layer prefixed by its name (e.g. depth.Z, normal.R, motion.u). When File Type is not EXR, this socket is ignored: only the main image is written, and a warning is logged.

    Outputs (0)

    No outputs