---
read_when:
    - Створення відео за допомогою агента
    - Налаштування постачальників і моделей для генерування відео
    - Розуміння параметрів інструмента video_generate
sidebarTitle: Video generation
summary: Створюйте відео за допомогою video_generate з текстових, графічних або відеореференсів через 16 серверних частин постачальників послуг
title: Генерація відео
x-i18n:
    generated_at: "2026-07-12T13:54:12Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    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 (див. [Фонові завдання](/uk/automation/tasks)).

Поза запусками агента, пов’язаними із сеансом (наприклад, під час прямих викликів
інструмента), інструмент переходить до вбудованого генерування та повертає шлях
до готового медіафайлу в межах того самого ходу.

Згенеровані відеофайли зберігаються в керованому OpenClaw сховищі медіафайлів, якщо
постачальник повертає байти. Обмеження за замовчуванням становить 16 МБ (спільне
обмеження для відеофайлів); `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 у контракті 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          |     ✓      |       ✓        |       ✓        | 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`, якщо це значення налаштовано, інакше — стандартне значення провайдера, визначене автором Plugin, якщо воно існує.</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, // optional per-tool provider request timeout override
      },
    },
  },
}
```

## Примітки щодо провайдерів

<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">
    Потребує Plugin [`@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">
    Потребує Plugin [`@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](/uk/providers/alibaba)
- [Фонові завдання](/uk/automation/tasks) — відстеження завдань асинхронної генерації відео
- [BytePlus](/uk/concepts/model-providers#byteplus-international)
- [ComfyUI](/uk/providers/comfy)
- [Довідник із налаштування](/uk/gateway/config-agents#agent-defaults)
- [fal](/uk/providers/fal)
- [Google (Gemini)](/uk/providers/google)
- [MiniMax](/uk/providers/minimax)
- [Моделі](/uk/concepts/models)
- [OpenAI](/uk/providers/openai)
- [Qwen](/uk/providers/qwen)
- [Runway](/uk/providers/runway)
- [Together AI](/uk/providers/together)
- [Огляд інструментів](/uk/tools)
- [Vydra](/uk/providers/vydra)
- [xAI](/uk/providers/xai)
