MiniMax H3 Text-to-Video
MiniMax H3 text-to-video, without the licence that geofences you out
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it is
H3 is MiniMax's 33B omni-modal video model - text, image, video and audio treated as one input context, 4–15 second clips up to 2K at 24fps, with native stereo audio rather than a bolted-on sound pass. It went open-weights in August 2026 and immediately landed near the top of the video-editing arena.
Now the asterisk. The MiniMax H3 Community License excludes the EU, UK, Republic of Korea and the United States from its Applicable Territory, which means a lot of people reading this are not licensed to run those weights locally at all (kg/entities/minimax-h3.json has the details, including the revenue cap on commercial use). The hosted API is globally available. So for a US or EU user, this node isn't a convenience argument - it's the only argument. Even if you're in a permitted territory, 33B plus native audio isn't a casual local run.
This is the text-to-video variant: prompt in, clip out. If you're feeding it reference images, video or audio, the Reference-to-Video node in the same folder is the one you want.
How it works
The node is generated from KIE's request schema for the H3 text-to-video endpoint. Your prompt and settings are submitted as a video task, the node polls until the task completes or timeout_seconds (1200 seconds by default) expires, then it downloads the finished clip and hands it back as a native ComfyUI VIDEO object. That's the whole loop - the pack hides the task/submit/poll plumbing and gives you sockets.
Inputs and outputs
Required, and both of them actually matter:
- prompt (STRING, 1–7000 characters) - describe the shot. H3 rewards specifics: subject, action, camera, lighting, mood. The default is a cat on a beach at sunset, which is fine as a smoke test and worth replacing immediately.
- aspect_ratio - six options,
21:9shipped as the default. Note the tooltip: for text-to-video this is required andadaptiveis not supported (unlike the reference-to-video node, whereadaptiveis the default). - duration - an enum of integer seconds from 4 to 15, default
6.
Optional:
- resolution -
2K(default) or768P. Duration × resolution is your cost curve, and video is where hosted generation gets expensive fast. - timeout_seconds - raise it if you're running 15-second 2K jobs on a busy queue.
- callback_url - leave empty for normal ComfyUI use.
Outputs: video (wire it to a save/preview node, or into another KIE node that takes a video reference), url, all_urls_json, task_id, raw_json, credits_consumed, credits_left. Keep the task_id - it's what extension-style endpoints want as input.
Install
Manager: search KIE-Nodes-Next (author felipederosilva - there are other KIE packs with similar names) and install, then restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
Then open Settings → KIE.ai Nodes Next → Connection and paste your KIE.ai key once. It's validated before it replaces a saved key, and you get a masked fingerprint plus your credit balance. Headless installs can set KIE_API_KEY instead - it takes priority. Dependencies are requests, Pillow, numpy, PyYAML; nothing heavy.
Two install-time notes worth knowing. First, on first launch the pack indexes KIE's model documentation and builds a node per callable endpoint, then reloads the frontend once - if H3 nodes seem missing right after install, that sync is still running. Second, if you use the Windows installer, take a v0.3.1+ build; the original could leave backup folders inside custom_nodes that ComfyUI would then try to import.
Where people get burned
Video is where the bill lands. Image calls are small change; 15 seconds at 2K is not. Watch credits_consumed on the node and credits_left, and if KIE's balance service is down you'll still get your clip - the node reports the balance as unavailable rather than failing the run.
The 21:9 default is just a default. It's an unusual frame for anything but cinematic work; pick 16:9 or 9:16 deliberately.
Twenty minutes isn't always enough. timeout_seconds defaults to 1200. Long, high-resolution jobs in a busy queue can bump that ceiling - raise it rather than assuming the model failed.
Licence vs API is the actual decision here. If you're in a prohibited territory, running H3 locally isn't a grey area you can hand-wave; the API route is the clean one. That's not a technical footnote, it's the reason this node exists in your graph rather than a stack of safetensors.
Native audio expectations. H3 generates audio alongside video, but don't expect a directed soundtrack from a text prompt - treat it as scene-appropriate sound, not score.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A cat walking slowly on the beach at sunset, cinematic shot, waves gently lapping the shore | Video generation prompt, length is between 1 and 7000 characters. |
| aspect_ratio | COMBO | 21:9 | Video aspect ratio. Required for text-to-video, adaptive is not supported. |
| duration | COMBO | 6 | Generated video duration, supports integer values from 4 to 15 seconds. |
| 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 | — |