HappyHorse V1.1
happyhorse-1.1-t2vHappyHorse V1.1 video generation through Alibaba Cloud Model Studio asynchronous T2V, I2V, and R2V tasks.
API Docs
HappyHorse V1.1 video generation through Alibaba Cloud Model Studio asynchronous T2V, I2V, and R2V tasks.
Text-to-video, image-to-video, first/last frame control, reference images, extend, and remix jobs. Endpoint: https://omixa.cloud/api/v1/videos/jobs
HappyHorse V1.1 video generation through Alibaba Cloud Model Studio asynchronous T2V, I2V, and R2V tasks.
Use Omixa's unified endpoint and your workspace API key. Provider routing, billing, failover, and usage records are handled by Omixa.
https://omixa.cloud/api/v1/videos/jobs
Only send options supported by this model. Required fields and accepted values are listed below.
| Field | Тип | Required | Accepted values | Описание |
|---|---|---|---|---|
model |
string | Yes | happyhorse-1.1-t2v | Use `happyhorse-1.1-t2v`. Omixa resolves the active provider route and failover key automatically. |
prompt |
string | Yes | up to 5000 non-Chinese characters or 2500 Chinese characters | Video instruction. Required for text-to-video and reference-to-video; optional but recommended for image-to-video. |
video_operation|task |
string | No | text_to_video, image_to_video, reference_to_video | HappyHorse workflow. Omixa maps one model slug to the correct Alibaba model ID per operation. |
duration_seconds|duration |
integer | No | 3-15, default 5 | Generated video duration in seconds. |
resolution |
string | No | 720P, 1080P | Output quality bucket. |
aspect_ratio|ratio |
string | No | 16:9, 9:16, 1:1, 4:3, 3:4 | Output aspect ratio for text-to-video and reference-to-video. Image-to-video follows the first-frame image ratio. |
seed |
integer | No | 0-2147483647 | Deterministic seed. Fixed seeds improve reproducibility but do not guarantee identical videos. |
watermark |
boolean | No | true by default, false to disable | Whether Alibaba adds the HappyHorse watermark. |
start_frame|first_frame|image|input_reference |
inline image or public URL | No | Any valid value | Required for image-to-video. Send exactly one PNG, JPG, or WebP first-frame image as a data URL or public HTTP(S) URL. |
reference_images|references|input_references |
array | No | Any valid value | Required for reference-to-video. Send 1-9 PNG, JPG, or WebP images as data URLs or public HTTP(S) URLs. Use [Image 1], [Image 2], etc. in the prompt to refer to them. |
wait_seconds |
integer | No | Any valid value | How long Omixa waits before the first status poll. |
poll_interval_seconds |
integer | No | Any valid value | Polling interval for the long-running Alibaba task. |
Start with this model-safe payload and expect the normalized Omixa response shape shown beside it.
{
"model": "happyhorse-1.1-t2v",
"prompt": "A miniature city built from cardboard and bottle caps comes to life at night.",
"video_operation": "text_to_video",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"resolution": "720P",
"seed": 12345,
"watermark": true,
"wait_seconds": 3,
"poll_interval_seconds": 15
}
{
"provider": "alibaba",
"model": "happyhorse-1.1-t2v",
"status": "running|succeeded",
"operation": "provider-operation-name",
"poll_after_seconds": 5,
"data": [
{
"url": "https://...",
"content_type": "video/mp4"
}
]
}
Replace the example API key with a workspace key and keep model-specific fields unchanged unless the table above marks them optional.
curl -X POST https://omixa.cloud/api/v1/videos/jobs \
-H "Authorization: Bearer omx_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1.1-t2v",
"prompt": "A miniature city built from cardboard and bottle caps comes to life at night.",
"video_operation": "text_to_video",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"resolution": "720P",
"seed": 12345,
"watermark": true,
"wait_seconds": 3,
"poll_interval_seconds": 15
}'
const response = await fetch('https://omixa.cloud/api/v1/videos/jobs', {
method: 'POST',
headers: {
'Authorization': 'Bearer omx_live_xxx',
'Content-Type': 'application/json'
},
body: "{\n \"model\": \"happyhorse-1.1-t2v\",\n \"prompt\": \"A miniature city built from cardboard and bottle caps comes to life at night.\",\n \"video_operation\": \"text_to_video\",\n \"duration_seconds\": 5,\n \"aspect_ratio\": \"16:9\",\n \"resolution\": \"720P\",\n \"seed\": 12345,\n \"watermark\": true,\n \"wait_seconds\": 3,\n \"poll_interval_seconds\": 15\n}"
});
const data = await response.json();
import requests
response = requests.post(
'https://omixa.cloud/api/v1/videos/jobs',
headers={'Authorization': 'Bearer omx_live_xxx', 'Content-Type': 'application/json'},
json={
"model": "happyhorse-1.1-t2v",
"prompt": "A miniature city built from cardboard and bottle caps comes to life at night.",
"video_operation": "text_to_video",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"resolution": "720P",
"seed": 12345,
"watermark": True,
"wait_seconds": 3,
"poll_interval_seconds": 15
}
)
print(response.json())
$ch = curl_init('https://omixa.cloud/api/v1/videos/jobs');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer omx_live_xxx', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => '{
"model": "happyhorse-1.1-t2v",
"prompt": "A miniature city built from cardboard and bottle caps comes to life at night.",
"video_operation": "text_to_video",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"resolution": "720P",
"seed": 12345,
"watermark": true,
"wait_seconds": 3,
"poll_interval_seconds": 15
}',
CURLOPT_RETURNTRANSFER => true,
]);
$response = curl_exec($ch);
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "omx_live_xxx");
var json = @"{
""model"": ""happyhorse-1.1-t2v"",
""prompt"": ""A miniature city built from cardboard and bottle caps comes to life at night."",
""video_operation"": ""text_to_video"",
""duration_seconds"": 5,
""aspect_ratio"": ""16:9"",
""resolution"": ""720P"",
""seed"": 12345,
""watermark"": true,
""wait_seconds"": 3,
""poll_interval_seconds"": 15
}";
var response = await client.PostAsync("https://omixa.cloud/api/v1/videos/jobs", new StringContent(json, System.Text.Encoding.UTF8, "application/json"));
var body = await response.Content.ReadAsStringAsync();
payload := []byte(`{
"model": "happyhorse-1.1-t2v",
"prompt": "A miniature city built from cardboard and bottle caps comes to life at night.",
"video_operation": "text_to_video",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"resolution": "720P",
"seed": 12345,
"watermark": true,
"wait_seconds": 3,
"poll_interval_seconds": 15
}`)
req, _ := http.NewRequest("POST", "https://omixa.cloud/api/v1/videos/jobs", bytes.NewReader(payload))
req.Header.Set("Authorization", "Bearer omx_live_xxx")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)