Alibaba
HappyHorse 1.1
happyhorse-1.1/image-to-video
Alibaba video generation model; a single model covers text-to-video, image-to-video, and reference-image-to-video, supports 1080p and 3–15 second clips, and fuses multiple reference images to strengthen character consistency, making it suitable for multi-shot storytelling and e-commerce advertising assets
Try happyhorse-1.1/image-to-video
Input
Showcases
View all showcasesOutput
videoPricing
happyhorse-1.1/image-to-video per second
| Specifications | Unit Price |
|---|---|
| 720P | $0.160 |
| 1080P | $0.210 |
Positioning Overview
happyhorse-1.1/image-to-video is the first-frame-driven video generation pipeline in the Alibaba HappyHorse 1.1 family. It takes a first-frame image and an optional text prompt as input and outputs a short video at 720p or 1080p, ranging from 3 to 15 seconds. It is suited for developers who already have usable visual assets and want to extend a static image into coherent motion, for content production such as short-drama storyboards, e-commerce product showcases, and social short videos that require stable subject presentation; it is accessed through the unified HiAPI.ai interface and billed by output duration.
Core Highlights
- Locks the starting frame — uses a single JPEG/PNG/WEBP image as the generation starting point, so the composition and subject of the output video unfold from an established image, reducing the randomness of pure text-to-video generation.
- Duration and resolution combine on demand — a single segment of 3 to 15 seconds, with two tiers of 720p and 1080p available, making it easy to match output specifications to the delivery platform and cost budget.
- Optional prompt, still controllable motion — prompt is an optional field, up to 5000 characters, which can supplement the description of motion direction and visual style; if left empty, generation can still be driven directly by the first frame.
Capability Description
First-frame image-to-video: submit exactly one first-frame image to generate a video. The image's short side must be at least 300px and its size must not exceed 20MB; this is suitable for directly turning existing design drafts or shot footage into dynamic clips.
Duration and resolution control: duration supports 3 to 15 seconds with a default of 5 seconds, and resolution supports 720p and 1080p with a default of 1080p; developers can choose specifications according to the purpose of the clip, and the cost varies with duration and resolution.
Prompt-guided motion and style: the optional prompt field is up to 5000 characters, used to describe the desired motion and visual style, adjusting the generation direction without changing the first-frame composition.
Use Cases
- E-commerce teams generate showcase shorts from product first-frame images — use the product main image as the first frame together with a brief motion description to produce a several-second product motion video for product detail pages and feed advertising assets.
- Content creators animate illustrations or storyboard images — turn a single storyboard or illustration into a clip with coherent motion, feeding it into the editing workflow as shot material for short dramas and social media short videos.
- Brands add motion versions to existing visual assets — use existing graphic materials as the first frame to generate motion versions, quickly expanding the marketing asset library and adapting to short-video specifications on different channels.
Limitations and Selection Advice
A single segment is capped at 15 seconds; longer content requires generating segments and splicing them together. The maximum resolution is 1080p, so it is not suitable for high-resolution film-grade output. This pipeline accepts only a single first-frame image and cannot maintain character consistency with multiple reference images; for such needs, choose the reference-to-video pipeline in the same family. When there is no existing image and the shot must be built from scratch, text-to-video is more suitable. Billing is by output seconds, so generating multiple candidates or long segments accumulates cost; it is recommended to first verify the effect with a short duration.
Frequently asked questions
View all FAQs →-
Does HappyHorse 1.1 Reference to Video require an input image?
Yes. happyhorse-1.1/reference-to-video is a reference-to-video route. Reference images constrain subjects, style, and scene details while the prompt directs motion, camera, and environmental change.
-
Which durations and resolutions does HappyHorse 1.1 Reference to Video support?
The current HiAPI contract supports 3–15s at 720p or 1080p. Check the page controls and API docs for the current options.
-
How is HappyHorse 1.1 Reference to Video billed?
Billing follows output duration and the selected tier. The page follows the global display unit, while the successful task record contains the final charge.
-
How can I improve subject consistency?
Use a clear, unobstructed source with a complete composition. Describe the main action and camera first, then name the appearance, material, and background relationships that must remain stable. Validate a short clip first.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: happyhorse-1.1/image-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for happyhorse-1.1/image-to-video and route default — see the parameter table below.
promptstringOptionalmaxLength 5000Optional text prompt used to guide the motion style and movement of the generated video; if left empty, it is inferred from the first-frame image.
durationintegerOptionalDefault: 5min 3max 15Duration of the generated video clip in seconds, ranging from 3 to 15; cost increases with duration, default is 5 seconds.
image_urlsarrayRequiredminItems 1maxItems 1Array of first-frame image URLs, must contain exactly 1 element; supports JPEG/PNG/WEBP formats, minimum side length no less than 300px, single file no larger than 20MB.
Array [ string ]
resolutionstringOptionalDefault: "1080p"Output video resolution; the higher the resolution, the higher the cost, default is 1080p.
720p1080pcallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1/image-to-video",
"input": {
"duration": 5,
"image_urls": "…",
"resolution": "1080p"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "happyhorse-1.1/image-to-video",
input: {
"duration": 5,
"image_urls": "…",
"resolution": "1080p"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "happyhorse-1.1/image-to-video",
"input": {
"duration": 5,
"image_urls": "…",
"resolution": "1080p"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
Kling 4.0 Kuaishou $0.330 /second -
HeyGen Avatar V HeyGen $0.150 /second -
PixVerse V6 PixVerse $0.036 /second -
HeyGen Avatar IV HeyGen $0.150 /second -
Kling 2.5 Kuaishou $0.060 /second -
Runway Gen 4.5 Runway $0.172 /second -
HappyHorse 1.0 Alibaba $0.168 /second -
Hailuo 2.3 MiniMax $0.270 /video -
Wan 3.0 Video Alibaba $0.040 /second -
FLUX 3 Video Black Forest Labs $0.090 /second -
Grok Imagine 1.5 Lite xAI $0.029 /second -
MiniMax H3 MiniMax $0.072 /second
Same Provider
-
Wan 2.6 Flash Alibaba $0.043 /second -
Wan 3.0 Video Alibaba $0.040 /second -
Qwen Image 3.0 Alibaba $0.036 /image -
Wan 2.7 Image Alibaba $0.035 /image -
Wan 2.7 Video Alibaba $0.100 /second -
Qwen Image 2.0 Alibaba $0.042 /image -
Z-Image Alibaba $0.008 /image -
Qwen Image 2.1 Alibaba $0.020 /image -
Qwen Audio 3.0 TTS Alibaba $0.030 /1,000 characters -
HappyHorse 1.0 Alibaba $0.168 /second



