Generate Veo3.1 Video
The one closed model with sound in the same generation pass
- image_urls
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
Here's the reason people pay for this one: Veo generates audio in the same pass as the video - synchronized sound effects and dialogue, not a separate foley step. The KB is unambiguous that this is a genuine capability gap in open weights, with LTX-2.3 the only local model attempting native audio-plus-video and still behind. That's the argument for a closed API node, and it's the one argument that holds.
What it is
KIE's Veo 3.1 generation endpoint as a ComfyUI node - prompt, images and controls in, VIDEO out. It's the pack's usual trick applied to Google's video model: documented request fields become widgets, URL fields become native sockets, connected media gets uploaded to KIE for you.
Two context notes that matter. Cost and censorship are both on you: this routes through a reseller, which is why people choose it (community price comparisons against Comfy's first-party API nodes have shown meaningful savings on Google models), and Google's generation stack is aggressively filtered, including tightening around famous IP and celebrity prompts. Expect refusals to be a policy answer, not a bug. The catalogue is live: KIE's Veo model IDs are publicly known to be documented with some stale identifiers embedded in their own pages, and the pack repairs for that - another reason to stay current.
Inputs
prompt (required) - the shot. Detailed, specific, with action and camera language. For image-to-video, describe how the frame should come alive.
generation_type - the mode switch, and the one to set deliberately. TEXT_2_VIDEO for prompt-only work; FIRST_AND_LAST_FRAMES_2_VIDEO for image-driven work, where one image is a start frame and two images are first and last; REFERENCE_2_VIDEO for reference-driven generation. Docs note the reference mode currently only supports an 8-second duration.
image_urls - a native IMAGE socket for the frames or references above.
duration - a string, default 8. Options are 4, 6, 8. Reference mode is 8 only, which is the constraint people hit.
resolution - 720p, 1080p, 4k.
aspect_ratio - 16:9, 9:16, or Auto. Auto centre-crops based on whether your uploaded image is closer to 16:9 or 9:16, which is a sensible default for image-driven runs.
enable_translation - true by default; prompts are translated to English before generation. Turn it off if your prompt is already English and you want exactly your wording to be what's sent.
watermark - text drawn onto the video if you fill it in. Defaults to MyBrand. Empty means no watermark.
enable_fallback - present but documented as deprecated. Leave it off.
timeout_seconds - 1200 default, 30–7200. callback_url - leave empty for normal ComfyUI use.
Outputs
video - a ComfyUI VIDEO object; Save Video or a preview node takes it directly. url - the primary hosted result. all_urls_json - every URL reported, which you want on a Veo job because the response can include still frames alongside the video. task_id - the job handle, and the thing you feed to the Get 1080P Video or Get 4K Video cards if you want a higher-resolution render of the same task. raw_json - the full response. credits_consumed and credits_left - floats, plus the on-node credits receipt.
Install
ComfyUI Manager (search the pack title), or:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
pip install -r ComfyUI-KIE-Nodes-Next/requirements.txt
Restart. Requirements: requests, Pillow, numpy, PyYAML. No local models, no VRAM, no rendering on your machine - every frame is generated remotely and billed.
Key: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key; validated against KIE before saving, masked fingerprint afterwards. Headless: KIE_API_KEY, which outranks the saved key.
Gotchas
Duration and resolution interact. Reference mode is 8 seconds; going long or specific about length will trip either the mode or the resolution rules. Check the mode before you blame the model.
A refusal is a policy answer. Read raw_json; the text will usually say so.
Veo cards move. The pack generates nodes from KIE's documentation index at startup and re-checks roughly daily, and Veo identifiers have needed repair before. If a run fails oddly, update the pack and restart once before rebuilding anything.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A dog playing in a park | Text prompt describing the desired video content. Required for all generation modes. - Should be detailed and specific in describing video content - Can include actions, scenes, style and other information - For image-to-video, describe how you want the image to come alive |
| image_urlsopt | IMAGE | — | |
| watermarkopt | STRING | MyBrand | Watermark text. - Optional parameter - If provided, a watermark will be added to the generated video |
| aspect_ratioopt | COMBO | 16:9 | Video aspect ratio. Specifies the dimension ratio of the generated video. Available options: - 16:9: Landscape video format. - 9:16: Portrait video format, suitable for mobile short videos - Auto: In auto mode, the video will be automatically center-cropped based on whether your uploaded image is closer to 16:9 or 9:16. Default value is 16:9. |
| enable_fallbackopt | BOOLEAN | false | Deprecated Enable fallback functionality. When set to true, if the official Veo3.1 video generation service is unavailable or encounters exceptions, the system will automatically switch to a backup model for video generation to ensure task continuity and reliability. Default value is false. - When fallback is enabled, backup model will be used for the following errors: - public error minor upload - Your prompt was flagged by Website as violating content policies - public error prominent people upload - Fallback mode requires 16:9 aspect ratio and uses 1080p resolution by default - **Note**: Videos generated through fallback mode cannot be accessed via the Get 1080P Video endpoint - **Credit Consumption**: Successful fallback has different credit consumption, please see https://kie.ai/pricing for pricing details **Note: This parameter is deprecated. Please remove this parameter from your requests. The system has automatically optimized the content review mechanism without requiring manual fallback configuration.** |
| enable_translationopt | BOOLEAN | true | Enable prompt translation to English. When set to true, the system will automatically translate prompts to English before video generation for better generation results. Default value is true. - true: Enable translation, prompts will be automatically translated to English - false: Disable translation, use original prompts directly for generation |
| generation_typeopt | COMBO | REFERENCE_2_VIDEO | Video generation mode (optional). Specifies different video generation approaches: - **TEXT_2_VIDEO**: Text-to-video - Generate videos using only text prompts - **FIRST_AND_LAST_FRAMES_2_VIDEO**: First and last frames to video - Flexible image-to-video generation mode - 1 image: Generate video based on the provided image - 2 images: First image as first frame, second image as last frame, generating transition video - **REFERENCE_2_VIDEO**: Reference-to-video - Generate videos based on reference images, requires 1-3 images in imageUrls (minimum 1, maximum 3) **Important Notes**: - REFERENCE_2_VIDEO mode currently supports the veo3_fast and veo3_lite models. - If not specified, the system will automatically determine the generation mode based on whether imageUrls are provided |
| resolutionopt | COMBO | 720p | Controls the pixel dimensions of the generated image. Higher resolution results in greater clarity and detail, while lower resolution allows for faster generation. |
| durationopt | COMBO | 8 | The duration of the generated video, in seconds. Optional values are 4, 6, 8. **Important Note**: - The REFERENCE_2_VIDEO mode currently only supports a duration of 8 seconds. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |