Google AI - Video Generator (Veo 3.1)
Cloud video with native audio
- init_image_or_video
- video_frames
- audio
- cost_estimate
Want video without a local video model, without the VRAM hit, and with audio that actually syncs? That's what GoogleAI_VideoGenerator is: it sends your prompt to Google's Veo 3.1 over the Gemini API and returns the finished clip as a ComfyUI IMAGE tensor of frames plus an AUDIO output. Veo 3 is the model class that generates sound natively with the picture - dialogue, effects, ambience - which is a genuine capability gap for open models, and it's the reason people reach for this node at all.
What it's for
Cloud text-to-video as one step in a larger ComfyUI graph. Generate a clip from a prompt, then take the returned frames straight into local post-processing - upscaling, frame filtering, concatenation with other clips, frame extraction. The init_image_or_video input makes it a two-in-one: feed it a single image and it's img2vid (animate that still), feed it several frames and it treats them as a video and extends from the last one. The cost_estimate output is a nice honesty feature - this is metered API spend, and the node tells you what a run cost.
How it works
The prompt (and optional start image or frames) goes to Veo via Google's long-running generation endpoint: POST, then poll until the video's ready. The returned clip is decoded frame by frame into a [frames, H, W, C] tensor at 24 FPS, and audio is extracted separately. On Veo 3.1 the audio is native; on Veo 2 (which generates no sound) the node substitutes a silent AUDIO stream so your pipeline doesn't break. Frames, audio, and cost come out as three wires. REST-only, no SDKs, and - pack standard - failures come back as an error image plus dummy audio rather than crashing the queue.
Inputs and outputs that matter
- prompt (STRING, multiline) - describe motion, camera, scene. Veo responds well to cinematic language.
- model (COMBO, default
veo-3.1-generate-preview) - standard 3.1 with native audio, a fast variant, or the older veo-2. - video_preset (COMBO, default 1920x1080 16:9) - resolution/aspect presets, up to 4K.
- duration_seconds (COMBO, default 6) - 4, 6, or 8 seconds from the combo.
- init_image_or_video (IMAGE) - 1 frame = image-to-video; multiple frames = extension from the last one.
- negative_prompt, api_key - optional, as expected.
- video_frames (IMAGE), audio (AUDIO), cost_estimate (STRING) - the outputs.
Installing it
One of the 15 Google nodes in COMFYUI_PROMPTMODELS (PromptModels Studio in Manager):
cd ComfyUI/custom_nodes
git clone https://github.com/cdanielp/COMFYUI_PROMPTMODELS
Put GEMINI_API_KEY=AI... in the pack's .env, restart. This one also wants ffmpeg on the system - the pack's installer tries to install it on Linux and tells you to on macOS/Windows (brew install ffmpeg / choco install ffmpeg). Needs ComfyUI 0.26.0+.
Common issues
The honest one is cost: Veo 3.1 video is genuinely expensive per run, and the cost_estimate output is there so you can see it. If your audio comes out silent, check the model - Veo 2 has no native audio and gets the silent placeholder by design. ffmpeg missing is the classic install-time failure, and it only shows up when you try to generate. And Veo is a long-running job, so a very long timeout (the client waits up to two minutes and retries on rate limits) isn't a hang - it's polling.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A cinematic drone shot flying over a mountain range at sunrise | — |
| model | COMBO | veo-3.1-generate-preview | 3 options: veo-3.1-generate-preview, veo-3.1-fast-generate-preview, veo-2.0-generate-001 |
| video_preset | COMBO | 1920x1080 (16:9) | 5 options: 1920x1080 (16:9), 1080x1920 (9:16), 1080x1080 (1:1), 3840x2160 (16:9 4K), 2160x3840 (9:16 4K) |
| duration_seconds | COMBO | 6 | 3 options: 4, 6, 8 |
| api_keyopt | STRING | — | |
| init_image_or_videoopt | IMAGE | 1 frame=Img2Vid, >1=Extension (ultimo frame). | |
| negative_promptopt | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video_frames | IMAGE | — |
| audio | AUDIO | — |
| cost_estimate | STRING | — |