Veo 3 Video Saver
It's called Preview, but Veo 3 Video Saver is really your video's filing clerk
- video_paths
- output_paths
The class is named Veo3VideoPreview, and then someone sensibly renamed it in the UI to Veo 3 Video Saver, because what it actually does is take the generated video, show it to you, and file it away under a name you can find again. The preview is the nice-to-have; the saving is the point.
Why you need it
The generation node already drops every clip into ComfyUI's output directory, but it names them veo3_<timestamp>_<n>.mp4 - fine for robots, useless for humans. If you're running a few takes, which you will be at $0.35/sec, you'll be drowning in timestamp files. This node copies the clip out to your output folder under a clean, predictable name like veo3_video_001.mp4, shows it in the UI, and passes the path along so the rest of your workflow still works.
The inputs
Three, all easy:
- video_paths (
VEO_VIDEO) - in from Veo 3 Text to Video, or from another Saver further up the chain. - save_to_output -
true(default) copies the file;falseskips the copy and just previews the original. - filename_prefix - the base name, default
veo3_video.
How it works
When save_to_output is on, it copies the .mp4 into ComfyUI's output directory using your prefix plus a three-digit counter - veo3_video_001.mp4, then _002, and so on - incrementing until it finds a name that doesn't already exist, so you never overwrite an earlier take. It also emits preview data for the UI. With saving off, it just previews and passes the original path through unchanged.
The output
output_paths (VEO_VIDEO) - the path of the saved copy, or the original if you disabled saving. It's a passthrough, so you can still wire it into Veo 3 to VHS to grab frames after the save. As an output node, it's where a branch of the graph reasonably terminates.
Installing and gotchas
Same pack as the other two nodes - ComfyUI Manager (search "Veo 3 Experimental") or clone the cuban044/ComfyUI-Veo3-Experimental repo, pip install -r requirements.txt, restart. Nothing model-heavy here; it's a file copy plus a preview.
Two things worth knowing. First, if generation failed upstream, the node quietly reports "No videos were generated" in the UI info rather than hard-failing - check the console if you got nothing. Second, if you never attach a Saver, the timestamp-named files still land in your output directory; this node exists to give you tidy names, so add it to any workflow where you'll dig results out later. It's the unglamorous node you stop thinking about five minutes after adding it - which is exactly what you want from a saver.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| video_paths | VEO_VIDEO | — | |
| save_to_output | BOOLEAN | true | — |
| filename_prefix | STRING | veo3_video | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| output_paths | VEO_VIDEO | — |