MiniMax H3 · Reference to Video
Nine Images In, One Character Who Actually Stays Put
- reference_image_urls
- video
- task id
Identity drift is the eternal complaint in this hobby - you get one good image of a character, generate a second, and it's their cousin. The usual fixes are training a LoRA or cropping into an edit model. Reference-to-video is the newer, lazier route: hand the model up to nine images of who and what belongs in the shot, describe the shot by number, and let it hold them steady across a single moving take.
What it is
This is the answer to a decade of character-consistency threads, applied to video. MiniMax H3 - the 33B omni-modal model behind MiniMax's Hailuo service, open-weighted in August 2026 - takes a set of numbered reference images and generates one shot from them, keeping a character, wardrobe or location recognisable across 4 to 15 seconds with generated audio. Pricing starts around $0.025 per second, which makes it the cheap H3 reference variant.
And yes, the node is a wrapper: the model runs on SpicyAPI's hardware, not yours. No 30B-plus checkpoint, no VRAM anxiety, and interestingly no licence tangle - the H3 weights' territory carve-out applies to local deployment, not to hosted inference, so this is the licensed path for a lot of people.
How the mechanics work
Inputs are generated from the model's own schema, so the node offers exactly what the API accepts and nothing invented. When you run it, the node uploads whatever you connected (cached per account for 12 hours by content hash, so re-runs with a new prompt don't re-send the same files), quotes the job, creates the task, polls with live progress text, downloads the result and returns a VIDEO.
Inputs and outputs that matter
- reference_image_urls (required, and the reason you're here) - an autogrow socket group. Connect one image and another socket appears; up to nine. The KB's character-consistency research is blunt that more references isn't automatically better in this genre, but H3's whole design is combined reference context, so this is the node for "front of the jacket, back of the jacket, the alley, her face".
- prompt (required) - refer to references by number and describe the shot. "Image 1 turns to camera in the alley from image 3, ambient Audio: distant traffic" is the shape of a working prompt.
- aspect_ratio (default 16:9), resolution (480p, 768p or 2k), duration_seconds (4 to 15, default 5), enable_prompt_expansion (off by default; a flat per-request fee when on).
- No seed and no LoRA input on this variant - if you need either, the LoRA reference variant is the one to use.
Outputs are video - straight into Save Video - and task id, which is what support wants when you report a failure.
Installing it
ComfyUI Manager → search SpicyAPI → install → restart. Or the old-fashioned way:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Then restart ComfyUI, open Settings > SpicyAPI and paste a key from spicyapi.ai/console/keys. One restart after that so the node list is rebuilt from your account - the menu is generated at startup, so a model you saw on the website last week may not exist on your canvas until you bounce the server. Headless machine? Put it in SPICY_API_KEY. There's nothing else to install; the pack ships zero dependencies.
Where it bites
Money first: video models are where a session gets expensive, and nine references plus 2k output plus a 15-second clip is the top of the range. Set Max cost per run in Settings > SpicyAPI - the node checks the quote against it and aborts before anything is charged. Second, cancelling in ComfyUI only stops your wait; the task finishes server-side, bills if it succeeds, and stays retrievable in your console for up to 14 days. Third, the obvious one: your references and prompt leave your machine on every call, and if the model declines a request nothing on the node side changes its mind. Failed runs are not charged unless that model's page says otherwise.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Refer to the references by number and describe the shot they should produce. | |
| reference_image_urls | COMFY_AUTOGROW_V3 | Authorised image references, up to nine. | |
| aspect_ratio | COMBO | 16:9 | Output aspect ratio. |
| resolution | COMBO | 768p | Output resolution. |
| duration_seconds | INT | 54–15 | Requested output length in seconds. |
| enable_prompt_expansion | BOOLEAN | false | Expand the prompt into a fuller description before generating. Requests with it on add a flat per-request prompt-expansion fee. |
| seed | INT | 00–2147483647 | This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |