88API88API
Руководство пользователяAI-приложенияAPIПомощь и поддержка
Видео (Video)

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-video480P / 720P / 1080P, по умолчанию 1080P-1 или 2–30 с, по умолчанию 5 сadaptive 16:9 9:16 1:1 4:3 3:4 21:9, по умолчанию adaptive10 изображений / 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_frame1
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 секунд; после завершения сумма пересчитывается по секундам «вход + выход», возвращённым платформой модели, а разница возвращается.

Цены за секунду смотрите на витрине моделей. Не оценивайте задачу с референсным видео только по секундам выхода.