ComfyUI Node

Vidu 2.0

The pragmatic text-to-video pick on Runware

By Runware·Created 2 years ago·Updated about a month ago· 140
Vidu 2.0
  • referenceImages
  • frameImages
  • video
positivePrompt
size360p (1:1)
seed0
duration4
numberResults1
providerSettings.vidu.bgmfalse
providerSettings.vidu.movementAmplitudeauto
safetyfalse
safety.checkContentfalse
safety.modefast
ttlfalse
ttl_value60
outputFormatMP4
outputQuality95

Vidu is Shengshu AI's video model line, and 2.0 is the version you reach for when you want a generalist text-to-video that isn't trying to be the fastest thing alive or the fanciest. This node is the whole model in one box: type a prompt, optionally give it a reference image or a starting frame, pick how long the clip runs, and a finished VIDEO comes back. No weights, no VAE, no ComfyUI video-node stack to assemble. If you've been staring at the local video ecosystem - all those model loaders, samplers, and frame-count math - and just want a clip generated, this is the shortcut.

What makes Vidu 2.0 a good first video node is that almost everything is optional. The node has no required inputs at all. An empty run isn't useful, obviously, but the design tells you what the model cares about: drop in a prompt, or don't - Vidu 2.0 happily does image-to-video with a reference image and no text at all. That flexibility is the whole character of the model, and the node faithfully exposes it.

How it works

Standard pack plumbing: the node (vidu:2@0, videoInference) builds a request, ships it over REST via the runware-sdk, and downloads the result into a native VIDEO output. Images you wire in get uploaded by the SDK automatically - referenceImages for look-and-feel consistency across a subject, frameImages for actual starting frames the motion builds from. A key difference from local video nodes: duration is the only time control. There's no fps or frame-count slider; the docs are explicit that total frames = duration × the model's frame rate. Set duration (default 4 seconds, from a preset list) and the model handles the rest.

The inputs that matter

  • positivePrompt - optional, but describe motion, subject, and camera if you use it.
  • referenceImages / frameImages - IMAGE sockets. Reference images steer subject identity; frame images are concrete starting points.
  • duration - clip length in seconds (default 4).
  • providerSettings.vidu.bgm - toggle to add background music. Nice for social clips, and it's one checkbox.
  • providerSettings.vidu.movementAmplitude - auto by default; if you want visibly more or less motion than the prompt suggests, this is the dial.
  • seed - set for reproducibility; each numberResults variation gets its own seed.

Everything else - width/height, outputFormat (MP4 default), outputQuality, safety toggles, ttl for URL-based outputs - is the pack's standard tail you can mostly ignore.

Install and API key

Install is shared across the whole pack:

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

Restart ComfyUI, or install Runware from ComfyUI Manager. You'll need an API key from runware.ai/api-keys, set in ComfyUI Settings → Runware API key, exported as RUNWARE_API_KEY, or stored via runware auth login.

Gotchas

Video generation is where cloud costs stop being pennies - every clip is the most expensive thing on this page, so treat numberResults and re-queues with respect. If your prompt-created video comes out stiff, nudge movementAmplitude up instead of re-rolling the whole seed. And the one genuine trap: frameImages expects actual frames, not a batch of unrelated stills - the model builds motion from those frames, so give it a coherent starting point. If you're coming from a purely local ComfyUI setup, remember this node bypasses the whole sampler graph - there's no KSampler to tune, which is the point, but it also means no fine-grained denoise control. That's the trade you're buying.

CategoryRunware/Video/vidu

Inputs (16)

NameTypeDefaultDescription
referenceImagesoptIMAGE
frameImagesoptIMAGE
positivePromptoptSTRINGText prompt describing elements to include in the generated output.
sizeoptCOMBO360p (1:1)Output size. Only one of resolution or dimensions is sent.
seedoptINT00–2147483647Random 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.vidu.bgmoptBOOLEANfalseEnable background music generation.
providerSettings.vidu.movementAmplitudeoptCOMBOautoMovement intensity in the generated video.
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