Nodes/ComfyUI Seedance/Seedance 多模态视频 (Multimodal Video)
ComfyUI Node

Seedance 多模态视频 (Multimodal Video)

The Seedance node with nine image slots, three video slots, and a secret prompt grammar

By T8mars·Created 2 months ago·Updated 3 days ago· 31
Seedance 多模态视频 (Multimodal Video)
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • video1
  • video2
  • video3
  • audio1
  • audio2
  • audio3
  • api_config
  • video
  • video_url
  • task_id
  • response
modelseedance-2.0-standard-multi
prompt
seconds5
resolution720p
ratioadaptive
generate_audiotrue
seed-1
skip_errorfalse

Seedance 多模态视频 (Multimodal Video) is where Seedance 2.0 stops being a text-to-video box and starts acting like a storyboard editor. It accepts up to 9 images, 3 videos, and 3 audio clips as references - and the clever part is how you talk about them. In the prompt you don't say "use the image," you literally type @Image 1, @Video 2, @Audio 1, and the model knows which reference you mean. That single feature turns the node from "I hope the model figures out my intent" into "here is exactly which character, which clip, and which sound goes where."

The material slots are the input list, so here's the short version:

  • image1image9 - reference images, addressed as @Image N.
  • video1video3 - reference MP4s, ≤50 MB each, addressed as @Video N.
  • audio1audio3 - reference audio, ≤50 MB, addressed as @Audio N.

Then the usual generation controls: model (six Seedance 2.0 variants), prompt (up to 20,480 chars - this is where @Image 1 lives), seconds, resolution, ratio, generate_audio, seed, api_config, skip_error. Outputs are the standard video / video_url / task_id / response.

How the numbering works (read this, it's the gotcha)

Reference numbering is by connected slot order, compacted. If you connect image1 and image3 but leave image2 empty, the pack doesn't keep the gap - it renumbers them as @Image 1 and @Image 2 and logs a note. So if your prompt references @Image 3 and you only wired two slots, the model has no idea what you're talking about. Keep your references densely packed and match the numbers to what you connected. The videos and audios follow the same rule for @Video N / @Audio N.

Mechanically nothing is exotic: each connected image/video/audio is uploaded to the api.seedance.nz gateway, folded into the request, and the task runs through the same submit → poll → download pipeline as every other node in this pack, with a progress bar and the client-side retry/download-fallback logic doing its thing. You need at least one reference material - this node's whole identity is "reference stuff."

Installing it

It's the same T8mars/ComfyUI_Seedance pack as everything else: ComfyUI Manager → search ComfyUI Seedance, or:

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

Restart, look under Seedance. The dependency is a single requests line; the heavy lifting happens server-side, so you need an API key (from api.seedance.nz via the Seedance API Config node or SEEDANCE_API_KEY), not a GPU.

Where people get burned

  • Referencing a slot you didn't connect, or connecting slots with gaps - both silently do the wrong thing. Count your slots.
  • Upload bandwidth. Nine images plus video plus audio is a lot of upload before generation even starts, and the gateway throttles per-token upload rates; the client waits and retries, so expect a slow start on big multi-reference jobs. Trim media before you wire it in.
  • Expiring result links. Save the video output, not just the URL.

And the standing fine print: everything you feed this node - including your reference videos and audio - leaves the machine for a third-party reseller endpoint, and per-render cost is real. Multimodal is powerful, but it's the most expensive mode in the pack for a reason.

CategorySeedance

Inputs (24)

NameTypeDefaultDescription
modelCOMBOseedance-2.0-standard-multistandard/fast/mini = quality tiers; 'global-' models run on overseas infrastructure. | standard/fast/mini 为档位,带 global- 的为海外版通道。
promptSTRINGText prompt, up to 20480 chars. In multimodal mode you can reference materials as @Image 1 / @Video 1 / @Audio 1. | 文本提示词,多模态可用 @Image 1、@Video 1 指代第几个素材。
secondsCOMBO5Video duration in seconds; -1 lets the model decide. | 视频时长(秒),-1 表示模型智能选择。
resolutionCOMBO720p1080p/2k/4k are upscaled output tiers; native1080p/native4k are Standard-tier only. | 1080p/2k/4k 为超分输出档,native 档仅 Standard 模型支持。
ratioCOMBOadaptiveAspect ratio; adaptive follows the input material. | 画面比例,adaptive 为自适应。
image1optIMAGEReference image, addressed as @Image 1 in the prompt. | 提示词中用 @Image 1 指代。
image2optIMAGEReference image, addressed as @Image 2 in the prompt. | 提示词中用 @Image 2 指代。
image3optIMAGEReference image, addressed as @Image 3 in the prompt. | 提示词中用 @Image 3 指代。
image4optIMAGEReference image, addressed as @Image 4 in the prompt. | 提示词中用 @Image 4 指代。
image5optIMAGEReference image, addressed as @Image 5 in the prompt. | 提示词中用 @Image 5 指代。
image6optIMAGEReference image, addressed as @Image 6 in the prompt. | 提示词中用 @Image 6 指代。
image7optIMAGEReference image, addressed as @Image 7 in the prompt. | 提示词中用 @Image 7 指代。
image8optIMAGEReference image, addressed as @Image 8 in the prompt. | 提示词中用 @Image 8 指代。
image9optIMAGEReference image, addressed as @Image 9 in the prompt. | 提示词中用 @Image 9 指代。
video1optVIDEOReference video (MP4 <=50MB), addressed as @Video 1. | 参考视频,提示词中用 @Video 1 指代。
video2optVIDEOReference video (MP4 <=50MB), addressed as @Video 2. | 参考视频,提示词中用 @Video 2 指代。
video3optVIDEOReference video (MP4 <=50MB), addressed as @Video 3. | 参考视频,提示词中用 @Video 3 指代。
audio1optAUDIOReference audio (<=50MB), addressed as @Audio 1. | 参考音频,提示词中用 @Audio 1 指代。
audio2optAUDIOReference audio (<=50MB), addressed as @Audio 2. | 参考音频,提示词中用 @Audio 2 指代。
audio3optAUDIOReference audio (<=50MB), addressed as @Audio 3. | 参考音频,提示词中用 @Audio 3 指代。
generate_audiooptBOOLEANtrueGenerate voice-over / sound effects. | 是否生成配音与音效。
seedoptINT-1-1–2147483647-1 = random seed. | -1 表示随机种子。 Fixed reuses the cached result while all inputs stay unchanged; randomize/increment/decrement starts a new execution. | Fixed 在输入不变时复用缓存;随机、递增或递减会触发新任务。
api_configoptSEEDANCE_CONFIGConnect a 'Seedance API Config' node; falls back to SEEDANCE_API_KEY env var.
skip_erroroptBOOLEANfalseOn failure return a placeholder error video instead of stopping the workflow. | 失败时输出占位错误视频而不中断工作流。

Outputs (4)

NameTypeDescription
videoVIDEO
video_urlSTRING
task_idSTRING
responseSTRING