Nodes/DIGIT Nodes/DIGIT Veo Video
ComfyUI Node

DIGIT Veo Video

Veo 3.1 in ComfyUI — with the lossless trick nobody else offers

By thedepartmentofexternalservices·Created 6 months ago·Updated 26 days ago· 0
DIGIT Veo Video
  • first_frame
  • last_frame
  • reference1
  • reference2
  • reference3
  • video
  • video_paths
  • status
prompt
modelveo-3.1-generate-001
aspect_ratio16:9
resolution720p
duration_seconds8
generate_audiotrue
seed0
gcp_project_id
gcp_region
negative_prompt
person_generationallow_adult
sample_count1
compression_qualitylossless
output_gcs_uri
enhance_prompttrue

Veo is Google's closed video model - you cannot download it, full stop, so getting it inside a ComfyUI graph means an API call. DIGIT Veo Video is the pack's flagship for that: it talks to Vertex AI directly with your GCP credentials, no proxy, no third-party reseller, billed to your own Google Cloud account at Google's pricing.

The headline feature is the thing most people don't know exists: lossless output. Every Veo render you get from AI Studio, the console, or any wrapper service is the compressed "optimized" MP4. The only way to get the full-quality file is through the API with a GCS bucket URI - and this node is one of the few tools anywhere that wires that up. Set compression_quality to lossless, give it an output_gcs_uri like gs://my-bucket/output/, and the uncompressed file lands in your bucket. No bucket or URI, and it falls back to optimized with a warning.

How it works

Like the other DIGIT video nodes, mode is auto-detected from what you connect:

  • Nothing → text-to-video
  • first_frame connected → image-to-video (animates from your frame)
  • first_frame + last_frame → interpolation between the two
  • reference1reference3 connected → reference-based, for keeping a style or asset consistent

Models: veo-3.1-generate-001 (default), the 3.1 Fast variant, Veo 3.0 / 3.0 Fast, and Veo 2.0. The rest of the important knobs: aspect_ratio (16:9 or 9:16), resolution (720p or 1080p), duration_seconds (4/6/8), generate_audio (Veo makes synced audio, on by default), sample_count (1–4 clips per run), and enhance_prompt (let Veo polish your prompt - leave it on until you know better). person_generation controls whether adult people are allowed in output, and negative_prompt exists if you need to steer away from something.

The generation is async: the node submits the job, polls every 20 seconds until it's done, then downloads and returns. On the cloud side there's retry with exponential backoff for rate limits, which is the kind of thing you only appreciate after a 429.

Outputs: video (the first clip as a VIDEO tensor), video_paths (all clips - feed this to DIGIT Video Saver or Uber Saver to batch-save), and status (model, mode, duration, resolution, file paths).

Setup

This one needs the full GCP rig, not just a key:

gcloud auth login --enable-gdrive-access
gcloud auth application-default login
gcloud config set project YOUR_PROJECT_ID
gcloud services enable aiplatform.googleapis.com

gcp_project_id and gcp_region auto-fill on GCP instances, or you set them on the node. For lossless, create a bucket:

gcloud storage buckets create gs://your-bucket-name --location=us-central1

Install the pack via ComfyUI Manager (search comfyui-digit) or clone-and-pip from the repo.

Gotchas

gcp_region matters more than the README makes it sound - Veo defaults to us-central1, and if your bucket is elsewhere, cross-region transfers get slower and costlier. Lossless mode is only lossless if the URI is actually reachable by your credentials. And remember the standing rule with any API video node: prompts and frames leave your machine, cost adds up per second rendered, and the model's content filter is not something you can patch locally (the external-api-nodes essay in the modidex KB covers the full decision tree). For Veo, that's simply the price of the only door that exists.

CategoryDIGIT

Inputs (20)

NameTypeDefaultDescription
promptSTRING
modelCOMBOveo-3.1-generate-0015 options: veo-3.1-generate-001, veo-3.1-fast-generate-001, veo-3.0-generate-001, veo-3.0-fast-generate-001, veo-2.0-generate-001
aspect_ratioCOMBO16:92 options: 16:9, 9:16
resolutionCOMBO720p2 options: 720p, 1080p
duration_secondsINT84–8
generate_audioBOOLEANtrue
seedINT00–2147483647
gcp_project_idSTRINGGCP project ID. Auto-detected from DIGIT_GCP_PROJECT env var or GCP metadata.
gcp_regionSTRINGGCP region. Auto-detected from DIGIT_GCP_REGION env var or GCP metadata. Defaults to 'us-central1' for Veo.
first_frameoptIMAGE
last_frameoptIMAGE
reference1optIMAGE
reference2optIMAGE
reference3optIMAGE
negative_promptoptSTRING
person_generationoptCOMBOallow_adult2 options: allow_adult, dont_allow
sample_countoptINT11–4
compression_qualityoptCOMBOlossless2 options: lossless, optimized
output_gcs_urioptSTRINGGCS bucket URI for lossless output. Auto-detected from DIGIT_GCS_URI env var, e.g. gs://my-bucket/output/
enhance_promptoptBOOLEANtrue

Outputs (3)

NameTypeDescription
videoVIDEO
video_pathsVIDEO_PATHS
statusSTRING