chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-06 22:25:24 +00:00
parent b34d2ad01e
commit 6eb3497094
3 changed files with 223 additions and 225 deletions

View File

@ -6,26 +6,26 @@ read_when:
summary: Створюйте та редагуйте зображення за допомогою налаштованих провайдерів (OpenAI, Google Gemini, fal, MiniMax, ComfyUI, Vydra)
title: Генерація зображень
x-i18n:
generated_at: "2026-04-06T03:19:54Z"
generated_at: "2026-04-06T22:24:53Z"
model: gpt-5.4
provider: openai
source_hash: 903cc522c283a8da2cbd449ae3e25f349a74d00ecfdaf0f323fd8aa3f2107aea
source_hash: 359ee3d697658cf783891c615e2901b6edaf160aa17dc8e6ffac326ccab76060
source_path: tools/image-generation.md
workflow: 15
---
# Генерація зображень
Інструмент `image_generate` дає агенту змогу створювати та редагувати зображення за допомогою ваших налаштованих провайдерів. Створені зображення автоматично доставляються як медіавкладення у відповіді агента.
Інструмент `image_generate` дає агенту змогу створювати та редагувати зображення за допомогою ваших налаштованих провайдерів. Згенеровані зображення автоматично доставляються як медіавкладення у відповіді агента.
<Note>
Інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації зображень. Якщо ви не бачите `image_generate` серед інструментів свого агента, налаштуйте `agents.defaults.imageGenerationModel` або задайте API-ключ провайдера.
Інструмент з’являється, лише якщо доступний принаймні один провайдер генерації зображень. Якщо ви не бачите `image_generate` серед інструментів свого агента, налаштуйте `agents.defaults.imageGenerationModel` або вкажіть API-ключ провайдера.
</Note>
## Швидкий старт
1. Задайте API-ключ принаймні для одного провайдера (наприклад, `OPENAI_API_KEY` або `GEMINI_API_KEY`).
2. За бажанням задайте бажану модель:
1. Установіть API-ключ принаймні для одного провайдера (наприклад, `OPENAI_API_KEY` або `GEMINI_API_KEY`).
2. За бажанням укажіть бажану модель:
```json5
{
@ -39,9 +39,9 @@ x-i18n:
}
```
3. Попросіть агента: _"Згенеруй зображення дружнього маскота-лобстера."_
3. Попросіть агента: _"Згенеруй зображення дружнього лобстер-маскота."_
Агент автоматично викликає `image_generate`. Дозвільний список інструментів не потрібен — інструмент увімкнено за замовчуванням, коли доступний провайдер.
Агент автоматично викликає `image_generate`. Додавати інструмент до списку дозволених не потрібно — він увімкнений за замовчуванням, коли доступний провайдер.
## Підтримувані провайдери
@ -50,11 +50,11 @@ x-i18n:
| OpenAI | `gpt-image-1` | Так (до 5 зображень) | `OPENAI_API_KEY` |
| Google | `gemini-3.1-flash-image-preview` | Так | `GEMINI_API_KEY` або `GOOGLE_API_KEY` |
| fal | `fal-ai/flux/dev` | Так | `FAL_KEY` |
| MiniMax | `image-01` | Так (референс об’єкта) | `MINIMAX_API_KEY` або MiniMax OAuth (`minimax-portal`) |
| ComfyUI | `workflow` | Так (1 зображення, налаштовується workflow) | `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY` для хмари |
| MiniMax | `image-01` | Так (посилання на об’єкт) | `MINIMAX_API_KEY` або MiniMax OAuth (`minimax-portal`) |
| ComfyUI | `workflow` | Так (1 зображення, визначене workflow) | `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY` для хмари |
| Vydra | `grok-imagine` | Ні | `VYDRA_API_KEY` |
Використайте `action: "list"`, щоб переглянути доступні провайдери та моделі під час виконання:
Використайте `action: "list"`, щоб під час виконання переглянути доступні провайдери та моделі:
```
/tool image_generate action=list
@ -65,17 +65,17 @@ x-i18n:
| Параметр | Тип | Опис |
| ------------- | -------- | ------------------------------------------------------------------------------------- |
| `prompt` | string | Запит для генерації зображення (обов’язковий для `action: "generate"`) |
| `action` | string | `"generate"` (за замовчуванням) або `"list"` для перегляду провайдерів |
| `action` | string | `"generate"` (типово) або `"list"` для перегляду провайдерів |
| `model` | string | Перевизначення провайдера/моделі, наприклад `openai/gpt-image-1` |
| `image` | string | Шлях або URL одного референсного зображення для режиму редагування |
| `images` | string[] | Кілька референсних зображень для режиму редагування (до 5) |
| `size` | string | Підказка щодо розміру: `1024x1024`, `1536x1024`, `1024x1536`, `1024x1792`, `1792x1024` |
| `image` | string | Шлях або URL одного опорного зображення для режиму редагування |
| `images` | string[] | Кілька опорних зображень для режиму редагування (до 5) |
| `size` | string | Підказка розміру: `1024x1024`, `1536x1024`, `1024x1536`, `1024x1792`, `1792x1024` |
| `aspectRatio` | string | Співвідношення сторін: `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
| `resolution` | string | Підказка щодо роздільної здатності: `1K`, `2K` або `4K` |
| `resolution` | string | Підказка роздільної здатності: `1K`, `2K` або `4K` |
| `count` | number | Кількість зображень для генерації (14) |
| `filename` | string | Підказка щодо імені вихідного файла |
| `filename` | string | Підказка для назви вихідного файла |
Не всі провайдери підтримують усі параметри. Інструмент передає те, що підтримує кожен провайдер, ігнорує решту та повідомляє про відкинуті перевизначення в результаті інструмента.
Не всі провайдери підтримують усі параметри. Коли резервний провайдер підтримує близький варіант геометрії замість точно запитаного, OpenClaw перед надсиланням зіставляє запит із найближчим підтримуваним розміром, співвідношенням сторін або роздільною здатністю. Дійсно непідтримувані перевизначення все одно відображаються в результаті інструмента.
## Конфігурація
@ -98,46 +98,49 @@ x-i18n:
Під час генерації зображення OpenClaw пробує провайдерів у такому порядку:
1. Параметр **`model`** з виклику інструмента (якщо агент його вказує)
1. Параметр **`model`** із виклику інструмента (якщо агент його вказує)
2. **`imageGenerationModel.primary`** із конфігурації
3. **`imageGenerationModel.fallbacks`** у вказаному порядку
4. **Автовиявлення** — використовує лише типові значення провайдерів, підкріплені автентифікацією:
4. **Автовизначення** — використовує лише типові значення провайдерів із доступною автентифікацією:
- спочатку поточний провайдер за замовчуванням
- далі решта зареєстрованих провайдерів генерації зображень у порядку ідентифікаторів провайдерів
- решта зареєстрованих провайдерів генерації зображень у порядку ідентифікаторів провайдерів
Якщо провайдер не спрацьовує (помилка автентифікації, обмеження швидкості тощо), автоматично пробується наступний кандидат. Якщо не спрацьовують усі, помилка містить подробиці кожної спроби.
Якщо провайдер завершується помилкою (помилка автентифікації, обмеження швидкості тощо), автоматично пробується наступний кандидат. Якщо всі завершуються помилкою, помилка містить деталі кожної спроби.
Примітки:
- Автовиявлення враховує автентифікацію. Типове значення провайдера потрапляє до списку кандидатів лише тоді,
коли OpenClaw справді може автентифікувати цей провайдер.
- Використайте `action: "list"`, щоб переглянути поточно зареєстрованих провайдерів, їхні
моделі за замовчуванням і підказки щодо змінних середовища для автентифікації.
- Автовизначення враховує автентифікацію. Типова модель провайдера потрапляє до списку кандидатів
лише тоді, коли OpenClaw справді може автентифікувати цей провайдер.
- Автовизначення ввімкнене за замовчуванням. Установіть
`agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо хочете, щоб генерація зображень
використовувала лише явні записи `model`, `primary` і `fallbacks`.
- Використовуйте `action: "list"`, щоб переглянути наразі зареєстрованих провайдерів, їхні
типові моделі та підказки щодо змінних середовища для автентифікації.
### Редагування зображень
OpenAI, Google, fal, MiniMax і ComfyUI підтримують редагування референсних зображень. Передайте шлях або URL референсного зображення:
OpenAI, Google, fal, MiniMax і ComfyUI підтримують редагування опорних зображень. Передайте шлях або URL опорного зображення:
```
"Згенеруй акварельну версію цього фото" + image: "/path/to/photo.jpg"
"Створи акварельну версію цього фото" + image: "/path/to/photo.jpg"
```
OpenAI і Google підтримують до 5 референсних зображень через параметр `images`. fal, MiniMax і ComfyUI підтримують 1.
OpenAI і Google підтримують до 5 опорних зображень через параметр `images`. fal, MiniMax і ComfyUI підтримують 1.
Генерація зображень MiniMax доступна через обидва вбудовані шляхи автентифікації MiniMax:
- `minimax/image-01` для конфігурацій з API-ключем
- `minimax-portal/image-01` для конфігурацій з OAuth
- `minimax/image-01` для налаштувань із API-ключем
- `minimax-portal/image-01` для налаштувань з OAuth
## Можливості провайдерів
| Можливість | OpenAI | Google | fal | MiniMax | ComfyUI | Vydra |
| --------------------- | -------------------- | -------------------- | ------------------- | -------------------------- | ---------------------------------- | ------- |
| Генерація | Так (до 4) | Так (до 4) | Так (до 4) | Так (до 9) | Так (виходи визначаються workflow) | Так (1) |
| Редагування/референс | Так (до 5 зображень) | Так (до 5 зображень) | Так (1 зображення) | Так (1 зображення, референс об’єкта) | Так (1 зображення, налаштовується workflow) | Ні |
| Керування розміром | Так | Так | Так | Ні | Ні | Ні |
| Співвідношення сторін | Ні | Так | Так (лише генерація) | Так | Ні | Ні |
| Роздільна здатність (1K/2K/4K) | Ні | Так | Так | Ні | Ні | Ні |
| Можливість | OpenAI | Google | fal | MiniMax | ComfyUI | Vydra |
| -------------------- | -------------------- | -------------------- | ------------------- | -------------------------- | ---------------------------------- | ------- |
| Генерація | Так (до 4) | Так (до 4) | Так (до 4) | Так (до 9) | Так (кількість виходів визначається workflow) | Так (1) |
| Редагування/опорне | Так (до 5 зображень) | Так (до 5 зображень) | Так (1 зображення) | Так (1 зображення, посилання на об’єкт) | Так (1 зображення, визначене workflow) | Ні |
| Керування розміром | Так | Так | Так | Ні | Ні | Ні |
| Співвідношення сторін| Ні | Так | Так (лише генерація) | Так | Ні | Ні |
| Роздільна здатність (1K/2K/4K) | Ні | Так | Так | Ні | Ні | Ні |
## Пов’язане
@ -148,5 +151,5 @@ OpenAI і Google підтримують до 5 референсних зобра
- [MiniMax](/uk/providers/minimax) — налаштування провайдера зображень MiniMax
- [OpenAI](/uk/providers/openai) — налаштування провайдера OpenAI Images
- [Vydra](/uk/providers/vydra) — налаштування зображень, відео та мовлення Vydra
- [Довідник з конфігурації](/uk/gateway/configuration-reference#agent-defaults) — конфігурація `imageGenerationModel`
- [Моделі](/uk/concepts/models) — конфігурація моделей і перемикання на резервні варіанти
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) — конфігурація `imageGenerationModel`
- [Моделі](/uk/concepts/models) — конфігурація моделей і перемикання на резервні

View File

@ -2,40 +2,40 @@
read_when:
- Генерація музики або аудіо через агента
- Налаштування провайдерів і моделей для генерації музики
- Розуміння параметрів інструмента music_generate
- Розуміння параметрів інструмента `music_generate`
summary: Генеруйте музику за допомогою спільних провайдерів, зокрема плагінів на основі workflow
title: Генерація музики
x-i18n:
generated_at: "2026-04-06T18:17:51Z"
generated_at: "2026-04-06T22:25:14Z"
model: gpt-5.4
provider: openai
source_hash: a7af06f64efde518934e1408837a9c4bfc52710a6b5d39225eee9889d7b86030
source_hash: 3b45ce03388e26e2e332851d2460bdf88661bf584d156f5f0b25aac4cde4d059
source_path: tools/music-generation.md
workflow: 15
---
# Генерація музики
Інструмент `music_generate` дає змогу агенту створювати музику або аудіо через
Інструмент `music_generate` дає агенту змогу створювати музику або аудіо через
спільну можливість генерації музики з налаштованими провайдерами, такими як Google,
MiniMax і ComfyUI, налаштований через workflow.
Для сеансів агента, що працюють на основі спільних провайдерів, OpenClaw запускає генерацію музики як
фонове завдання, відстежує його в журналі завдань, а потім знову пробуджує агента, коли
трек готовий, щоб агент міг опублікувати готове аудіо назад у
початковий канал.
Для сеансів агента на основі спільних провайдерів OpenClaw запускає генерацію музики як
фонове завдання, відстежує її в журналі завдань, а потім знову активує агента, коли
трек готовий, щоб агент міг опублікувати готове аудіо назад в
оригінальний канал.
<Note>
Вбудований спільний інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації музики. Якщо ви не бачите `music_generate` серед інструментів вашого агента, налаштуйте `agents.defaults.musicGenerationModel` або задайте API-ключ провайдера.
Вбудований спільний інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації музики. Якщо ви не бачите `music_generate` серед інструментів вашого агента, налаштуйте `agents.defaults.musicGenerationModel` або вкажіть API-ключ провайдера.
</Note>
## Швидкий старт
### Генерація на основі спільного провайдера
### Генерація на основі спільних провайдерів
1. Задайте API-ключ принаймні для одного провайдера, наприклад `GEMINI_API_KEY` або
1. Укажіть API-ключ щонайменше для одного провайдера, наприклад `GEMINI_API_KEY` або
`MINIMAX_API_KEY`.
2. За бажанням задайте бажану модель:
2. За бажанням укажіть бажану модель:
```json5
{
@ -49,18 +49,18 @@ MiniMax і ComfyUI, налаштований через workflow.
}
```
3. Попросіть агента: _"Створи енергійний synthpop-трек про нічну поїздку
3. Запитайте агента: _"Згенеруй енергійний synthpop-трек про нічну поїздку
крізь неонове місто."_
Агент викликає `music_generate` автоматично. Додавати інструмент до списку дозволених не потрібно.
Агент автоматично викликає `music_generate`. Додавати інструмент до allowlist не потрібно.
Для прямих синхронних контекстів без запуску агента на основі сеансу вбудований
інструмент усе одно повертається до вбудованої генерації та повертає фінальний шлях до медіа в результаті інструмента.
інструмент усе одно переходить до вбудованої генерації та повертає фінальний шлях до медіа в результаті інструмента.
Приклади запитів:
```text
Згенеруй кінематографічний фортепіанний трек із м’якими струнними та без вокалу.
Згенеруй кінематографічний фортепіанний трек із м’якими струнними без вокалу.
```
```text
@ -74,42 +74,42 @@ MiniMax і ComfyUI, налаштований через workflow.
1. Налаштуйте `models.providers.comfy.music` за допомогою JSON workflow і
вузлів prompt/output.
2. Якщо ви використовуєте Comfy Cloud, задайте `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY`.
2. Якщо ви використовуєте Comfy Cloud, укажіть `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY`.
3. Попросіть агента згенерувати музику або викличте інструмент напряму.
Приклад:
```text
/tool music_generate prompt="Тепла атмосферна synth-петля з м’якою текстурою магнітної стрічки"
/tool music_generate prompt="Warm ambient synth loop with soft tape texture"
```
## Підтримка спільних вбудованих провайдерів
| Провайдер | Модель за замовчуванням | Вхідні reference-дані | Підтримувані елементи керування | API-ключ |
| --------- | ----------------------- | --------------------- | ------------------------------------------------------ | -------------------------------------- |
| ComfyUI | `workflow` | До 1 зображення | Визначена workflow музика або аудіо | `COMFY_API_KEY`, `COMFY_CLOUD_API_KEY` |
| Google | `lyria-3-clip-preview` | До 10 зображень | `lyrics`, `instrumental`, `format` | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
| MiniMax | `music-2.5+` | Немає | `lyrics`, `instrumental`, `durationSeconds`, `format=mp3` | `MINIMAX_API_KEY` |
| Провайдер | Модель за замовчуванням | Вхідні посилання | Підтримувані елементи керування | API-ключ |
| --------- | ----------------------- | ---------------- | ------------------------------------------------------ | -------------------------------------- |
| ComfyUI | `workflow` | До 1 зображення | Визначені workflow музика або аудіо | `COMFY_API_KEY`, `COMFY_CLOUD_API_KEY` |
| Google | `lyria-3-clip-preview` | До 10 зображень | `lyrics`, `instrumental`, `format` | `GEMINI_API_KEY`, `GOOGLE_API_KEY` |
| MiniMax | `music-2.5+` | Немає | `lyrics`, `instrumental`, `durationSeconds`, `format=mp3` | `MINIMAX_API_KEY` |
### Матриця оголошених можливостей
Це явний контракт режимів, який використовується `music_generate`, контрактними тестами
та спільним live sweep.
| Провайдер | `generate` | `edit` | Ліміт редагування | Спільні live-lane-и |
| --------- | ---------- | ------ | ----------------- | ------------------------------------------------------------------------ |
| Провайдер | `generate` | `edit` | Ліміт редагування | Спільні live lanes |
| --------- | ---------- | ------ | ----------------- | ------------------------------------------------------------------------- |
| ComfyUI | Так | Так | 1 зображення | Не входить до спільного sweep; покривається `extensions/comfy/comfy.live.test.ts` |
| Google | Так | Так | 10 зображень | `generate`, `edit` |
| MiniMax | Так | Ні | Немає | `generate` |
| Google | Так | Так | 10 зображень | `generate`, `edit` |
| MiniMax | Так | Ні | Немає | `generate` |
Використовуйте `action: "list"`, щоб переглянути доступні спільні провайдери та моделі під
час виконання:
Використовуйте `action: "list"`, щоб переглянути доступні спільні провайдери та моделі
під час виконання:
```text
/tool music_generate action=list
```
Використовуйте `action: "status"`, щоб переглянути активне завдання музики, пов’язане із сеансом:
Використовуйте `action: "status"`, щоб перевірити активне завдання музики, прив’язане до сеансу:
```text
/tool music_generate action=status
@ -118,48 +118,50 @@ MiniMax і ComfyUI, налаштований через workflow.
Приклад прямої генерації:
```text
/tool music_generate prompt="Мрійливий lo-fi hip hop із вініловою текстурою та м’яким дощем" instrumental=true
/tool music_generate prompt="Dreamy lo-fi hip hop with vinyl texture and gentle rain" instrumental=true
```
## Параметри вбудованого інструмента
| Параметр | Тип | Опис |
| ----------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `prompt` | string | Запит для генерації музики (обов’язковий для `action: "generate"`) |
| `action` | string | `"generate"` (за замовчуванням), `"status"` для поточного завдання сеансу або `"list"` для перегляду провайдерів |
| `model` | string | Перевизначення провайдера/моделі, наприклад `google/lyria-3-pro-preview` або `comfy/workflow` |
| `lyrics` | string | Необов’язковий текст пісні, якщо провайдер підтримує явне введення тексту |
| `instrumental` | boolean | Запитати лише інструментальний результат, якщо провайдер це підтримує |
| `image` | string | Шлях або URL одного reference-зображення |
| `images` | string[] | Кілька reference-зображень (до 10) |
| `durationSeconds` | number | Цільова тривалість у секундах, якщо провайдер підтримує підказки тривалості |
| `format` | string | Підказка формату виводу (`mp3` або `wav`), якщо провайдер це підтримує |
| `filename` | string | Підказка імені вихідного файла |
| Параметр | Тип | Опис |
| ---------------- | -------- | ------------------------------------------------------------------------------------------------ |
| `prompt` | string | Запит для генерації музики (обов’язковий для `action: "generate"`) |
| `action` | string | `"generate"` (типово), `"status"` для поточного завдання сеансу або `"list"` для перегляду провайдерів |
| `model` | string | Перевизначення провайдера/моделі, наприклад `google/lyria-3-pro-preview` або `comfy/workflow` |
| `lyrics` | string | Необов’язковий текст пісні, якщо провайдер підтримує явне передавання тексту |
| `instrumental` | boolean | Запитати лише інструментальний результат, якщо провайдер це підтримує |
| `image` | string | Шлях або URL одного зображення-посилання |
| `images` | string[] | Кілька зображень-посилань (до 10) |
| `durationSeconds`| number | Цільова тривалість у секундах, якщо провайдер підтримує підказки тривалості |
| `format` | string | Підказка щодо вихідного формату (`mp3` або `wav`), якщо провайдер це підтримує |
| `filename` | string | Підказка щодо імені вихідного файла |
Не всі провайдери підтримують усі параметри. OpenClaw усе одно перевіряє жорсткі обмеження,
такі як кількість вхідних даних, перед надсиланням, але непідтримувані необов’язкові підказки
ігноруються з попередженням, якщо вибраний провайдер або модель не можуть їх виконати.
Не всі провайдери підтримують усі параметри. OpenClaw однаково перевіряє жорсткі обмеження,
наприклад кількість входів, перед надсиланням. Якщо провайдер підтримує тривалість, але
використовує коротший максимум, ніж запитане значення, OpenClaw автоматично обмежує його
до найближчої підтримуваної тривалості. Справді непідтримувані необов’язкові підказки ігноруються
з попередженням, якщо вибраний провайдер або модель не можуть їх виконати.
## Асинхронна поведінка для шляху на основі спільного провайдера
## Асинхронна поведінка для шляху на основі спільних провайдерів
- Запуски агента на основі сеансу: `music_generate` створює фонове завдання, одразу повертає відповідь started/task і публікує готовий трек пізніше в подальшому повідомленні агента.
- Запобігання дублюванню: поки це фонове завдання має стан `queued` або `running`, наступні виклики `music_generate` у тому самому сеансі повертають статус завдання замість запуску нової генерації.
- Перегляд статусу: використовуйте `action: "status"`, щоб переглянути активне музичне завдання, пов’язане із сеансом, без запуску нового.
- Відстеження завдань: використовуйте `openclaw tasks list` або `openclaw tasks show <taskId>`, щоб переглядати статуси queued, running і terminal для генерації.
- Пробудження після завершення: OpenClaw вставляє внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати користувацьке подальше повідомлення.
- Підказка в prompt: пізніші користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, коли музичне завдання вже виконується, щоб модель не викликала `music_generate` повторно навмання.
- Режим без сеансу: прямі/локальні контексти без реального сеансу агента все одно виконуються inline і повертають фінальний аудіорезультат у тому самому ході.
- Запуски агента з прив’язкою до сеансу: `music_generate` створює фонове завдання, одразу повертає відповідь started/task і публікує готовий трек пізніше в наступному повідомленні агента.
- Запобігання дублюванню: поки це фонове завдання має стан `queued` або `running`, наступні виклики `music_generate` у тому самому сеансі повертають статус завдання замість запуску ще однієї генерації.
- Перевірка статусу: використовуйте `action: "status"`, щоб перевірити активне музичне завдання, прив’язане до сеансу, не запускаючи нове.
- Відстеження завдань: використовуйте `openclaw tasks list` або `openclaw tasks show <taskId>`, щоб переглянути стани queued, running і terminal для генерації.
- Пробудження після завершення: OpenClaw вставляє внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати користувацьке follow-up повідомлення.
- Підказка в prompt: наступні користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, коли завдання музики вже виконується, щоб модель не викликала `music_generate` знову навмання.
- Режим без сеансу: прямі/локальні контексти без реального сеансу агента все одно виконуються вбудовано та повертають фінальний результат аудіо в тому самому ході.
### Життєвий цикл завдання
Кожен запит `music_generate` проходить через чотири стани:
1. **queued** -- завдання створено, очікує, поки провайдер його прийме.
1. **queued** -- завдання створено, очікує, поки провайдер прийме його.
2. **running** -- провайдер обробляє запит (зазвичай від 30 секунд до 3 хвилин залежно від провайдера та тривалості).
3. **succeeded** -- трек готовий; агент пробуджується й публікує його в розмові.
4. **failed** -- помилка провайдера або тайм-аут; агент пробуджується з деталями помилки.
3. **succeeded** -- трек готовий; агент активується й публікує його в розмові.
4. **failed** -- помилка провайдера або тайм-аут; агент активується з деталями помилки.
Перевірка статусу з CLI:
Перевірте статус із CLI:
```bash
openclaw tasks list
@ -169,7 +171,7 @@ openclaw tasks cancel <taskId>
Запобігання дублюванню: якщо для поточного сеансу музичне завдання вже має стан `queued` або `running`, `music_generate` повертає статус наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб перевірити це явно без запуску нової генерації.
## Конфігурація
## Налаштування
### Вибір моделі
@ -186,36 +188,38 @@ openclaw tasks cancel <taskId>
}
```
### Порядок вибору провайдерів
### Порядок вибору провайдера
Під час генерації музики OpenClaw пробує провайдери в такому порядку:
Під час генерації музики OpenClaw намагається використати провайдерів у такому порядку:
1. параметр `model` з виклику інструмента, якщо агент його вказує
2. `musicGenerationModel.primary` з конфігурації
1. Параметр `model` із виклику інструмента, якщо агент його вказує
2. `musicGenerationModel.primary` із конфігурації
3. `musicGenerationModel.fallbacks` по порядку
4. Автовизначення лише за допомогою значень за замовчуванням провайдерів, прив’язаних до auth:
- спочатку поточний провайдер за замовчуванням
- решта зареєстрованих провайдерів генерації музики в порядку provider-id
4. Автовизначення лише з використанням типових значень провайдерів на основі auth:
- спочатку поточний типовий провайдер
- решта зареєстрованих провайдерів генерації музики в порядку ідентифікаторів провайдерів
Якщо провайдер зазнає невдачі, автоматично пробується наступний кандидат. Якщо всі зазнають невдачі,
помилка міститиме деталі кожної спроби.
Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі варіанти не вдаються, помилка містить деталі кожної спроби.
Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо хочете,
щоб генерація музики використовувала лише явно вказані записи `model`, `primary` і `fallbacks`.
## Примітки щодо провайдерів
- Google використовує пакетну генерацію Lyria 3. Поточний вбудований потік підтримує
prompt, необов’язковий текст lyrics і необов’язкові reference-зображення.
- MiniMax використовує пакетний ендпоінт `music_generation`. Поточний вбудований потік
підтримує prompt, необов’язкові lyrics, інструментальний режим, керування тривалістю та
вивід у mp3.
prompt, необов’язковий текст пісні та необов’язкові зображення-посилання.
- MiniMax використовує пакетний endpoint `music_generation`. Поточний вбудований потік
підтримує prompt, необов’язковий текст пісні, інструментальний режим, керування тривалістю та
вихід у форматі mp3.
- Підтримка ComfyUI керується workflow і залежить від налаштованого графа та
зіставлення вузлів для полів prompt/output.
## Режими можливостей провайдера
Спільний контракт генерації музики тепер підтримує явні оголошення режимів:
Контракт спільної генерації музики тепер підтримує явні оголошення режимів:
- `generate` для генерації лише за prompt
- `edit`, коли запит містить одне або більше reference-зображень
- `edit`, коли запит містить одне або кілька зображень-посилань
Нові реалізації провайдерів мають надавати перевагу явним блокам режимів:
@ -235,20 +239,20 @@ capabilities: {
}
```
Застарілі плоскі поля, такі як `maxInputImages`, `supportsLyrics` і
`supportsFormat`, недостатні для оголошення підтримки редагування. Провайдери мають
Застарілих пласких полів, таких як `maxInputImages`, `supportsLyrics` і
`supportsFormat`, недостатньо, щоб оголосити підтримку редагування. Провайдери мають
явно оголошувати `generate` і `edit`, щоб live-тести, контрактні тести та
спільний інструмент `music_generate` могли детерміновано перевіряти підтримку режимів.
## Вибір правильного шляху
## Як вибрати правильний шлях
- Використовуйте шлях на основі спільного провайдера, якщо вам потрібні вибір моделі, перемикання між провайдерами при збої та вбудований асинхронний потік завдань/статусу.
- Використовуйте шлях плагіна, наприклад ComfyUI, якщо вам потрібен власний граф workflow або провайдер, який не входить до спільної вбудованої можливості генерації музики.
- Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. [ComfyUI](/uk/providers/comfy). Якщо ви налагоджуєте поведінку спільного провайдера, почніть із [Google (Gemini)](/uk/providers/google) або [MiniMax](/uk/providers/minimax).
- Використовуйте шлях на основі спільних провайдерів, якщо вам потрібні вибір моделі, перемикання між провайдерами при збоях і вбудований асинхронний потік завдань/статусу.
- Використовуйте шлях через плагін, наприклад ComfyUI, якщо вам потрібен власний граф workflow або провайдер, який не входить до спільної вбудованої можливості генерації музики.
- Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. [ComfyUI](/uk/providers/comfy). Якщо ви налагоджуєте поведінку спільних провайдерів, почніть із [Google (Gemini)](/uk/providers/google) або [MiniMax](/uk/providers/minimax).
## Live-тести
Опціональне live-покриття для спільних вбудованих провайдерів:
Опційне live-покриття для спільних вбудованих провайдерів:
```bash
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts
@ -260,8 +264,8 @@ OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.liv
pnpm test:live:media music
```
Цей live-файл завантажує відсутні env vars провайдерів із `~/.profile`, за замовчуванням надає перевагу
API-ключам із live/env перед збереженими профілями auth і запускає покриття як
Цей live-файл завантажує відсутні env-змінні провайдерів із `~/.profile`, за замовчуванням надає перевагу
API-ключам із live/env над збереженими профілями auth і запускає покриття як
`generate`, так і оголошеного `edit`, коли провайдер вмикає режим редагування.
Станом на сьогодні це означає:
@ -270,21 +274,21 @@ API-ключам із live/env перед збереженими профіля
- `minimax`: лише `generate`
- `comfy`: окреме live-покриття Comfy, не спільний sweep провайдерів
Опціональне live-покриття для вбудованого музичного шляху ComfyUI:
Опційне live-покриття для вбудованого музичного шляху ComfyUI:
```bash
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts
```
Файл Comfy live також покриває workflow comfy для зображень і відео, коли ці
Live-файл Comfy також покриває workflow зображень і відео comfy, коли ці
розділи налаштовані.
## Пов’язане
- [Фонові завдання](/uk/automation/tasks) - відстеження завдань для відокремлених запусків `music_generate`
- [Фонові завдання](/uk/automation/tasks) - відстеження завдань для від’єднаних запусків `music_generate`
- [Довідник із конфігурації](/uk/gateway/configuration-reference#agent-defaults) - конфігурація `musicGenerationModel`
- [ComfyUI](/uk/providers/comfy)
- [Google (Gemini)](/uk/providers/google)
- [MiniMax](/uk/providers/minimax)
- [Моделі](/uk/concepts/models) - конфігурація моделей і перемикання при збоях
- [Моделі](/uk/concepts/models) - налаштування моделей і перемикання при збоях
- [Огляд інструментів](/uk/tools)

View File

@ -1,45 +1,44 @@
---
read_when:
- Генерування відео через агента
- Налаштування провайдерів і моделей для генерації відео
- Генерація відео через агента
- Налаштування провайдерів і моделей генерації відео
- Розуміння параметрів інструмента `video_generate`
summary: Генеруйте відео з тексту, зображень або наявних відео за допомогою 12 бекендів провайдерів
title: Генерація відео
x-i18n:
generated_at: "2026-04-06T18:17:53Z"
generated_at: "2026-04-06T22:25:23Z"
model: gpt-5.4
provider: openai
source_hash: fc8984dfc718a3558b66089b37aea718f3da1ec8cf4f846a017201413c9be6a2
source_hash: 59f65bf406cbf2b858523f94461251ee93c1f270cdd63dbe796e55f620574951
source_path: tools/video-generation.md
workflow: 15
---
# Генерація відео
Агенти OpenClaw можуть генерувати відео з текстових запитів, еталонних зображень або наявних відео. Підтримуються дванадцять бекендів провайдерів, кожен із різними варіантами моделей, режимами введення та наборами функцій. Агент автоматично вибирає відповідного провайдера на основі вашої конфігурації та доступних API-ключів.
Агенти OpenClaw можуть генерувати відео з текстових підказок, еталонних зображень або наявних відео. Підтримуються дванадцять бекендів провайдерів, кожен із різними варіантами моделей, режимами введення та наборами функцій. Агент автоматично вибирає відповідного провайдера на основі вашої конфігурації та доступних API-ключів.
<Note>
Інструмент `video_generate` з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви не бачите його серед інструментів агента, задайте API-ключ провайдера або налаштуйте `agents.defaults.videoGenerationModel`.
Інструмент `video_generate` з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви його не бачите серед інструментів агента, задайте API-ключ провайдера або налаштуйте `agents.defaults.videoGenerationModel`.
</Note>
OpenClaw розглядає генерацію відео як три режими виконання:
- `generate` для запитів text-to-video без еталонних медіа
- `generate` для запитів text-to-video без еталонних медіафайлів
- `imageToVideo`, коли запит містить одне або кілька еталонних зображень
- `videoToVideo`, коли запит містить одне або кілька еталонних відео
Провайдери можуть підтримувати будь-яку підмножину цих режимів. Інструмент перевіряє активний
режим перед надсиланням і повідомляє підтримувані режими в `action=list`.
Провайдери можуть підтримувати будь-яку підмножину цих режимів. Інструмент перевіряє активний режим перед надсиланням і повідомляє підтримувані режими в `action=list`.
## Швидкий старт
1. Задайте API-ключ для будь-якого підтримуваного провайдера:
1. Установіть API-ключ для будь-якого підтримуваного провайдера:
```bash
export GEMINI_API_KEY="your-key"
```
2. За бажанням закріпіть модель за замовчуванням:
2. За потреби зафіксуйте модель за замовчуванням:
```bash
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
@ -47,22 +46,22 @@ openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1
3. Зверніться до агента:
> Згенеруй 5-секундне кінематографічне відео з дружнім лобстером, який катається на серфі на заході сонця.
> Згенеруй 5-секундне кінематографічне відео дружнього лобстера, який катається на серфі на заході сонця.
Агент автоматично викликає `video_generate`. Дозвільний список інструментів не потрібен.
Агент автоматично викликає `video_generate`. Дозволяти інструмент через allowlist не потрібно.
## Що відбувається, коли ви генеруєте відео
## Що відбувається під час генерації відео
Генерація відео виконується асинхронно. Коли агент викликає `video_generate` у сесії:
Генерація відео є асинхронною. Коли агент викликає `video_generate` у сесії:
1. OpenClaw надсилає запит провайдеру й одразу повертає ідентифікатор завдання.
1. OpenClaw надсилає запит провайдеру й одразу повертає ID завдання.
2. Провайдер обробляє завдання у фоновому режимі (зазвичай від 30 секунд до 5 хвилин залежно від провайдера та роздільної здатності).
3. Коли відео готове, OpenClaw пробуджує ту саму сесію внутрішньою подією завершення.
4. Агент публікує готове відео назад в оригінальну розмову.
Поки завдання виконується, повторні виклики `video_generate` у тій самій сесії повертають поточний статус завдання замість запуску нової генерації. Використовуйте `openclaw tasks list` або `openclaw tasks show <taskId>`, щоб перевірити прогрес через CLI.
Поки завдання виконується, дубльовані виклики `video_generate` у тій самій сесії повертають поточний статус завдання замість запуску нової генерації. Використовуйте `openclaw tasks list` або `openclaw tasks show <taskId>`, щоб перевірити прогрес через CLI.
Поза запусками агента, прив’язаними до сесії (наприклад, прямими викликами інструмента), інструмент повертається до вбудованої генерації й повертає фінальний шлях до медіафайлу в тому самому ході.
Поза запусками агента на основі сесій (наприклад, прямі виклики інструмента) інструмент повертається до вбудованої генерації та повертає фінальний шлях до медіафайлу в тому самому ході.
### Життєвий цикл завдання
@ -81,57 +80,55 @@ openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
```
Запобігання дублюванню: якщо для поточної сесії завдання відео вже має стан `queued` або `running`, `video_generate` повертає статус наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб явно перевірити стан без запуску нової генерації.
Запобігання дублюванню: якщо для поточної сесії вже є відеозавдання зі статусом `queued` або `running`, `video_generate` повертає статус наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб явно перевірити статус без запуску нової генерації.
## Підтримувані провайдери
| Провайдер | Модель за замовчуванням | Текст | Еталонне зображення | Еталонне відео | API-ключ |
| --------- | ------------------------------- | ----- | ------------------- | ---------------- | ---------------------------------------- |
| Провайдер | Модель за замовчуванням | Текст | Еталонне зображення | Еталонне відео | API-ключ |
| --------- | ------------------------------- | ----- | ------------------- | --------------- | ---------------------------------------- |
| Alibaba | `wan2.6-t2v` | Так | Так (віддалений URL) | Так (віддалений URL) | `MODELSTUDIO_API_KEY` |
| BytePlus | `seedance-1-0-lite-t2v-250428` | Так | 1 зображення | Ні | `BYTEPLUS_API_KEY` |
| ComfyUI | `workflow` | Так | 1 зображення | Ні | `COMFY_API_KEY` or `COMFY_CLOUD_API_KEY` |
| fal | `fal-ai/minimax/video-01-live` | Так | 1 зображення | Ні | `FAL_KEY` |
| Google | `veo-3.1-fast-generate-preview` | Так | 1 зображення | 1 відео | `GEMINI_API_KEY` |
| MiniMax | `MiniMax-Hailuo-2.3` | Так | 1 зображення | Ні | `MINIMAX_API_KEY` |
| OpenAI | `sora-2` | Так | 1 зображення | 1 відео | `OPENAI_API_KEY` |
| BytePlus | `seedance-1-0-lite-t2v-250428` | Так | 1 зображення | Ні | `BYTEPLUS_API_KEY` |
| ComfyUI | `workflow` | Так | 1 зображення | Ні | `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY` |
| fal | `fal-ai/minimax/video-01-live` | Так | 1 зображення | Ні | `FAL_KEY` |
| Google | `veo-3.1-fast-generate-preview` | Так | 1 зображення | 1 відео | `GEMINI_API_KEY` |
| MiniMax | `MiniMax-Hailuo-2.3` | Так | 1 зображення | Ні | `MINIMAX_API_KEY` |
| OpenAI | `sora-2` | Так | 1 зображення | 1 відео | `OPENAI_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` | Так | 1 зображення | Ні | `TOGETHER_API_KEY` |
| Vydra | `veo3` | Так | 1 зображення (`kling`) | Ні | `VYDRA_API_KEY` |
| xAI | `grok-imagine-video` | Так | 1 зображення | 1 відео | `XAI_API_KEY` |
| Runway | `gen4.5` | Так | 1 зображення | 1 відео | `RUNWAYML_API_SECRET` |
| Together | `Wan-AI/Wan2.2-T2V-A14B` | Так | 1 зображення | Ні | `TOGETHER_API_KEY` |
| Vydra | `veo3` | Так | 1 зображення (`kling`) | Ні | `VYDRA_API_KEY` |
| xAI | `grok-imagine-video` | Так | 1 зображення | 1 відео | `XAI_API_KEY` |
Деякі провайдери приймають додаткові або альтернативні змінні середовища для API-ключів. Докладніше див. на окремих [сторінках провайдерів](#related).
Деякі провайдери приймають додаткові або альтернативні змінні середовища для API-ключів. Докладніше дивіться на окремих [сторінках провайдерів](#related).
Запустіть `video_generate action=list`, щоб під час виконання переглянути доступних провайдерів, моделі та
режими виконання.
Запустіть `video_generate action=list`, щоб переглянути доступних провайдерів, моделі та режими виконання під час виконання.
### Матриця оголошених можливостей
Це явний контракт режимів, який використовується `video_generate`, контрактними тестами
та спільним live sweep.
Це явний контракт режимів, який використовують `video_generate`, контрактні тести та спільний live sweep.
| Провайдер | `generate` | `imageToVideo` | `videoToVideo` | Спільні live-лінії сьогодні |
| Провайдер | `generate` | `imageToVideo` | `videoToVideo` | Спільні live-lane сьогодні |
| --------- | ---------- | -------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Alibaba | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропускається, оскільки цьому провайдеру потрібні віддалені `http(s)` URL відео |
| Alibaba | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропущено, оскільки цьому провайдеру потрібні віддалені URL відео `http(s)` |
| BytePlus | Так | Так | Ні | `generate`, `imageToVideo` |
| ComfyUI | Так | Так | Ні | Не входить до спільного sweep; покриття, специфічне для workflow, живе в тестах Comfy |
| ComfyUI | Так | Так | Ні | Не входить до спільного sweep; покриття, специфічне для workflow, знаходиться в тестах Comfy |
| fal | Так | Так | Ні | `generate`, `imageToVideo` |
| Google | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропускається, оскільки поточний Gemini/Veo sweep із буферним джерелом не приймає такий ввід |
| Google | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропущено, оскільки поточний sweep Gemini/Veo з буферним введенням не приймає такий вхід |
| MiniMax | Так | Так | Ні | `generate`, `imageToVideo` |
| OpenAI | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропускається, оскільки цей шлях org/input наразі потребує доступу до provider-side inpaint/remix |
| Qwen | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропускається, оскільки цьому провайдеру потрібні віддалені `http(s)` URL відео |
| Runway | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` виконується лише коли вибрана модель `runway/gen4_aleph` |
| OpenAI | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропущено, оскільки цей шлях org/input наразі потребує доступу до inpaint/remix на боці провайдера |
| Qwen | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропущено, оскільки цьому провайдеру потрібні віддалені URL відео `http(s)` |
| Runway | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` виконується лише тоді, коли вибрана модель `runway/gen4_aleph` |
| Together | Так | Так | Ні | `generate`, `imageToVideo` |
| Vydra | Так | Так | Ні | `generate`; спільний `imageToVideo` пропускається, оскільки вбудований `veo3` підтримує лише text-to-video, а вбудований `kling` потребує віддалений URL зображення |
| xAI | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропускається, оскільки цьому провайдеру наразі потрібен віддалений URL MP4 |
| Vydra | Так | Так | Ні | `generate`; спільний `imageToVideo` пропущено, оскільки вбудований `veo3` підтримує лише text-to-video, а вбудований `kling` вимагає віддалений URL зображення |
| xAI | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропущено, оскільки цьому провайдеру наразі потрібен віддалений URL MP4 |
## Параметри інструмента
### Обов’язкові
| Параметр | Тип | Опис |
| -------- | ------ | ----------------------------------------------------------------------------- |
| `prompt` | string | Текстовий опис відео для генерації (обов’язковий для `action: "generate"`) |
| Параметр | Тип | Опис |
| -------- | ------ | ---------------------------------------------------------------------------------- |
| `prompt` | string | Текстовий опис відео для генерації (обов’язковий для `action: "generate"`) |
### Вхідні дані контенту
@ -147,35 +144,35 @@ openclaw tasks cancel <taskId>
| Параметр | Тип | Опис |
| ----------------- | ------- | ------------------------------------------------------------------------ |
| `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` |
| `resolution` | string | `480P`, `720P`, `768P`, або `1080P` |
| `durationSeconds` | number | Цільова тривалість у секундах (округлюється до найближчого значення, яке підтримує провайдер) |
| `size` | string | Підказка розміру, якщо провайдер це підтримує |
| `resolution` | string | `480P`, `720P`, `768P` або `1080P` |
| `durationSeconds` | number | Цільова тривалість у секундах (округлюється до найближчого підтримуваного провайдером значення) |
| `size` | string | Підказка щодо розміру, якщо провайдер це підтримує |
| `audio` | boolean | Увімкнути згенероване аудіо, якщо підтримується |
| `watermark` | boolean | Увімкнути або вимкнути водяний знак провайдера, якщо підтримується |
| `watermark` | boolean | Перемкнути водяний знак провайдера, якщо підтримується |
### Розширені
### Додатково
| Параметр | Тип | Опис |
| ---------- | ------ | -------------------------------------------------- |
| `action` | string | `"generate"` (за замовчуванням), `"status"` або `"list"` |
| `model` | string | Перевизначення провайдера/моделі (наприклад, `runway/gen4.5`) |
| `filename` | string | Підказка для імені вихідного файлу |
| Параметр | Тип | Опис |
| --------- | ------ | ----------------------------------------------------- |
| `action` | string | `"generate"` (за замовчуванням), `"status"` або `"list"` |
| `model` | string | Перевизначення провайдера/моделі (наприклад, `runway/gen4.5`) |
| `filename`| string | Підказка щодо імені вихідного файлу |
Не всі провайдери підтримують усі параметри. Непідтримувані перевизначення ігноруються за принципом best-effort і повідомляються як попередження в результаті інструмента. Жорсткі обмеження можливостей (наприклад, забагато еталонних входів) призводять до помилки ще до надсилання.
Не всі провайдери підтримують усі параметри. OpenClaw уже нормалізує тривалість до найближчого підтримуваного провайдером значення, а також переналаштовує трансльовані геометричні підказки, наприклад перетворення size в aspectRatio, коли резервний провайдер має іншу поверхню керування. Справді непідтримувані перевизначення ігноруються за принципом best-effort і повідомляються як попередження в результаті інструмента. Жорсткі обмеження можливостей (наприклад, забагато еталонних входів) призводять до помилки ще до надсилання.
Еталонні входи також визначають режим виконання:
Еталонні входи також вибирають режим виконання:
- Без еталонних медіа: `generate`
- Без еталонних медіафайлів: `generate`
- Будь-яке еталонне зображення: `imageToVideo`
- Будь-яке еталонне відео: `videoToVideo`
Змішані еталонні зображення й відео не є стабільною спільною поверхнею можливостей.
Надавайте перевагу одному типу еталонів на запит.
Змішані еталонні зображення та відео не є стабільною спільною поверхнею можливостей.
Рекомендується використовувати один тип еталонних даних на запит.
## Дії
- **generate** (за замовчуванням) -- створити відео з поданого запиту та необов’язкових еталонних входів.
- **status** -- перевірити стан активного завдання генерації відео для поточної сесії без запуску нової генерації.
- **generate** (за замовчуванням) -- створити відео з указаного prompt і необов’язкових еталонних входів.
- **status** -- перевірити стан поточного відеозавдання для поточної сесії без запуску нової генерації.
- **list** -- показати доступних провайдерів, моделі та їхні можливості.
## Вибір моделі
@ -185,9 +182,11 @@ openclaw tasks cancel <taskId>
1. **Параметр інструмента `model`** -- якщо агент указує його у виклику.
2. **`videoGenerationModel.primary`** -- із конфігурації.
3. **`videoGenerationModel.fallbacks`** -- пробуються по черзі.
4. **Автовиявлення** -- використовує провайдерів із коректною автентифікацією, починаючи з поточного провайдера за замовчуванням, потім решту провайдерів в алфавітному порядку.
4. **Автовиявлення** -- використовує провайдерів із дійсною автентифікацією, починаючи з поточного провайдера за замовчуванням, а потім решту провайдерів в алфавітному порядку.
Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо помиляються всі кандидати, помилка містить деталі кожної спроби.
Якщо один провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі кандидати завершуються помилкою, помилка містить подробиці кожної спроби.
Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо хочете, щоб генерація відео використовувала лише явно задані записи `model`, `primary` і `fallbacks`.
```json5
{
@ -202,28 +201,26 @@ openclaw tasks cancel <taskId>
}
```
## Нотатки про провайдерів
## Примітки щодо провайдерів
| Провайдер | Нотатки |
| --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Alibaba | Використовує асинхронний endpoint DashScope/Model Studio. Еталонні зображення й відео мають бути віддаленими `http(s)` URL. |
| BytePlus | Лише одне еталонне зображення. |
| ComfyUI | Виконання у локальному або хмарному середовищі, кероване workflow. Підтримує text-to-video та image-to-video через налаштований граф. |
| fal | Використовує потік на основі черги для довготривалих завдань. Лише одне еталонне зображення. |
| Google | Використовує Gemini/Veo. Підтримує одне еталонне зображення або одне еталонне відео. |
| MiniMax | Лише одне еталонне зображення. |
| Провайдер | Примітки |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Alibaba | Використовує асинхронну кінцеву точку DashScope/Model Studio. Еталонні зображення та відео мають бути віддаленими URL `http(s)`. |
| BytePlus | Підтримується лише одне еталонне зображення. |
| ComfyUI | Локальне або хмарне виконання на основі workflow. Підтримує text-to-video та image-to-video через налаштований граф. |
| fal | Використовує flow на основі черги для довготривалих завдань. Підтримується лише одне еталонне зображення. |
| Google | Використовує Gemini/Veo. Підтримує одне еталонне зображення або одне еталонне відео. |
| MiniMax | Підтримується лише одне еталонне зображення. |
| OpenAI | Передається лише перевизначення `size`. Інші перевизначення стилю (`aspectRatio`, `resolution`, `audio`, `watermark`) ігноруються з попередженням. |
| Qwen | Той самий бекенд DashScope, що й Alibaba. Еталонні входи мають бути віддаленими `http(s)` URL; локальні файли одразу відхиляються. |
| Runway | Підтримує локальні файли через data URI. Для video-to-video потрібен `runway/gen4_aleph`. Для запусків лише з текстом доступні співвідношення сторін `16:9` і `9:16`. |
| Together | Лише одне еталонне зображення. |
| Vydra | Використовує `https://www.vydra.ai/api/v1` безпосередньо, щоб уникнути редиректів із втратою автентифікації. `veo3` вбудовано лише як text-to-video; `kling` потребує віддалений URL зображення. |
| xAI | Підтримує text-to-video, image-to-video, а також потоки редагування/розширення віддалених відео. |
| Qwen | Той самий бекенд DashScope, що й у Alibaba. Еталонні входи мають бути віддаленими URL `http(s)`; локальні файли відхиляються одразу. |
| Runway | Підтримує локальні файли через data URI. Для video-to-video потрібен `runway/gen4_aleph`. Запуски лише з текстом підтримують співвідношення сторін `16:9` і `9:16`. |
| Together | Підтримується лише одне еталонне зображення. |
| Vydra | Використовує `https://www.vydra.ai/api/v1` безпосередньо, щоб уникнути редиректів, які втрачають автентифікацію. `veo3` вбудовано лише як text-to-video; `kling` потребує віддалений URL зображення. |
| xAI | Підтримує text-to-video, image-to-video та віддалені сценарії редагування/розширення відео. |
## Режими можливостей провайдерів
Спільний контракт генерації відео тепер дозволяє провайдерам оголошувати
можливості, специфічні для режимів, замість лише плоских агрегованих обмежень. Нові реалізації провайдерів
мають надавати перевагу явним блокам режимів:
Спільний контракт генерації відео тепер дозволяє провайдерам оголошувати можливості, специфічні для режимів, замість лише пласких сукупних обмежень. Нові реалізації провайдерів мають надавати перевагу явним блокам режимів:
```typescript
capabilities: {
@ -247,15 +244,11 @@ capabilities: {
}
```
Плоских агрегованих полів, таких як `maxInputImages` і `maxInputVideos`,
недостатньо для оголошення підтримки режимів трансформації. Провайдери мають явно оголошувати
`generate`, `imageToVideo` і `videoToVideo`, щоб live-тести,
контрактні тести та спільний інструмент `video_generate` могли перевіряти підтримку режимів
детерміновано.
Пласкі сукупні поля, такі як `maxInputImages` і `maxInputVideos`, недостатні для оголошення підтримки режимів трансформації. Провайдери мають явно оголошувати `generate`, `imageToVideo` і `videoToVideo`, щоб live-тести, контрактні тести та спільний інструмент `video_generate` могли детерміновано перевіряти підтримку режимів.
## Live-тести
Live-покриття за opt-in для спільних вбудованих провайдерів:
Opt-in live-покриття для спільних вбудованих провайдерів:
```bash
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
@ -267,22 +260,20 @@ OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.liv
pnpm test:live:media video
```
Цей live-файл завантажує відсутні env vars провайдерів із `~/.profile`, за замовчуванням надає
перевагу live/env API-ключам над збереженими профілями автентифікації та запускає
оголошені режими, які може безпечно перевірити з локальними медіа:
Цей live-файл завантажує відсутні env var провайдерів із `~/.profile`, за замовчуванням віддає перевагу API-ключам із live/env перед збереженими профілями автентифікації та запускає оголошені режими, які може безпечно виконати з локальними медіафайлами:
- `generate` для кожного провайдера у sweep
- `generate` для кожного провайдера в sweep
- `imageToVideo`, коли `capabilities.imageToVideo.enabled`
- `videoToVideo`, коли `capabilities.videoToVideo.enabled` і провайдер/модель
приймає локальний відеоввід із буфера у спільному sweep
приймає локальне відеовведення з буфера у спільному sweep
Сьогодні спільна live-лінія `videoToVideo` охоплює:
Сьогодні спільний live-lane `videoToVideo` охоплює:
- лише `runway`, коли ви вибираєте `runway/gen4_aleph`
- лише `runway`, коли вибрано `runway/gen4_aleph`
## Конфігурація
Задайте модель генерації відео за замовчуванням у конфігурації OpenClaw:
Установіть модель генерації відео за замовчуванням у вашій конфігурації OpenClaw:
```json5
{