BYOKey MiniMax Text to Video
Your own key into MiniMax's Hailuo video API, no Comfy credit meter
- video
MiniMax's Hailuo service is one of the strongest text-to-video APIs around, and this node is the "bring your own key" door into it. ComfyUI has an official MiniMax API node, but like every official API node it routes your request through Comfy's own proxy (api.comfy.org) on prepaid credits. BYOKey_MiniMax_Text2Video is a drop-in replacement that calls MiniMax directly with your API key - same inputs, same VIDEO output, no credit meter in between.
Don't get confused by the MiniMax H3 open-weights release. That's the model you can run locally (if you're licensed to - it's geofenced out of the US/EU/UK/Korea). This node is the other door: the hosted Hailuo API, which stays globally available and is what most people are actually after when they say "MiniMax video."
How it works. You drop in your key, write a prompt, and the node POSTs a generation job to api.minimaxi.chat/v1 (the international default - flip base_url to https://api.minimax.chat/v1 if you're in mainland China and want the mirror). It then polls every poll_interval seconds until the video is ready, downloads the mp4, and wraps it in ComfyUI's native VIDEO type via comfy_api.latest.InputImpl.VideoFromFile - exactly what the official node produces. So it plugs into the same video preview/save nodes you already use.
The inputs that matter:
prompt_text- the whole game. Capped at 2000 characters and it will throw aValueErrorif empty. Describe motion, camera, and subject explicitly; the model does the rest.model-T2V-01for the general model, orT2V-01-Directorif you want MiniMax's "director mode" framing for more cinematic output.prompt_optimizer- on by default, meaning MiniMax rewrites/optimizes your prompt before generating. If you've carefully engineered your wording and want it sent verbatim, turn this off.seed- here's the honest bit: per the tooltip, results are non-deterministic regardless of seed. So it only controls re-runs of the node, not reproducibility. Set to 0 and let it roll.
Leave poll_interval and max_wait alone unless your jobs are timing out - bump max_wait up (600s default) if you're generating something long.
Output: one video (VIDEO) socket. Wire it to a video preview or save node and you're done.
Install. It's a shared pack with a plain clone-and-restart. ComfyUI Manager works too - search "comfyui-byokey".
cd ComfyUI/custom_nodes
git clone https://github.com/MeteorAndy/comfyui-byokey.git
# restart ComfyUI; nodes appear under api/byokey/...
No model downloads, no extra Python deps - it leans on torch, aiohttp, PIL, numpy and av that ComfyUI already bundles.
The gotchas. Empty prompt = hard error, so check the field before queueing. Jobs take a minute or two - this isn't a local sampler, budget the wait. And the pack is new with no community track record yet, so skim the source before pasting a real key into it (I did; it's clean and readable, but that's the standard hygiene for any node that holds a credential and phones home by design).
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| api_key | STRING | MiniMax API key (Bearer token). | |
| base_url | STRING | https://api.minimaxi.chat/v1 | MiniMax API base URL. International default; use https://api.minimax.chat/v1 for the Chinese mirror. |
| prompt_text | STRING | Text prompt to guide the video generation (max 2000 chars). | |
| model | COMBO | T2V-01 | Model to use for video generation. |
| prompt_optimizeropt | BOOLEAN | true | If true (default), the model optimizes the prompt automatically. |
| seedopt | INT | 00–18446744073709550000 | Random seed; results are non-deterministic regardless of seed. |
| poll_intervalopt | INT | 103–60 | Seconds between status polls. |
| max_waitopt | INT | 60060–3600 | Max seconds to wait for completion. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |