HappyHorse 1.1 из изображения в видео: API и 5 реальных клипов
Один скрипт отправляет снимок, опрашивает задачу и сохраняет MP4. Поля, сюрпризы водяного знака и звуковой дорожки и 5 клипов, сделанных 2 ноября 2026 года.

На этой странице
- Короткий ответ
- Что нужно перед первым вызовом HappyHorse 1.1 из изображения в видео?
- Какие поля принимает запрос?
- Скрипт на Python
- Пять клипов, которые мы сделали
- Облёт наушников
- Портрет под дождём
- Наезд на озере
- Иллюстрация с лисой
- Что показали измерения файлов
- Почему в клипах есть звук?
- Сколько времени доступны результаты?
- Какие ошибки вас ждут?
- Сколько стоит клип HappyHorse 1.1?
- Можно ли обращаться к Alibaba Cloud напрямую?
- Частые вопросы
- Нужен ли промпт для HappyHorse изображение в видео?
- Как убрать водяной знак Happy Horse?
- Как задать соотношение сторон?
- Существует ли HappyHorse 1.5?
- HappyHorse 1.1 лучше 1.0 для изображения в видео?
- Проверенные источники
Чтобы оживить снимок с помощью HappyHorse 1.1 из изображения в видео, отправьте его как first_frame на https://api.omniakey.com/v1/media/tasks с ID модели happyhorse-1.1-i2v, опросите задачу и скачайте MP4. Наши пять клипов по 5 секунд в 720P заняли от 92 до 158 секунд 2 ноября 2026 года. В каждом звучала музыка, которую мы не заказывали, а настройка по умолчанию добавляет водяной знак "Happy Horse".
Короткий ответ
- Запрос: модель
happyhorse-1.1-i2v, операцияimage_to_videoи ровно одинfirst_frameвinput.media. - Соотношение сторон: клип повторяет снимок, потому что поля
ratioнет. - Длительность и размер: от 3 до 15 секунд в 480P, 720P или 1080P; передавайте
resolutionкаждый раз, потому что у Alibaba по умолчанию 1080P. - Водяной знак: включён по умолчанию, отключается через
watermark: false. - Звук: во всех пяти клипах была музыка, API Alibaba не перечисляет переключателя звука, а
ffmpegубирает дорожку.
Что нужно перед первым вызовом HappyHorse 1.1 из изображения в видео?
Три вещи: ключ, Python 3 и снимок, который проходит правила Alibaba.
- Ключ в
OMNIAKEY_API_KEY. Скрипт отправляет его как Bearer-токен, поэтому в коде его нет. - Python 3 без установки чего-либо. Скрипт использует только стандартную библиотеку.
- Снимок, который соответствует справочнику API изображения в видео от Alibaba: JPEG, JPG, PNG или WEBP; ширина и высота не меньше 300 пикселей; до 20 MB; соотношение сторон от 1:2.5 до 2.5:1. Alibaba не указывает максимум пикселей.
Сложность в размере: встроенный снимок идёт внутри тела запроса, а оно должно укладываться в 1 MiB вместе с Base64 (обзор медиа-API OmniaKey, проверено 2 ноября 2026 года). Скрипт останавливается выше 700 KB; если снимок больше, уменьшите его или передайте публичный HTTPS-адрес. Наш снимок 2K весил 2 254 819 байт, и эта команда macOS сжала его до 92 212 байт:
sips -s format jpeg -s formatOptions 85 -Z 1280 still.jpg --out still-small.jpg
Какие поля принимает запрос?
Девять полей определяют задачу: три на верхнем уровне, два внутри input и четыре внутри parameters.
| Поле | Значение | Примечания |
|---|---|---|
model | happyhorse-1.1-i2v | ID модели 1.1 для изображения в видео |
type | video | тип файла, который создаёт задача |
operation | image_to_video | имя без префикса |
input.prompt | текст | OmniaKey требует его, API Alibaba считает необязательным; до 5,000 некитайских или 2,500 китайских символов, более длинный текст обрезается |
input.media | ровно один {"type": "first_frame", "url": ...} | публичный HTTPS-адрес или data URI |
parameters.resolution | 480P, 720P или 1080P | передавайте всегда: у Alibaba по умолчанию 1080P |
parameters.duration | целые секунды, от 3 до 15 | в OmniaKey обязательное |
parameters.watermark | true (по умолчанию) или false | false убирает текст "Happy Horse" |
parameters.seed | от 0 до 2147483647 | одинаковый seed тоже не гарантирует тот же клип |
Четыре детали легко пропустить.
- Поля
ratioнет: клип сохраняет соотношение сторон снимка (справочник API изображения в видео от Alibaba, проверено 2 ноября 2026 года). - На страницах Alibaba нет поля негативного промпта.
- Каждый вызов создания требует заголовок
Idempotency-Key. Повтор с тем же телом возвращает исходную задачу и никогда не списывает дважды; с другим телом приходит409 idempotency_key_reused(документация видео-API OmniaKey, проверено 2 ноября 2026 года). - Размер вывода меняется: в документации OmniaKey снимок 1200×630 в 720P возвращается как 1324×696.
Скрипт на Python
Это тот самый файл, который мы запускали, только со стандартной библиотекой.
"""Animate one still with HappyHorse 1.1 image-to-video through the OmniaKey media API.
Usage:
export OMNIAKEY_API_KEY="your-omniakey-api-key"
python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4
The still can be a local JPEG or PNG (sent inline as a data URL) or a public https:// URL.
"""
import base64
import json
import mimetypes
import os
import sys
import time
import urllib.error
import urllib.request
import uuid
API = "https://api.omniakey.com/v1/media/tasks"
HEADERS = {
"Authorization": "Bearer " + os.environ["OMNIAKEY_API_KEY"],
"Content-Type": "application/json",
"User-Agent": "happyhorse-i2v-example/1.0",
}
POLL_SECONDS = 10
GIVE_UP_AFTER = 15 * 60 # most clips finish in 1-5 minutes
def call(method, url, body=None, extra_headers=None):
data = json.dumps(body).encode() if body is not None else None
req = urllib.request.Request(url, data=data, method=method, headers={**HEADERS, **(extra_headers or {})})
for attempt in range(3):
try:
with urllib.request.urlopen(req, timeout=60) as resp:
return json.load(resp)
except urllib.error.HTTPError as err:
sys.exit(f"HTTP {err.code}: {err.read().decode(errors='replace')}")
except (urllib.error.URLError, TimeoutError, ConnectionError) as err:
if attempt == 2:
raise
print("network error, retrying:", err) # a retried POST keeps its Idempotency-Key
time.sleep(5)
def first_frame_url(image):
if image.startswith("https://"):
return image
raw = open(image, "rb").read()
if len(raw) > 700_000: # Base64 adds a third, and the whole request must stay under 1 MiB
sys.exit("The still is over 700 KB. Resize it or pass a public https:// URL instead.")
mime = mimetypes.guess_type(image)[0] or "image/jpeg"
return f"data:{mime};base64,{base64.b64encode(raw).decode()}"
def main(image, prompt, out_path):
task = call("POST", API, {
"model": "happyhorse-1.1-i2v",
"type": "video",
"operation": "image_to_video",
"input": {"prompt": prompt, "media": [{"type": "first_frame", "url": first_frame_url(image)}]},
"parameters": {"resolution": "720P", "duration": 5, "watermark": False}, # watermark is on by default
}, {"Idempotency-Key": str(uuid.uuid4())})
print("task", task["id"], task["status"])
start = time.time()
while task["status"] in ("queued", "processing"):
if time.time() - start > GIVE_UP_AFTER:
sys.exit(f"Still {task['status']} after 15 minutes. Do not submit it again; "
f"check it later with GET {API}/{task['id']}")
time.sleep(POLL_SECONDS)
task = call("GET", f"{API}/{task['id']}")
print(task["status"], "after", round(time.time() - start), "s")
if task["status"] != "succeeded":
sys.exit(json.dumps(task.get("error") or task))
# The signed download URL is short-lived, so save the file right away.
req = urllib.request.Request(task["assets"][0]["url"], headers={"User-Agent": HEADERS["User-Agent"]})
with urllib.request.urlopen(req, timeout=300) as resp, open(out_path, "wb") as f:
f.write(resp.read())
print("saved", out_path)
if __name__ == "__main__":
main(*sys.argv[1:4])
Сохраните его как hh_i2v.py и запустите:
export OMNIAKEY_API_KEY="your-omniakey-api-key"
python3 hh_i2v.py still.jpg "The camera slowly orbits the headphones." clip.mp4
Наш запуск с watermark: false вывел это:
task task_QqK3ZdAd72vmK1DSOuOxXSytBSaJ244v queued
succeeded after 91 s
saved data/clips/c5-orbit-nowm.mp4
В скрипте важны пять вещей.
- Он опрашивает задачу каждые 10 секунд.
- Он сдаётся через 15 минут с сообщением не отправлять задачу снова.
- При сетевой ошибке он повторяет попытку, и повтор создания сохраняет
Idempotency-Key, поэтому вы получаете исходную задачу, а не второе списание. - Он сохраняет файл сразу после успеха, потому что подписанная ссылка на скачивание живёт недолго.
- Он отправляет User-Agent в каждом запросе: стандартный User-Agent Python получил HTTP 403 с
error code: 1010от Cloudflare в нашем тесте Kling 3.0 API 29 октября 2026 года.
Пять клипов, которые мы сделали
Мы сгенерировали четыре снимка в Nano Banana 2.1 и прогнали изображение с наушниками дважды, чтобы проверить водяной знак. Так получилось пять клипов, все по 5 секунд и в 720P, 2 ноября 2026 года. Клипы с портретом, озером и лисой сделаны с настройками по умолчанию, поэтому водяной знак виден в этих кадрах.
Облёт наушников
The camera slowly orbits about 90 degrees to the right around the headphones while a soft band of light sweeps across the ear cups. The headphones stay perfectly still on the pedestal. Smooth, steady product-commercial camera move.

