Save EXR Frames
Render your video frames out as an EXR sequence
- images
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.
overwritedefaults 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.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| filepath | STRING | path/to/frame%04d.exr | — |
| tonemap | COMBO | sRGB | 3 options: linear, sRGB, Reinhard |
| start_frame | INT | 10010–9999 | — |
| overwrite | BOOLEAN | true | — |
| save_workflow | COMBO | 4 options: ui, api, ui + api, none |
Outputs (0)
No outputs