Nodes/ComfyUI-Happyhorse-Wrapper/ComfyUI-Happyhorse-Wrapper Text To Video
ComfyUI Node

ComfyUI-Happyhorse-Wrapper Text To Video

HappyHorse text-to-video straight from ComfyUI

By magicwang1111·Created 4 months ago·Updated 4 months ago· 2
ComfyUI-Happyhorse-Wrapper Text To Video
    • video_url
    • task_id
    prompt
    resolution1080P
    ratio16:9
    duration5
    watermarktrue
    seed-1

    You type a sentence, it mails that sentence to Alibaba's cloud, and thirty seconds later a video URL comes back. That's this node, in one line. HappyHorse 1.0 is a closed video model - Alibaba's Wan team ships the open weights you can run locally, but HappyHorse comes from a different team and lives behind an API, alongside Wan 2.7, Veo 3.1, and Seedance 2.0 in the paid tier. The wrapper just makes that API look like a normal ComfyUI node. No checkpoints, no models/diffusion_models folder, no VRAM budget. Just a key and an internet connection.

    If you're on a laptop or a mid-range card that chokes on Wan 2.2, that trade is the whole point. Your GPU does nothing. The node creates an async generation task, polls DashScope every 15 seconds until it's done, and hands you the finished clip.

    The inputs that matter

    Most of them you've seen a hundred times:

    • prompt - multiline text box. HappyHorse is dialogue-strong, so it's one of the few cloud models where describing speech ("a woman narrating to camera") actually lands.
    • resolution - 720P or 1080P.
    • ratio - 16:9, 9:16, 1:1, 4:3, 3:4.
    • duration - 3 to 15 seconds, default 5.
    • watermark - defaults to on. If the watermark bugs you, flip it off; if you're using this for anything commercial, read your DashScope terms before you do.
    • seed - -1 means random, or pin a number between 0 and 2147483647 to reproduce a shot. It's the cheapest knob in the box, so set it and keep it.

    The two outputs are video_url and task_id. The URL is temporary - DashScope expires it, usually within a day - so run it into the pack's Preview Video node to save the MP4 to your output folder before it evaporates. The task_id is for digging a specific job out of the DashScope console.

    Installing it

    Same story as every pack in this one. Easiest path: ComfyUI Manager → Install Custom Nodes → search "ComfyUI-Happyhorse-Wrapper" → Install → Restart.

    Manual, if you prefer:

    cd ComfyUI/custom_nodes
    git clone https://github.com/magicwang1111/ComfyUI-Happyhorse-Wrapper
    cd ComfyUI-Happyhorse-Wrapper
    python -m pip install -r requirements.txt   # in the Python env ComfyUI uses
    

    Then create config.local.json in the pack folder:

    {
      "api_key": "sk-...",
      "endpoint": "https://dashscope.aliyuncs.com"
    }
    

    No model files download - nothing to fetch, that's the point. The pack reads DASHSCOPE_API_KEY (or AIHUBMIX_API_KEY if you route through an OpenAI-compatible endpoint like AiHubMix) from the environment as a fallback, and uses https://dashscope-intl.aliyuncs.com if your key is Singapore-region. Without an api_key the node refuses to run, which is the most common "it's broken" report and it's just config.

    The catch

    One, it costs money - the API bills per second of generated video. Two, the community took a while to trust the whole HappyHorse thing because there was a wave of fake "open source HappyHorse" repos on Hugging Face that were scams. This wrapper is legit, but it is not open weights; if a search result promises you a .safetensors, that's a trap. This node is the honest version: pay-per-clip, runs in the cloud, and it's the one you reach for when your GPU can't.

    Troubleshooting

    • api_key is required - you haven't created config.local.json or set the env var.
    • Task fails with a code/request_id - that's the model service rejecting the payload (banned prompt, bad ratio, whatever). The wrapper surfaces the API's own message, so read it.
    • Video never arrives - check you're polling; the wrapper prints task {id}: {status} to the console, so you can watch it grind.
    • Slow jobs - poll_interval in config is 15s by default; the API itself is the bottleneck, not your machine.
    CategoryComfyUI-Happyhorse-Wrapper

    Inputs (6)

    NameTypeDefaultDescription
    promptSTRING
    resolutionCOMBO1080P2 options: 720P, 1080P
    ratioCOMBO16:95 options: 16:9, 9:16, 1:1, 4:3, 3:4
    durationCOMBO513 options: 3, 4, 5, 6, 7, 8, +7
    watermarkBOOLEANtrue
    seedINT-1-1–2147483647

    Outputs (2)

    NameTypeDescription
    video_urlSTRING
    task_idSTRING