MiniMax H3 Spicy · Image to Video
An Unfiltered H3 Build for the Frames Others Refuse
- image_url
- last_image_url
- video
- task id
The "Spicy" name is this pack's marker for the looser build. Here it's an uncensored LoRA stack applied to MiniMax H3: you give it an opening frame, optionally a closing one, and prompt the motion - 3 to 15 seconds at up to 1080p, from $0.038 per second, which is among the cheaper H3 variants.
Why this one exists
Most of the discussion about API nodes in this ecosystem ends up on the same axis: the model's filter is not something a node can argue with. Closed weights, no abliteration, no local patch, and if the provider refuses, that's the end of it. The one place that pressure has an outlet is when somebody takes an open-weights base - H3 landed as open weights in August 2026, MiniMax's first generation release under a community licence - and fine-tunes away the safety behaviour. That's what this build is. It's still a hosted call, and SpicyAPI's own terms still apply, but the model-side refusals that make the vanilla nodes frustrating on some subjects are the thing this variant was built to remove.
If you're here for the mechanism rather than the politics: same H3 base, different weights. The clip keeps the frame you feed it, and you get 480p, 540p, 768p or 1080p at 3 to 15 seconds, with audio generated alongside the picture.
The inputs you'll actually touch
Required:
- image_url - the opening frame. The clip starts here; the model keeps your subject and composition and animates from it.
- prompt - what happens after the frame. Action, camera, mood. Keep it about motion: the picture is already decided.
- duration_seconds - 3 to 15, default 5.
- resolution - default 480p, with 540p, 768p and 1080p as the ladder above it.
- seed - same seed and settings, same result.
Optional: last_image_url, a closing frame the clip should land on. It goes with an opening frame, not instead of one.
Outputs are video - wire it to Save Video - and task id, the string that identifies the request for support.
No LoRA input and no aspect-ratio widget on this variant: framing comes from the image you feed in, so pick a still at the ratio you want.
Installing it
ComfyUI Manager → search SpicyAPI → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Then restart ComfyUI, open Settings > SpicyAPI, paste a key from spicyapi.ai/console/keys, and restart once more so the node menu is built from your account's catalogue. On a remote machine use SPICY_API_KEY in the environment. The pack declares no dependencies and nothing downloads - your machine just needs to reach api.spicyapi.ai.
Practical notes
Two API behaviours that look like bugs and aren't. 40004 means "no deployment serves this combination" - one of your options, named in the message, isn't available for that model, so change that option rather than re-running and hoping. And a task that ends content_rejected means the model declined the request; nothing was charged unless the model's page says refusals are billed.
Cost discipline is the other half. Every run is metered, so set Max cost per run in Settings > SpicyAPI - the node quotes first and refuses anything above your ceiling before a task exists. Seeds start on fixed so re-queueing the same graph doesn't bill you twice for the same result; use control after generate → randomize for a fresh take. Cancelling stops your wait, not the job: it keeps generating, is charged if it succeeds, and stays in your console for up to 14 days. Your key never rides along in workflows or saved image metadata - it lives in your ComfyUI user folder - but your prompts and frames do leave the machine. That's the trade this whole category runs on.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| image_url | IMAGE | Opening frame. The clip starts from this image. | |
| prompt | STRING | Describe what happens after the opening frame: the action, the camera, and the mood. | |
| duration_seconds | INT | 53–15 | Requested output length in seconds, from 3 to 15. |
| resolution | COMBO | 480p | Output resolution. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| last_image_urlopt | IMAGE | Closing frame. It may only be sent together with an opening frame. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |