---
read_when:
    - Создание видео с помощью агента
    - Настройка провайдеров и моделей генерации видео
    - Понимание параметров инструмента video_generate
sidebarTitle: Video generation
summary: Создавайте видео с помощью video_generate по текстовым, графическим или видеоисточникам через 16 серверных частей провайдеров
title: Генерация видео
x-i18n:
    generated_at: "2026-07-13T18:45:00Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 24
    provider: openai
    source_hash: dd34232a3b1a340fcd7dd51a8c5517f976b2300d86a87b56b86a35102ac2d502
    source_path: tools/video-generation.md
    workflow: 16
---

Агенты OpenClaw создают видео по текстовым запросам, референсным изображениям или
существующим видео с помощью `video_generate`. Поддерживается шестнадцать серверных частей
провайдеров; агент автоматически выбирает подходящую на основе конфигурации и
доступных ключей API.

<Note>
`video_generate` отображается, только если доступен хотя бы один провайдер
генерации видео. Если этот инструмент отсутствует среди инструментов агента, задайте ключ API провайдера или
настройте `agents.defaults.videoGenerationModel`.
</Note>

У `video_generate` есть три режима выполнения, определяемые по референсным входным данным
в вызове:

- `generate` — без референсных медиафайлов (преобразование текста в видео).
- `imageToVideo` — одно или несколько референсных изображений.
- `videoToVideo` — одно или несколько референсных видео.

Провайдеры могут поддерживать любой набор этих режимов. Инструмент проверяет
активный режим перед отправкой и сообщает поддерживаемые режимы в `action=list`.

## Быстрый старт

<Steps>
  <Step title="Настройте аутентификацию">
    Задайте ключ API любого поддерживаемого провайдера:

    ```bash
    export GEMINI_API_KEY="your-key"
    ```

  </Step>
  <Step title="Выберите модель по умолчанию (необязательно)">
    ```bash
    openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
    ```
  </Step>
  <Step title="Обратитесь к агенту">
    > Создай 5-секундное кинематографичное видео, в котором дружелюбный лобстер занимается сёрфингом на закате.

    Агент автоматически вызывает `video_generate`. Добавлять инструмент в список разрешённых
    не требуется.

  </Step>
</Steps>

## Как работает асинхронная генерация

Генерация видео выполняется асинхронно:

1. OpenClaw отправляет запрос провайдеру и сразу возвращает идентификатор задачи.
2. Провайдер обрабатывает задачу в фоновом режиме (обычно от 30 секунд до нескольких минут в зависимости от провайдера и разрешения; медленные провайдеры с очередями могут работать до истечения настроенного времени ожидания).
3. Когда видео готово, OpenClaw возобновляет тот же сеанс с внутренним событием завершения.
4. Агент сообщает о результате через обычный режим видимых ответов сеанса:
   автоматический итоговый ответ или `message(action="send")`, если сеанс требует
   использования инструмента сообщений. Если сеанс инициатора неактивен либо его возобновление завершается сбоем и
   созданный медиафайл по-прежнему отсутствует в ответе о завершении, OpenClaw отправляет
   идемпотентный прямой резервный ответ с медиафайлом.

Пока задача выполняется, повторные вызовы `video_generate` в том же
сеансе возвращают текущий статус задачи вместо запуска новой
генерации. Используйте `action: "status"`, чтобы проверить статус без запуска новой
генерации, либо `openclaw tasks list` / `openclaw tasks show <lookup>` из
CLI (см. [Фоновые задачи](/ru/automation/tasks)).

Вне запусков агента с поддержкой сеансов (например, при прямых вызовах инструмента)
инструмент переключается на встроенную генерацию и возвращает конечный путь к медиафайлу
в том же ходе.

