Zhenzhen_vidu_ref2video
Characters that hold still, and voices that don't
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- video
- video_url
- task_id
- response
Vidu's reference-to-video mode is the one where you hand it a character still and it keeps that character consistent while the scene moves - no ControlNet, no IPAdapter, no local weights at all, because Comfly_vidu_ref2video is a paid API client for the Vidu relay. That's the whole appeal: character consistency without fighting a local identity stack. You feed up to seven reference images, optionally tell it which subject each image belongs to, and even assign the subject a voice so the generated character can talk. This is about as close to "generate a scene with my OC" as a ComfyUI node gets without local training.
Inputs that matter
- prompt - the scene description. Required.
- model -
viduq2(default),viduq1,vidu2.0, orvidu1.5. Newer isn't always better for your exact job; q2 is the current default for a reason. - image1…image7 - your reference stills. Fewer is fine; the subject consistency comes from Vidu, not from quantity.
- audio - toggles whether the output gets a generated voice track.
- subject1_id … subject3_id - map each reference image to a subject slot (defaults "1", "2", "3").
- subjectN_voice_id - the kicker: hundreds of voices, from
female-shaonvto themale-qn-*premium set. Assign one per subject and your character talks. - duration - 1–10 seconds.
- aspect_ratio / resolution - 16:9/9:16/4:3/3:4/1:1 and 540p/720p/1080p.
- movement_amplitude - auto/small/medium/large; large is where the shot gets lively.
- bgm - background music track on/off.
- off_peak - run during off-peak hours for a cheaper rate (Vidu's discount window).
- watermark / wm_position - if you don't want Vidu's watermark baked in, keep it off.
Outputs: video (into ComfyUI's native Save Video), plus video_url, task_id, response.
Install
Standard Comfly:
cd ComfyUI/custom_nodes
git clone https://github.com/ainewsto/Comfyui_Comfly
Or ComfyUI Manager → "Comfyui_Comfly" → restart. Nothing runs locally; you need credits at https://ai.comfly.chat and the key in Comflyapi.json (or the node's api_key override).
Gotchas
Voice assignment is the fiddly part - the subject ids are strings ("1", "2", "3") and if your images aren't clearly separable subjects, the voice lands on the wrong one and you've paid for a weird result. And remember the relay is a third-party service: a render that fails still cost you a slot, so keep off_peak in mind for batch work and use the task_id/response outputs to check what actually happened before re-queuing. The watermark toggle defaults off, which is nice - just don't assume it stays off if you load an example workflow someone else saved.
Inputs (27)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | — | |
| model | COMBO | viduq2 | 4 options: viduq2, viduq1, vidu2.0, vidu1.5 |
| api_keyopt | STRING | — | |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — | |
| image3opt | IMAGE | — | |
| image4opt | IMAGE | — | |
| image5opt | IMAGE | — | |
| image6opt | IMAGE | — | |
| image7opt | IMAGE | — | |
| audioopt | BOOLEAN | false | — |
| subject1_idopt | STRING | 1 | — |
| subject1_voice_idopt | COMBO | 304 options: , male-qn-qingse, male-qn-jingying, male-qn-badao, male-qn-daxuesheng, female-shaonv, +298 | |
| subject2_idopt | STRING | 2 | — |
| subject2_voice_idopt | COMBO | 304 options: , male-qn-qingse, male-qn-jingying, male-qn-badao, male-qn-daxuesheng, female-shaonv, +298 | |
| subject3_idopt | STRING | 3 | — |
| subject3_voice_idopt | COMBO | 304 options: , male-qn-qingse, male-qn-jingying, male-qn-badao, male-qn-daxuesheng, female-shaonv, +298 | |
| durationopt | INT | 51–10 | — |
| seedopt | INT | 00–2147483647 | — |
| aspect_ratioopt | COMBO | 16:9 | 5 options: 16:9, 9:16, 4:3, 3:4, 1:1 |
| resolutionopt | COMBO | 720p | 3 options: 540p, 720p, 1080p |
| movement_amplitudeopt | COMBO | auto | 4 options: auto, small, medium, large |
| bgmopt | BOOLEAN | false | — |
| off_peakopt | BOOLEAN | false | — |
| watermarkopt | BOOLEAN | false | — |
| wm_positionopt | COMBO | 3 | 4 options: 1, 2, 3, 4 |
| skip_erroropt | BOOLEAN | false | 开启后,节点失败时不报错、按旧行为返回默认空结果;关闭时(默认)失败直接抛出错误。 |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| task_id | STRING | — |
| response | STRING | — |