Камера идёт от одной стороны наушников к другой, а они остаются на постаменте. В средних кадрах позади появляется изогнутый край фона, которого нет на снимке, а полосу света из промпта почти не видно.
Тот же промпт на том же снимке мы прогнали дважды, один раз с настройками по умолчанию и один раз с watermark: false, и в углу видна разница.

Портрет под дождём
She slowly turns her head toward the camera and gives a small smile while light rain keeps falling. The neon signs behind her flicker softly and the camera pushes in a little.

Она поворачивается от взгляда влево к камере и улыбается, в том порядке, который задал промпт, и водяной знак есть в каждом кадре. Промпт просил лёгкий наезд, и план идёт от пояса до крупного плана лица.
Наезд на озере
Slow aerial push-in over the water toward the rowboat. Mist drifts across the lake, the boat rocks gently and small ripples spread from its hull, and the golden light grows a little brighter.

Камера приближается к лодке, как и просили. К концу лодка занимает почти весь кадр, а от корпуса расходятся круги по воде.
Иллюстрация с лисой
The fox turns a page of the book with its paw and its ears twitch. A few orange leaves drift down from the tree and the branches sway gently. Keep the flat illustration style.

Плоский стиль иллюстрации держится от первого кадра до последнего, пока падают оранжевые листья. Камера приближается от всего дерева к крупному виду лисы, чего промпт не просил; страницы книги приподнимаются, но кадры не подтверждают, что лапа переворачивает одну.

