Nodes/comfyui-budgetpixel/HappyHorse 1.1 (BudgetPixel)
ComfyUI Node

HappyHorse 1.1 (BudgetPixel)

Alibaba's character-consistent video, up to nine references

By budgetpixel-ai·Created about 17 hours ago·Updated about 12 hours ago· 3
HappyHorse 1.1 (BudgetPixel)
  • image
  • reference_images
  • video
prompt
aspect_ratio16:9
length_seconds5
resolution720p
force_rerunfalse

HappyHorse 1.1 is Alibaba's video model, and its whole pitch is that it keeps your subject consistent. Most text-to-video models are perfectly happy to morph a character into a different person halfway through a clip; HappyHorse leans on reference images to hold identity - up to nine of them - which puts it in the character-consistency tier of the video shelf rather than the "anyone, anything" tier. It does text-to-video, image-to-video from a start frame, and reference-images-to-video where up to nine images anchor who the subject is.

That reference count is the headline. Nine reference images is a lot of anchoring: feed it a character sheet, a wardrobe, a location, and the model has a real chance of keeping all of them straight across 4–15 seconds. It's 720p or 1080p, and pricing is per second of output (170 credits/second on the sticker), with a fixed resolution_pricing per resolution tier.

How it works

The usual BudgetPixel video flow: prompt plus optional start image and reference batch go into a POST /videos/happyhorse-1.1 style call, the node polls the status endpoint, and the finished MP4 downloads back as a core VIDEO. The nine reference slots are the interesting part - image batches you wire in map onto reference positions automatically, so a batch of nine becomes nine anchors without extra wiring.

A few constraints the brief is explicit about: 4–15 second clips, audio is determined by the model (there's no toggle - whatever it decides, you get), and there's no video-edit mode. This is a generation model, not an edit tool.

The inputs that matter

  • prompt - required, multiline. Describe the action, not just the subject.
  • reference_images - up to 9, the identity anchors. This is the node's superpower; use it.
  • image - optional start frame for image-to-video.
  • resolution - 720p or 1080p; the per-second price differs per tier.
  • length_seconds - 4–15. Remember the per-second billing: a 15-second clip is the expensive end of the range.
  • aspect_ratio - framing.

Output is a single VIDEO - wire it into Save Video or a frame extractor. You'll want a recent ComfyUI for the core video type.

Install

Manager (search "BudgetPixel") or:

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

Restart, set BUDGETPIXEL_API_KEY or budgetpixel.json ({"api_key": "bpx_live_..."}) in the pack folder. Video inputs auto-upload via POST /v1/uploads; requests is the only dependency.

Where people get burned

Three things. First, per-second billing with a 15-second ceiling means the most expensive single clip is also the one that tempts you - a full-length 1080p render at 170 credits/second is a big number, and the Cost Estimate node (with length_seconds and resolution in the params) is the responsible move before queueing. Second, no audio toggle: if your workflow assumes silent video and then needs a voiceover, the model's fixed audio choice will need a strip/silence step rather than a parameter. Third, reference consistency has a ceiling - nine references help a lot, but they can't defeat a prompt that demands the character do something wildly outside what the references depict. Keep the prompt compatible with the anchors and HappyHorse does the rest.

CategoryBudgetPixel/Video

Inputs (7)

NameTypeDefaultDescription
promptSTRINGText description of the video.
aspect_ratiooptCOMBO16:9Aspect ratio. Ignored when a start image already sets the frame.
imageoptIMAGEOptional start frame for image-to-video. Provide a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Omit for text-to-video. Can't be combined with `reference_images`.
length_secondsoptINT54–15Video length in seconds (4–15).
reference_imagesoptIMAGEOptional reference images (1–9) for subject-consistent reference-to-video. Each item is a public image URL, a data URI, raw base64, or an uploaded-file URL from POST /v1/uploads. Can't be combined with `image` (the start frame).
resolutionoptCOMBO720pOutput resolution. Pricing varies by resolution — see `resolution_pricing` in GET /v1/models.
force_rerunoptBOOLEANfalse

Outputs (1)

NameTypeDescription
videoVIDEO