Nodes/ComfyUI Seedance/并发提交|MiniMax-H3 多模态视频生成
ComfyUI Node

并发提交|MiniMax-H3 多模态视频生成

Run 10 MiniMax-H3 jobs at once — the concurrent submit twin, explained

By T8mars·Created 2 months ago·Updated 3 days ago· 31
并发提交|MiniMax-H3 多模态视频生成
  • first_frame
  • last_frame
  • image1
  • image2
  • image3
  • image4
  • image5
  • image6
  • image7
  • image8
  • image9
  • video1
  • video2
  • video3
  • audio1
  • audio2
  • audio3
  • drive_audio
  • api_config
  • future
modelMiniMax-H3
prompt
duration4
resolution480P
ratio16:9
audio_modeapi_default
denoise_strength0.35
add_drive_as_referenceapi_default
video1_start_seconds0.0
video2_start_seconds0.0
video3_start_seconds0.0
skip_errorfalse
seed0

This node looks like a duplicate of the pack's Minimax_H3_V2_Video node - same controls, same model, same everything - except for one detail that changes what it's for: instead of outputting a finished video, it returns a future (a SEEDANCE_VIDEO_FUTURE handle) and runs the underlying generation asynchronously. The name says it: SeedanceConcurrent_..._Submit. It exists so you can fire off several MiniMax-H3 jobs in parallel and collect them together, rather than running the single node ten times and watching each one grind through upload, poll and download while you sit there.

The pack draws a clean line between "submit" and "receive" nodes. This is the submit half; the other half is the pack's 并发接收视频(10 路) (10-way video receiver). You wire this node's future output into one of the receiver's future_1 through future_10 slots, and the receiver waits on all of them and hands you video_1video_10 plus a status_json summary.

How it works

Under the hood each submit node just queues the original Minimax_H3_V2_Video node onto a bounded thread pool - 10 workers by default, tunable with the SEEDANCE_VIDEO_CONCURRENCY environment variable from 1 to 10. Every job still does the full real work: upload your reference media, POST to MiniMax's /v2/video_generation, poll the task, download and verify the MP4. What changes is when it does that work. Your inputs are validated synchronously before anything touches the pool, so a bad prompt (or a missing one - MiniMax-H3 requires it) fails at the node instead of poisoning a whole batch.

The receiver is generic, not model-specific, and that's a feature: you can mix submit nodes in the same 10 slots - some MiniMax-H3 jobs alongside Hailuo or Seedance futures - and they'll all be collected by the same receiver.

What it's good for

Batch prompt exploration is the canonical use. Lock one reference image in image1, copy the submit node nine times with different prompt text, connect all ten future outputs to the receiver, and you get ten clips back in roughly the wall-clock time of one. Two honest caveats. First, it saves time, not money - ten clips cost ten clips, and the README's own warning about per-token upload rate limiting applies harder when you're pushing a lot of reference media at once. Second, don't reach for it for a single shot; the plain node is simpler and prints one clean result.

Failure handling is where this earns its keep

Each submit node keeps the skip_error toggle. Turn it on and a failing job returns a placeholder instead of blowing up, so the rest of your batch keeps running. The receiver then has its own failure_mode: raise stops and tells you which slot died; placeholder keeps the healthy slots and gives you a redacted status_json instead of killing the whole workflow. For a 10-video batch you probably want skip_error on the submit side and placeholder on the receive side - one dead slot shouldn't trash nine paid results.

Install and gotchas

Same pack, same install as the base node: ComfyUI Manager (search ComfyUI Seedance), or clone into custom_nodes and install the requests-only requirements. You still need the Seedance API Config node (or SEEDANCE_API_KEY) with a key from api.seedance.nz, and every submitted job is a metered call - keep it cheap until you trust the setup. The seed widget is only a ComfyUI cache key here, as in the base node, so don't expect it to vary the results. And if a batch "hangs," check the receiver first: a future with no receiver is work nobody collects, and it's the most common way people trip on this pattern.

