Wan Video API
Спецификация вызова wan3.0-video и wan3.0-video-prime.
На этой странице описан вызов видеомоделей Wan от Alibaba — wan3.0-video и wan3.0-video-prime. Как и другие видеомодели, они создаются через POST /v1/videos и опрашиваются через GET /v1/videos/{id}; аутентификация, загрузка материалов, статусы опроса, скачивание результатов и обработка ошибок описаны в полной спецификации Video API. Здесь приведены только поля и правила, специфичные для Wan. Wan также можно вызывать через POST /v1/responses — см. раздел «Вызов через Responses API» ниже.
Обновлено 2026-10-12. Прежние
wan3.0-video-480p,wan3.0-video-720pиwan3.0-video-1080pобъединены вwan3.0-video, разрешение выбирается черезresolution. Первый и последний кадр и референсные материалы рекомендуется передавать в массивеmediaверхнего уровня (first_frame,last_frame,reference_imageи т. д.). Также принимаютсяmetadata.firstFrame,metadata.lastFrame,metadata.referenceImages,metadata.referenceVideosиmetadata.referenceAudios(и формы с подчёркиванием, напримерmetadata.first_frame), а такжеfirstFrame/first_frameиlastFrame/last_frameверхнего уровня — они преобразуются вmedia, но вместе сmediaих передавать нельзя. Нераспознанные поля материалов возвращают ошибку 400. Wan поддерживает только опрос; не указывайтеcallback_url.
Модели
| Модель | Разрешение | Длительность | Соотношение сторон | Лимит референсных материалов |
|---|---|---|---|---|
wan3.0-video | 480P / 720P / 1080P, по умолчанию 1080P | -1 или 2–30 с, по умолчанию 5 с | adaptive 16:9 9:16 1:1 4:3 3:4 21:9, по умолчанию adaptive | 10 изображений / 5 видео / 5 аудио |
wan3.0-video-prime | То же | То же | То же | То же |
Возможности моделей совпадают: правила разрешения, длительности, соотношения сторон, первого и последнего кадра и мультимодальных референсов одинаковы, параметры запроса общие, и для переключения достаточно сменить model. Различие — в скорости генерации: wan3.0-video-prime — скоростная версия, полный цикл генерации заметно быстрее; она подходит, когда готовое видео нужно как можно скорее. wan3.0-video — стандартная версия, её достаточно, если время ожидания не критично.
Общие правила
- Разрешение:
resolutionверхнего уровня принимает480p,720pили1080p(без учёта регистра); по умолчанию 1080P. Можно также указать размер в пикселях черезsize(например,1280x720,1920x1080) — он задаёт одновременно разрешение и соотношение сторон; вsizeможно также указать соотношение сторон (например,"size": "9:16"), а значение, не совпадающее сratio/aspect_ratio, вернёт 400. - Длительность: целое число секунд в
duration(илиseconds);-1— модель сама определяет длительность. - Соотношение сторон: используйте
ratio(или равнозначныйaspect_ratio); если значения расходятся, вернётся 400.adaptiveподстраивается под входные материалы. - Промпт: при наличии первого кадра или референсных материалов
promptможно опустить, но рекомендуется описать движение и камеру; если нет ни того, ни другого, вернётся 400. - Необязательные поля:
negative_prompt: негативный промпт;prompt_extend: автоматическое переписывание промпта, boolean, по умолчаниюtrue;watermark: добавлять ли водяной знак, boolean;seed: целое число от -1 до 2147483647.
{
"model": "wan3.0-video",
"prompt": "Серебристый спорткар в дождливом ночном городе, съёмка с низкой точки в движении, отражения неона, кинематографично",
"duration": 10,
"resolution": "1080p",
"ratio": "16:9"
}Первый кадр и первый/последний кадр
Первый и последний кадр передавайте в массиве media: first_frame — первый кадр, last_frame — последний (последний кадр требует первого). Референсные изображения тоже передаются в media (reference_image), см. следующий раздел.
{
"model": "wan3.0-video-prime",
"prompt": "Плавный переход от пустой площади ранним утром к той же композиции ночью, когда зажигаются огни",
"duration": 8,
"resolution": "720p",
"media": [
{ "type": "first_frame", "url": "https://cdn.example.com/start.jpg" },
{ "type": "last_frame", "url": "https://cdn.example.com/end.jpg" }
]
}Как передавать поля материалов
Рекомендуется media. Также работают images / image верхнего уровня (1-е — первый кадр, 2-е — последний), metadata.firstFrame (или metadata.first_frame) и firstFrame / first_frame верхнего уровня. Нераспознанные поля материалов (например, metadata.image или metadata.images) возвращают 400 с подсказкой использовать media; один и тот же материал под разными именами с разными URL тоже возвращает 400.
Мультимодальные референсы: массив media
Референсные изображения, видео и аудио передаются в массиве media верхнего уровня; каждый элемент имеет вид { "type": "...", "url": "..." }:
type | Назначение | Лимит |
|---|---|---|
first_frame | Первый кадр | 1 |
last_frame | Последний кадр, требует first_frame | 1 |
reference_image | Референсное изображение | 10 |
reference_video | Референсное видео | 5 |
reference_audio | Референсное аудио | 5 |
- Первый и последний кадр нельзя сочетать с референсными изображениями, видео или аудио.
- Если передан
media, читается толькоmedia; если вimages,imageи подобных полях есть материалы, которых нет вmedia, вернётся 400. Первый и последний кадр тоже передавайте вmedia. - URL материалов должны быть доступны анонимно — см. Требования к URL медиафайлов. Для локальных файлов сначала получите URL, как описано в разделе Загрузка локальных файлов. Wan не поддерживает загрузку файлов через
multipart/form-data.
{
"model": "wan3.0-video",
"prompt": "Человек с изображения танцует в ритме референсного аудио, в стиле движений из референсного видео",
"duration": 10,
"resolution": "720p",
"ratio": "9:16",
"media": [
{ "type": "reference_image", "url": "https://cdn.example.com/dancer.jpg" },
{ "type": "reference_video", "url": "https://cdn.example.com/dance-motion.mp4" },
{ "type": "reference_audio", "url": "https://cdn.example.com/music.mp3" }
]
}Вызов через Responses API
Обе модели можно вызывать и через POST /v1/responses — это удобно для клиентов и сценариев, которые умеют работать только с Responses API. Создаётся та же видеозадача, что и через /v1/videos, с теми же правилами параметров и той же оплатой.
- Промпт передаётся в
input: строкой или массивом сообщений. Частиinput_textстановятся промптом, частиinput_image— изображениями по тому же правилу, что иimagesна верхнем уровне (1-е изображение — первый кадр, 2-е — последний кадр). - Остальные параметры (
resolution,duration,ratio,media,negative_promptи т. д.) указываются на верхнем уровне запроса так же, как описано выше. - Получить результат можно тремя способами:
| Режим | Как указать | Пояснение |
|---|---|---|
| Синхронное ожидание | Не передавать stream и background | Соединение держится до готовности видео, результат возвращается сразу; ожидание — до 10 минут. При превышении вернётся "status": "incomplete"; задача продолжает выполняться, запросите её по полученному id |
| В фоне | "background": true | Сразу возвращает id (статус queued или in_progress); затем опрашивайте GET /v1/responses/{id}, пока status не станет completed или failed |
| Потоковый | "stream": true | События SSE: response.created, response.in_progress (с прогрессом), при успехе — response.output_text.done и response.completed, при ошибке — response.failed |
{
"model": "wan3.0-video-prime",
"input": "Серебристый спорткар в ночном дождливом городе, съёмка с низкой точки в движении, неоновые отражения, кинематографично",
"duration": 5,
"resolution": "720p",
"ratio": "16:9",
"background": true
}Когда видео готово, его адрес находится в output[0].content[0].text в виде <video controls src="адрес видео"></video>; возьмите значение src, чтобы скачать файл:
{
"id": "resp_BVQwZLWyXB2dEU99F7nrER7XNJdVh8RS",
"object": "response",
"model": "wan3.0-video-prime",
"status": "completed",
"output": [
{
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{ "type": "output_text", "text": "<video controls src=\"https://...\"></video>" }
]
}
],
"metadata": {
"task_id": "task_BVQwZLWyXB2dEU99F7nrER7XNJdVh8RS",
"task_status": "completed"
}
}metadata.task_id — номер соответствующей видеозадачи; ту же задачу можно запросить через GET /v1/videos/{task_id}.
Чат-эндпоинты не генерируют видео
/v1/responses поддерживает только Wan. /v1/chat/completions, /v1/messages и эндпоинты изображений не могут вызывать видеомодели и возвращают 400 video_model_wrong_endpoint.
Оплата
wan3.0-video и wan3.0-video-prime — официальные версии; URL результата официальный. Оплата следует официальному правилу:
Оплачиваемая длительность = длительность входного видео + длительность выходного видео
- Длительность входа: фактические секунды референсного видео; 0, если его нет.
- Длительность выхода: секунды успешно сгенерированного видео.
- Цена за секунду берётся по разрешению выхода (480P / 720P / 1080P). Вход и выход используют одну и ту же ступень.
- Референсные изображения, аудио, файлы и веб-страницы в длительность не входят.
- При референсном видео или
duration-1при создании резервируются 30 секунд; после завершения сумма пересчитывается по секундам «вход + выход», возвращённым платформой модели, а разница возвращается.
Цены за секунду смотрите на витрине моделей. Не оценивайте задачу с референсным видео только по секундам выхода.