ComfyUI Node

UV Save Sequence

Dump frames to disk as PNG, JPG, or EXR for the compositing apps

By GeekatplayStudio·Created 5 months ago·Updated 5 months ago· 0
UV Save Sequence
  • images
  • output_dir
output_dirframes
format
name_templateframe_[counter]
padding6

Sometimes a video file isn't what you want out of a render. When the frames are headed into After Effects, Nuke, a color pass, or any tool that likes image sequences, UV_SaveSequence is the node - it takes an IMAGE batch and writes each frame to its own file in a folder. Simple job, simple node, and it's quietly one of the more useful utilities in this pack because it's the one that hands your work to software ComfyUI will never be.

The inputs are all about naming and format:

  • images - the batch, straight from UV_LoadVideo or any sampler output
  • output_dir - default "frames", relative to ComfyUI's working directory
  • format - png, jpg, or exr
  • name_template - default frame_[counter]
  • padding - default 6, the zero-pad width of the counter

Mechanically it's imageio.imwrite per frame. The [counter] placeholder in name_template gets replaced with the zero-padded frame index, which is why padding defaults to 6: with five or more digits you get frame_000000.png, frame_000001.png... and files that sort correctly in any NLE or compositor. There's no batch-number or padding placeholder beyond [counter], so for multi-batch dumps you'll want to vary output_dir per run or rename after.

The format choice is where the node shows some spine. PNG and JPG get converted to 8-bit, but EXR keeps the data as float - frames are clipped to 0-1 and written as floats rather than quantized to integers. That's the difference between "a picture of the frame" and "the frame itself with full precision," and it's what you want if you're doing serious compositing or an HDR pass. EXR files are heavy and most viewers can't open them, but that's a feature when the destination is Nuke.

A couple of honest notes. First, this node never touches ffmpeg - it's pure imageio, so it doesn't care about your ffmpeg build at all. Second, the default output_dir of "frames" lands in ComfyUI's working directory (usually the install root), not output/. Give it an absolute path or a folder name you'll actually find, because a six-hundred-frame PNG dump tucked into a folder you weren't looking in is exactly the kind of thing you'll discover three days later.

Install

Same as every node in the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/GeekatplayStudio/ComfyUI-UniversalVideoIO
cd ComfyUI-UniversalVideoIO
pip install -r requirements.txt

Restart ComfyUI and it's under UniversalVideoIO. No models, no downloads. If you want EXR support and imageio complains at write time, that's the FreeImage plugin missing from your environment - install imageio[freeimage] and it sorts itself out. The output output_dir returns the path that was actually written, which is handy if you wired it through to a log node or a downstream tool expecting to read that folder.

CategoryUniversalVideoIO

Inputs (5)

NameTypeDefaultDescription
imagesIMAGE
output_dirSTRINGframes
formatCOMBO3 options: png, jpg, exr
name_templateSTRINGframe_[counter]
paddingINT61–10

Outputs (1)

NameTypeDescription
output_dirSTRING