CategorySeedance/并发提交

Inputs (32)

NameTypeDefaultDescription
modelCOMBOMiniMax-H3Exact case-sensitive MiniMax V2 model name. | MiniMax V2 模型名区分大小写。
promptSTRINGRequired non-empty text, up to 10000 characters. | 必填非空文本,最多 10000 字符。
durationINT44–604-15 seconds normally; 4-60 only with drive_audio. | 普通生成 4 到 15 秒;连接 drive_audio 后可到 60 秒。
resolutionCOMBO480PDocumented output resolution: 480P or 768P. | 输出分辨率。
ratioCOMBO16:9Pure text requires a fixed ratio. adaptive/auto require a keyframe; api_default omits the field for reference/keyframe requests. | 纯文本必须固定比例;adaptive/auto 仅用于关键帧;api_default 在参考或关键帧请求中省略比例。
audio_modeCOMBOapi_defaultAudio-control mode. Non-native drive modes require drive_audio. | 音频控制模式;非 native 驱动模式必须连接 drive_audio。
denoise_strengthFLOAT0.350–1Audio denoise strength; lock_source is fixed to 0. | 音频降噪强度;lock_source 固定为 0。
add_drive_as_referenceCOMBOapi_defaultWhether drive audio also acts as a reference. | 是否同时把驱动音频作为参考音频。
video1_start_secondsFLOAT0.00–3600Start offset for video1. | video1 起始秒数。
video2_start_secondsFLOAT0.00–3600Start offset for video2. | video2 起始秒数。
video3_start_secondsFLOAT0.00–3600Start offset for video3. | video3 起始秒数。
first_frameoptIMAGEOptional first keyframe. | 可选首帧关键帧。
last_frameoptIMAGEOptional last keyframe. | 可选尾帧关键帧。
image1optIMAGEReference image 1, up to 9. | 参考图片 1,最多 9 张。
image2optIMAGEReference image 2, up to 9. | 参考图片 2,最多 9 张。
image3optIMAGEReference image 3, up to 9. | 参考图片 3,最多 9 张。
image4optIMAGEReference image 4, up to 9. | 参考图片 4,最多 9 张。
image5optIMAGEReference image 5, up to 9. | 参考图片 5,最多 9 张。
image6optIMAGEReference image 6, up to 9. | 参考图片 6,最多 9 张。
image7optIMAGEReference image 7, up to 9. | 参考图片 7,最多 9 张。
image8optIMAGEReference image 8, up to 9. | 参考图片 8,最多 9 张。
image9optIMAGEReference image 9, up to 9. | 参考图片 9,最多 9 张。
video1optVIDEOReference video 1, up to 3. Use the matching start-time control below. | 参考视频 1,最多 3 个;起始秒数使用对应控件。
video2optVIDEOReference video 2, up to 3. Use the matching start-time control below. | 参考视频 2,最多 3 个;起始秒数使用对应控件。
video3optVIDEOReference video 3, up to 3. Use the matching start-time control below. | 参考视频 3,最多 3 个;起始秒数使用对应控件。
audio1optAUDIOReference audio 1, up to 3. | 参考音频 1,最多 3 条。
audio2optAUDIOReference audio 2, up to 3. | 参考音频 2,最多 3 条。
audio3optAUDIOReference audio 3, up to 3. | 参考音频 3,最多 3 条。
drive_audiooptAUDIOOptional drive audio, separate from the three reference audios. It enables 4-60 second generation. | 可选驱动音频,不占 3 条参考音频名额;连接后可生成 4 到 60 秒。
api_configoptSEEDANCE_CONFIGConnect Seedance API Config; otherwise SEEDANCE_API_KEY is used.
skip_erroroptBOOLEANfalseOn failure return a placeholder error video instead of stopping the workflow. | 失败时输出占位错误视频并继续工作流。
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 (1)

NameTypeDescription
futureSEEDANCE_VIDEO_FUTURE