Nodes/ComfyUI Seedance/Vidu Q4 Preview 图生/参考视频(4 合 1)
ComfyUI Node

Vidu Q4 Preview 图生/参考视频(4 合 1)

One node, four models, and audio that comes out with the video

By T8mars·Created 4 months ago·Updated 3 days ago· 43
Vidu Q4 Preview 图生/参考视频(4 合 1)
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • image10
  • image11
  • image12
  • image13
  • image14
  • image15
  • audio1
  • audio2
  • audio3
  • api_config
  • video
  • video_url
  • task_id
  • response
◄modelvidu-q4-preview-i2v►
◄prompt►
◄seconds5►
◄resolution720p►
◄ratio16:9►
◄generate_audiotrue►
◄is_rectrue►
◄watermarkfalse►
◄audio_url1►
◄audio_url2►
◄audio_url3►
◄skip_errorfalse►
◄seed0►

Vidu_Q4_Preview_Video is a four-in-one node for Vidu's Q4 preview models: domestic and overseas routes, each with an image-to-video and a reference-to-video variant. You pick the model with the model dropdown and the node reshapes itself around it - because the four variants do not take the same inputs, and two of them will be very unhappy if you pretend otherwise.

The "Preview" in the name is doing work, too. More on that below.

What you're choosing between

vidu-q4-preview-i2v (the default) and vidu-q4-preview-global-i2v are image-to-video: one image, optional prompt. vidu-q4-preview-r2v and vidu-q4-preview-global-r2v are reference-to-video: one to fifteen images, and a prompt that is required, because reference mode is where you actually tell the model what to do with them. Domestic versus global is routing, not capability - the global variants are aimed at overseas accounts and, per the shop's own framing, looser moderation.

That distinction isn't cosmetic in the node's validation. Switch to an R2V model and the ratio control becomes live and the prompt becomes mandatory. Switch to I2V and ratio is ignored, the prompt goes optional, and the node insists on exactly one image.

The inputs that matter

model - pick the variant first. Everything else you set depends on this.

prompt - multiline, optional for I2V, required for R2V. If you leave it empty on I2V, the model animates what it sees in the image, which works surprisingly often and is worth trying before you write a paragraph.

seconds - a string enum from 3 to 16, default 5. Sixteen possible durations, so you can actually fit a beat rather than padding to the nearest five.

resolution - 540p, 720p (default), 1080p, 2k, 4k. 540p is the cheap draft tier and you should use it while you're still deciding whether the motion is any good.

ratio - 16:9, 9:16, 1:1, 4:3, 3:4, and it says right in the tooltip: R2V only. In I2V the frame comes from your image, so there's nothing to choose.

generate_audio defaults to on, and that's the Q4 headline. The model produces sound with the picture. If you're dropping the result into your own edit, turn it off; if you're posting the clip, leave it on and save yourself a sound-design pass.

is_rec defaults to on, and watermark defaults to off. Those two are worth a glance before you ship anything - the watermark switch does what you'd expect it to, and what you're allowed to do with the output is your problem, not the node's.

audio_url1, audio_url2, audio_url3 take public MP3 links, while audio1, audio2, audio3 take ComfyUI AUDIO from your graph. The node encodes local audio to MP3 and uploads it for you, which is the nice version of a feature most packs make you build yourself. Each audio slot takes either a local input or a URL, not both - it validates that at submit time.

Then image1 through image15, one image per slot - exactly one connected in I2V mode, one to fifteen in R2V. The prompt for reference mode is where you earn your keep: reason about the images by position ("the woman in image 1, wearing the jacket from image 2") rather than vaguely gesturing at them.

Outputs

video is the VIDEO you want - into SaveVideo or downstream. video_url, task_id and response are the usual trio: temporary link, remote id, raw JSON. skip_error gives you a placeholder instead of a hard failure, and the seed field is a ComfyUI cache seed rather than a parameter the video model receives.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ..
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt

ComfyUI Manager: search ComfyUI Seedance, install, restart. requests>=2.28 is the only dependency. Add a Seedance API Config node and wire api_config, or set SEEDANCE_API_KEY, or use config/.env. The pack ships four example workflows for this node specifically - examples/vidu-q4-preview*.json, covering both routes and both modes - and dragging one in beats guessing at the slot order.

The honest part

It says "preview". The pack's own changelog is a monument to what that means: Vidu Q3's reference-to-video and short-play models were shipped and documented as returning upstream 502 invalid_upstream_response at submit time, pending a fix on the provider's side. Preview channels do that. So test with 3 seconds at 540p, confirm the whole path works, and only then push to 4k - a long render that dies at submit time costs you both the wait and, with some providers, the credit.

Also: this is an API node. Your images, your audio and your prompt go to a third-party endpoint, moderation lives upstream and you can't patch it, and every render is billed. That's the right trade for a model you can't run locally - and a bad habit to build around one you can.

CategorySeedance

Inputs (32)

NameTypeDefaultDescription
modelCOMBOvidu-q4-preview-i2v4 options: vidu-q4-preview-i2v, vidu-q4-preview-r2v, vidu-q4-preview-global-i2v, vidu-q4-preview-global-r2v
promptSTRINGRequired for R2V; optional for I2V | 参考生视频必填,图生视频可留空
secondsCOMBO514 options: 3, 4, 5, 6, 7, 8, +8
resolutionCOMBO720p5 options: 540p, 720p, 1080p, 2k, 4k
ratioCOMBO16:9R2V only | 仅参考生视频生效
generate_audioBOOLEANtrue—
is_recBOOLEANtrue—
watermarkBOOLEANfalse—
audio_url1STRINGPublic MP3 URL or connect audio | MP3 直链或连接音频
audio_url2STRINGPublic MP3 URL or connect audio | MP3 直链或连接音频
audio_url3STRINGPublic MP3 URL or connect audio | MP3 直链或连接音频
image1optIMAGEReference 1/15 | 参考图 1/15
image2optIMAGEReference 2/15 | 参考图 2/15
image3optIMAGEReference 3/15 | 参考图 3/15
image4optIMAGEReference 4/15 | 参考图 4/15
image5optIMAGEReference 5/15 | 参考图 5/15
image6optIMAGEReference 6/15 | 参考图 6/15
image7optIMAGEReference 7/15 | 参考图 7/15
image8optIMAGEReference 8/15 | 参考图 8/15
image9optIMAGEReference 9/15 | 参考图 9/15
image10optIMAGEReference 10/15 | 参考图 10/15
image11optIMAGEReference 11/15 | 参考图 11/15
image12optIMAGEReference 12/15 | 参考图 12/15
image13optIMAGEReference 13/15 | 参考图 13/15
image14optIMAGEReference 14/15 | 参考图 14/15
image15optIMAGEReference 15/15 | 参考图 15/15
audio1optAUDIOR2V audio 1/3; encoded as MP3 | 参考音频 1/3,自动转为 MP3
audio2optAUDIOR2V audio 2/3; encoded as MP3 | 参考音频 2/3,自动转为 MP3
audio3optAUDIOR2V audio 3/3; encoded as MP3 | 参考音频 3/3,自动转为 MP3
api_configoptSEEDANCE_CONFIG—
skip_erroroptBOOLEANfalse—
seedoptINT00–18446744073709550000ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。

Outputs (4)

NameTypeDescription
videoVIDEO—
video_urlSTRING—
task_idSTRING—
responseSTRING—