Skip to content
RU

Happy Horse 1.1

Happy Horse 1.1 (alibaba/happyhorse-1.1) is an Alibaba video model: text- and frame-to-video with reference images. Great for dynamic scenes. Generation is asynchronous: POST /v1/videos returns a job, then you poll the status and download the mp4.

Field Description
model alibaba/happyhorse-1.1 (the short happyhorse-1.1 or the alias happyhorse)
prompt Scene description, required
seconds Any integer from 3 to 15; defaults to 3
size A WxH size from the table below; defaults to 1280x720
input_reference Image-to-video: one image as the starting frame, {"image_url": "data:image/...;base64,..."}
input_references Reference-to-video: 2 to 9 images as an array, also data: URLs only
seed Reproducibility seed: an integer in 0…2147483647. The same prompt with the same seed yields the same clip; without it the upstream picks a random one

Fourteen allowed sizes — seven aspect ratios at two resolutions:

Aspect 720p 1080p
1:1 720x720 1080x1080
16:9 1280x720 1920x1080
9:16 720x1280 1080x1920
4:3 960x720 1440x1080
3:4 720x960 1080x1440
21:9 1680x720 2520x1080
9:21 720x1680 1080x2520

A value outside the list returns 400 with the allowed options listed — check the sizes field in the catalog when in doubt.

import requests
job = requests.post(
"https://api.mixen.ai/v1/videos",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "alibaba/happyhorse-1.1",
"prompt": "A boxer works a punch bag with a flurry of strikes, sweat spraying, rapid cuts between angles",
"seconds": "6",
"size": "1280x720",
},
).json()
print(job["id"], job["status"])

The image goes in as a single data: URL — external links are not accepted:

import base64
import requests
with open("hero.jpg", "rb") as f:
img = "data:image/jpeg;base64," + base64.b64encode(f.read()).decode()
job = requests.post(
"https://api.mixen.ai/v1/videos",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"model": "alibaba/happyhorse-1.1",
"prompt": "The hero bolts and vaults over an obstacle, sharp dynamic motion",
"seconds": "8",
"size": "1280x720",
"input_reference": {"image_url": img},
},
).json()
print(job["id"], job["status"])

In image modes Happy Horse inherits the frame format of the input image — see the limits below.

Two to nine references:

{
"model": "alibaba/happyhorse-1.1",
"prompt": "The character from the first frame sprints through the location from the second, camera in pursuit",
"seconds": "6",
"size": "1280x720",
"input_references": [
"data:image/png;base64,iVBORw0...",
"data:image/png;base64,iVBORw0..."
]
}

From there it is the usual loop: GET /v1/videos/{id} every 5–10 seconds until completed, then GET /v1/videos/{id}/content for the mp4. Full cycle — video guide.

Billing is per second and depends on the resolution: 720p — 13.2089 ₽ ($0.1482) per second, 1080p — 17.086 ₽ ($0.1917). You are charged actual duration × the size’s rate. Current prices — catalog.

  • Dynamic scenes are the model’s home turf: motion, action, cuts between angles.
  • Durations from 3 to 15 seconds — a continuous range, not fixed buttons.
  • Seven frame formats, including the cinematic 21:9 and 9:21.
  • Image-to-video from a starting frame and reference-to-video from 2–9 images.
  • In image modes (starting frame or references) the model inherits the aspect ratio of the input image and ignores the format from size — that is why the web form hides the format picker for Happy Horse in those modes. The selected resolution sets the rate, not the output geometry; the model honors an exact size only in text-to-video.
  • The first-to-last frame transition is not supported — only the starting frame can be passed.

All models — in the catalog. The general video workflow — video guide.