Comfly Google Veo3
Native-Audio Video Without a Google Account
- image1
- image2
- image3
- video
- video_url
- response
Veo 3 is the closed video model the local community keeps measuring everything against, and the main reason is audio. It's basically the only video generator that ships synchronized sound - dialogue, footsteps, wind - baked into the output, no separate TTS or sound-design pass. This node hands you that, inside ComfyUI, and you don't need a Google account or a credit card at Google's doorstep. You need a key from the Comfly API shop instead.
It's the most-searched node in this pack for a reason: it's the cleanest path from "I use ComfyUI" to "I generate Veo 3 video" without living in another web app. It's a paid-per-call deal (top up credits at ai.comfly.chat), so your GPU sits idle while the proxy does the work - that's the whole trade-off of this pack.
How it works
Everything here is a remote API call dressed up as a node. Your prompt (plus any images) gets base64-encoded and posted to the proxy's /v2/videos/generations endpoint, then the node polls for status every couple of seconds until the video's ready. Veo takes a while - budget a few minutes per clip - and the node gives up if it doesn't finish inside its polling window. When it succeeds, you get a video output that's a video URL wrapped in the pack's ComflyVideoAdapter, which you can wire straight into ComfyUI's native Save Video node. Keep the video_url output too if you want the link for a browser or another tool.
The inputs that matter
- model - the menu is the story:
veo3,veo3-fast,veo3-pro, the image-to-videoveo3-fast-frames/veo3-pro-frames, and the newerveo3.1family including the-4kvariants. Default is plainveo3, which is a fine place to start. - enhance_prompt - leave it off unless your prompt isn't in English. Veo only understands English, so flipping this on auto-translates/expands a Chinese prompt. The author ships the pack for a Chinese audience; if your prompt's already English you gain nothing.
- image1 / image2 / image3 - plug these in when you pick a
-framesmodel and you get image-to-video. Feed the source image and describe the motion. - aspect_ratio -
16:9or9:16. Applies to the text-to-video models; the frames (i2v) models are locked to landscape. - enable_upsample - turn on to get 1080p output instead of the default resolution. Slower and pricier; worth it if you're actually delivering the clip.
- seed - optional, set it if you want reproducible takes.
The node also has the standard apikey input. Outputs are video (VIDEO), video_url (STRING), and response (STRING - the raw JSON with the task id and progress).
Install
ComfyUI Manager → install custom node → search Comfyui_Comfly, or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/ainewsto/Comfyui_Comfly
Restart ComfyUI. Dependencies (aiohttp, requests, Pillow, numpy, plus torch/transformers that are already in your env) come from the pack's requirements.txt. No model files to download - that's the point. Put your key from ai.comfly.chat in Comflyapi.json in the pack folder, or paste it into the node's apikey field, and you're live.
Where people get burned
The audio-on output is a feature and a trap: every Veo model here generates sound and you cannot turn it off, so a "silent" clip is not on the menu. Also, this is a third-party proxy, so your API-key/task history lives on someone else's server - treat it like any reseller, keep important clips downloaded, and don't load it with prompts you'd never put in a cloud service. If a generation fails partway, the error usually shows up in response rather than as a node crash - read that field before you retry and spend another credit.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | COMBO | veo3 | 11 options: veo3, veo3-fast, veo3-pro, veo3-fast-frames, veo3-pro-frames, veo3.1, +5 |
| enhance_prompt | BOOLEAN | false | — |
| aspect_ratio | COMBO | 16:9 | 2 options: 16:9, 9:16 |
| apikeyopt | STRING | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| seedopt | INT | 00–2147483647 | — |
| enable_upsampleopt | BOOLEAN | false | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| response | STRING | — |