ComfyUI Node

Veo3.1 Text To Video

Veo 3.1 text-to-video with native audio, in your graph

By GoogleCloudPlatform·Created 8 months ago·Updated about a month ago· 47
Veo3.1 Text To Video
    • video_paths
    modelVEO_3_1
    prompt
    aspect_ratio16:9
    output_resolution720p
    compression_qualityoptimized
    person_generationallow_adult
    duration_seconds8
    generate_audiotrue
    sample_count1
    output_gcs_uri
    negative_prompt
    seed0
    gcp_project_id
    gcp_region

    Veo 3.1 is the model that made people stop pretending open-source video was close: it generates audio natively, in sync with the picture - a capability with no real open-source equivalent yet. This node puts that whole package into ComfyUI as a text-to-video generator. You describe the shot, it returns a clip with sound, and you can chain the result into the rest of your workflow. It's the flagship generator of this pack, and the node most people here will actually want.

    How it works

    Prompt goes to the Veo 3.1 API on Vertex AI; the model generates the video - with its generate_audio flag deciding whether you get the synchronized soundtrack - and the node polls the long-running operation, downloads the result to temp, and hands you video_paths (VEO_VIDEO). You get the modern controls the Veo 2 nodes lack: a model dropdown, an explicit resolution picker, and 4/6/8-second durations. The output is a path list, not a tensor, so playback and frame extraction are the jobs of the pack's two utility nodes.

    Inputs that matter

    • prompt - the shot description. Be specific about camera moves, subject, and lighting; it pays off more here than with most models.
    • model - VEO_3_1 (default), VEO_3_1_FAST, or VEO_3_1_LITE. The lite and fast tiers are cheaper and quicker - genuinely useful when you're iterating on a prompt before committing to the full model.
    • output_resolution - 720p default, plus 1080p and 4k. The default is the recurring complaint in the community: people pay for Veo and get 720p. Set this before an expensive run.
    • duration_seconds - 4, 6, or 8 only.
    • generate_audio - on by default. Veo 3.1's native audio is the feature; leave it on unless you're scoring separately.
    • sample_count - up to 4 clips per run, billed per video.
    • aspect_ratio - 16:9 or 9:16.
    • compression_quality - lossless requires output_gcs_uri, or the node errors asking for a bucket.

    Optional: negative_prompt, seed, output_gcs_uri, gcp_project_id, gcp_region.

    Gotchas

    The seed situation is the same across all Veo 3.1 nodes: the tooltip says seed works with enhance-prompt disabled, but you can't disable prompt enhancement on Veo 3.1 - treat seed as decorative. And the lossless bucket requirement is worth prepping for if you work with compression_quality: lossless; the API won't return huge lossless files inline, so you must supply output_gcs_uri.

    Installing and wiring it

    Standard pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/GoogleCloudPlatform/comfyui-google-genmedia-custom-nodes
    pip install -r comfyui-google-genmedia-custom-nodes/requirements.txt
    

    Or ComfyUI Manager → search comfyui-google-genmedia-custom-nodes. Restart, find it under Google AI/Veo3.1. Set gcp_project_id and gcp_region on the node (or use GKE workload identity), authenticate with gcloud auth application-default login, and every video bills to Vertex AI. Run the output into VeoVideoSaveAndPreview to watch it in-canvas, or VeoVideoToVHSNode to pull frames for upscaling and img2img. This is the node that makes a pure-prompt pipeline actually feel complete.

    CategoryGoogle AI/Veo3.1

    Inputs (14)

    NameTypeDefaultDescription
    modelCOMBOVEO_3_13 options: VEO_3_1, VEO_3_1_FAST, VEO_3_1_LITE
    promptSTRING
    aspect_ratioCOMBO16:92 options: 16:9, 9:16
    output_resolutionCOMBO720p3 options: 720p, 1080p, 4k
    compression_qualityCOMBOoptimized2 options: optimized, lossless
    person_generationCOMBOallow_adult2 options: dont_allow, allow_adult
    duration_secondsINT84–8
    generate_audioBOOLEANtrue
    sample_countINT11–4
    output_gcs_urioptSTRING
    negative_promptoptSTRING
    seedoptINT00–42949672950 seed let's Veo API handle randomness. Seed works with enhance_prompt disabled
    gcp_project_idoptSTRINGGCP project id where Vertex AI API will query Veo
    gcp_regionoptSTRINGGCP region for Vertex AI API

    Outputs (1)

    NameTypeDescription
    video_pathsVEO_VIDEO