Introduction
HappyHorse 1.1 Text to video is the prompt-only endpoint of Alibaba's HappyHorse 1.1 family: a prompt of up to 2,500 characters returns a clip of 3 to 15 whole seconds at 720p or 1080p, with a generated soundtrack. Nine aspect ratios are available, from 21:9 to 9:21, including the 4:5 and 5:4 feed and print crops. This endpoint screens the prompt, and a brief that crosses its content line is rejected outright rather than softened.
Choose a HappyHorse 1.1 mode by starting material
| What you have at the start | Mode |
|---|---|
| a written scene or script | HappyHorse 1.1 Text to video |
| an approved opening image | HappyHorse 1.1 Image to video |
| one to nine reference images | HappyHorse 1.1 Reference to video |
Key features & highlights
Nine aspect ratios in one field
aspect_ratio accepts 16:9 (the default), 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 and 21:9. A set of deliverables in several shapes becomes a loop over one parameter rather than a round of re-framing in post. The rain-hood-convenience example was written for 9:16 at 1080p, the vertical end of that list, and spends its words on one continuous action away from camera.
A soundtrack with no switch
Every clip comes back with generated audio, and there is no field to turn it off. Describe the sound you want: the desert-tailgate brief asks for cicadas and a distant highway, and in rain-hood-convenience the rain hammering the awning arrives in the same pass as the picture. When the clip goes under your own mix, mute or replace the track in the edit.
Draft at 720p, deliver at 1080p
Duration runs from 3 to 15 whole seconds with 5 as the default, and resolution defaults to 720p. Both drive the price. Draft at 720p, then re-run the take you want at 1080p; each pass draws its own take, so keep the wording fixed rather than expecting the same frames back at a higher resolution.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Write it as a shot: subject, action, camera, light, pacing. This endpoint screens the prompt: a brief that crosses its content line is rejected outright rather than softened. at least 1 characters · at most 2500 characters |
aspect_ratio | No | Nine values, default 16:9. 4:5 and 5:4 are the feed and print crops. |
resolution | No | 720p or 1080p. Draft at 720p, deliver at 1080p. |
duration_seconds | No | Whole seconds, 3 to 15. Drives the price. |
Pricing
| Specification | Price |
|---|---|
| $0.14 / second |
| $0.18 / second |
Use cases
Vertical clips with a phone-camera look
The karaoke-room example asks for a device look by name, with rolling shutter, phone-camera noise, slight shake and mixed neon light, in 9:16 at 720p. Two people share one vertical frame, trade a chorus on a single microphone and collapse into each other laughing, and the room sound comes back with the picture.
Mood pieces carried by light
Moving light can hold a whole clip together. In motel-blinds-boots, amber street light through Venetian blinds crawls over the subject while she works off two boots and falls back across a quilt, a chain of actions held inside the default five seconds at 720p. Nothing lights the room except what the prompt describes.
Settle framing and pacing before building frames
When a shot needs an exact subject, or the brief goes past what this endpoint accepts, the path runs through an opening frame on image-to-video or a reference set on reference-to-video. Text-to-video is where framing, light and pacing can be settled in a few quick drafts before those inputs are prepared.
Prompt guide & pro tips
Write it as a shot
Give the subject, action, camera, light and pacing in the order the viewer sees them. The desert-tailgate prompt does this in one paragraph: who is on the tailgate and what she wears, what she does (boots swinging, tipping a bottle, squinting into the low sun), then "warm orange backlight, lens flare, handheld 35mm", then the sound.
Keep the brief within what this endpoint accepts
The prompt is screened before generation, and a description past its content line comes back as a rejection, not as a milder clip. The published examples work through wardrobe, light and gesture rather than spelling everything out. For work beyond that line, start from an image on image-to-video or reference-to-video. With a 2,500-character limit, cut adjectives before you cut actions.
Set the frame before comparing takes
The defaults are 16:9 and five seconds. If the deliverable is 4:5 or 9:21, set it before the first draft, because a composition written for one frame does not translate to another. Keep the move resolvable within the duration you choose, and remember that a written shot leaves wardrobe, body and framing to the model, so re-runs drift.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "alibaba/happyhorse-1.1/text-to-video",
"input": {
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p",
"aspect_ratio": "16:9",
"duration_seconds": 5
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.







