Veo 3.1
Veo 3.1 — the frontier video model — from a ComfyUI node
- referenceImages
- frameImages
- video
Veo is the frontier of text-to-video, the model the open-source world spent two years measuring itself against. Veo 3.1 adds synchronized audio and genuinely strong prompt adherence, and this node puts it in ComfyUI via Runware's cloud. You don't need a Google Cloud account, a Vertex AI project, or the nerve to sign a per-second pricing sheet - you get a node, you type a prompt, you get a VIDEO out.
Let's be clear about what this is: a paid, closed frontier model behind a node. It is the exact opposite of the pack's open-model nodes - no weights, no "your machine," no control beyond the widgets. But for the "show me what Sora-class actually looks like" moment, or a client piece where quality matters more than principle, it's the fastest route from ComfyUI to a Google-quality video that exists.
The inputs that matter
positivePrompt(required,STRING, multiline): the scene. Veo rewards concrete language - camera moves, lighting, subject detail. It's the model where prompt effort actually shows.duration:4,6,7, or8seconds. Long clips cost; 4s is the iteration sweet spot.size: up to 4K (16:9 or 9:16), plus 720p/1080p presets and "from input" modes. 4K is where the bill gets real.providerSettings.google.generateAudio(defaulttrue): synchronized audio - ambient sound and music matching the visuals. This is a Veo 3.1 headline feature and it's on by default; flip it off for silent clips and a smaller bill.referenceImagesandframeImages(bothIMAGE): reference frames for look/character consistency, and start frames for image-to-video. Drop the first frame of the shot you want extended.video(optional,STRING): a source clip for extension - Veo continues from where your footage ends.providerSettings.google.resizeMode:croporpadfor fitting input media to the target size.
The seed, numberResults (max 4), safety group (checkContent, mode), ttl, outputFormat (MP4/WEBM/MOV) and outputQuality widgets round out the standard block. Output is a native video (VIDEO).
How it works
Pack-standard: prompt and any frames go up as a REST request, Veo 3.1 renders on Runware's GPUs, and the clip comes back wrapped as a VIDEO for your graph. No local video stack, no VRAM drama - the cost, in money, shows on the title bar after every run.
Install and gotchas
Install the pack once - ComfyUI Manager, search Runware - or git clone https://github.com/Runware/ComfyUI-Runware into custom_nodes + pip install -r requirements.txt, restart, and set a Runware API key (Settings → Runware API key, RUNWARE_API_KEY, or runware auth login).
Three honest notes. It's a frontier model metered per generation - 8s at 4K with audio and four results is a real number, so iterate small. Google's safety moderation applies via the safety group; it's a Veo, not a Wan, so don't test its limits. And while the community keeps hunting for an open Veo rival (Wan was the last serious candidate, and it's API-only too now), nobody's closed the gap yet - which is precisely why this node exists. For frontier video without the enterprise paperwork, this is the node.
Inputs (17)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| frameImagesopt | IMAGE | — | |
| videoopt | STRING | Video input (UUID or URL). Source video for extension. | |
| 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.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 | — |