Nodes/muapi-comfyui/🎬 MuAPI Text-to-Video
ComfyUI Node

🎬 MuAPI Text-to-Video

73 Video Models Behind One Prompt Box

By SamurAIGPTΒ·Created about a year agoΒ·Updated a day agoΒ· 72
🎬 MuAPI Text-to-Video
    • video_url
    • first_frame
    • request_id
    β—„modelseedance-v2.0-t2vβ–Ί
    β—„promptA cinematic aerial shot of a futuristic city at duskβ–Ί
    β—„aspect_ratio16:9β–Ί
    β—„qualitybasicβ–Ί
    β—„duration5β–Ί
    β—„api_keyβ–Ί
    β—„custom_endpointβ–Ί
    β—„extra_params_json{}β–Ί

    Every model in this node's dropdown has one thing in common: you are never going to run it at home. Veo, Sora, Kling, Seedance, Runway, Pixverse, Hailuo - closed weights, no download, no local path at any VRAM. So the question isn't "should I use an API for this," it's "which API," and this node's answer is: all of them, one dropdown, one key.

    That last part is the real pitch. The official ComfyUI API nodes cover roughly the same closed frontier on prepaid credits. This pack is a third-party client for an aggregator called MuAPI, which resells 600+ endpoints from one balance. One key, 73 text-to-video models, and no per-vendor billing setup.

    How it works

    It's not a sampler. The node POSTs a JSON body to https://api.muapi.ai/api/v1/<endpoint> with your key in an x-api-key header, then polls predictions/<request_id>/result every 10 seconds until the job reports completed. Video jobs are slow, so the poll loop waits up to 900 seconds - 15 minutes - before giving up with a timeout error. The render happens on their GPUs; the node's only local work is downloading a frame back.

    The inputs you'll actually touch

    Required: model, prompt, aspect_ratio (16:9, 9:16, 1:1, 4:3, 3:4, 21:9), quality (basic or high), and duration - an INT from 4 to 30 seconds in steps of 1, which is a wider range than the image-to-video node offers. Twenty seconds of 1080p is where a session starts costing real money, so keep draft runs at 5.

    The model list is worth a slow read. The default is seedance-v2.0-t2v, and the pack's own promoted workflows lean hard on Seedance 2.0 - the one the author posted that actually landed was a Seedance time-freeze effect workflow at 165 upvotes, so it's the endpoint with the most public mileage behind it. Around it: veo3.1-text-to-video and veo3.1-fast-text-to-video (native audio, still the capability nothing open-weight matches cleanly), openai-sora-2-* including a storyboard variant, kling-v3.0-pro-text-to-video, the Wan 2.5/2.6 line, hunyuan-text-to-video, minimax-hailuo-*, pixverse-v5.5-t2v, ltx-2.3-text-to-video. There's a custom option for anything newer.

    Optional: api_key, custom_endpoint, extra_params_json - raw JSON merged into the request, which is how you reach anything the widgets don't expose.

    Outputs, and why request_id matters

    video_url is a STRING pointing at the CDN - not a video in ComfyUI's sense. Send it to 🎬 MuAPI Save Video to get an mp4 on disk plus IMAGE frames, or to 🎬 MuAPI Video Edit for a second pass. first_frame is an IMAGE grabbed from the result, which is a handy free still and also a silent-failure trap: frame extraction uses OpenCV, and if it can't read the file you get a black 64Γ—64 tensor while the console explains what happened. request_id is the continuation handle - that's the input 🎬 MuAPI Extend Video wants when you need more than 30 seconds.

    Notice what's not here: no seed, no LoRA, no ControlNet socket. Conditioning is prompt plus, on the other nodes, reference images. The user who asked on r/comfyui how to use LoRAs and OpenPose with these nodes was asking for something the architecture can't give you - the answer is to do the controlled generation locally and hand the result in as a reference image, or use one of the API's own "lora" endpoints through extra_params_json.

    Install

    Manager β†’ Install via Git URL β†’ https://github.com/SamurAIGPT/muapi-comfyui β†’ restart. Manual:

    cd ComfyUI/custom_nodes
    git clone https://github.com/SamurAIGPT/muapi-comfyui
    pip install -r muapi-comfyui/requirements.txt
    

    No weights to download - requirements.txt is requests, Pillow, numpy, torch, opencv-python. Then get a key at muapi.ai and wire πŸ”‘ MuAPI API Key into api_key.

    Where it goes wrong

    Three failures cover most of it. Timeout after 15 minutes doesn't mean the render died - long or high quality jobs can outrun the poll window, so check your MuAPI dashboard before burning credits on a retry. Insufficient credits (HTTP 402) is the balance, not the node. Auth failed (401) means the key, usually because a directly-typed field is shadowing the hub node. And if you're extending: request_id from a different MuAPI account is useless, because that id only exists on the server that created it.

    Category🎬 MuAPI

    Inputs (8)

    NameTypeDefaultDescription
    modelCOMBOseedance-v2.0-t2v73 options: seedance-v2.0-t2v, seedance-pro-t2v, seedance-pro-t2v-fast, seedance-lite-t2v, seedance-v1.5-pro-t2v, seedance-v1.5-pro-t2v-fast, +67
    promptSTRINGA cinematic aerial shot of a futuristic city at duskβ€”
    aspect_ratioCOMBO16:96 options: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9
    qualityCOMBObasic2 options: basic, high
    durationINT54–30β€”
    api_keyoptSTRINGβ€”
    custom_endpointoptSTRINGβ€”
    extra_params_jsonoptSTRING{}β€”

    Outputs (3)

    NameTypeDescription
    video_urlSTRINGβ€”
    first_frameIMAGEβ€”
    request_idSTRINGβ€”