Nodes/comfyui-byokey/BYOKey MiniMax Text to Video
ComfyUI Node

BYOKey MiniMax Text to Video

Your own key into MiniMax's Hailuo video API, no Comfy credit meter

By MeteorAndy·Created 4 months ago·Updated 3 months ago· 0
BYOKey MiniMax Text to Video
    • video
    api_key
    base_urlhttps://api.minimaxi.chat/v1
    prompt_text
    modelT2V-01
    prompt_optimizertrue
    seed0
    poll_interval10
    max_wait600

    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 a ValueError if empty. Describe motion, camera, and subject explicitly; the model does the rest.
    • model - T2V-01 for the general model, or T2V-01-Director if 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).

    Categoryapi/byokey/video

    Inputs (8)

    NameTypeDefaultDescription
    api_keySTRINGMiniMax API key (Bearer token).
    base_urlSTRINGhttps://api.minimaxi.chat/v1MiniMax API base URL. International default; use https://api.minimax.chat/v1 for the Chinese mirror.
    prompt_textSTRINGText prompt to guide the video generation (max 2000 chars).
    modelCOMBOT2V-01Model to use for video generation.
    prompt_optimizeroptBOOLEANtrueIf true (default), the model optimizes the prompt automatically.
    seedoptINT00–18446744073709550000Random seed; results are non-deterministic regardless of seed.
    poll_intervaloptINT103–60Seconds between status polls.
    max_waitoptINT60060–3600Max seconds to wait for completion.

    Outputs (1)

    NameTypeDescription
    videoVIDEO