ComfyUI Node

Veo (Gemini API)

Flagship video without GCP paperwork

By Aryan185·Created about a year ago·Updated about a month ago· 14
Veo (Gemini API)
  • image
  • frames
prompta cat reading a book
modelveo-2.0-generate-001
aspect_ratio16:9
duration_seconds8
api_key
seed69
negative_prompt

Google's Veo is the video model that keeps embarrassing the open-source side - the KB is blunt that Veo 3's native audio still has no open equivalent - and this node hands you Veo 2.0 through the Gemini API, which means just a Google AI Studio key. No Google Cloud project, no service account JSON, no Vertex AI console spelunking. That's the entire appeal: flagship video quality with the same one-line key setup as the Gemini chat node.

The trade is that this is the Gemini-API flavor, so you're getting Veo 2.0, not the newest Veo 3.x line - and you're paying per second of generated video on your AI Studio billing.

How it works

The node uses the google-genai SDK (genai.Client with the v1beta API) and calls models.generate_videos(). That's a long-running operation: the node polls until the generation completes, then downloads the video and decodes the frames locally into an IMAGE list. If you plug an image into the optional input, it becomes image-to-video - the first frame is the image you gave it. No GPU work on your side beyond frame decoding.

The inputs that matter

  • prompt - the whole game. Veo responds well to concrete, directional prompts; describe motion and shot, not just subject.
  • model - veo-2.0-generate-001, the only choice right now. Nothing to configure.
  • aspect_ratio - 16:9 or 9:16. Landscape or portrait; pick before you render.
  • duration_seconds - 5 to 8, default 8. Longer costs more; 5-second tests are the smart way to iterate.
  • negative_prompt (optional) - what to keep out of the clip. Worth using; Veo respects it decently.
  • image (optional) - an IMAGE input for image-to-video. This is the sleeper feature: drive Veo from any still your local models generate.
  • seed / api_key - seed for ComfyUI re-runs (it's not passed to the API for reproducibility, same as the rest of this pack); key in the field or as a .env variable name (GEMINI_API_KEY).

The output

frames - an IMAGE list of decoded video frames. This is the part that needs a plan: you can't drop a list straight into a SaveImage. Route it through Video Helper Suite (VHS) to combine and encode to mp4 or gif.

Installing it

One of the many nodes in the Aryan185/ComfyUI-ExternalAPI-Helpers pack:

cd ComfyUI/custom_nodes
git clone https://github.com/Aryan185/ComfyUI-ExternalAPI-Helpers.git
cd ComfyUI-ExternalAPI-Helpers
pip install -r requirements.txt

Restart ComfyUI; find "Veo (Gemini API)" under video/generation. The google-genai dependency is what matters, and you may already have it from the Gemini nodes. Get a key from aistudio.google.com/app/api-keys, paste it in the field or set GEMINI_API_KEY in .env.

Where people get burned

Patience, mostly. Video generation via the API is a job, not a render - expect the node to sit in a polling loop for a while, and there's no timeout knob. If you're on the free AI Studio tier, video generation is limited or unavailable, and the failure shows up as an API error that looks like a node bug. Check your billing/quota before blaming the node. Also note this is Veo 2, not the Veo 3 with native audio - if you need sound in the clip, this node gives you frames only (there's no audio output, unlike the Sora node in this pack).

There's a sibling node in the pack (Veo Video Generator) that goes through Vertex AI instead, with project/service-account setup - this one is the low-friction version. For the trade-off, the Gemini API route is the one to start with.

Categoryvideo/generation

Inputs (8)

NameTypeDefaultDescription
promptSTRINGa cat reading a book
modelCOMBOveo-2.0-generate-0011 options: veo-2.0-generate-001
aspect_ratioCOMBO16:92 options: 16:9, 9:16
duration_secondsINT85–8
api_keySTRINGDirectly put Gemini API key or .env variable name (GEMINI_API_KEY)
seedINT69-1–2147483646
negative_promptoptSTRING
imageoptIMAGE

Outputs (1)

NameTypeDescription
framesIMAGE