Если провайдер возвращает байты, созданные видеофайлы сохраняются в управляемом OpenClaw
хранилище медиафайлов. Ограничение по умолчанию составляет 16MB (общее ограничение для
видеофайлов); `agents.defaults.mediaMaxMb` повышает его для более крупных результатов. Если
провайдер также возвращает URL размещённого результата, OpenClaw доставляет этот URL вместо
завершения задачи с ошибкой, если локальное сохранение отклоняет слишком большой файл.

### Жизненный цикл задачи

| Состояние       | Значение                                                                                                |
| ----------- | ------------------------------------------------------------------------------------------------------ |
| `queued`    | Задача создана и ожидает принятия провайдером.                                                   |
| `running`   | Провайдер выполняет обработку (обычно от 30 секунд до нескольких минут в зависимости от провайдера и разрешения). |
| `succeeded` | Видео готово; агент возобновляет работу и публикует его в беседе.                                         |
| `failed`    | Ошибка провайдера или истечение времени ожидания; агент возобновляет работу с подробностями ошибки.                                         |

Проверьте статус из CLI:

```bash
openclaw tasks list
openclaw tasks show <lookup>
openclaw tasks cancel <lookup>
```

## Поддерживаемые провайдеры

| Провайдер              | Модель по умолчанию                   | Текст | Референсное изображение                                            | Референсное видео                                       | Аутентификация                                     |
| --------------------- | ------------------------------- | :--: | ---------------------------------------------------- | ----------------------------------------------- | ---------------------------------------- |
| Alibaba               | `wan2.6-t2v`                    |  ✓   | Да (удалённый URL)                                     | Да (удалённый URL)                                | `MODELSTUDIO_API_KEY`                    |
| BytePlus (1.0)        | `seedance-1-0-pro-250528`       |  ✓   | До 2 изображений (только модели I2V; первый и последний кадры) | -                                               | `BYTEPLUS_API_KEY`                       |
| BytePlus Seedance 1.5 | `seedance-1-5-pro-251215`       |  ✓   | До 2 изображений (первый и последний кадры через роль)         | -                                               | `BYTEPLUS_API_KEY`                       |
| BytePlus Seedance 2.0 | `dreamina-seedance-2-0-260128`  |  ✓   | До 9 референсных изображений                             | До 3 видео                                  | `BYTEPLUS_API_KEY`                       |
| ComfyUI               | `workflow`                      |  ✓   | 1 изображение                                              | -                                               | `COMFY_API_KEY` или `COMFY_CLOUD_API_KEY` |
| DeepInfra             | `Pixverse/Pixverse-T2V`         |  ✓   | -                                                    | -                                               | `DEEPINFRA_API_KEY`                      |
| fal                   | `fal-ai/minimax/video-01-live`  |  ✓   | 1 изображение; до 9 при преобразовании референса в видео с помощью Seedance    | До 3 видео при преобразовании референса в видео с помощью Seedance | `FAL_KEY`                                |
| Google                | `veo-3.1-fast-generate-preview` |  ✓   | 1 изображение                                              | 1 видео                                         | `GEMINI_API_KEY`                         |
| MiniMax               | `MiniMax-Hailuo-2.3`            |  ✓   | 1 изображение                                              | -                                               | `MINIMAX_API_KEY` или OAuth MiniMax       |
| OpenAI                | `sora-2`                        |  ✓   | 1 изображение                                              | 1 видео                                         | `OPENAI_API_KEY`                         |
| OpenRouter            | `google/veo-3.1-fast`           |  ✓   | До 4 изображений (первый/последний кадр или референсы)      | -                                               | `OPENROUTER_API_KEY`                     |
| Qwen                  | `wan2.6-t2v`                    |  ✓   | Да (удалённый URL)                                     | Да (удалённый URL)                                | `QWEN_API_KEY`                           |
| Runway                | `gen4.5`                        |  ✓   | 1 изображение                                              | 1 видео                                         | `RUNWAYML_API_SECRET`                    |
| Together              | `Wan-AI/Wan2.2-T2V-A14B`        |  ✓   | Только `Wan-AI/Wan2.2-I2V-A14B`                        | -                                               | `TOGETHER_API_KEY`                       |
| Vydra                 | `veo3`                          |  ✓   | 1 изображение (`kling`)                                    | -                                               | `VYDRA_API_KEY`                          |
| xAI                   | `grok-imagine-video`            |  ✓   | Classic: 1 первый кадр или 7 референсов; 1.5: 1 кадр | Classic: 1 видео                                | `XAI_API_KEY`                            |

