Nodes/SpicyAPI/MiniMax H3 · Text to Video
ComfyUI Node

MiniMax H3 · Text to Video

2K Clips With Real Sound, From About 2.5 Cents a Second

By spicyapi-ai·Created 21 days ago·Updated 2 days ago· 2
MiniMax H3 · Text to Video
    • video
    • task id
    ◄prompt►
    ◄aspect_ratio16:9►
    ◄resolution768p►
    ◄duration_seconds5►
    ◄enable_prompt_expansionfalse►
    ◄seed0►

    Here's the thing that made H3 interesting when it landed: it generates the soundtrack in the same pass as the picture. Not a separate audio model bolted on afterwards - dialogue, foley and room tone in one shot, up to 2K, 5 to 15 seconds, from roughly $0.025 per second. And this node runs it for you, so none of the weight-size questions apply.

    Why people care about H3 specifically

    MiniMax is the Shanghai lab behind the closed Hailuo video service, and H3 is the model it opened in August 2026 - a 33B omni-modal design that treats text, image, video and audio as one context. Before that, native synced audio was the capability closed models held over everything open, and Veo was the example everyone cited. H3 was the first credible open-weight answer, and it took a top slot in the video-editing-with-audio arena in its launch window. The community's day-one reaction was loud and positive; treat that as a first impression, not a verdict, and use this node to test it against your own prompts.

    The caveats worth knowing: the open weights geofence out the US, EU, UK and Korea, and no verified consumer-VRAM floor exists - the full checkpoint is on the order of 40GB. This node sidesteps both by calling the hosted model. You need an internet connection and a balance, not a graphics card.

    Inputs, and the two that decide your result

    • prompt (required) - describe the picture, the action, the camera, the sound, and the shot's boundaries. The "sound" half is not decoration here; the audio is generated from what you write, so a prompt with no audio clause gets whatever the model assumes.
    • aspect_ratio - six options: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9. Defaults to 16:9, which is a sensible landing.
    • resolution - 480p, 768p (default) or 2k.
    • duration_seconds - 5 to 15, default 5.
    • enable_prompt_expansion - off by default. On, it adds a flat per-request fee and rewrites your brief into something fuller before generating. Good for a one-line idea; unnecessary when your prompt is already tight.

    Outputs are video and task id. The video is a normal ComfyUI VIDEO, so a Save Video node finishes the job; the task id is what support asks for by name if a run fails.

    How it works under the hood

    The node is generated at startup from the model's published JSON schema, which is why every widget matches what the API accepts. Press Run and the pack: uploads any media you connected, requests a price quote, checks it against your per-run ceiling, creates the task with an idempotency key, polls with progress text drawn onto the node, then downloads the result and converts it into ComfyUI types. No model weights, no Python packages - the pack declares zero dependencies and uses ComfyUI's built-in aiohttp, torch and PyAV.

    Installing it

    ComfyUI Manager → search SpicyAPI → install → restart. Manual equivalent:

    cd ComfyUI/custom_nodes
    git clone https://github.com/spicyapi-ai/comfyui-spicyapi
    

    Restart ComfyUI, then Settings > SpicyAPI and paste a key from spicyapi.ai/console/keys. Restart once more so the node list comes from your account rather than the bundled snapshot. On a server, SPICY_API_KEY in the environment does the same thing and keeps the key out of any browser session.

    The honest cost conversation

    At $0.025/s a five-second clip is cheap enough to explore with; a fifteen-second 2k take is not, and prompt expansion adds a flat fee on top. Set Max cost per run in Settings > SpicyAPI and the node refuses any quote above it before creating a task - that check happens before anything is charged. Note that the price badge on the node is a rate, not a total: the node can't know your final bill before it runs, so the pack deliberately shows "$0.025/second" rather than inventing an estimate. The final charge is printed on the node when the run finishes.

    Two behaviours surprise people. Seeds ship set to fixed, so queueing the same workflow twice reuses the first result instead of billing a second one - move control after generate to randomize for variety. And cancelling a run only ends your wait: the job continues on SpicyAPI, is charged if it succeeds, and its result stays in your console for up to 14 days. Failed runs aren't charged unless that model's page says otherwise.

    CategorySpicyAPI/Video/MiniMax

    Inputs (6)

    NameTypeDefaultDescription
    promptSTRINGDescribe the picture, the action, the camera, the sound, and the boundaries for the shot.
    aspect_ratioCOMBO16:9Output aspect ratio.
    resolutionCOMBO768pOutput resolution.
    duration_secondsINT55–15Requested output length in seconds.
    enable_prompt_expansionBOOLEANfalseExpand the prompt into a fuller description before generating. Requests with it on add a flat per-request prompt-expansion fee.
    seedINT00–2147483647This model takes no seed, so the number is never sent. Changing it makes ComfyUI run the node again: set 'control after generate' to randomize for a new result on every run; every run is billed.

    Outputs (2)

    NameTypeDescription
    videoVIDEO—
    task idSTRINGThe SpicyAPI task id, for the console logs or support.