Выбирайте image-to-video, если у вас есть утверждённый первый кадр, reference-to-video, если персонажа, одежду, предмет или место задают отдельные изображения, и text-to-video, если у вас только слова. Все три стоят 0,14 $ за секунду в 720p или 0,18 $ в 1080p: пятисекундный клип обойдётся в 0,70 $ или 0,90 $, так что выбор касается контроля, а не цены. Image-to-video и reference-to-video — эндпоинты uncensored; text-to-video фильтруется.
Какую задачу отправить
| Что у вас есть | ID модели и обязательные входные данные | Выбирайте, когда | Ограничение, которое надо учесть |
|---|---|---|---|
| Описание сцены | alibaba/happyhorse-1.1/text-to-video; prompt | Вы ещё подбираете кадр, свет и темп или быстро нужно конкретное соотношение сторон | Лицо, одежда и кадрирование остаются на усмотрение модели, поэтому повторные запуски расходятся |
| Один утверждённый кадр | alibaba/happyhorse-1.1/image-to-video; prompt, image_url | Клип должен совпадать с уже существующим изображением | Нет поля соотношения сторон (форму задаёт изображение) и нет последнего кадра, поэтому действие должно завершиться само |
| От одного до девяти изображений с разными ролями | alibaba/happyhorse-1.1/reference-to-video; prompt, reference_image_urls | Вы соединяете персонажа, одежду, реквизит и место или используете одних и тех же героев в нескольких планах | Одна роль на изображение; только изображения, без видео- и аудиореференсов |
Все три принимают промпт от 1 до 2 500 символов, duration_seconds от 3 до 15 (по умолчанию 5) и resolution — 720p (по умолчанию) или 1080p. В этом диапазоне клип стоит от 0,42 $ до 2,10 $ в 720p и от 0,54 $ до 2,70 $ в 1080p, поэтому делайте черновики в 720p, а понравившийся дубль перезапустите в 1080p; новый запуск даёт новый дубль, даже если формулировка та же.
- Соотношение сторон: задачи text и reference принимают соотношение; image-to-video следует вашему изображению, поэтому сначала обрежьте его.
- Seed: только для задач image и reference. Держите его неизменным и меняйте что-то одно за раз.
- Звук: создаётся всегда, поля для отключения нет; заглушите или замените его в своём редакторе.
- Не принимаются:
last_image_urlиnegative_prompt.
Размеры изображений, размеры референсов и лимиты загрузки указаны на странице каждой модели.
Контент для взрослых зависит от задачи
По нашим тестам сентября 2026 года image-to-video выдал все взрослые категории, которые мы пробовали, от намёков до самых интенсивных сцен, поэтому изображение взрослого персонажа — самая надёжная отправная точка. Reference-to-video тоже uncensored. Text-to-video прошёл более мягкие промпты, но интенсивные отклонял полностью, а не смягчал. Если сцена должна дойти до модели без изменений, стройте её от изображения. Результаты по категориям собраны в NSFW-тестах HappyHorse 1.1 (пока эта статья есть только на английском); актуальные задачи показывает страница модели HappyHorse 1.1.
Сначала попробуйте в Playground
Пример: оживить портрет вымышленной 35-летней художницы-керамистки в рубашке цвета индиго и кремовом фартуке, которая держит синюю керамическую птицу над постаментом, обе руки и постамент в кадре.
- Откройте страницу image-to-video, оставайтесь на вкладке Playground в режиме Form и войдите в аккаунт, чтобы запускать.
- В поле Input image перетащите свой авторизованный портрет (JPG, PNG, WEBP или GIF, до 10 МБ) или вставьте его Asset URL.
- Вставьте промпт ниже или откройте его уже заполненным:
Запустить этот промпт в HappyHorse 1.1 →. Он описывает только то, что меняется после первого кадра; художницу, птицу и комнату уже задаёт изображение. Промпт остаётся на английском, как он уходит в модель.
- Установите Resolution 720p и Duration 5 и запустите. В 720p это стоит 0,70 $, три попытки — 2,10 $; при десяти секундах и 1080p каждая попытка стоит 1,80 $.
- Оставьте понравившийся дубль и перезапустите его в 1080p.
Для референсов откройте страницу reference-to-video, добавьте изображения в Reference images в фиксированном порядке и пронумеруйте их в промпте как [Image 1], [Image 2] и [Image 3], назвав, что вносит каждое. Давайте каждому референсу одну роль: несколько фото одного объекта усредняются, а не согласуются, а девять слотов — потолок, а не цель. Если у вас только слова, откройте страницу text-to-video, где доступен Aspect ratio, и опишите в промпте художницу, птицу и галерею.
Затем запустите из кода
Установите Python SDK (pip install spicyapi), задайте SPICY_API_KEY в окружении сервера и выполните:
import uuid
from spicyapi import SpicyClient, output_assets
client = SpicyClient() # reads SPICY_API_KEY from the environment
frame = client.upload_file("./opening-frame.png") # becomes a spicy:// URI
task = client.create_task(
model="alibaba/happyhorse-1.1/image-to-video",
input_data={
"image_url": frame["uri"],
"prompt": "One continuous medium shot. The adult artist gently lowers the blue ceramic bird "
"onto the pedestal, releases it, draws both hands back and pauses. "
"Keep the camera still. Quiet gallery ambience and one soft ceramic contact sound. "
"No cuts or added people.",
"duration_seconds": 5,
"resolution": "720p",
"seed": 240103,
},
idempotency_key=str(uuid.uuid4()), # new key per new request; reuse only to retry the same one
)
print("Resume task:", task["taskId"], flush=True)
final = client.wait_for_terminal(task["taskId"])
if final["state"] != "succeeded":
raise RuntimeError(f"Task {task['taskId']} ended as {final['state']}")
assets = output_assets(final)
if not assets or any(a.get("pending") or a.get("unavailable") or not a.get("url") for a in assets):
raise RuntimeError(f"Task {task['taskId']} has no ready output; check this task before a new run")
print(assets[0]["url"])Для reference-to-video замените модель и используйте reference_image_urls; text-to-video принимает только промпт, aspect_ratio, duration_seconds и resolution. Ожидание, ошибки и повторы описаны в руководстве по задачам и справочнике Python SDK.
Или поручите запуск агенту
Если клипы должен запускать ассистент, CLI, MCP-сервер и Agent Skill читают актуальную схему; CLI и MCP показывают цену и просят подтверждения перед платным вызовом. С тем же объектом input в input.json:
npx @spicyapi/cli tasks create --model alibaba/happyhorse-1.1/image-to-video --input-file input.json --waitЧерез MCP попросите: «Анимируй ./opening-frame.png через HappyHorse 1.1 image-to-video»; ассистент вызовет spicyapi_upload_file, затем spicyapi_task_create. Команда npx skills add spicyapi-ai/spicy-skill устанавливает Skill.
Исправьте конкретную проблему
| Симптом | Что делать |
|---|---|
Неизвестное поле aspect_ratio в image-to-video | Уберите поле и перед загрузкой обрежьте первый кадр до нужной формы |
Неизвестное поле seed в text-to-video | Уберите seed; эта задача его не поддерживает |
invalid_asset на изображении | URL вернул веб-страницу; загрузите файл и используйте его URI spicy:// |
| Неверная финальная поза при хорошем первом кадре | Упростите действие; входа для последнего кадра, который зафиксировал бы финал, нет |
| Предмет сливается с рукой | Сократите движение и держите камеру неподвижной |
| Ночная сцена превращается в дневную | Оставьте одно время суток, назовите видимую лампу или лунный свет и уберите рассвет и ход времени; просмотрите клип целиком |
| Постановка предмета заканчивается после конца клипа | Уберите из промпта выход в кадр или увеличьте длительность с 5 до 7 секунд (0,98 $ в 720p) |
| Лица или предметы из референсов смешиваются | Дайте каждому изображению один объект и назовите его рядом с тегом [Image N] |
| Хорошая картинка, но нежелательная звуковая дорожка | Заглушите или замените дорожку в редакторе; параметра отключения звука нет |
content_rejected | Фильтр задачи отклонил запрос; смена длительности или разрешения не поможет. Фильтруется text-to-video, поэтому альтернатива — первый кадр в image-to-video |
Подберите кадр на недорогих черновиках 720p, затем зафиксируйте утверждённый кадр или набор референсов и перезапустите для финала. Планируйте одно читаемое событие на 5-секундный клип: высокое разрешение увеличивает неудачное взаимодействие, но не исправляет его.






