Nodes/KIE.ai Nodes Next/happyhorse-text-to-video
ComfyUI Node

happyhorse-text-to-video

Seed, aspect ratio, duration — pick your roll

By felipederosilva·Created about a month ago·Updated a day ago· 3
happyhorse-text-to-video
    • video
    • url
    • all_urls_json
    • task_id
    • raw_json
    • credits_consumed
    • credits_left
    ◄promptA miniature city built from cardboard and bottle caps comes to life at night. A cardboard train slowly passes through, with small lights dotting the scene and illuminating the way ahead.►
    ◄resolution1080p►
    ◄aspect_ratio16:9►
    ◄duration5►
    ◄seed1622429582►
    ◄timeout_seconds1200►
    ◄callback_url►

    There are two HappyHorse text-to-video nodes in this pack. This one (happyhorse-text-to-video) has a seed. The 1.1 one doesn't. If reproducibility matters to you at all, that's the whole decision - this is the earlier, seed-bearing generation of a model that became famous for holding a character across cuts and for having absolutely no downloadable weights.

    For those who missed the story: HappyHorse appeared in video-arena rankings under what looked like a codename, prompted a burst of "is it open source?" threads, and then a wave of fake HuggingFace repos that the subreddit spent a day flagging as malware bait. It never opened. So yes, this is an API node, and yes, that means paid per render.

    Inputs

    prompt (required) is a description of the video in any language, up to 5000 non-Chinese characters or 2500 Chinese. Extra content is truncated, not rejected - which is the annoying failure mode, because you only find out when the clip comes back missing something you wrote.

    resolution is 1080p (default) or 720p. aspect_ratio gives you five options - 16:9, 9:16, 1:1, 4:3, 3:4 - a narrower set than the 1.1 node's nine, so if you need 21:9 or 9:21, that sibling is the one to use.

    duration is an integer from 3 to 15 seconds, default 5. This is the main cost dial: a 15-second render is a much bigger bill than a 5-second one, so don't leave it long while you're iterating on a prompt.

    seed (0–2147483647, default 1622429582) is the reproducibility knob. Hosted providers always hedge with "if supported," but it's a real input on the request, and it's the only way to try to get the same clip twice.

    timeout_seconds defaults to 1200 - 20 minutes of polling, adjustable from 30 to 7200 in 30-second steps. callback_url exists for webhook setups; leave it empty here.

    Outputs

    video is the native ComfyUI result, ready for a save or combine node (or for the pack's video-edit and upscale nodes, which take VIDEO). url is the primary result link, all_urls_json collects all of them, task_id is the KIE job id, raw_json is the raw provider response, and credits_consumed and credits_left are floats so a batch run can report its own cost. The node also shows a "Credits spent • Credits left" receipt on the canvas. Renders are archived under ComfyUI/output/KIE-Results/videos/.

    Install

    cd ComfyUI/custom_nodes
    git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
    cd ComfyUI-KIE-Nodes-Next
    pip install -r requirements.txt
    

    Restart ComfyUI. Dependencies are requests, Pillow, numpy, PyYAML; nothing goes in models/. Windows users can run the one-click installer from dist/ instead. ComfyUI Manager may not have the pack listed yet - the README still treats the registry route as forthcoming, so don't wait for it.

    Then set the key once under Settings → KIE.ai Nodes Next → Connection. It's checked against KIE before it replaces an existing key, only a masked fingerprint is displayed, and it stays out of the workflow JSON entirely. KIE_API_KEY in the environment is the headless path and takes priority over the saved key - a leftover export is the classic reason a rotated key "doesn't take."

    Common issues

    Same seed, different video. Hosted endpoints document seeds as best-effort. Treat seed as "try," not "guarantee," and save anything you're happy with.

    Identical rerun queues nothing. ComfyUI cached the node's output because no input changed. Free, and also useless if you were hoping for a variation - nudge the seed.

    Timeout errors are spent money. The job keeps running on KIE's side. Grab the task_id from the error text and check it with the Task Status node rather than re-queueing and paying twice.

    "KIE model ID has not been resolved yet. Refresh the live catalog once." The node list is generated from KIE's docs; if the first catalog sync failed, this node can't submit. Run Catalog Sync, reload, retry.

    Model missing from the menu entirely. The pack checks KIE's catalog at most once every 24 hours and adds new pages as nodes. A brand-new KIE model can take a sync cycle to appear.

    CategoryKIE Next/Video/HappyHorse

    Inputs (7)

    NameTypeDefaultDescription
    promptSTRINGA miniature city built from cardboard and bottle caps comes to life at night. A cardboard train slowly passes through, with small lights dotting the scene and illuminating the way ahead.Text prompt describing the video to generate (any language). Max 5,000 non‑Chinese characters or 2,500 Chinese characters; extra content is truncated.
    resolutionoptCOMBO1080pOutput video resolution. Valid values: 720P, 1080P (default).
    aspect_ratiooptCOMBO16:9Output aspect ratio. Valid values: 16:9 (default), 9:16, 1:1, 4:3, 3:4.
    durationoptINT53–15Output duration in seconds (integer). Must be between 3 and 15. Defaults to 5.
    seedoptINT16224295820–2147483647Random seed for reproducibility (if supported).
    timeout_secondsoptINT120030–7200—
    callback_urloptSTRINGOptional KIE callback URL. Leave empty for normal ComfyUI use.

    Outputs (7)

    NameTypeDescription
    videoVIDEO—
    urlSTRING—
    all_urls_jsonSTRING—
    task_idSTRING—
    raw_jsonSTRING—
    credits_consumedFLOAT—
    credits_leftFLOAT—