Введение
Wan 2.2 Animate превращает утверждённое изображение персонажа и отдельный референс движения в новый клип, где этот персонаж играет сцену. Используйте его, когда внешность и движение уже заданы в разных материалах и не нужно требовать и то и другое от одного источника.
Режимов два. При animation_mode, равном animate, персонаж с вашего изображения двигается так, как в управляющем видео; при replace человек в управляющем видео заменяется тем, кто на вашем изображении, а сцена видео сохраняется. Результат длится столько же, сколько управляющее видео, — от 2 до 30 секунд, в 480p или 720p.
Ключевые возможности и особенности
Чистая A-поза важнее длинного промпта
Опубликованное референсное изображение — именно то, что нужно этому эндпоинту: фигура в кадре целиком, нейтральная A-поза, бесшовный фон, ровный свет. Весь облик результата берётся из этого изображения. Обрезанное или сильно перекрытое изображение ограничивает каждый клип, который вы из него сделаете, и никакой промпт это не исправит.
Клип длится столько же, сколько исходник, до 30 секунд
Результат длится столько же, сколько управляющее видео, а оно должно быть от 2 до 30 секунд, поэтому двухминутный исходник сначала нужно обрезать. Оплата идёт за фактически выданные секунды, а не за предел, использованный в оценке, так что обрезка управляющего видео перед загрузкой — прямой способ контролировать расходы.
Проверьте сходство в 480p, прежде чем платить за 720p
Опубликованный клип — то же изображение, приведённое в движение референсным видео: тот же бордовый топ, те же широкие брюки, теперь в середине поворота. Разрешение — это ценовой уровень, и 720p стоит дороже за секунду, чем 480p, поэтому сначала проверьте в 480p на самом коротком пригодном управляющем видео, сохраняются ли узнаваемость и силуэт.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
animation_mode | Нет | Animate заставляет персонажа с вашего изображения двигаться так, как в ведущем видео. Replace подменяет человека в ведущем видео вашим персонажем, оставляя сцену этого видео. |
image_url | Да | Картинка персонажа. Анимируется именно человек отсюда, поэтому берите плашку в полный рост с ясным силуэтом и ровным светом. Не менее 1 символов |
video_url | Да | Ведущее видео длиной от 2 до 30 секунд: загрузите MP4 или передайте URL файла MP4 или MOV. Не менее 1 символов |
resolution | Нет | 480p или 720p, по умолчанию 720p, и это ценовая ступень. Докажите перенос на 480p, а потом пересчитайте те дубли, которые пойдут в дело. |
prompt | Нет | Необязателен, до 2000 символов. Направляет стиль и содержание анимации, но не личность: она принадлежит картинке персонажа. Не более 2000 символов |
seed | Нет | От 0 до 2147483647; ноль просит случайный seed. Закрепите его, чтобы сравнить два прогона по одному ведущему видео. |
Стоимость
Длительность результата повторяет управляющее видео и оплачивается посекундно.
| Спецификация | Стоимость |
|---|---|
| $0.053 / секунду |
| $0.11 / секунду |
Сценарии использования
Персонаж в уже снятом материале
При animation_mode, равном replace, человек в управляющем видео заменяется персонажем с вашего изображения, а материал сохраняет собственную сцену. Используйте это, когда локация уже есть на видео и сменить нужно только исполнителя.
Короткие лупы из одного листа персонажа
До 30 секунд хватает на луп для ленты, стикер или клип-реакцию. Оставьте одно изображение и меняйте управляющие видео, чтобы собрать библиотеку жестов — взмах рукой, поворот, пожатие плечами, — которые читаются как один и тот же персонаж, потому что у них общее референсное изображение.
Танцевальные и сценические номера
Изображение персонажа плюс управляющее видео с нужным номером: одежду и телосложение фиксирует изображение, а темп, вес и камера берутся из съёмки. Ограничение здесь — права: вам нужны права и на изображение, и на управляющее видео, и вы отвечаете за то, как используется результат.
Проверка изображения перед длинным рендером
Сделайте пятисекундный перенос в 480p, чтобы увидеть, сохраняет ли новое изображение персонажа лицо, руки и силуэт в движении. Это самый дешёвый способ отбраковать неудачное изображение, прежде чем тратить на него полноценную 30-секундную задачу.
Руководство по промптам и практические советы
Подготовьте изображение персонажа
Фигура в кадре целиком, нейтральная поза, однотонный фон, ровный свет. Это изображение определяет лицо, одежду и пропорции каждого клипа, который вы с ним сделаете, поэтому стоит сгенерировать и отбраковать несколько вариантов, прежде чем выбрать. Если на нём не удаётся найти лицо или человека, задача отклоняется с invalid_request. Опубликованное изображение создано по такому промпту: «Full-body studio photograph of an adult female dancer standing in a neutral A-pose against a seamless grey backdrop, wearing a cropped burgundy tank top and high-waisted wide-leg trousers, barefoot, hair tied back, even soft studio lighting, sharp full-length framing, clean reference plate for character animation.»
Обрежьте управляющее видео до нужных секунд
Длина результата равна длине исходника, который должен быть от 2 до 30 секунд, а платите вы за выданные секунды. Загрузите MP4 или передайте прямую ссылку на файл MP4 или MOV; веб-страница, которая лишь воспроизводит видео, файлом не является, и вызов завершится ошибкой с возвратом оплаты.
Промпт — для стиля, а не для внешности
prompt необязателен и вмещает до 2000 символов. Он задаёт стиль и содержание анимации, а внешность определяет изображение персонажа. Зафиксируйте seed, если хотите сравнить два прогона с одним и тем же управляющим видео.
Проверьте результат перед следующей итерацией
Оба входа обязательны и не взаимозаменяемы: внешность берётся из изображения, движение — из видео. В режиме animate окружение остаётся с изображения персонажа: в референсном прогоне управляющее видео снимали на кухне, а результат остался на сером студийном фоне изображения — перенеслись только движение и камера. Длинный исходник не сжимается, поэтому обрежьте его перед загрузкой.
Быстрый старт API
# 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/wan-2.2-animate/character-animation",
"input": {
"animation_mode": "animate",
"image_url": "https://example.com/reference.png",
"resolution": "720p",
"video_url": "https://example.com/reference.mp4"
}
}'
# 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"
Аутентификация, полная схема, опрос статуса и обработка ошибок описаны в справочнике API.




























