Введение
Wan 3.0 Prime Изображение в видео оживляет первый кадр на 2–30 секунд на рендере Prime, с теми же полями, что и Wan 3.0 Изображение в видео. image_url обязателен и становится ровно первым кадром; промпт необязателен и должен описывать только движение; last_image_url по желанию закрепляет последний кадр. Разрешение — 480p, 720p или 1080p, по умолчанию 720p, а звук генерируется вместе с изображением, если не поставить generate_audio в false.
Выберите режим по исходному материалу
| Исходный материал | Режим |
|---|---|
| Письменный бриф задаёт сцену, действие, камеру и при необходимости звук. | Wan 3.0 Prime Текст в видео |
| Утверждённое стартовое изображение задаёт объект и композицию, а инструкция направляет последующее движение. | Wan 3.0 Prime Изображение в видео |
| Отдельные референсы могут направлять идентичность, место, движение или звук, если каждому назначена ясная роль. | Wan 3.0 Prime Референсы в видео |
Ключевые возможности и особенности
Декорации и одежда — из кадра, действие — из промпта
Поскольку кадр уже задаёт образ, весь запрос можно сосредоточить на движении и звуке. Пример с сауной начинается со статичного кадра, где уже есть обстановка и наряд; промпт описывает ковш воды на горячих камнях, клубы пара, тыльную сторону запястья, проведённую по ключице, и звуковую строку с шипением, скрипом кедра и медленным дыханием.
Закреплённый финал делает долгие изменения надёжными
last_image_url заставляет клип закончиться ровно на переданном изображении. Пример с танцполом начинается на пустом полу и заканчивается переданным кадром заполненного зала — 10 секунд в 1080p и 3:4 без звука, — так что модель придумывает, как зал заполняется, а не чем он в итоге заполнен.
По умолчанию — форма самого кадра
Если не указывать aspect_ratio, клип сохраняет форму первого кадра; противоречащее значение обрежет его. Подходят JPEG, PNG без прозрачности, BMP или WEBP от 240 до 8000 пикселей по стороне, до 20 МБ и не шире 8:1. Для последнего кадра действуют те же ограничения.
Параметры запроса
| Параметр | Обязательно | Описание |
|---|---|---|
prompt | Нет | Необязателен: без него модель сама оживит открывающий кадр. Если пишете, опишите кадр: субъект, одно действие, одно движение камеры, затем свет и звук. Не менее 1 символов |
image_url | Да | Стартовый кадр: используется ровно как первый кадр и задаёт настоящий потолок качества всего плана. |
last_image_url | Нет | Необязательный, работает только вместе с |
aspect_ratio | Нет | 16:9, 9:16, 1:1, 4:3, 3:4 или adaptive, при котором выбирает модель. Не задавайте — унаследуется форма открывающего кадра; противоречащее значение обрежет её. |
enable_thinking | Нет | Заставляет модель продумать задание и референсы до генерации. Помогает с объёмными документами, веб-страницами и сложными референсными изображениями, но генерация идёт дольше. По умолчанию: |
resolution | Нет | 480p, 720p или 1080p, по умолчанию 720p. Разрешение меняет и цену, и время возврата задачи. |
duration_seconds | Нет | Любое целое от 2 до 30 или -1 — умная длительность, при которой длину выбирает модель: заранее резервируется максимум в 30 секунд, а списание идёт по фактически выданной длине. |
generate_audio | Нет | По умолчанию включён. Клип возвращается со звуком, уже сцепленным с картинкой. По умолчанию: |
enable_prompt_expansion | Нет | По умолчанию выключено. Во включённом виде описание переписывается перед генерацией: тонкому брифу это помогает, подробному — мешает. По умолчанию: |
seed | Нет | От 0 до 2147483647. Держите его неизменным, чтобы сравнивать по одному изменённому полю; уберите — получите разнообразие. |
Стоимость
| Спецификация | Стоимость |
|---|---|
| $0.0612 / секунду |
| $0.126 / секунду |
| $0.252 / секунду |
Сценарии использования
Быстрое действие из статичного кадра
Пример на пляже начинается с всадницы и просит, чтобы кентер перешёл в галоп, песок и мелкая вода взлетали из-под копыт, а быстрое параллельное движение камеры сопровождало её, пока она уносится к низкому солнцу. На такой скорости первый кадр уже не помогает, поэтому физику несёт промпт: что взлетает, в каком направлении и как камера успевает за ней.
Один жест с закреплённым финалом
Пример с балом-маскарадом закрепляет оба конца — переданные первый и последний кадры одной и той же женщины на одной и той же мраморной лестнице — и описывает выход между ними: она снимает золотую маску, подбирает платье и спускается на несколько ступеней к камере, пока гости в масках поднимают бокалы. Поскольку финальный кадр сделан из начального, платье, люстра и гости остаются на своих местах. Клип — 5 секунд в 720p, со звуком.
Руководство по промптам и практические советы
Сначала утвердите финальный кадр как статичный
Если важен финал, сделайте последний кадр до рендера — в тех же декорациях и в том же кадрировании, что и первый. Утвердить его как статичный кадр гораздо дешевле, чем перебирать длинную середину, и задача промпта превращается в описание перехода, а не в изобретение цели.
Записывайте звук списком источников
Промпт сауны заканчивается строкой «Audio:», где назван каждый источник. Это надёжнее слова-настроения и привязывает каждый звук к действию, которое его вызывает. Ставьте generate_audio в false, как в примере с танцполом, если музыку добавят при монтаже.
Закрепите коротко, потом удлиняйте
Прогоните движение на 5 секундах с фиксированным seed, затем удлиняйте. Чем длиннее клип, тем сильнее плывут внешность и геометрия, а быстрые перекрещивания рук и ног на 30 секундах — первое место, где появляются артефакты. Оставьте enable_prompt_expansion в значении по умолчанию false, чтобы точное описание движения не переписывалось перед генерацией.
Быстрый старт 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-3.0-prime/image-to-video",
"input": {
"duration_seconds": 5,
"image_url": "https://example.com/reference.png",
"prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
"resolution": "720p"
}
}'
# 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.



























