Alibaba
HappyHorse 1.1
happyhorse-1.1/text-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/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
happyhorse-1.1/text-to-video per second
| Specifications | Unit Price |
|---|---|
| 720P | $0.160 |
| 1080P | $0.210 |
Overview
happyhorse-1.1/text-to-video is the pure text-to-video route in Alibaba's HappyHorse 1.1 series, taking a text prompt and directly outputting a short video. Compared with the previous generation, 1.1 brings targeted improvements in prompt adherence, motion smoothness, and visual realism, and emphasizes coordinated generation of visuals and audio. It supports single-segment durations of 3–15 seconds, two resolution tiers (720p and 1080p), and nine aspect ratios ranging from portrait to widescreen. It is suited for developers who need to quickly produce storyboard clips, advertising assets, and social media shorts, billed by output seconds through the unified HiAPI.ai interface.
Key Highlights
- Text-to-video covering continuous durations of 3–15 seconds — A single segment can be set from 3 to 15 seconds, billed by actual output seconds, so clip length can be flexibly set according to shot needs.
- Nine aspect ratios that directly fit publishing platforms — Supports 16:9, 9:16, 1:1, 21:9, and other ratios, so the same prompt can produce output for different channels, reducing secondary cropping.
- Two resolution tiers: 720p and 1080p — 1080p is the default, and the tier can be switched based on preview or final-cut needs, using resolution to balance generation cost and image quality.
- Targeted improvements in prompt adherence and visual realism — According to provider and third-party descriptions, 1.1 improves prompt understanding, motion smoothness, and temporal consistency over 1.0.
Capabilities
Pure text-driven generation: A prompt of no more than 4,999 characters is all that is needed to generate a video, with no first frame or reference material required, making it suitable for building visuals from scratch.
Controllable duration and resolution: Single-segment duration can be specified between 3 and 15 seconds, and resolution can be set to 720p or 1080p, trading off generation speed against image quality as needed.
Multi-aspect-ratio output: Nine preset aspect ratios cover portrait short videos, square feeds, and widescreen presentation, making it easy to generate multi-platform versions in one pass.
Optimized motion and temporal performance: 1.1 emphasizes smooth motion and inter-frame temporal consistency, so visual transitions are more stable when multiple generated segments are stitched into a continuous narrative.
Use Cases
- Short drama and multi-shot creators: text storyboards — Turn storyboard descriptions directly into single-shot clips as first-pass material for short dramas or narrative content, then move into editing.
- E-commerce and advertising teams: product selling-point copy — Generate short video assets from selling-point descriptions for product display pages, feed advertising, and promotional content production.
- Brand marketers: creative concept descriptions — Quickly produce brand concept shorts in multiple ratios for proposal decks and pre-campaign creative validation.
- Social media operators: short copy and topics — Generate portrait or square shorts that directly match the publishing specs of short video platforms and social feeds.
Limitations and Selection Advice
The maximum single-segment duration is 15 seconds and the maximum resolution is 1080p, so long videos must be generated in segments and then stitched together, and it is not intended for high-resolution film-grade output. This route accepts only text input; if you need to maintain character and subject consistency with a first frame or multiple reference images, choose the image-to-video or reference-image-to-video route in the same series. In addition, the improvements of 1.1 over 1.0 are mostly descriptive claims and lack public quantitative benchmarks, so it is advisable to validate style and motion performance with short sample clips before batch generation.
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/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for happyhorse-1.1/text-to-video and route default — see the parameter table below.
promptstringRequiredmaxLength 4999Text prompt describing the video content to be generated, as a plain-text string.
durationintegerOptionalDefault: 5min 3max 15Duration of the generated video in seconds, ranging from 3 to 15, defaulting to 5 seconds; the cost increases as the duration grows.
resolutionstringOptionalDefault: "1080p"Resolution of the output video, defaulting to 1080p; the higher the resolution, the higher the cost.
720p1080paspect_ratiostringOptionalDefault: "16:9"Aspect ratio of the output video, defaulting to 16:9.
16:99:163:44:34:55:41:19:21Show all (1)
21:9callbackobjectOptional
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/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
}' 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/text-to-video",
input: {
"prompt": "…",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
}),
});
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/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "1080p",
"aspect_ratio": "16:9"
}
},
)
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
-
FLUX 3 Video Black Forest Labs $0.090 /second -
Wan 2.7 Video Alibaba $0.100 /second -
HeyGen Avatar IV HeyGen $0.150 /second -
Veo 3.1 Fast Google $0.170 /second -
HeyGen Avatar V HeyGen $0.150 /second -
Kling AI Avatar Kuaishou -- -
Seedance 2.5 ByteDance $0.121 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Creatify Boreal Creatify $0.015 /second -
HappyHorse 1.0 Alibaba $0.168 /second -
Gemini Omni Google -- -
Kling 3.0 Kuaishou $0.100 /second
Same Provider
-
Wan 2.7 Image Alibaba $0.035 /image -
Wan 2.7 Video Alibaba $0.100 /second -
Wan 3.0 Video Alibaba $0.040 /second -
HappyHorse 1.0 Alibaba $0.168 /second -
Qwen Image 2.1 Alibaba $0.020 /image -
Z-Image Alibaba $0.008 /image -
Qwen Image 2.0 Alibaba $0.042 /image -
Qwen Image 3.0 Alibaba $0.036 /image -
HappyHorse 1.1 Alibaba $0.160 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
Qwen Audio 3.0 TTS Alibaba $0.030 /1,000 characters