MiniMax H3 Max Generate Video
Pricier, Pickier, Better
- content
- video_url
- task_id
- status
- task_json
- request_json
MiniMax H3 Max Generate Video is the second model in the pack, not a bigger setting on the first one. It sends MiniMax-H3-Max rather than MiniMax-H3, and that swaps the tradeoffs: you give up the 2K output tier, gain up to twelve reference media items, and pay per input video second on top of the output. If you want to feed it three clips of a character and ask for a new shot of that character, this is the node. The plain Generate Video node can't do it.
What changes versus plain H3
Resolution options are now 480P or 768P - no 2K, and no 2K regeneration path either. Duration starts at 5 rather than 4, so 5–15 seconds. Two optional inputs appear: prompt_expansion_mode (disabled, balanced, quality, default balanced) and seed.
The seed is worth a sentence, because its tooltip is unusually honest: 0 omits the field entirely and lets MiniMax randomise server-side; 1–4294967295 sends a fixed seed. Note that control_after_generate is switched off for it, so it won't quietly roll a new number after every run the way a KSampler seed does. That's a small mercy - you won't lose a good seed to the widget's habit of firing after generation.
prompt_expansion_mode is the model's own server-side prompt rewrite; disabled sends your text as written. Context IR - the pack's separate prompt-enhancement node - is explicitly not used by Max, so don't try to chain them.
The content rules Max enforces
Max is the strict one, and it validates before it spends your money. Your content must contain exactly one non-empty text item, and every media item must carry a role the pack recognises: first_frame, last_frame, reference_image, reference_video or reference_audio. Anything else is rejected with "use Content Builder".
Then the limits: at most 9 reference images, 3 reference videos, 3 reference audios, and 12 reference items in total. A last frame without a first frame is an error. Frames and references can't be mixed in one request. And reference audio can't be sent alone - it needs at least one reference image or video to sit against.
Outputs
Same five as the base node: video_url, task_id, status, task_json and request_json. Wire video_url into Preview Video to get a file on disk. request_json isn't useful here - 2K regeneration is a plain-H3-only path.
The bill
Max pricing is ¥0.33/second at 480P and ¥0.50/second at 768P, plus ¥0.37 per input video second at 480P output or ¥0.97 at 768P, plus ¥0.50 per reference image beyond the first two. When base_url is the overseas endpoint the node switches to MiniMax's USD rates (0.05 / 0.08 output, 0.0553 / 0.143 video, 0.074 per extra image). Reference audio and prompt expansion are free of separate charge.
The example in the pack's README is a good gut check: 5 seconds of 768P output with 10 seconds of input video and 3 images comes to ¥12.70 - over four times the price of a plain 5-second 768P clip. Input video seconds are the sting, not the output.
One honest engineering note: Max cost can't be derived from total_seconds alone, so when the API's usage payload is incomplete the node prints that it can't estimate rather than guessing low. Don't read a missing estimate as a free run.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/magicwang1111/ComfyUI-MiniMax-H3-API
Restart, then cp local.example.json local.json inside the pack and add your key, matching the region: https://api.minimax.cn for a China key, https://api.minimax.io for an overseas one. Only requests and Pillow get installed; there are no weights. Or find ComfyUI-MiniMax-H3-API in ComfyUI Manager.
Traps
Reaching for Max for reference audio alone fails - the pack calls that invalid, and so does the API. And if you want references of any kind, don't retarget the workflow at Max Turbo later; that model rejects reference media outright and tells you to come back to Max.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| content | MINIMAX_H3_CONTENT | — | |
| resolution | COMBO | 768P | 2 options: 480P, 768P |
| duration | COMBO | 5 | 11 options: 5, 6, 7, 8, 9, 10, +5 |
| ratio | COMBO | 16:9 | 7 options: adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, +1 |
| prompt_expansion_modeopt | COMBO | balanced | 3 options: disabled, balanced, quality |
| seedopt | INT | 00–4294967295 | 0 omits seed (server random); 1–4294967295 sends a fixed seed. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video_url | STRING | — |
| task_id | STRING | — |
| status | STRING | — |
| task_json | STRING | — |
| request_json | STRING | — |