Vidu Q2 Pro
The generation-two Vidu that finally lets you dial in fractional seconds
- referenceImages
- frameImages
- video
Vidu Q2 is Shengshu's second-generation video line, and Q2 Pro is the full-quality member of it. Where the Q1 nodes hand you a style dropdown and hope, Q2 Pro is the workhorse: text-to-video and image-to-video in one node, references and starting frames both supported, and - the small detail that makes it feel modern - a duration control that takes fractional seconds instead of a fixed preset list. That one widget tells you a lot about what generation two improved: finer control over timing, because the model can actually deliver it.
If you're choosing between the Vidu nodes on Runware, the practical rule is: Q1 for stylized looks, Q2 for control, Pro for quality, Turbo for speed. Q2 Pro is the one you reach for when the clip matters and you're willing to spend a little more compute to get it right. It also plays nicely with reference-driven character work - referenceImages and frameImages are both available, so you can anchor identity and provide a concrete starting frame in the same run.
How it works
Identical pack plumbing to every other video node here: the node (vidu:3@1, videoInference) builds a request, uploads any wired images through the SDK, sends it over REST, and downloads the result into a native VIDEO output. There are no required inputs - you steer with a combination of positivePrompt, referenceImages, and frameImages, and total frames still works out to duration × the model's fps. The difference from Q1 is in the controls you get, not the architecture.
The inputs that matter
- positivePrompt - optional, but this is a prompt-friendly model; describe subject, motion, and camera.
- referenceImages - for subject/identity consistency.
- frameImages - concrete starting frames for image-to-video.
- duration - a FLOAT, default 5 seconds. This is Q2's signature upgrade: you can ask for something like 4.5 seconds instead of being stuck with a preset.
- providerSettings.vidu.bgm - background music, one checkbox.
- providerSettings.vidu.movementAmplitude -
autodefault; override for deliberate motion control. - seed / numberResults - reproducibility and variations.
Standard pack tail after that: width/height, outputFormat (MP4), outputQuality, safety toggles, ttl. Output is one video socket.
Install and API key
Same install as the rest of the 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). API key from runware.ai/api-keys, set via ComfyUI Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
The Q2-generation models are the ones people actually use in the wild - Vidu Q2 shows up in third-party cloud ComfyUI workflows as a real option, not a curiosity - which means the community has already learned its lessons: expect the "Pro" tier to cost more per second than the Turbo tier, and expect quality gains mostly in motion coherence and prompt adherence, not magic. If results are fine but slow, that's what the Turbo sibling is for. One trap that catches people: fractional durations are a real thing, but a fraction that doesn't land on a frame boundary gets rounded by the model, so don't obsess over 4.37s - round to a reasonable value. And as always on this pack, each run is a metered cloud call; video is the priciest thing here.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| referenceImagesopt | IMAGE | — | |
| frameImagesopt | IMAGE | — | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| sizeopt | COMBO | 360p (1:1) | Output size. Only one of resolution or dimensions is sent. |
| seedopt | INT | 00–2147483647 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| durationopt | FLOAT | 5.001–8 | 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.vidu.bgmopt | BOOLEAN | false | Enable background music generation. |
| providerSettings.vidu.movementAmplitudeopt | COMBO | auto | Movement intensity in the generated video. |
| 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 | — |