ComfyUI Node

Save EXR Frames

Render your video frames out as an EXR sequence

By spacepxl·Created 3 years ago·Updated 6 months ago· 102
Save EXR Frames
  • images
    filepathpath/to/frame%04d.exr
    tonemapsRGB
    start_frame1001
    overwritetrue
    save_workflow

    If you generate video in ComfyUI and the result needs to go somewhere serious - a compositor, DaVinci Resolve, a color pass, anything that cares about bit depth - you don't want an MP4. You want a sequence of EXR frames, and this node writes exactly that: each image in your batch becomes frame.1001.exr, frame.1002.exr, on up, from a single absolute path pattern.

    This is the "video file meets VFX convention" node. Where SaveEXR is for a handful of images, SaveEXRFrames is built for batch output, and it's the piece that makes ComfyUI video compositable with the rest of the industry rather than something you screen-record.

    How it works

    You give it a batch of images and an absolute filepath containing %04d - same substitution trick as the loader. It starts numbering at start_frame (1001 by default, the VFX standard) and writes one EXR per image, converting from sRGB/Reinhard display encoding back to linear on the way out and flipping BGR/alpha for OpenCV, same as SaveEXR.

    Two details that differ from SaveEXR and matter:

    • The path must be absolute. A relative path raises. It'll happily create the directory for you, but it's not going into ComfyUI's output folder - you're pointing it at a real location on disk.
    • overwrite defaults to true. This is the opposite of SaveEXR's safety behavior. SaveEXR refuses to clobber existing files; this node will silently overwrite by default. If you're rerendering into a folder with old frames, either flip it to false (it skips existing files, which is its own footgun - missing frames) or render into a fresh directory.

    save_workflow works like the sibling: EXR has no metadata slot, so it writes _api.json / _ui.json next to the first frame if you pick ui, api, or ui + api. Useful if you want to reconstruct the workflow from the frames later.

    One more quirk straight from the code: if your filepath pattern doesn't contain %04d, the node just writes the first frame of the batch to that path and stops. That's a silent "sequence mode off" switch - if you expect 30 files and get 1, check your pattern.

    Inputs

    images, filepath, tonemap, start_frame, overwrite, save_workflow. That's the whole surface, and honestly the only ones you'll touch after setup are filepath, start_frame, and overwrite.

    Install

    Same pack, same story: ComfyUI Manager → search ComfyUI-HQ-Image-Save → install → restart, or clone https://github.com/spacepxl/ComfyUI-HQ-Image-Save into custom_nodes/. Dependencies are imageio and opencv-python, no models.

    For the round trip back in, LoadEXRFrames from the same pack reads the sequence - same %04d convention, so the two are designed to talk to each other. And as with all the EXR writers in this pack, if precision is the point, run ComfyUI with --fp32-vae so the decode doesn't drop what you're saving.

    CategoryHQ-Image-Save

    Inputs (6)

    NameTypeDefaultDescription
    imagesIMAGE
    filepathSTRINGpath/to/frame%04d.exr
    tonemapCOMBOsRGB3 options: linear, sRGB, Reinhard
    start_frameINT10010–9999
    overwriteBOOLEANtrue
    save_workflowCOMBO4 options: ui, api, ui + api, none

    Outputs (0)

    No outputs