В 2 из наших 4 промптов камера двигалась сильнее, чем мы просили, поэтому проверяйте кадрирование коротким тестом. Клип на 3 секунды в 480P — самый короткий и низкий уровень в документации (справочник API изображения в видео от Alibaba, проверено 2 ноября 2026 года).
Что показали измерения файлов
| Клип | Формат | Пиксели | Кадры | Время | Байты |
|---|---|---|---|---|---|
| Облёт, по умолчанию | 16:9 | 1286×716 | 123 | 128 с | 1 486 548 |
Облёт, watermark: false | 16:9 | 1286×716 | 121 | 98 с | 1 320 527 |
| Портрет под дождём | 9:16 | 716×1286 | 123 | 158 с | 2 108 577 |
| Озеро | 16:9 | 1286×716 | 123 | 131 с | 2 691 558 |
| Лиса | 1:1 | 960×960 | 123 | 92 с | 2 405 557 |
Каждый файл сообщает 5.16 секунды, хотя мы просили 5: это звуковая дорожка, а видеодорожка идёт 5.13 секунды при 123 кадрах и 5.04 секунды при 121. Все пять — H.264 с 24 fps и двухканальная дорожка AAC, и скрипт поиска склеек не нашёл ни одной.
Наши клипы заняли от 92 до 158 секунд от отправки до скачивания, против 1–5 минут, которые документация Alibaba даёт задачам изображения в видео (справочник API изображения в видео от Alibaba, проверено 2 ноября 2026 года). Мы не проверяли 480P, 1080P, другие длительности, seed, публичный адрес изображения, HappyHorse 1.0 и собственный эндпоинт Alibaba. Чтобы выбрать между моделями, посмотрите HappyHorse 1.1 против Seedance 2.0 и HappyHorse 1.1 против Kling 3.0. Чтобы повторить клип без кода, HappyHorse 1.1 есть в ИИ-генераторе видео.
Почему в клипах есть звук?
HappyHorse 1.1 добавил музыку во все пять клипов, хотя ни один наш промпт её не просил. Никто их не слушал: мы попросили Gemini 3.8 Flash через API OmniaKey описать каждую дорожку.
| Клип | Что описал модель | Средняя громкость |
|---|---|---|
| Облёт, по умолчанию | "Ритмичный хип-хоп-бит с синкопированной перкуссией, хлопками и мягкими аккордами синтезатора." | −19.5 dB |
Облёт, watermark: false | "Спокойная ритмичная электронная музыка с ровным битом и мелодичными тонами синтезатора" | −20.5 dB |
| Портрет под дождём | "Медленная, меланхоличная и нежная фортепианная мелодия с мягкой атмосферной подложкой" | −22.6 dB |
| Озеро | "Медленная, нежная и сентиментальная фортепианная мелодия" | −20.2 dB |
| Лиса | "Спокойная, мягкая эмбиент-мелодия на нежных колокольчиковых тонах", плюс "хруст шагов по гравию" | −27.4 dB |
Он не сообщил о голосе ни в одном клипе. Тот же промпт и тот же снимок, прогнанные дважды, дали две разные дорожки.
В справочнике Alibaba по изображению в видео нет поля звука и варианта без звука, хотя примечание к версии 1.1 упоминает синхронизацию звука и изображения (страница новых моделей Alibaba, проверено 2 ноября 2026 года). Чтобы получить файл без звука, уберите дорожку после скачивания:
ffmpeg -i clip.mp4 -an -c:v copy silent.mp4
Мы прогнали это на клипе с watermark: false, и в результате есть видеодорожка и нет звуковой. Картинка остаётся точно такой же, потому что -c:v copy копирует поток вместо повторного кодирования.
Сколько времени доступны результаты?
В OmniaKey подписанная ссылка на MP4 живёт около 1 часа, а запись задачи хранится 24 часа; опросите задачу снова, чтобы получить свежий адрес (обзор медиа-API OmniaKey, проверено 2 ноября 2026 года). В собственном API Alibaba адрес видео и ID задачи живут по 24 часа, после чего запрос возвращает UNKNOWN, а файла уже нет. Скачивайте сразу после успеха задачи.
Какие ошибки вас ждут?
Ни один из наших пяти запусков не завершился ошибкой, поэтому список взят из документации видео-API OmniaKey, проверенной 2 ноября 2026 года.
| Статус | Что означает | Что делать |
|---|---|---|
400 invalid_request | тело запроса повреждено или в задаче нет input.prompt | проверьте форму запроса выше |
400 model_price_error | длительность вне диапазона модели или разрешение без цены | используйте поддерживаемые длительность и разрешение |
403 model_not_allowed | в ключе или группе нет этой модели | проверьте доступ ключа к модели |
409 idempotency_key_reused | тот же ключ уже отправляли с другим телом | повторяйте ключ только при одинаковых повторах |
503 no_available_channel | сейчас нет канала для модели или операции | попробуйте позже или посмотрите в панели |
Задача, закончившаяся с failed, возвращается автоматически, поэтому отклонённый рендер стоит только вашего времени (обзор медиа-API OmniaKey, проверено 2 ноября 2026 года).
Ошибка, которой стоит избегать, — читать тайм-аут на своей стороне как провал задачи. Опрашивайте тот же ID задачи; повторная отправка запускает вторую задачу и второе списание. Если всё же отправляете снова, сохраните тот же Idempotency-Key и то же тело, и вы получите исходную задачу.
Сколько стоит клип HappyHorse 1.1?
Клип на 5 секунд в 720P стоит $0.70 по прайс-листу Alibaba в Сингапуре. Вот цены Alibaba за секунду со её страницы цен, проверенной 2 ноября 2026 года:
| Разрешение | Сингапур | Пекин и Global |
|---|---|---|
| 480P | $0.07 | $0.0618845 |
| 720P | $0.14 | $0.123769 |
| 1080P | $0.18 | $0.165026 |
Счёт — это цена за секунду, умноженная на секунды вывода. Неудачные запросы не оплачиваются. В Сингапуре есть ещё бесплатная квота 10 секунд, действующая 90 дней. На странице цен цены Global действуют для Франкфурта, Виргинии и Токио.
OmniaKey считает по секундам отрендеренного вывода и списывает заранее при создании задачи, а неудачные и отменённые задачи возвращаются автоматически; актуальные тарифы смотрите на странице HappyHorse 1.1.
Можно ли обращаться к Alibaba Cloud напрямую?
Да. HappyHorse работает на Alibaba Cloud Model Studio, с региональными эндпоинтами для Сингапура, США (Виргиния), Пекина, Франкфурта и Токио (справочник API изображения в видео от Alibaba, проверено 2 ноября 2026 года). Наши запуски шли через API OmniaKey, поэтому дальше — из документации Alibaba.
- Создавайте через
POST https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesisдля Сингапура. - Отправляйте заголовок
X-DashScope-Async: enable, иначе запрос упадёт с "current user api does not support synchronous calls". - Опрашивайте
GET .../api/v1/tasks/{task_id}примерно каждые 15 секунд; статус проходит черезPENDING,RUNNING,SUCCEEDED,FAILED,CANCELED,UNKNOWN. - Держите модель, эндпоинт и ключ в одном регионе, потому что вызовы между регионами падают.
- Один ключ получает 5 запросов в секунду и 5 одновременных задач (страница лимитов Alibaba, проверено 2 ноября 2026 года).
Страница цен упоминает Токио, а страница лимитов не перечисляет там изображение в видео 1.1, поэтому Токио остаётся неподтверждённым.
Частые вопросы
Нужен ли промпт для HappyHorse изображение в видео?
В OmniaKey да: задача без input.prompt получает 400 invalid_request (документация видео-API OmniaKey, проверено 2 ноября 2026 года). Собственный API Alibaba считает промпт необязательным и берёт только первый кадр. В обоих случаях называйте движение и ход камеры, как в наших промптах выше.
Как убрать водяной знак Happy Horse?
Отправьте parameters.watermark: false. Значение по умолчанию true рисует маленький белый текст "Happy Horse" в правом нижнем углу; наш второй клип с облётом, отправленный с false, вернулся чистым.
Как задать соотношение сторон?
Обрежьте снимок. У изображения в видео нет поля ratio, и клип следует форме первого кадра, поэтому снимок 16:9 дал клип 16:9, а портрет дал клип 9:16. Держите обрезку в пределах от 1:2.5 до 2.5:1.
Существует ли HappyHorse 1.5?
Ничего после 1.1 нет в списке моделей, таблицах цен и на странице жизненного цикла Alibaba на 2 ноября 2026 года, а самая новая версия на этих страницах — happyhorse-1.1-i2v, выпущенная 16 июня 2026 года. Некоторые сайты используют название "Happy Horse 1.5".
HappyHorse 1.1 лучше 1.0 для изображения в видео?
Alibaba говорит, что 1.1 улучшает качество картинки, передачу движения и согласованность между клипами, а на странице цен уровень 480P есть только у 1.1. Версия 1.1 вышла 16 июня 2026 года, а 1.0 — 22 апреля 2026 года. По тарифу Alibaba в Сингапуре 1080P стоит $0.18 за секунду у 1.1 против $0.24 у 1.0.
Проверенные источники
- Alibaba Cloud: справочник API изображения в видео HappyHorse, проверено 2 ноября 2026 года
- Alibaba Cloud: цены моделей, проверено 2 ноября 2026 года
- Alibaba Cloud: модели, проверено 2 ноября 2026 года
- Alibaba Cloud: новые модели, проверено 2 ноября 2026 года
- Alibaba Cloud: лимиты запросов, проверено 2 ноября 2026 года
Собственная документация OmniaKey, проверено 2 ноября 2026 года: видео-API и обзор медиа-API.
Модели в этой статье
Похожие статьи
HappyHorse 1.1 vs Seedance 2.0: тест на одинаковых промптах и цена
Три одинаковых промпта в один день: Seedance 2.0 сделал клипы лучше, а HappyHorse 1.1 — вдвое быстрее.
HappyHorse 1.1 vs Kling 3.0: тест на одинаковых промптах и цена
Три одинаковых промпта: HappyHorse 1.1 выиграл насыщенную сцену и облёт флакона, Kling 3.0 точно выполнил трюк.
Kling 3.0 API: генерация видео по тексту, код запроса и реальные клипы
Задача text-to-video — это один POST с моделью kling-3.0. Ниже код запроса, поля, которые он принимает, и два 5-секундных клипа, сделанные 29 октября 2026 года, с измерениями.

