ComfyUI Node

Veo 3.1 Fast

Veo 3.1 Fast drops Google's best video into a ComfyUI node — audio included

By Runware·Created 2 years ago·Updated about a month ago· 140
Veo 3.1 Fast
  • 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

If you've ever watched a Wan or LTX clip and thought "great, now where's the sound," this is the node that answers it. Veo 3.1 is Google's video model - the "Fast" cut being the quicker, cheaper variant - and the thing that still separates it from open-source video is native audio: it generates synchronized sound effects, ambient noise, and even dialogue matched to the visuals. The KB's closed-source essay calls this "a genuine capability gap," and it's the reason people keep paying API money for video when Wan runs free on their own GPUs.

The node itself is a thin wrapper: the Runware/ComfyUI-Runware pack turns the whole Runware catalog into nodes, and Veo 3.1 Fast is one of them. No local VRAM, no model download, no ffmpeg pipeline to babysit. You prompt, you queue, and a native VIDEO output comes back.

How it works

The node builds a video-generation request and ships it to Runware's cloud via the Python SDK over REST. Output comes back as ComfyUI's VIDEO type when the runtime supports it, or degrades to a saved file path otherwise - the source code probes for comfy_api's VideoFromFile at import and silently falls back. Either way, wire the output into a video preview or save node. Cost per clip shows on the node title bar, which matters here: video is where API pricing actually bites.

Inputs that matter

  • positivePrompt - required. Natural-language scene description, the way you'd brief a director.
  • video (string UUID/URL) - the extension input. Give it a source clip and Veo extends it, which is one of the model's best tricks and something local video models are still catching up on.
  • frameImages / referenceImages (IMAGE) - image-to-video and character/style reference. This is how you get consistent subjects.
  • duration - 4, 6, 7, or 8 seconds. Frames are duration × the model's fps, so don't expect to finesse it finer than these choices.
  • size - 720p up to 4K, portrait or landscape. 4K is where the bill grows.
  • providerSettings.google.generateAudio - on by default. This is the killer feature, but flip it off when you're only doing plate shots and want the bill down.
  • seed, numberResults (max 4), outputFormat (MP4/WEBM/MOV), and the usual output quality.

Installing

Same as every node in this pack - install it once, get them all:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Restart ComfyUI. Or use ComfyUI Manager and search Runware. You need a Runware API key (Settings panel, RUNWARE_API_KEY, or runware auth login), and the dashboard's $20 minimum top-up is the main friction point.

Common issues

Realistic expectations first: the open-source-vs-Veo gap in the KB's domain overview notes the community measures it every generation, and Wan is closing in - but nobody open has the native audio. Don't set safety.mode expecting it to relax anything; the mode switch is about check speed, and Google's content pipeline is its own thing. And when a clip "comes back as a path," you didn't break anything - that's the graceful degradation when ComfyUI lacks the native VIDEO type. Check your ComfyUI version, not 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