Некоторые провайдеры принимают дополнительные или альтернативные переменные окружения
для ключей API. Подробности см. на отдельных [страницах провайдеров](#related).

Выполните `video_generate action=list`, чтобы проверить доступные провайдеры, модели и
режимы выполнения во время работы.

### Матрица возможностей

Явный контракт режимов, используемый `video_generate`, контрактными тестами и
общей проверкой в реальной среде:

| Провайдер   | `generate` | `imageToVideo` | `videoToVideo` | Общие текущие проверки в реальной среде                                                                                                                 |
| ---------- | :--------: | :------------: | :------------: | --------------------------------------------------------------------------------------------------------------------------------------- |
| Alibaba    |     ✓      |       ✓        |       ✓        | `generate`, `imageToVideo`; `videoToVideo` пропущен, поскольку этому провайдеру требуются удалённые URL видео `http(s)`                              |
| BytePlus   |     ✓      |       ✓        |       -        | `generate`, `imageToVideo`                                                                                                              |
| ComfyUI    |     ✓      |       ✓        |       -        | Не входит в общую проверку; проверка конкретных рабочих процессов выполняется тестами Comfy                                                              |
| DeepInfra  |     ✓      |       -        |       -        | `generate`; нативные схемы видео DeepInfra в контракте плагина предназначены для преобразования текста в видео                                                     |
| fal        |     ✓      |       ✓        |       ✓        | `generate`, `imageToVideo`; `videoToVideo` — только при преобразовании референса в видео с помощью Seedance                                                  |
| Google     |     ✓      |       ✓        |       ✓        | `generate`, `imageToVideo`; общий `videoToVideo` пропущен, поскольку текущая проверка Gemini/Veo с входными данными в буфере не принимает такие данные |
| MiniMax    |     ✓      |       ✓        |       -        | `generate`, `imageToVideo`                                                                                                              |
| OpenAI     |     ✓      |       ✓        |       ✓        | `generate`, `imageToVideo`; общий `videoToVideo` пропущен, поскольку этому пути организации/входных данных сейчас требуется доступ провайдера к редактированию видео   |
| OpenRouter |     ✓      |       ✓        |       -        | `generate`, `imageToVideo`                                                                                                              |
| Qwen       |     ✓      |       ✓        |       ✓        | `generate`, `imageToVideo`; `videoToVideo` пропущен, поскольку этому провайдеру требуются удалённые URL видео `http(s)`                              |
| Runway     |     ✓      |       ✓        |       ✓        | `generate`, `imageToVideo`; `videoToVideo` выполняется, только если выбрана модель `runway/gen4_aleph`                                     |
| Together   |     ✓      |       ✓        |       -        | `generate`, `imageToVideo`                                                                                                              |
| Vydra      |     ✓      |       ✓        |       -        | `generate`; общий `imageToVideo` пропущен, поскольку встроенный `veo3` поддерживает только текст, а встроенному `kling` требуется удалённый URL изображения           |
| xAI        |     ✓      |       ✓        |       ✓        | Classic поддерживает все режимы; Video 1.5 поддерживает только преобразование изображения в видео; удалённый входной файл MP4 исключает `videoToVideo` из общей проверки             |

## Параметры инструмента

### Обязательные

<ParamField path="prompt" type="string" required>
  Текстовое описание видео, которое нужно создать. Обязательно для `action: "generate"`.
</ParamField>

### Входные данные контента

<ParamField path="image" type="string">Одно референсное изображение (путь или URL).</ParamField>
<ParamField path="images" type="string[]">Несколько референсных изображений (до 9).</ParamField>
<ParamField path="imageRoles" type="string[]">
Необязательные подсказки ролей для каждой позиции, соответствующие объединённому списку изображений.
Канонические значения: `first_frame`, `last_frame`, `reference_image`.
</ParamField>
<ParamField path="video" type="string">Одно референсное видео (путь или URL).</ParamField>
<ParamField path="videos" type="string[]">Несколько референсных видео (до 4).</ParamField>
<ParamField path="videoRoles" type="string[]">
Необязательные подсказки ролей для каждой позиции, соответствующие объединённому списку видео.
Каноническое значение: `reference_video`.
</ParamField>
<ParamField path="audioRef" type="string">
Одна референсная аудиозапись (путь или URL). Используется для фоновой музыки или
в качестве голосового референса, если провайдер поддерживает входные аудиоданные.
</ParamField>
<ParamField path="audioRefs" type="string[]">Несколько референсных аудиозаписей (до 3).</ParamField>
<ParamField path="audioRoles" type="string[]">
Необязательные подсказки ролей для каждой позиции, соответствующие объединённому списку аудиозаписей.
Каноническое значение: `reference_audio`.
</ParamField>

<Note>
Подсказки ролей передаются провайдеру без изменений. Канонические значения берутся из
объединения `VideoGenerationAssetRole`, но провайдеры могут принимать дополнительные
строки ролей. Массивы `*Roles` не должны содержать больше элементов, чем
соответствующий список референсов; ошибки смещения на единицу завершаются с понятным сообщением об ошибке.
Используйте пустую строку, чтобы оставить позицию незаданной. Для xAI задайте для каждого изображения роль
`reference_image`, чтобы использовать режим генерации `reference_images`; не указывайте
роль или используйте `first_frame` для преобразования одного изображения в видео.
</Note>

### Управление стилем

<ParamField path="aspectRatio" type="string">
  Подсказка соотношения сторон, например `1:1`, `16:9`, `9:16`, `adaptive` или значение, специфичное для провайдера. OpenClaw нормализует или игнорирует неподдерживаемые значения в зависимости от провайдера.
</ParamField>
<ParamField path="resolution" type="string">Подсказка разрешения, например `360P`, `480P`, `540P`, `720P`, `768P`, `1080P`, `4K` или значение, специфичное для провайдера. OpenClaw нормализует или игнорирует неподдерживаемые значения в зависимости от провайдера.</ParamField>
<ParamField path="durationSeconds" type="number">
  Целевая длительность в секундах (округляется до ближайшего значения, поддерживаемого провайдером).
</ParamField>
<ParamField path="size" type="string">Подсказка размера, если провайдер её поддерживает.</ParamField>
<ParamField path="audio" type="boolean">
  Включает генерируемый звук в выходных данных, если это поддерживается. Не следует путать с `audioRef*` (входные данные).
</ParamField>
<ParamField path="watermark" type="boolean">Включает или отключает водяной знак провайдера, если это поддерживается.</ParamField>

`adaptive` — специальное значение, специфичное для провайдера: оно передаётся без изменений
провайдерам, которые объявляют `adaptive` в своих возможностях (например, BytePlus
Seedance использует его для автоматического определения соотношения сторон по размерам
входного изображения). Провайдеры, которые его не объявляют, отображают это значение через
`details.ignoredOverrides` в результате инструмента, чтобы отбрасывание было заметно.

### Расширенные параметры

<ParamField path="action" type='"generate" | "status" | "list"' default="generate">
  `"status"` возвращает текущую задачу сеанса; `"list"` проверяет провайдеров.
</ParamField>
<ParamField path="model" type="string">Переопределение провайдера/модели (например, `runway/gen4.5`).</ParamField>
<ParamField path="filename" type="string">Подсказка имени выходного файла.</ParamField>
<ParamField path="timeoutMs" type="number">Необязательный тайм-аут операции провайдера в миллисекундах. Если он не указан, OpenClaw использует `agents.defaults.videoGenerationModel.timeoutMs`, если этот параметр настроен; в противном случае используется заданное автором плагина значение провайдера по умолчанию, если оно существует.</ParamField>
<ParamField path="providerOptions" type="object">
  Специфичные для провайдера параметры в виде объекта JSON (например, `{"seed": 42, "draft": true}`).
  Провайдеры, объявляющие типизированную схему, проверяют ключи и типы; неизвестные
  ключи или несоответствия приводят к пропуску кандидата при резервном переключении. Провайдеры без
  объявленной схемы получают параметры без изменений. Выполните `video_generate action=list`,
  чтобы узнать, что принимает каждый провайдер.
</ParamField>

<Note>
Не все провайдеры поддерживают все параметры. OpenClaw нормализует длительность до
ближайшего значения, поддерживаемого провайдером, и преобразует подсказки геометрии,
например размер в соотношение сторон, если резервный провайдер предоставляет другой
набор элементов управления. Полностью неподдерживаемые переопределения по возможности
игнорируются и сообщаются как предупреждения в результате инструмента. Жёсткие ограничения
возможностей (например, слишком большое количество референсных входных данных) приводят к ошибке до отправки.
В результатах инструмента указываются применённые настройки; `details.normalization` содержит все
преобразования запрошенных значений в применённые.
</Note>

Референсные входные данные определяют режим выполнения:

- Нет референсных медиафайлов -> `generate`
- Есть референсное изображение -> `imageToVideo`
- Есть референсное видео -> `videoToVideo`
- Референсные входные аудиоданные **не** изменяют определённый режим; они применяются
  поверх режима, выбранного референсными изображениями/видео, и работают только
  с провайдерами, которые объявляют `maxInputAudios`.

Смешивание референсных изображений и видео не является стабильной общей возможностью.
Предпочтительно использовать один тип референсов на запрос.

#### Резервное переключение и типизированные параметры

Некоторые проверки возможностей выполняются на уровне резервного переключения, а не на границе
инструмента, поэтому запрос, превышающий ограничения основного провайдера, всё ещё может
быть выполнен подходящим резервным провайдером:

- Активный кандидат, не объявляющий `maxInputAudios` (или `0`), пропускается, если
  запрос содержит аудиореференсы; затем проверяется следующий кандидат. Та же
  проверка применяется к количеству референсных изображений и видео относительно
  `maxInputImages`/`maxInputVideos`.
- Если `maxDurationSeconds` активного кандидата меньше запрошенного `durationSeconds`
  и список `supportedDurationSeconds` не объявлен, кандидат пропускается.
- Если запрос содержит `providerOptions`, а активный кандидат явно
  объявляет типизированную схему `providerOptions`, кандидат пропускается, если переданные ключи
  отсутствуют в схеме или типы значений не совпадают. Провайдеры без
  объявленной схемы получают параметры без изменений (обратно совместимая
  сквозная передача). Провайдер может полностью отказаться от параметров провайдера,
  объявив пустую схему (`capabilities.providerOptions: {}`), что
  приводит к такому же пропуску, как при несоответствии типов.

Первая причина пропуска в запросе записывается в журнал на уровне `warn`, чтобы операторы видели,
когда основной провайдер был пропущен; последующие пропуски записываются на уровне `debug`, чтобы
не перегружать журнал при длинных цепочках резервного переключения. Если пропущены все кандидаты,
сводная ошибка включает причину пропуска каждого из них.

## Действия

| Действие     | Что оно делает                                                                                             |
| ---------- | -------------------------------------------------------------------------------------------------------- |
| `generate` | По умолчанию. Создаёт видео по заданному описанию и необязательным референсным входным данным.                             |
| `status`   | Проверяет состояние выполняемой задачи создания видео для текущего сеанса, не запуская новую генерацию. |
| `list`     | Показывает доступных провайдеров, модели и их возможности.                                                |

## Выбор модели

OpenClaw определяет модель в следующем порядке:

1. **Параметр инструмента `model`** — если агент указывает его в вызове.
2. **`videoGenerationModel.primary`** из конфигурации.
3. **`videoGenerationModel.fallbacks`** по порядку.
4. **Автоматическое определение** — провайдеры с действительными данными аутентификации, начиная с
   текущего провайдера по умолчанию, а затем остальные провайдеры в алфавитном
   порядке.

Если провайдер завершается с ошибкой, автоматически выполняется попытка со следующим кандидатом. Если ошибки
возникают у всех кандидатов, сообщение об ошибке содержит сведения о каждой попытке.

Задайте `agents.defaults.mediaGenerationAutoProviderFallback: false`, чтобы использовать
только явно указанные записи `model`, `primary` и `fallbacks`.

```json5
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "google/veo-3.1-fast-generate-preview",
        fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
        timeoutMs: 180000, // необязательное переопределение тайм-аута запроса провайдера для отдельного инструмента
      },
    },
  },
}
```

## Примечания о провайдерах

<AccordionGroup>
  <Accordion title="Alibaba">
    Использует асинхронную конечную точку DashScope / Model Studio. Референсные изображения и
    видео должны быть удалёнными URL-адресами `http(s)`.
  </Accordion>
  <Accordion title="BytePlus (1.0)">
    Идентификатор провайдера: `byteplus`.

    Модели: `seedance-1-0-pro-250528` (по умолчанию),
    `seedance-1-0-pro-t2v-250528`, `seedance-1-0-pro-fast-251015`,
    `seedance-1-0-lite-t2v-250428`, `seedance-1-0-lite-i2v-250428`.

    Модели T2V (`*-t2v-*`) не принимают входные изображения; модели I2V и
    универсальные модели `*-pro-*` поддерживают одно референсное изображение (первый
    кадр). Передайте изображение позиционно или задайте `role: "first_frame"`.
    При передаче изображения идентификаторы моделей T2V автоматически заменяются
    соответствующим вариантом I2V.

    Поддерживаемые ключи `providerOptions`: `seed` (число), `draft` (логическое значение —
    принудительно устанавливает 480p), `camera_fixed` (логическое значение).

  </Accordion>
  <Accordion title="BytePlus Seedance 1.5">
    Требуется плагин [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark)
    (внешний, не входит в комплект). Идентификатор провайдера: `byteplus-seedance15`. Модель:
    `seedance-1-5-pro-251215`.

    Использует унифицированный API `content[]`. Поддерживает не более 2 входных изображений
    (`first_frame` + `last_frame`). Все входные данные должны быть удалёнными URL-адресами `https://`.
    Задайте `role: "first_frame"` / `"last_frame"` для каждого изображения или
    передайте изображения позиционно.

    `aspectRatio: "adaptive"` автоматически определяет соотношение сторон по входному изображению.
    `audio: true` сопоставляется с `generate_audio`. `providerOptions.seed`
    (число) передаётся без изменений.

  </Accordion>
  <Accordion title="BytePlus Seedance 2.0">
    Требуется плагин [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark)
    (внешний, не входит в комплект). Идентификатор провайдера: `byteplus-seedance2`. Модели:
    `dreamina-seedance-2-0-260128`,
    `dreamina-seedance-2-0-fast-260128`.

    Использует унифицированный API `content[]`. Поддерживает до 9 референсных изображений,
    3 референсных видео и 3 референсных аудиозаписей. Все входные данные должны быть удалёнными
    URL-адресами `https://`. Задайте `role` для каждого ресурса — поддерживаемые значения:
    `"first_frame"`, `"last_frame"`, `"reference_image"`,
    `"reference_video"`, `"reference_audio"`.

    `aspectRatio: "adaptive"` автоматически определяет соотношение сторон по входному изображению.
    `audio: true` сопоставляется с `generate_audio`. `providerOptions.seed`
    (число) передаётся без изменений.

  </Accordion>
  <Accordion title="ComfyUI">
    Локальное или облачное выполнение на основе рабочих процессов. Поддерживает
    преобразование текста в видео и изображения в видео через настроенный граф.
  </Accordion>
  <Accordion title="fal">
    Использует поток с очередью для длительных задач. По умолчанию OpenClaw ожидает до 20
    минут, прежде чем считать выполняющуюся задачу в очереди fal
    просроченной. Большинство видеомоделей fal
    принимают одну ссылку на изображение. Модели Seedance 2.0 для преобразования
    референсов в видео принимают до 9 изображений, 3 видео и 3 аудиореференсов,
    но не более 12 файлов референсов суммарно.
  </Accordion>
  <Accordion title="Google (Gemini / Veo)">
    Поддерживает один референс в виде изображения или видео. Запросы на создание аудио
    игнорируются с предупреждением при использовании пути Gemini API, поскольку этот API отклоняет
    параметр `generateAudio` для текущей генерации видео Veo.
  </Accordion>
  <Accordion title="MiniMax">
    Только один референс в виде изображения. MiniMax принимает разрешения `768P` и `1080P`;
    запросы, например `720P`, перед отправкой нормализуются до ближайшего
    поддерживаемого значения.
  </Accordion>
  <Accordion title="OpenAI">
    Передаётся только переопределение `size`. Другие переопределения стиля
    (`aspectRatio`, `resolution`, `audio`, `watermark`) игнорируются
    с предупреждением.
  </Accordion>
  <Accordion title="OpenRouter">
    Использует асинхронный API `/videos` от OpenRouter. OpenClaw отправляет
    задачу, опрашивает `polling_url` и загружает либо `unsigned_urls`, либо содержимое
    задачи через документированную конечную точку. Встроенное значение по умолчанию `google/veo-3.1-fast`
    заявляет длительности 4/6/8 секунд, разрешения `720P`/`1080P` и
    соотношения сторон `16:9`/`9:16`.
  </Accordion>
  <Accordion title="Qwen">
    Использует тот же бэкенд DashScope, что и Alibaba. Входные референсы должны быть удалёнными
    URL-адресами `http(s)`; локальные файлы отклоняются заранее.
  </Accordion>
  <Accordion title="Runway">
    Поддерживает локальные файлы через URI данных. Для преобразования видео в видео требуется
    `runway/gen4_aleph`. При запусках только с текстом доступны соотношения сторон `16:9` и `9:16`.
  </Accordion>
  <Accordion title="Together">
    Только один референс в виде изображения.
  </Accordion>
  <Accordion title="Vydra">
    Использует `https://www.vydra.ai/api/v1` напрямую, чтобы избежать перенаправлений,
    при которых теряются данные аутентификации. `veo3` встроена только для преобразования текста в видео; для `kling`
    требуется удалённый URL-адрес изображения.
  </Accordion>
  <Accordion title="xAI">
    Модель `grok-imagine-video` по умолчанию поддерживает преобразование текста в видео,
    одного изображения первого кадра в видео, до 7 входных данных `reference_image` через
    `reference_images` xAI, а также удалённое редактирование и расширение видео. При генерации по умолчанию
    используется `480P`; при преобразовании одного изображения в видео наследуется соотношение сторон исходника,
    если `aspectRatio` не указан. При редактировании и расширении видео наследуется геометрия входного файла,
    а переопределения соотношения сторон и разрешения не принимаются. Расширение принимает 2-10
    секунд.

    `grok-imagine-video-1.5` предназначена только для преобразования изображения в видео: укажите ровно одно изображение.
    Она поддерживает 1-15 секунд и `480P`, `720P` или `1080P`, по умолчанию
    используется `480P`; не указывайте `aspectRatio`, чтобы унаследовать соотношение сторон исходного изображения. Предварительный
    и датированные идентификаторы 1.5 проходят ту же проверку и передаются
    без изменений.

  </Accordion>
</AccordionGroup>

## Режимы возможностей провайдеров

Общий контракт генерации видео поддерживает возможности для отдельных режимов,
а не только общие совокупные ограничения. В новых реализациях провайдеров
предпочтительно использовать явные блоки режимов:

```typescript
capabilities: {
  generate: {
    maxVideos: 1,
    maxDurationSeconds: 10,
    supportsResolution: true,
  },
  imageToVideo: {
    enabled: true,
    maxVideos: 1,
    maxInputImages: 1,
    maxInputImagesByModel: { "provider/reference-to-video": 9 },
    maxDurationSeconds: 5,
  },
  videoToVideo: {
    enabled: true,
    maxVideos: 1,
    maxInputVideos: 1,
    maxDurationSeconds: 5,
  },
}
```

Плоских совокупных полей, таких как `maxInputImages` и `maxInputVideos`,
**недостаточно** для объявления поддержки режимов преобразования. Провайдеры должны
явно объявлять `generate`, `imageToVideo` и `videoToVideo`, чтобы тесты
в реальной среде, контрактные тесты и общий инструмент `video_generate` могли
детерминированно проверять поддержку режимов.

Если одна модель провайдера поддерживает больше входных референсов, чем
остальные, используйте `maxInputImagesByModel`, `maxInputVideosByModel` или
`maxInputAudiosByModel` вместо увеличения ограничения для всего режима.

## Тесты в реальной среде

Опциональное тестирование в реальной среде для общих встроенных провайдеров:

```bash
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
```

Обёртка репозитория:

```bash
pnpm test:live:media video
```

По умолчанию этот файл тестов в реальной среде использует уже экспортированные переменные окружения провайдеров
с приоритетом перед сохранёнными профилями аутентификации и выполняет безопасную для выпуска дымовую проверку:

- `generate` для каждого провайдера в проверке, кроме FAL.
- Односекундный запрос с лобстером.
- Ограничение числа операций для каждого провайдера из
  `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (по умолчанию `180000`).

FAL включается отдельно, поскольку задержка очереди на стороне провайдера может занимать
основную часть времени выпуска:

```bash
pnpm test:live:media video --video-providers fal
```

Установите `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1`, чтобы также запускать объявленные
режимы преобразования, которые общая проверка может безопасно тестировать с локальными медиафайлами:

- `imageToVideo`, когда `capabilities.imageToVideo.enabled`.
- `videoToVideo`, когда `capabilities.videoToVideo.enabled` и
  провайдер или модель принимает в общей проверке локальный видеофайл на основе буфера.

На данный момент общий тестовый маршрут `videoToVideo` в реальной среде охватывает `runway`, только если
выбрано `runway/gen4_aleph`.

## Конфигурация

Укажите модель генерации видео по умолчанию в конфигурации OpenClaw:

```json5
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "qwen/wan2.6-t2v",
        fallbacks: ["qwen/wan2.6-r2v-flash"],
      },
    },
  },
}
```

Или через CLI:

```bash
openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2v"
```

## Связанные материалы

- [Alibaba Model Studio](/ru/providers/alibaba)
- [Фоновые задачи](/ru/automation/tasks) — отслеживание задач асинхронной генерации видео
- [BytePlus](/ru/concepts/model-providers#byteplus-international)
- [ComfyUI](/ru/providers/comfy)
- [Справочник по конфигурации](/ru/gateway/config-agents#agent-defaults)
- [fal](/ru/providers/fal)
- [Google (Gemini)](/ru/providers/google)
- [MiniMax](/ru/providers/minimax)
- [Модели](/ru/concepts/models)
- [OpenAI](/ru/providers/openai)
- [Qwen](/ru/providers/qwen)
- [Runway](/ru/providers/runway)
- [Together AI](/ru/providers/together)
- [Обзор инструментов](/ru/tools)
- [Vydra](/ru/providers/vydra)
- [xAI](/ru/providers/xai)
