Nodes/HappyHorseComfyUI/Happy Horse Image to Video (Ace Data Cloud)
ComfyUI Node

Happy Horse Image to Video (Ace Data Cloud)

No ratio widget, and a URL problem you have to solve yourself

By AceDataCloud·Created 3 days ago·Updated 2 days ago· 0
Happy Horse Image to Video (Ace Data Cloud)
    • status
    • task_id
    • video_url
    • trace_id
    ◄image_url►
    ◄promptThe scene gently comes to life.►
    ◄modelhappyhorse-1.1-i2v►
    ◄resolution720P►
    ◄duration5►
    ◄watermarkfalse►
    ◄seed-1►

    Animate a still. That's the pitch, and it's the least exotic thing in this pack - first-frame-conditioned video is how most people actually work, because a good still is far cheaper to make than a good clip. The catch is specific to hosted models rather than to this node: the API is not on your machine, so it cannot open your PNG.

    The URL thing, first

    image_url takes a public HTTPS URL and only that. Not C:/ComfyUI/input/hero.png, not a 127.0.0.1 address, not an http:// link, not a URL with credentials baked into it. The client checks all of that and rejects it before any request goes out, with the flat message "Reference media must use public HTTPS URLs."

    So your still has to be reachable from the internet for the minute or two the job runs. Practically: upload the exported frame anywhere that serves it over HTTPS - a public image host, a bucket with public read, a CDN, a temporary file-sharing link that won't expire mid-job. Signed URLs are fine as long as the signature outlives the fetch. Some people run a small tunnel in front of ComfyUI's own output folder, which is a neat trick but its own project.

    This pack ships no upload node, and that's the single biggest piece of friction here. Worth knowing: once a clip has come out of Happy Horse, its Ace CDN URL is already public and already on the allowlist, so chaining from a Happy Horse output into Video Edit needs no hosting at all. It's only the first input media you have to place somewhere.

    What the node does with it

    prompt describes the motion, not the picture - the picture is already decided. model offers happyhorse-1.1-i2v (default) and happyhorse-1.0-i2v. resolution is 720P or 1080P. duration runs 3–15 seconds, default 5. watermark off by default, seed defaulting to -1, which means "server picks" - any value below zero is simply not sent.

    Notice what's missing from that list: there is no ratio input. That's deliberate. With a fixed first frame, the aspect ratio follows the image you fed in, so if you want a 9:16 clip, crop your still to 9:16 before you upload it. People read the absent widget as a bug and ask where the portrait option went. It's the design.

    The outputs, and the two-graph habit

    The node returns four strings - status, task_id, video_url, trace_id - and it is a paid submit, so video_url comes back empty and you're expected to take the task_id into Happy Horse Retrieve Task. Feed that node's video_url into Happy Horse Load Video, and Load Video's video output goes to Save Video.

    Keep the submit half and the retrieve half in separate graphs. ComfyUI runs output nodes every time you press Queue, and this one bills your account when it does. Build a graph that submits, then queue it twice while you're fiddling, and you've bought the same clip twice. The pack's own examples are split exactly this way for that reason.

    Install

    Manager → Custom Nodes → search Happy Horse, publisher acedatacloud, package Happy Horse by Ace Data Cloud, install, restart. Or by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/AceDataCloud/HappyHorseComfyUI.git
    cd HappyHorseComfyUI && python -m pip install -r requirements.txt
    

    All you're installing is requests. Then set the key in the environment of the ComfyUI process and restart it:

    export ACEDATACLOUD_API_KEY='paste-your-key-here'
    python main.py --cpu
    

    No GPU, no checkpoint, no --lowvram gymnastics. ComfyUI 0.39.0+ is only needed for the native VIDEO type that Load Video uses at the far end of the chain.

    Where it bites

    I2V is the cheapest way to spend a lot of money, because a first frame that's slightly wrong is easy to rationalise and the retry costs the same as the first attempt. Fix the still before you submit, not after. Encode the motion in the prompt in plain terms - what moves, which way the camera drifts, how fast - because the model is animating your image, not reinterpreting it.

    And the usual two: a missing key surfaces as a clear environment-variable error, not a silent no-op; and a task that comes back pending should be re-queried by ID, never resubmitted. Querying is read-only and doesn't cost anything. Submitting does.

    CategoryAce Data Cloud/Happy Horse

    Inputs (7)

    NameTypeDefaultDescription
    image_urlSTRING—
    promptSTRINGThe scene gently comes to life.—
    modelCOMBOhappyhorse-1.1-i2v2 options: happyhorse-1.1-i2v, happyhorse-1.0-i2v
    resolutionCOMBO720P2 options: 720P, 1080P
    durationINT53–15—
    watermarkBOOLEANfalse—
    seedINT-1-1–2147483647—

    Outputs (4)

    NameTypeDescription
    statusSTRING—
    task_idSTRING—
    video_urlSTRING—
    trace_idSTRING—