MiniMax H3 Reference-to-Video
Three clips, three audio tracks, one prompt
- reference_image_urls
- reference_video_1
- reference_video_2
- reference_video_3
- reference_audio_1
- reference_audio_2
- reference_audio_3
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it is
The multimodal mode of MiniMax's H3: instead of describing a scene from nothing, you hand it material - reference images, up to three reference videos, up to three audio clips - and a prompt, and it generates a clip that continues or reworks what you gave it. H3 itself is a 33B omni-modal model that treats text, image, video and audio as one context, 4–15 seconds at up to 2K with native stereo audio.
Two reasons to call it instead of running it. One, the open H3 weights are under a community licence that excludes the US, EU, UK and South Korea, so for a lot of readers local isn't permitted at all (kg/entities/minimax-h3.json). Two, it's a 33B video model - even where it's allowed, it's not a casual local run.
Where this node actually shines in a real workflow: it's the piece that turns local work into a continuation. You render something on your own GPU, load it with KIE • Persistent Load Video, wire it into reference_video_1, and H3 extends or re-stages it with audio in one pass.
How it works
The node is generated from KIE's request schema for the H3 reference-to-video endpoint. Every media socket is native: an IMAGE batch for reference_image_urls, and numbered reference_video_1–3 and reference_audio_1–3 sockets, because ComfyUI has no universal batch type for video or audio. Connect something and the pack uploads the file to KIE's storage for you and sends the URL - that's the plumbing the pack exists to hide.
The job goes out as a task, the node polls it up to timeout_seconds (1200 by default), then the finished clip comes back as a ComfyUI VIDEO.
Inputs and outputs
Required:
- prompt (STRING, 1–7000 characters) - how to use the material. The default ("generate a continuous cinematic video referencing the characters, actions, and scenes in the input material") is the honest description of the mode; make it specific about what should happen.
- duration - 4 to 15 seconds, enum, default
6.
Optional, and this is where the node is unusual:
- reference_image_urls (IMAGE) - reference stills, batch accepted.
- reference_video_1, reference_video_2, reference_video_3 (VIDEO) - up to three driving clips.
- reference_audio_1, reference_audio_2, reference_audio_3 (AUDIO) - up to three audio references, which is how you steer voice or music character.
- aspect_ratio -
adaptiveby default (take the ratio from the material), or pin it:21:9,16:9,4:3,1:1,3:4,9:16. - resolution -
2K(default) or768P. - timeout_seconds, callback_url.
Outputs: video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left.
Install
Manager: search KIE-Nodes-Next by felipederosilva and install, then restart ComfyUI. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
Set your key once: Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The pack validates it before saving and shows a masked fingerprint, ✅ CONNECTED, and the current credit balance. Environment variable KIE_API_KEY works too and takes priority - that's the headless/server route. requirements.txt is only requests, Pillow, numpy and PyYAML, and the Windows .vbs installer in dist/ handles Desktop and Portable installs without a terminal.
Where people get burned
Every reference costs. Uploads are cheap; generation isn't, and the more material you throw in, the longer the job runs at 2K. Start with one image and one prompt, confirm the mode does what you expect, then add the video and audio references.
Multiple references can fight each other. Three videos of three different subjects is not three times the control - it's a model trying to honour conflicting signals. Use the numbered sockets for variations on one idea, not a collage.
A 20-minute default timeout. Long, reference-heavy 2K jobs are exactly the workload that can exceed it. Raise timeout_seconds.
adaptive will surprise you. It takes the ratio from your material, which is usually right and occasionally gives you a portrait frame from a landscape reference. Pin it when composition matters.
The task_id is the thread you pull. Keep task_id from every run; it's what extension-style endpoints on this market accept as input when you want a continuation rather than a fresh generation.
Licence, again. If you're in an excluded territory, this is the compliant path to H3 - not a bridge to the local weights.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Generate a continuous cinematic video referencing the characters, actions, and scenes in the input material | Video generation prompt, length is between 1 and 7000 characters. |
| duration | COMBO | 6 | The duration of the generated video, supporting integer values from 4 to 15 seconds. |
| reference_image_urlsopt | IMAGE | — | |
| reference_video_1opt | VIDEO | — | |
| reference_video_2opt | VIDEO | — | |
| reference_video_3opt | VIDEO | — | |
| reference_audio_1opt | AUDIO | — | |
| reference_audio_2opt | AUDIO | — | |
| reference_audio_3opt | AUDIO | — | |
| aspect_ratioopt | COMBO | adaptive | Video aspect ratio. The default is adaptive, or a specific ratio can be specified. |
| resolutionopt | COMBO | 2K | Video resolution. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |