Generate Veo3.1 Video · Veo 3 lite
Eight cheap seconds to test whether the shot works
- image_urls
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
There's a specific moment in every video workflow where you need to know "does this shot read at all" - does the character turn at the right time, does the camera move feel right, is the audio cue landing. That's a question a cheap render answers just as well as an expensive one. Veo 3 lite is the node for that moment: the cheapest of the three Generate Veo3.1 tiers, and the one I'd leave in the graph as your default until a shot has earned a quality-tier render.
Lite also keeps the thing people come to Veo for - native audio, generated in the same pass as the picture. The tradeoff is fidelity, not capability.
How it works
Same shape as its two siblings, one word different under the hood: the node submits a Veo3.1 generation request with model: "veo3_lite", polls the KIE task until it succeeds, downloads the file and returns a ComfyUI VIDEO. Connect images and they're uploaded to KIE before the request goes out. The task_id output is the handle the Extend Veo3.1 nodes need if you want to continue the clip.
Lite (like fast) supports REFERENCE_2_VIDEO, so you can hand it one to three reference images and have the model treat them as subject references rather than literal frames. That's the mode the quality tier doesn't offer, which makes lite a genuinely useful test bed for character-led shots even if the final render happens elsewhere.
Inputs
- prompt - required, and the only one you must fill. Detailed beats short: action, camera, light, and for dialogue shots, who speaks.
- image_urls - optional
IMAGEsocket. One image to start from (first-frame mode), two for a transition, or one to three as references in reference mode. - generation_type -
REFERENCE_2_VIDEO(default, supported here),TEXT_2_VIDEO, orFIRST_AND_LAST_FRAMES_2_VIDEO. Left unset, the provider infers the mode from whether images exist - pick explicitly and you'll stop being surprised. - resolution -
720pdefault, plus1080pand4k. On lite, going above 720p mostly defeats the purpose of using lite. - duration -
4,6,8. Reference mode only allows 8 seconds, so a 4-second reference-mode request gets rejected rather than clipped. - aspect_ratio -
16:9,9:16, orAuto(which centre-crops your input image toward the closer of the two). - watermark - defaults to
MyBrand. Empty the field. This is the most common embarrassing output from any of these Veo nodes. - enable_translation - on by default; translates the prompt to English before generation.
- enable_fallback - deprecated; docs say remove it.
- timeout_seconds, callback_url - 1200s and empty.
Outputs: video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left.
Installing
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
cd ComfyUI-KIE-Nodes-Next && pip install -r requirements.txt
# restart ComfyUI
Manager users: search "KIE.ai Nodes Next". The pack installs requests, Pillow, numpy, PyYAML and nothing else - no video model, no CUDA, no VRAM. Key setup is a single paste at Settings → KIE.ai Nodes Next → Connection; it's validated against KIE before it replaces anything, and environment variables are intentionally unsupported, so skip the .env route.
Two things that will waste your time
First, the node is not an output node. If its video output isn't wired into something downstream - KIE • Preview Video, KIE • Save Video, any video consumer - it won't execute at all. That's not a bug, and it also means a dangling node in your graph costs nothing.
Second, on older ComfyUI builds you'll get an explicit "your ComfyUI build does not expose … VideoFromFile, update ComfyUI" error instead of a video. That's the pack asking for ComfyUI's newer video interface, and updating ComfyUI is the fix.
The rest is economics. Lite is cheap, not free, and each take is a billed submission. If you're testing ten prompts, test them at 720p and four seconds as text-to-video, then move the winner up to fast - or quality - once you know the shot works. Chain task_id into an Extend node only after you've decided the clip is worth extending; extensions are separate paid jobs.
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_translationopt | BOOLEAN | true | Optional. When true, the prompt is translated to English before 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 |
| enable_fallbackopt | BOOLEAN | false | Deprecated. Remove it from requests. |
| resolutionopt | COMBO | 720p | Output resolution: 720p (default), 1080p or 4k. For 1080p and 4k, the video URL is in resultJson.data.result_urls (the 720p version is in data.origin_urls). Controls the pixel dimensions of the generated video. 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 | — |