ComfyUI Node

Veo 3 Video Generation

The video node that makes its own soundtrack

By khanhlvg·Created about a year ago·Updated about a year ago· 4
Veo 3 Video Generation
  • first_frame
  • video
project_id
locationus-central1
model
promptA cinematic shot of a panda eating bamboo.
output_gcs_uri
duration_seconds8
resolution
compression_quality
enhance_prompttrue
generate_audiotrue
person_generation
seed643851422

Veo 3 is the flagship of the Vertex AI pack, and the one thing it does that nothing open-source matches is generate audio with the video. A single node, text in, and you get a clip where the wind sounds like wind and the door slam syncs to the door. The KB's closed-source essay calls this a genuine capability gap, and it's the reason people pay Google's prices instead of running local video models. This node is how you get it inside ComfyUI.

What it is

Text-to-video (or image-to-video) running two preview models: veo-3.0-fast-generate-preview for speed and veo-3.0-generate-preview for quality. Fixed 8-second clips (the duration input is locked at 8), up to 1080p, and - the headline feature - native audio generation for dialogue, sound effects, and ambience that matches the motion. If you've spent a day trying to fake synchronized footsteps with a separate audio tool, you know why this matters.

How it works

The node uses google-genai to submit a video generation operation, then polls every 8 seconds until it completes. The config carries resolution, compression quality, prompt enhancement, audio on/off, person generation, and seed. generate_audio defaults to on - flip it off only when you plan to add your own soundtrack (say, via the Lyria node in the same pack). Output is saved to a temp file and returned as ComfyUI's VIDEO type; the pack's "Preview Video" node is the natural destination.

Inputs that matter

  • prompt - multiline. With audio generation on, describing sound in the prompt ("the hum of city traffic, a siren in the distance") actually works.
  • model - veo-3.0-fast-generate-preview vs veo-3.0-generate-preview. Fast for drafts, full for finals.
  • first_frame - optional image to start from.
  • resolution - 1080p or 720p.
  • compression_quality - OPTIMIZED (smaller files) or LOSSLESS (heavier, more pristine).
  • generate_audio - the killer feature toggle, default on.
  • person_generation - allow_all, allow_adult, or dont_allow.
  • output_gcs_uri - optional, for a durable copy.
  • seed - reproducibility.

Output is one video in VIDEO format.

Installing

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/khanhlvg/vertex-ai-comfyui-nodes.git
cd vertex-ai-comfyui-nodes
pip install -r requirements.txt

Plus the pack-wide auth - gcloud auth application-default login, GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_LOCATION (defaults us-central1), billing-enabled project with Vertex AI enabled. No local models.

Where people get burned

  • The wait, squared. Veo 3 full-quality at 1080p is a several-minute operation. The polling loop makes it look hung; it isn't.
  • Cost is the real constraint. Veo 3 is the most expensive thing in this pack, and 8 seconds is the fixed minimum. Use the fast model and 720p for iteration, save the full render for finals.
  • Audio surprises. Native audio is great until you don't want it - a silent "thinking" beat turns into room tone. If the clip needs clean audio for post, turn generate_audio off.
  • Preview models shift. Both model strings are preview; Google has already moved versions once. If a saved workflow suddenly errors, the model string is the first suspect.

The takeaway is simple: if your video needs sound that matches the picture and you don't want to build it by hand, this is the only node in the ecosystem that just gives it to you. For everything else, open models are closing in - but not on this.

CategoryVertex AI

Inputs (13)

NameTypeDefaultDescription
project_idSTRING
locationSTRINGus-central1
modelCOMBO2 options: veo-3.0-fast-generate-preview, veo-3.0-generate-preview
promptSTRINGA cinematic shot of a panda eating bamboo.
first_frameoptIMAGE
output_gcs_urioptSTRING
duration_secondsoptINT88–8
resolutionoptCOMBO2 options: 1080p, 720p
compression_qualityoptCOMBO2 options: OPTIMIZED, LOSSLESS
enhance_promptoptBOOLEANtrue
generate_audiooptBOOLEANtrue
person_generationoptCOMBO3 options: allow_adult, dont_allow, allow_all
seedoptINT6438514220–4294967295

Outputs (1)

NameTypeDescription
videoVIDEO