Veo 3.1 Lite
Google's Best Video Model, on a Budget
- frameImages
- video
Google's Veo has been the "how is this even a video model" benchmark since Veo 2, and the Lite tier is the smart-people's pick: it's the same family with the cost and latency trimmed, which is exactly what you want when you're iterating on a shot. The Veo 3.1 Lite node puts that model in your ComfyUI graph as a cloud call - no 24GB card, no weights, just a prompt (and optionally a starting image) and a VIDEO comes back.
What makes Veo 3.1 genuinely different from the open local video models is the polish. Physics that don't collapse into goo, camera moves that read like they were planned, and - the party trick - synchronized audio. The providerSettings.google.generateAudio toggle defaults to on, so your clip comes back with ambient sound and music synced to the motion. That's something your local Wan stack cannot do at all.
The inputs that matter
Required: positivePrompt. Then:
- frameImages - first-frame anchoring. Feed it a still and Veo animates from that exact image instead of inventing one. This is the single most useful input for controlling output: if you want a specific subject or composition, generate a still first, then animate it.
- size - a preset dropdown (720p/1080p in 16:9 or 9:16, plus "from input"). No raw width/height here; pick your bucket.
- duration - 4, 6, or 8 seconds as a dropdown (not a toggle like some siblings - it's a plain enum here).
- seed - reproducibility.
- providerSettings.google.personGeneration -
dont_allow/allow_adult/allow_all. The moderation dial for people appearing in output. If your shot keeps getting rejected for people, check this. - providerSettings.google.resizeMode -
crop/padfor how input media is fitted to the output size.
Output is a single video. Wire it into a Video Preview or Save Video node.
How to get the best out of it
The "Lite" in the name is doing real work - it's the fast, cheap tier, so treat it as your iteration loop. First-frame it with a strong still, generate a 4-second pass to check the motion and composition, then scale up to 8 seconds and 1080p once the shot is right. Iterating on the cheap tier beats paying full price for a dud, and the model quality gap between Lite and full in 3.1 is small enough that most people land on Lite for anything that isn't a hero shot.
Install and gotchas
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart (or install "Runware" from ComfyUI Manager) and set your API key - Settings → Runware API key, or RUNWARE_API_KEY. No model files download.
The gotchas are the shared pack ones: every run bills the account (watch the cost on the title bar), and remember that generateAudio defaults to on - if you only want the visual track, that toggle is where to flip it, and if a generation feels slow, it's often the audio pass adding time. Video is the priciest modality in the pack, so numberResults of 4 means four cloud video renders in one queue.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| frameImagesopt | IMAGE | — | |
| sizeopt | COMBO | 720p (16:9) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 00–4294967295 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| durationopt | COMBO | 4 | Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps). |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| providerSettings.google.generateAudioopt | BOOLEAN | true | Generate video with synchronized audio including ambient sounds and music. |
| providerSettings.google.personGenerationopt | COMBO | allow_all | Controls whether people can appear in the generated video. |
| providerSettings.google.resizeModeopt | COMBO | (default) | Resize mode for the input media. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |