MiniMax-H3 多模态视频生成
MiniMax-H3 in ComfyUI is an API call, not a local model — here's how it works
- first_frame
- last_frame
- image1
- image2
- image3
- image4
- image5
- image6
- image7
- image8
- image9
- video1
- video2
- video3
- audio1
- audio2
- audio3
- drive_audio
- api_config
- video
- video_url
- task_id
- response
So you searched MiniMax H3 in ComfyUI and landed here. Fair warning before you get excited: this node does not run H3 on your GPU. MiniMax H3 is the omni model from August 2026 that puts image, video and native audio in one context window - the one that made people talk about "multi-modal" video like it finally means something. But Minimax_H3_V2_Video is a wrapper around the hosted MiniMax-H3, reached through the seedance.nz gateway this pack is built around. You need an API key and every clip is a paid call. Same deal as the Seedance and Hailuo nodes in this pack, and the same reason the r/comfyui crowd tends to grumble about "API nodes" - it's the price you pay for a model you were never allowed to download locally. If you'd rather run H3's open weights yourself, this isn't the node for that, and the H3 Community License excludes a lot of regions anyway. This is the "I just want the clip" route.
What it actually does
It's a text-to-video, image-to-video, and reference-video node all at once, with one genuinely unusual party trick: audio-driven generation. Connect a drive_audio clip and the model can lip-sync and animate characters to it - that's why duration is allowed to stretch to 60 seconds only when drive_audio is connected (otherwise it's capped at 15). Under the hood it speaks MiniMax's V2 protocol directly: it uploads your images, videos and audio to the gateway, POSTs to /v2/video_generation with a content array of typed items (text, image_url, video_url, audio_url with roles like first_frame, reference_image, drive_audio), polls GET /v2/query/video_generation/{task_id} until the job finishes, then downloads and verifies the MP4.
The inputs that actually matter
The node gives you a lot of knobs. A beginner only needs these:
prompt- required, non-empty, up to 10,000 characters. Leave it blank and the node refuses before it spends any money.model- locked toMiniMax-H3, and the casing matters. Don't touch it.ratio- this is where people trip. Pure text-to-video requires a fixed ratio (16:9,9:16, …). Theadaptiveandautooptions are only valid when you've connected afirst_frameorlast_frame; pickapi_defaultto let a reference/keyframe job omit the field.audio_mode-api_default,lock_source,remix_source,reference_only, ornative. Every mode exceptnativeneedsdrive_audioconnected.nativemeans "the model generates its own audio" - no input needed.lock_sourcepins the audio and forcesdenoise_strengthto 0.
Reference material slots: up to 9 images (image1–image9), 3 videos (video1–video3, each with its own videoN_start_seconds offset), and 3 reference audios (audio1–audio3) - all separate from drive_audio, which doesn't count against that quota. first_frame and last_frame are your keyframes for image-to-video. Note the seed widget here is only a ComfyUI cache key (set it fixed to reuse a result); MiniMax-H3 doesn't get sent a seed, so don't expect it to control output.
Outputs
video (a local VIDEO you can wire into SaveVideo or a preview node), video_url (the raw link), task_id, and response (the full JSON). Result links are temporary - save anything you care about promptly.
Install and setup
Install via ComfyUI Manager (search ComfyUI Seedance or seedance), or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ComfyUI
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
Then restart ComfyUI. The dependency list is refreshingly tiny - just requests; PyAV, torchaudio and scipy are used opportunistically when available. But you still need an API key from the api.seedance.nz console (the pack is a reseller storefront, affiliate links and all). Wire it up by dropping in a Seedance API Config node and connecting its api_config output, setting SEEDANCE_API_KEY, or creating config/.env in the plugin folder. All three are documented in the README.
Where people get burned
The node validates hard before submitting, and the error messages are honest: duration above 15 with no drive_audio, adaptive ratio with no keyframe, and reference_only combined with add_drive_as_reference=false all fail fast - good, because a failed job that you'd rather catch before paying. Watch out for multi-asset uploads being slow (per-token rate limiting; it auto-retries), and SSL certificate errors on the bundled Windows Python (update requests/certifi, or set SEEDANCE_SSL_VERIFY=0 only to debug). Test with 4 seconds at 480P before spending on a 768P 15-second job.
Inputs (32)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | MiniMax-H3 | Exact case-sensitive MiniMax V2 model name. | MiniMax V2 模型名区分大小写。 |
| prompt | STRING | Required non-empty text, up to 10000 characters. | 必填非空文本,最多 10000 字符。 | |
| duration | INT | 44–60 | 4-15 seconds normally; 4-60 only with drive_audio. | 普通生成 4 到 15 秒;连接 drive_audio 后可到 60 秒。 |
| resolution | COMBO | 480P | Documented output resolution: 480P or 768P. | 输出分辨率。 |
| ratio | COMBO | 16:9 | Pure text requires a fixed ratio. adaptive/auto require a keyframe; api_default omits the field for reference/keyframe requests. | 纯文本必须固定比例;adaptive/auto 仅用于关键帧;api_default 在参考或关键帧请求中省略比例。 |
| audio_mode | COMBO | api_default | Audio-control mode. Non-native drive modes require drive_audio. | 音频控制模式;非 native 驱动模式必须连接 drive_audio。 |
| denoise_strength | FLOAT | 0.350–1 | Audio denoise strength; lock_source is fixed to 0. | 音频降噪强度;lock_source 固定为 0。 |
| add_drive_as_reference | COMBO | api_default | Whether drive audio also acts as a reference. | 是否同时把驱动音频作为参考音频。 |
| video1_start_seconds | FLOAT | 0.00–3600 | Start offset for video1. | video1 起始秒数。 |
| video2_start_seconds | FLOAT | 0.00–3600 | Start offset for video2. | video2 起始秒数。 |
| video3_start_seconds | FLOAT | 0.00–3600 | Start offset for video3. | video3 起始秒数。 |
| first_frameopt | IMAGE | Optional first keyframe. | 可选首帧关键帧。 | |
| last_frameopt | IMAGE | Optional last keyframe. | 可选尾帧关键帧。 | |
| image1opt | IMAGE | Reference image 1, up to 9. | 参考图片 1,最多 9 张。 | |
| image2opt | IMAGE | Reference image 2, up to 9. | 参考图片 2,最多 9 张。 | |
| image3opt | IMAGE | Reference image 3, up to 9. | 参考图片 3,最多 9 张。 | |
| image4opt | IMAGE | Reference image 4, up to 9. | 参考图片 4,最多 9 张。 | |
| image5opt | IMAGE | Reference image 5, up to 9. | 参考图片 5,最多 9 张。 | |
| image6opt | IMAGE | Reference image 6, up to 9. | 参考图片 6,最多 9 张。 | |
| image7opt | IMAGE | Reference image 7, up to 9. | 参考图片 7,最多 9 张。 | |
| image8opt | IMAGE | Reference image 8, up to 9. | 参考图片 8,最多 9 张。 | |
| image9opt | IMAGE | Reference image 9, up to 9. | 参考图片 9,最多 9 张。 | |
| video1opt | VIDEO | Reference video 1, up to 3. Use the matching start-time control below. | 参考视频 1,最多 3 个;起始秒数使用对应控件。 | |
| video2opt | VIDEO | Reference video 2, up to 3. Use the matching start-time control below. | 参考视频 2,最多 3 个;起始秒数使用对应控件。 | |
| video3opt | VIDEO | Reference video 3, up to 3. Use the matching start-time control below. | 参考视频 3,最多 3 个;起始秒数使用对应控件。 | |
| audio1opt | AUDIO | Reference audio 1, up to 3. | 参考音频 1,最多 3 条。 | |
| audio2opt | AUDIO | Reference audio 2, up to 3. | 参考音频 2,最多 3 条。 | |
| audio3opt | AUDIO | Reference audio 3, up to 3. | 参考音频 3,最多 3 条。 | |
| drive_audioopt | AUDIO | Optional drive audio, separate from the three reference audios. It enables 4-60 second generation. | 可选驱动音频,不占 3 条参考音频名额;连接后可生成 4 到 60 秒。 | |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | On failure return a placeholder error video instead of stopping the workflow. | 失败时输出占位错误视频并继续工作流。 |
| seedopt | INT | 00–18446744073709550000 | ComfyUI 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)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| video_url | STRING | — |
| task_id | STRING | — |
| response | STRING | — |