Google Veo 2 Video Generation
Google's Veo 2, without a Google account fight
- image
- VIDEO
Veo 2 is Google's flagship video model, and it's the one that made the "this looks like real footage" leap - the community reaction at the time was basically "incredible vlog-style AI video content," which is about as high as praise gets for a closed model. This node puts Veo 2 behind a ComfyUI node, billed through your Comfy account instead of a separate Google Cloud setup. You type a prompt, optionally drop in an image, and get a video out. That's the whole contract.
The one thing to notice immediately: the display name says "Veo 2," and the model dropdown is locked to a single option, veo-2.0-generate-001. There's a separate Veo 3 node in the same family that does the newer stuff (native audio, 4K for 3.1) - this node is deliberately the Veo 2 experience. That's not a bug. Veo 2 is the cheap, reliable, good-enough tier; Veo 3 is where the interesting capabilities went. If you came here wanting audio or 1080p-plus, hop to the Veo 3 node.
What you set
- prompt - plain English scene description. Veo handles prose well, so describe the shot and the action rather than keyword-stuffing.
- aspect_ratio - 16:9 or 9:16. There's no square option.
- duration_seconds - 5 to 8 seconds. Video models run short; that's the format.
- negative_prompt - what to avoid. Not every API honors these; Veo does, and it's worth using for "no text, no watermark, no extra people."
- person_generation -
ALLOWorBLOCK. This is Google's content guardrail exposed as a knob: if you're generating people, leaving it on ALLOW is required; if you don't want the model quietly deciding to add a face, set BLOCK. - image - an optional reference image, which turns the node into image-to-video. Same API, same prompt, the image just steers the first frame.
- enhance_prompt - lets Google rewrite/expand your prompt for better results. Leave it on; it genuinely helps with Veo.
- seed - 0 for random, otherwise replay a take.
How the run works
This is an API node in the full sense: ComfyUI base64-encodes your image, POSTs it to Google's Veo generate endpoint through the Comfy proxy, then polls the operation until it completes (typically about half a minute) and downloads the video. It needs a Comfy account with credits and an internet connection - no GPU, no model download. The price badge scales with duration.
The failure mode people hit
Veo's Responsible AI filter is real and it's not optional. The node polls the response for raiMediaFilteredCount and raises a hard error naming the reason when Google decides your output crosses a line. You'll see this as "Content filtered by Google's Responsible AI practices" and the fix is usually a softer prompt. There's also a genuinely useful quirk here: because the check happens after the run completes, you can spend a generation before finding out you were filtered. Don't fight it - Veo's guardrails are the price of the quality, and the open-source path (Wan 2.2 locally) exists precisely because some people don't want to pay it.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Text description of the video | |
| aspect_ratio | COMBO | 16:9 | Aspect ratio of the output video |
| negative_promptopt | STRING | Negative text prompt to guide what to avoid in the video | |
| duration_secondsopt | INT | 55–8 | Duration of the output video in seconds |
| enhance_promptopt | BOOLEAN | true | Whether to enhance the prompt with AI assistance |
| person_generationopt | COMBO | ALLOW | Whether to allow generating people in the video |
| seedopt | INT | 00–4294967295 | Seed for video generation (0 for random) |
| imageopt | IMAGE | Optional reference image to guide video generation | |
| modelopt | COMBO | veo-2.0-generate-001 | Veo 2 model to use for video generation |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VIDEO | VIDEO | — |