ComfyUI Node

Veo 3.1

Veo 3.1 — the frontier video model — from a ComfyUI node

By Runware·Created 2 years ago·Updated about a month ago· 140
Veo 3.1
  • referenceImages
  • frameImages
  • video
positivePrompt
video
size720p (16:9)
seed0
duration4
numberResults1
providerSettings.google.generateAudiotrue
providerSettings.google.resizeMode(default)
safetyfalse
safety.checkContentfalse
safety.modefast
ttlfalse
ttl_value60
outputFormatMP4
outputQuality95

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, or 8 seconds. 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 (default true): 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.
  • referenceImages and frameImages (both IMAGE): 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: crop or pad for 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.

CategoryRunware/Video/google

Inputs (17)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
referenceImagesoptIMAGE
frameImagesoptIMAGE
videooptSTRINGVideo input (UUID or URL). Source video for extension.
sizeoptCOMBO720p (16:9)Output size. Only one of resolution or dimensions is sent.
seedoptINT00–4294967295Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
durationoptCOMBO4Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
providerSettings.google.generateAudiooptBOOLEANtrueGenerate video with synchronized audio including ambient sounds and music.
providerSettings.google.resizeModeoptCOMBO(default)Resize mode for the input media.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
safety.modeoptCOMBOfastSafety checking mode for video generation.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOMP4File format for the generated video.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
videoVIDEO