Nodes/ComfyUI-ACES-IO/ACES IO — Video Saver
ComfyUI Node

ACES IO — Video Saver

Turn a frame batch into MP4, ProRes, WebP, or GIF without leaving the graph

By BISAM20·Created 6 months ago·Updated 6 months ago· 9
ACES IO — Video Saver
  • images
  • output_dir
  • ocio_config
  • input_transform
  • colorspace
  • images
  • saved_path
filenameoutput
formatMP4 (H.264)
fps24.0

ACES IO - Video Saver is the export half of this pack's "get AI frames into a deliverable" story. Feed it any IMAGE batch - from the EXR Loader, the Video Loader, or a batch of generated frames - and it writes a real video file. The headline feature is Apple ProRes MOV export in four flavors, because "AI output is just a bunch of PNGs" is exactly the thing that gets you thrown out of a Nuke or DaVinci Resolve pipeline. This node hands over 10-bit ProRes that an editor can drop straight onto a timeline.

What you get

The format dropdown is the whole node:

  • MP4 (H.264) - via OpenCV. Plays everywhere; the default, and the right call for a quick review clip.
  • MOV ProRes 422 / 422 HQ - 10-bit YUV 4:2:2 via PyAV/FFmpeg's prores_ks encoder.
  • MOV ProRes 4444 / 4444 XQ - 10-bit 4:4:4, and here's the gem: alpha is preserved if your tensor has 4 channels. ProRes 4444 with alpha is the standard way to deliver transparency to a compositor.
  • Animated WebP - high quality, browser-friendly, good for sharing a moving preview.
  • Animated GIF - 256-colour limit, but it's the only format every platform on Earth renders.

Shared inputs: output_dir (Browse to pick), filename (extension added automatically - the placeholders tell you not to type one), and fps (1–120, default 24). Optional color handling mirrors the EXR Saver: connect ocio_config and set input_transform (default ACEScg, your working space) and colorspace (default sRGB Encoded Rec.709 (sRGB), what gets encoded into the file). The node converts before writing, so you can save display-ready video straight from linear ACEScg. Disconnect the config and it encodes pixels as-is.

Outputs: images (the tensor, passed through unchanged so the node can sit inline without breaking your chain) and saved_path (STRING - wire it to a text/note node to see where the file landed).

Install

Part of BISAM20/ComfyUI-ACES-IO. Manager → Install Custom Nodes → ComfyUI-ACES-IO, restart. Manual:

cd ComfyUI/custom_nodes
git clone https://github.com/BISAM20/ComfyUI-ACES-IO
cd ComfyUI-ACES-IO
pip install -r requirements.txt

Two format-specific dependencies: ProRes MOV needs av (PyAV), MP4 needs opencv-python - both in requirements.txt. If a format raises "Install with: pip install av" (or cv2), that's what's missing.

Gotchas

  • Don't encode linear values into an MP4. Without a connected config, an ACEScg batch saved as H.264 looks dark and grey - the encoder assumes display-encoded sRGB. Connect ocio_config and set colorspace to sRGB, or pipe a Display Transform first.
  • Frame count = your tensor's batch size. If the Video Loader pulled 50 frames, you get a 50-frame video. There's no loop or repeat knob.
  • Alpha only survives ProRes 4444/4444 XQ (and technically WebP). MP4 and the 422 ProRes variants drop the 4th channel - that's the format, not the node.
  • Memory again: the whole batch is processed in one go; huge 4K sequences can blow RAM. Trim the range upstream.
CategoryACES IO/EXR

Inputs (8)

NameTypeDefaultDescription
imagesIMAGE
output_dirACES_PATH/root/
filenameSTRINGoutput
formatCOMBOMP4 (H.264)7 options: MP4 (H.264), MOV ProRes 422, MOV ProRes 422 HQ, MOV ProRes 4444, MOV ProRes 4444 XQ, Animated WebP, +1
fpsFLOAT24.01–120Frames per second
ocio_configoptOCIO_CONFIG
input_transformoptACES_COLORSPACEACEScgColor space of the incoming image (working / pipe space)
colorspaceoptACES_COLORSPACEsRGB Encoded Rec.709 (sRGB)Color space to encode into the video file

Outputs (2)

NameTypeDescription
imagesIMAGE
saved_pathSTRING