Gemini Veo Video (y277an)
The expensive, gorgeous video node — use the cache
- image
- video
- log
Veo is the video model you cannot run - and it's also the one the open ecosystem measures itself against. Its native audio-with-video is a capability open weights still haven't matched. So when you want Veo inside your ComfyUI graph, you're calling Google's API, and this node is the wrapper: prompt in, a ComfyUI VIDEO out, billed to your own AI Studio account. Fair warning up front - this is the pack's expensive node, and the README doesn't mince words about it: preview-only models, a few seconds of clip, real money per run.
Why you'd reach for it
You want a motion shot that looks like a film trailer, you don't want to leave ComfyUI, and you've accepted that this is a closed API with per-call pricing. The node does text-to-video when you give it only a prompt, and image-to-video when you attach an image - which becomes the first frame. That's the workflow people actually build: a Nano Banana frame in, Veo animates it, your local pipeline does the rest.
How it works
Veo is a long-running async job, so the node does submit-then-poll: it kicks off generate_videos, then polls every ten seconds until the job finishes. It drives the ComfyUI progress bar so the run doesn't look frozen - the bar is an elapsed-time estimate, not real progress, because Veo exposes none. There's a six-minute timeout, after which it raises. When it completes, the mp4 comes back and gets wrapped into the VIDEO type.
The smart part is the cache. Every request is hashed (prompt, model, duration, ratio, resolution, negative prompt, plus the first-frame image) and the finished mp4 is stored under that hash. Rerun the identical request and it returns the cached video instantly, free, no API call. Given the price tag, that's not a nicety - it's the feature that keeps a paid node usable while you iterate on the rest of the graph.
The inputs that matter
Required: prompt and model (default veo-3.1-fast-generate-preview, with veo-3.1-generate-preview and veo-3.1-lite-generate-preview).
image- attach it and you're in image-to-video mode; it's the first frame.duration_seconds- 2 to 8, default 4. Longer is proportionally more expensive.aspect_ratio- 16:9 or 9:16.resolution- 720p or 1080p.negative_prompt- optional; Veo accepts one.use_cache- on by default. Leave it on.
Outputs: video (VIDEO) and log (STRING). Connect video to SaveVideo (or PreviewVideo) - that's the move. The log records mode, model, duration, size, and how long the job took.
Install
Same as the rest of the pack:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/y277an/ComfyUI-y277an-Gemini.git
/path/to/ComfyUI/python -m pip install google-genai pillow numpy
cd ComfyUI-y277an-Gemini
cp config.json.example config.json # paste your Google AI Studio key
Restart ComfyUI. No model files - the model is Google's.
Gotchas
- It's expensive, and the README says "preview-only" for a reason. These are preview models and a few seconds of clip can cost real money. Keep clips short, keep
use_cacheon, and treat each generation as a decision, not a draft. - No seed, by design. The AI Studio (Developer API) rejects
seed,generate_audio,fps, and non-default resolutions - those are Vertex-only fields, so the pack intentionally doesn't expose them. That means Veo 3's famous native-audio-with-video is out of reach here; you get silent video. To vary results, change the prompt, the duration, or the input frame - not a seed that doesn't exist. - Errors raise, unlike the image node. There's no meaningful placeholder video, so a failed job surfaces as an error instead of a grey frame. That's a feature.
- The cache is your friend and your confusion. Same inputs, same video, free. New inputs, new bill. Change something before you rerun and expect to pay.
If you want Veo's polish without the graph gymnastics, this is the way in - just budget for it and let the cache work for you.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | a cinematic shot of a fox running through a sunny meadow | — |
| model | COMBO | 3 options: veo-3.1-fast-generate-preview, veo-3.1-generate-preview, veo-3.1-lite-generate-preview | |
| imageopt | IMAGE | — | |
| api_keyopt | STRING | — | |
| duration_secondsopt | INT | 42–8 | — |
| aspect_ratioopt | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| resolutionopt | COMBO | 720p | 2 options: 720p, 1080p |
| negative_promptopt | STRING | — | |
| use_cacheopt | BOOLEAN | true | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| log | STRING | — |