Save Video
The Save Video node that keeps your frames usable downstream
- VIDEO
- file_path
Every video workflow ends the same way: frames in, file out. ComfyUI's default video saving can be stingy about what it hands back - you save a clip and then can't feed it to the next node without reloading it. Save Video fixes that by writing the file and returning a live VIDEO object, plus the full path, so the rendered result stays in the graph for whatever comes next - a compare node, a merge, another generation pass.
It's also, per the README, an integrated and enhanced version of the SaveVideoRGBA node, with the extra controls (output path, filename prefix, frame rate) baked in.
What you set
Three inputs, but they're dynamic combos that expand when you touch them:
input_mode- what you're saving. Default isimages+audio(feed IMAGES, set an FPS, optionally add an AUDIO track); switch tovideoif you're re-encoding an existing VIDEO (and you can swap in a replacement audio track there too).output_mode- what to do with the result. Options includesave(write to output),preview_only/hide(temp file, no durable write), andhide&save(save without the preview popup). Picksavefor anything you actually want to keep.filename_prefix- your base filename, defaultComfyUI.
Two outputs: VIDEO (the file as a usable object for downstream nodes) and file_path (the full written path as a string - hand it to anything that needs a path, like a merge-from-paths node or an API response).
One internal nicety worth knowing: if your image dimensions aren't even numbers, the node crops them to even before encoding. It logs when it does, and it saves you a class of "video won't encode" errors.
Install
It's in ComfyUI-Easy-Media:
cd ComfyUI/custom_nodes
git clone https://github.com/yolain/ComfyUI-Easy-Media.git
restart ComfyUI (ComfyUI Manager, "Easy-Media", works too). FFmpeg installed system-wide is the README's one hard requirement - this node lives and dies by it, since all encoding funnels through the system ffmpeg.
Where people get burned
The output_mode dropdown is where confusion lives. People set preview_only, come back an hour later, and their file is gone - because it only wrote to temp. If you want the clip to survive, use save or hide&save. Also, this node re-encodes whatever passes through it, so chaining multiple Save Video nodes in one path wastes time; save once at the end. And when the VIDEO output feeds a node that expects frames rather than a file reference, you may need to go through an explicit decode - the pack's split and load nodes are the friendlier bridge there.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| input_mode | COMBO | 2 options: [object Object], [object Object] | |
| output_mode | COMBO | 4 options: [object Object], [object Object], [object Object], [object Object] | |
| filename_prefix | STRING | ComfyUI | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |
| file_path | STRING | — |