# Alibaba | HappyHorse 1.0 | Text to Video Creates video sequences from text descriptions with smooth motion and cinematic control, offering precise frame-level artistic direction. ## API Information - **Model Slug:** alibaba-happyhorse-1-0-text-to-video - **Branded URL:** https://www.eachlabs.ai/alibaba/happyhorse-1-0/alibaba-happyhorse-1-0-text-to-video - **Provider:** Alibaba - **Category:** Text to Video - **Output Type:** video - **Status:** active - **Version:** 0.0.1 - **Base Cost:** $0.14–$0.24 per second, depending on resolution - **Estimated Processing Time:** 200 seconds - **Last Updated:** 2026-08-16 - **Interactive Demo:** https://www.eachlabs.ai/ai-models/alibaba-happyhorse-1-0-text-to-video ## Pricing - **Charge Type:** dynamic - **Estimate:** $0.14–$0.24 per second, depending on resolution - **Pricing Details:** 720P: $0.14 - **Pricing Details:** default: $0.24 ## Input Schema | Parameter | Type | Required | Default | Constraints | Description | |-----------|------|----------|---------|-------------|-------------| | prompt | string | Yes | - | - | Text description of the video to generate. Supports any language. Max 5,000 non-Chinese / 2,500 Chinese characters. | | resolution | string | No | 1080P | ["720P","1080P"] | Output resolution. 720P: lower cost, faster. 1080P: higher quality (default). | | ratio | string | No | 16:9 | ["16:9","9:16","1:1","4:3","3:4"] | Output aspect ratio. 16:9: landscape (default). 9:16: portrait. 1:1: square. 4:3: standard. 3:4: vertical standard. | | duration | integer | No | 5 | 3–15 | Video duration in seconds. Range: 3-15. Each second is billed separately. Default: 5. | | seed | integer | No | - | 0–2147483647 | Seed for reproducibility. Same seed produces similar (not identical) results. Random if omitted. | ## Example Request ```bash curl -X POST https://api.eachlabs.ai/v1/prediction/ \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "alibaba-happyhorse-1-0-text-to-video", "input": { "prompt": "Shot 1 (wide, 0–2s): A vast LEGO city sits in complete darkness. A single street lamp flickers on, then another, then another — warm amber light spreading block by block across cobblestone streets and brick buildings, the city slowly awakening from the dark.\\nShot 2 (low angle, 2–4s): The camera glides at ground level through a narrow LEGO street. A minifigure baker steps out of a shop doorway carrying a tiny bread tray, children run past a park bench, a police officer raises one stiff arm to direct traffic — all moving with the subtle jerkiness of stop-motion life.\\nShot 3 (tracking, 4–6s): A LEGO train rounds a brick corner on its tracks, headlights cutting through the dark. The camera tracks alongside it in slow motion, amber light flickering through its tiny windows, miniature passengers faintly visible inside each compartment.\\nShot 4 (aerial, 6–8s): The camera rises slowly straight up above the entire city, revealing the full glowing LEGO world from above — every street lamp lit, every window warm, tiny minifigures still moving below, the whole miniature world alive and breathing against the dark.\\nMacro cinematic lens, shallow depth of field, rich plastic textures, soft night glow, slow deliberate camera movement throughout" } }' ``` ## Output Schema Response returned by `GET /v1/prediction/{id}` when the job completes: ```json { "status": "success", "predictionID": "string", "output": "string (URL of generated video)", "metrics": { "predict_time": "number (seconds)" } } ``` ## Polling ```bash curl https://api.eachlabs.ai/v1/prediction/{PREDICTION_ID} \ -H "Authorization: Bearer YOUR_API_KEY" ``` | Status | Meaning | |--------|---------| | `processing` | Still running — poll again | | `success` | Done — read `output` | | `error` | Failed — read `message` / `details` | ## Webhook (alternative to polling) Pass `"webhook_url": "https://your.host/path"` in the create request. Eachlabs POSTs this payload when the job ends: ```json { "exec_id": "prediction-uuid", "status": "succeeded", "output": "https://...", "error": "" } ``` `status` is `"succeeded"` or `"failed"`. `exec_id` equals the `predictionID` from create. Return 2xx within 30 seconds. ## Errors Error body: `{ "status": "error", "message": "...", "details": "..." }` | Code | Meaning | |------|---------| | `400` | Invalid input | | `401` | Missing / invalid `Authorization` bearer token | | `404` | Unknown model or prediction id | | `429` | Rate limit — 100 creates / min, 10 concurrent per key | | `5xx` | Retry with backoff | ## Overview **Alibaba | HappyHorse 1.0 | Text to Video Overview** Alibaba | HappyHorse 1.0 | Text to Video is an advanced AI model that generates high-quality video sequences from text descriptions, complete with synchronized native audio in a single pass. Developed by Alibaba's ATH Innovation Division and Token Hub, this 15B-parameter model from the HappyHorse family excels in text-to-video and image-to-video tasks, topping the Artificial Analysis Video Arena leaderboard for its superior lip-sync, cinematic motion, and multilingual support. Unlike traditional two-stage pipelines, HappyHorse 1.0 uses a unified 40-layer Self-Attention Transformer to process text, video, and audio tokens simultaneously, delivering precise frame-level control and natural human-centric performances. This makes it ideal for creators seeking smooth, realistic videos with dialogue in languages like English, Mandarin, Japanese, Korean, German, and French. Available via Alibaba's HappyHorse AI Video Platform, it supports 1080p outputs for short cinematic clips, with API access planned soon. ## Usage Notes - API Base URL: `https://api.eachlabs.ai/v1` - Authentication: send `Authorization: Bearer YOUR_API_KEY`. Generate a key from the Eachlabs dashboard at https://www.eachlabs.ai/dashboard/api-keys. - File-typed parameters (`*_url`, `image_url`, `video_url`, `audio_url`, etc.) accept publicly-reachable HTTPS URLs only. Upload your asset first (GCS / S3 / your CDN) and pass the resulting URL. Data-URIs and localhost URLs are rejected. - For structured parameters (arrays / objects) send real JSON values, not stringified payloads. - Monetary values are reported in USD; per-token / per-megapixel rates may be billed in micro-cents internally. - Prefer `webhook_url` over polling for long-running predictions — see the Webhook Callback section.