> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Генерация видео

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

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

OpenClaw рассматривает генерацию видео как три режима выполнения:

* `generate` - запросы text-to-video без референсных медиа.
* `imageToVideo` - запрос включает одно или несколько референсных изображений.
* `videoToVideo` - запрос включает одно или несколько референсных видео.

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

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

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

    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    export GEMINI_API_KEY="your-key"
    ```
  </Step>

  <Step title="Выберите модель по умолчанию (необязательно)">
    ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
    openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
    ```
  </Step>

  <Step title="Попросите агента">
    > Сгенерируй 5-секундное кинематографичное видео, где дружелюбный лобстер занимается серфингом на закате.

    Агент автоматически вызывает `video_generate`. Вносить инструмент в список разрешенных
    не требуется.
  </Step>
</Steps>

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

Генерация видео выполняется асинхронно. Когда агент вызывает `video_generate` в
сессии:

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

Пока задание выполняется, повторные вызовы `video_generate` в той же
сессии возвращают текущий статус задачи вместо запуска еще одной
генерации. Используйте `openclaw tasks list` или `openclaw tasks show <taskId>`, чтобы
проверить прогресс из CLI.

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

Сгенерированные видеофайлы сохраняются в управляемом OpenClaw хранилище медиа, когда
провайдер возвращает байты. Лимит сохранения сгенерированного видео по умолчанию следует
лимиту видеомедиа, а `agents.defaults.mediaMaxMb` повышает его для
более крупных рендеров. Когда провайдер также возвращает размещенный URL результата, OpenClaw
может доставить этот URL вместо сбоя задачи, если локальное сохранение
отклоняет слишком большой файл.

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

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

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

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
```

Если видеозадача для текущей сессии уже находится в состоянии `queued` или `running`,
`video_generate` возвращает существующий статус задачи вместо запуска новой.
Используйте `action: "status"`, чтобы выполнить явную проверку без запуска новой
генерации.

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

| Провайдер             | Модель по умолчанию             | Текст | Реф. изображение                                                  | Реф. видео                                               | Аутентификация                            |
| --------------------- | ------------------------------- | :---: | ----------------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------------- |
| 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` или MiniMax OAuth       |
| 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`            |   ✓   | 1 изображение первого кадра или до 7 `reference_image`            | 1 видео                                                  | `XAI_API_KEY`                             |

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

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

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

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

| Провайдер  | `generate` | `imageToVideo` | `videoToVideo` | Общие текущие проверки                                                                                                                                                  |
| ---------- | :--------: | :------------: | :------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Alibaba    |      ✓     |        ✓       |        ✓       | `generate`, `imageToVideo`; `videoToVideo` пропускается, потому что этому провайдеру нужны удаленные URL видео `http(s)`                                                |
| BytePlus   |      ✓     |        ✓       |        -       | `generate`, `imageToVideo`                                                                                                                                              |
| ComfyUI    |      ✓     |        ✓       |        -       | Не входит в общую проверку; покрытие для конкретных workflow находится в тестах Comfy                                                                                   |
| DeepInfra  |      ✓     |        -       |        -       | `generate`; нативные схемы видео DeepInfra являются text-to-video в контракте Plugin                                                                                    |
| 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        |      ✓     |        ✓       |        ✓       | `generate`, `imageToVideo`; `videoToVideo` пропускается, потому что этому провайдеру сейчас нужен удаленный URL MP4                                                     |

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

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

<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>
  Подсказки ролей передаются провайдеру как есть. Канонические значения берутся из
  union `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">Подсказка разрешения, например `480P`, `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` — специфичный для провайдера sentinel: он передается как есть
провайдерам, которые объявляют `adaptive` в своих возможностях (например, BytePlus
Seedance использует его для автоматического определения соотношения по размерам
входного изображения). Провайдеры, которые его не объявляют, показывают значение через
`details.ignoredOverrides` в результате инструмента, чтобы было видно, что оно отброшено.

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

<ParamField path="action" type="&#x22;generate&#x22; | &#x22;status&#x22; | &#x22;list&#x22;" 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`, если настроено, иначе значение провайдера по умолчанию, заданное Plugin, когда оно существует.</ParamField>

<ParamField path="providerOptions" type="object">
  Специфичные для провайдера параметры в виде JSON-объекта (например, `{"seed": 42, "draft": true}`).
  Провайдеры, объявляющие типизированную схему, проверяют ключи и типы; неизвестные
  ключи или несоответствия пропускают кандидата во время fallback. Провайдеры без
  объявленной схемы получают параметры как есть. Запустите `video_generate action=list`,
  чтобы увидеть, что принимает каждый провайдер.
</ParamField>

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

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

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

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

#### Fallback и типизированные параметры

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

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

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

## Действия

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

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

OpenClaw разрешает модель в таком порядке:

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

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

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

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "google/veo-3.1-fast-generate-preview",
        fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
      },
    },
  },
}
```

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

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

  <Accordion title="BytePlus (1.0)">
    ID провайдера: `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"`.
    ID моделей T2V автоматически переключаются на соответствующий вариант I2V,
    когда предоставлено изображение.

    Поддерживаемые ключи `providerOptions`: `seed` (number), `draft` (boolean -
    принудительно 480p), `camera_fixed` (boolean).
  </Accordion>

  <Accordion title="BytePlus Seedance 1.5">
    Требует Plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark).
    ID провайдера: `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`
    (number) передается дальше.
  </Accordion>

  <Accordion title="BytePlus Seedance 2.0">
    Требует Plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark).
    ID провайдера: `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`
    (number) передается дальше.
  </Accordion>

  <Accordion title="ComfyUI">
    Выполнение локально или в облаке на основе workflows. Поддерживает преобразование текста в видео и
    изображения в видео через настроенный граф.
  </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 OpenRouter `/videos`. 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">
    Поддерживает локальные файлы через data 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">
    Поддерживает преобразование текста в видео, преобразование одного изображения первого кадра в видео,
    до 7 входов `reference_image` через `reference_images` xAI, а также удаленные
    потоки редактирования и расширения видео.
  </Accordion>
</AccordionGroup>

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

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

```typescript theme={"theme":{"light":"min-light","dark":"min-dark"}}
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 theme={"theme":{"light":"min-light","dark":"min-dark"}}
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
```

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

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:live:media video
```

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

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

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

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
pnpm test:live:media video --video-providers fal
```

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

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

Сегодня общий живой lane `videoToVideo` покрывает только `runway`, когда вы
выбираете `runway/gen4_aleph`.

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

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

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

Или через CLI:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
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)
