diff --git a/docs/uk/providers/minimax.md b/docs/uk/providers/minimax.md index aed80123a..1094d7593 100644 --- a/docs/uk/providers/minimax.md +++ b/docs/uk/providers/minimax.md @@ -1,14 +1,14 @@ --- read_when: - Ви хочете моделі MiniMax в OpenClaw - - Вам потрібні вказівки щодо налаштування MiniMax + - Вам потрібні вказівки з налаштування MiniMax summary: Використовуйте моделі MiniMax в OpenClaw title: MiniMax x-i18n: - generated_at: "2026-04-25T19:42:46Z" + generated_at: "2026-04-25T20:33:41Z" model: gpt-5.4 provider: openai - source_hash: 910dffc160d5acf69fcacaf0009395e5f53509fa2ffe3c20a9128c87013d1b36 + source_hash: 8b91f8c4c12c993457fb1535bbb2f3401474a3ec432b24189792a20041e756dc source_path: providers/minimax.md workflow: 15 --- @@ -24,23 +24,23 @@ MiniMax також надає: Розподіл провайдерів: -| Provider ID | Auth | Можливості | -| ---------------- | ------- | ------------------------------------------------------------- | -| `minimax` | API key | Текст, генерація зображень, розуміння зображень, мовлення, вебпошук | -| `minimax-portal` | OAuth | Текст, генерація зображень, розуміння зображень, мовлення | +| Provider ID | Auth | Можливості | +| ---------------- | ------- | -------------------------------------------------------------------------------------------------- | +| `minimax` | API key | Текст, генерація зображень, генерація музики, генерація відео, розуміння зображень, мовлення, веб-пошук | +| `minimax-portal` | OAuth | Текст, генерація зображень, генерація музики, генерація відео, розуміння зображень, мовлення | ## Вбудований каталог -| Model | Type | Description | +| Модель | Тип | Опис | | ------------------------ | ---------------- | ---------------------------------------- | -| `MiniMax-M2.7` | Chat (reasoning) | Хостингова модель міркування за замовчуванням | -| `MiniMax-M2.7-highspeed` | Chat (reasoning) | Швидший рівень міркування M2.7 | +| `MiniMax-M2.7` | Чат (міркування) | Типова хостингова модель міркування | +| `MiniMax-M2.7-highspeed` | Чат (міркування) | Швидший рівень міркування M2.7 | | `MiniMax-VL-01` | Vision | Модель розуміння зображень | -| `image-01` | Image generation | Генерація зображень із тексту та редагування зображень за зображенням | -| `music-2.6` | Music generation | Музична модель за замовчуванням | -| `music-2.5` | Music generation | Попередній рівень генерації музики | -| `music-2.0` | Music generation | Застарілий рівень генерації музики | -| `MiniMax-Hailuo-2.3` | Video generation | Потоки text-to-video і з використанням зображення як референсу | +| `image-01` | Генерація зображень | Перетворення тексту на зображення та редагування зображення в зображення | +| `music-2.6` | Генерація музики | Типова музична модель | +| `music-2.5` | Генерація музики | Попередній рівень генерації музики | +| `music-2.0` | Генерація музики | Застарілий рівень генерації музики | +| `MiniMax-Hailuo-2.3` | Генерація відео | Робочі процеси текст-у-відео та з посиланням на зображення | ## Початок роботи @@ -48,7 +48,7 @@ MiniMax також надає: - **Найкраще для:** швидкого налаштування MiniMax Coding Plan через OAuth, без потреби в API key. + **Найкраще для:** швидкого налаштування MiniMax Coding Plan через OAuth, ключ API не потрібен. @@ -58,7 +58,7 @@ MiniMax також надає: openclaw onboard --auth-choice minimax-global-oauth ``` - Це автентифікує через `api.minimax.io`. + Це виконує автентифікацію через `api.minimax.io`. ```bash @@ -74,7 +74,7 @@ MiniMax також надає: openclaw onboard --auth-choice minimax-cn-oauth ``` - Це автентифікує через `api.minimaxi.com`. + Це виконує автентифікацію через `api.minimaxi.com`. ```bash @@ -86,7 +86,7 @@ MiniMax також надає: - Налаштування OAuth використовують id провайдера `minimax-portal`. Посилання на моделі мають формат `minimax-portal/MiniMax-M2.7`. + Налаштування OAuth використовують ID провайдера `minimax-portal`. Посилання на модель мають формат `minimax-portal/MiniMax-M2.7`. @@ -96,7 +96,7 @@ MiniMax також надає: - **Найкраще для:** хостингового MiniMax з API, сумісним з Anthropic. + **Найкраще для:** хостингового MiniMax із API, сумісним з Anthropic. @@ -173,11 +173,11 @@ MiniMax також надає: ``` - У сумісному з Anthropic потоковому шляху OpenClaw за замовчуванням вимикає thinking MiniMax, якщо ви явно не встановите `thinking` самостійно. Потокова кінцева точка MiniMax надсилає `reasoning_content` у дельта-чанках у стилі OpenAI замість нативних блоків thinking Anthropic, через що внутрішні міркування можуть потрапити у видимий вивід, якщо залишити це неявно увімкненим. + У сумісному з Anthropic потоковому шляху OpenClaw за замовчуванням вимикає thinking для MiniMax, якщо ви явно не встановите `thinking` самостійно. Потокова кінцева точка MiniMax надсилає `reasoning_content` у дельта-фрагментах у стилі OpenAI замість нативних блоків thinking Anthropic, через що внутрішні міркування можуть потрапити у видимий вивід, якщо залишити цю функцію неявно ввімкненою. - Налаштування з API key використовують id провайдера `minimax`. Посилання на моделі мають формат `minimax/MiniMax-M2.7`. + Налаштування з ключем API використовують ID провайдера `minimax`. Посилання на модель мають формат `minimax/MiniMax-M2.7`. @@ -185,7 +185,7 @@ MiniMax також надає: ## Налаштування через `openclaw configure` -Використайте інтерактивний майстер конфігурації, щоб налаштувати MiniMax без редагування JSON: +Скористайтеся інтерактивним майстром конфігурації, щоб налаштувати MiniMax без редагування JSON: @@ -199,16 +199,16 @@ MiniMax також надає: Виберіть один із доступних варіантів MiniMax: - | Auth choice | Description | + | Auth choice | Опис | | --- | --- | | `minimax-global-oauth` | Міжнародний OAuth (Coding Plan) | | `minimax-cn-oauth` | OAuth для Китаю (Coding Plan) | - | `minimax-global-api` | Міжнародний API key | - | `minimax-cn-api` | API key для Китаю | + | `minimax-global-api` | Міжнародний ключ API | + | `minimax-cn-api` | Ключ API для Китаю | - - Коли з’явиться запит, виберіть модель за замовчуванням. + + Коли з’явиться запит, виберіть типову модель. @@ -218,13 +218,13 @@ MiniMax також надає: Plugin MiniMax реєструє модель `image-01` для інструмента `image_generate`. Вона підтримує: -- **Генерацію зображень із тексту** з керуванням співвідношенням сторін -- **Редагування зображень за зображенням** (референс об’єкта) з керуванням співвідношенням сторін +- **Генерацію зображення з тексту** з керуванням співвідношенням сторін +- **Редагування зображення на основі зображення** (посилання на об’єкт) з керуванням співвідношенням сторін - До **9 вихідних зображень** на запит -- До **1 референсного зображення** на запит редагування +- До **1 еталонного зображення** на запит редагування - Підтримувані співвідношення сторін: `1:1`, `16:9`, `4:3`, `3:2`, `2:3`, `3:4`, `9:16`, `21:9` -Щоб використовувати MiniMax для генерації зображень, встановіть його як провайдера генерації зображень: +Щоб використовувати MiniMax для генерації зображень, вкажіть його як провайдера генерації зображень: ```json5 { @@ -238,24 +238,24 @@ Plugin MiniMax реєструє модель `image-01` для інструме Plugin використовує той самий `MINIMAX_API_KEY` або OAuth-автентифікацію, що й текстові моделі. Якщо MiniMax уже налаштовано, додаткова конфігурація не потрібна. -І `minimax`, і `minimax-portal` реєструють `image_generate` з тією самою -моделлю `image-01`. Налаштування з API key використовують `MINIMAX_API_KEY`; налаштування OAuth можуть натомість використовувати -вбудований шлях автентифікації `minimax-portal`. +І `minimax`, і `minimax-portal` реєструють `image_generate` з однаковою +моделлю `image-01`. Налаштування з ключем API використовують `MINIMAX_API_KEY`; налаштування OAuth можуть використовувати +натомість вбудований шлях автентифікації `minimax-portal`. -Генерація зображень завжди використовує спеціалізовану кінцеву точку зображень MiniMax +Генерація зображень завжди використовує виділену кінцеву точку зображень MiniMax (`/v1/image_generation`) і ігнорує `models.providers.minimax.baseUrl`, -оскільки це поле налаштовує базовий URL для чату, сумісний з Anthropic. Встановіть +оскільки це поле налаштовує базовий URL для чату / сумісного з Anthropic API. Встановіть `MINIMAX_API_HOST=https://api.minimaxi.com`, щоб спрямувати генерацію зображень -через кінцеву точку CN; глобальна кінцева точка за замовчуванням — +через CN-кінцеву точку; глобальною кінцевою точкою за замовчуванням є `https://api.minimax.io`. -Коли онбординг або налаштування через API key записують явні записи +Коли онбординг або налаштування з ключем API записують явні записи `models.providers.minimax`, OpenClaw матеріалізує `MiniMax-M2.7` і -`MiniMax-M2.7-highspeed` як текстові моделі чату. Розуміння зображень -надається окремо через медіапровайдера `MiniMax-VL-01`, який належить plugin. +`MiniMax-M2.7-highspeed` як текстові чат-моделі. Розуміння зображень +надається окремо через медіапровайдера `MiniMax-VL-01`, який належить Plugin. -Див. [Генерація зображень](/uk/tools/image-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover. +Див. [Генерація зображень](/uk/tools/image-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover. ### Перетворення тексту на мовлення @@ -263,45 +263,46 @@ Plugin використовує той самий `MINIMAX_API_KEY` або OAuth Вбудований plugin `minimax` реєструє MiniMax T2A v2 як провайдера мовлення для `messages.tts`. -- Модель TTS за замовчуванням: `speech-2.8-hd` -- Голос за замовчуванням: `English_expressive_narrator` -- Підтримувані вбудовані id моделей включають `speech-2.8-hd`, `speech-2.8-turbo`, +- Типова модель TTS: `speech-2.8-hd` +- Типовий голос: `English_expressive_narrator` +- Підтримувані вбудовані ідентифікатори моделей включають `speech-2.8-hd`, `speech-2.8-turbo`, `speech-2.6-hd`, `speech-2.6-turbo`, `speech-02-hd`, `speech-02-turbo`, `speech-01-hd` і `speech-01-turbo`. -- Порядок визначення автентифікації: `messages.tts.providers.minimax.apiKey`, потім - профілі автентифікації `minimax-portal` OAuth/token, потім ключі середовища Token Plan (`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, - `MINIMAX_CODING_API_KEY`), потім `MINIMAX_API_KEY`. +- Визначення автентифікації виконується в такому порядку: `messages.tts.providers.minimax.apiKey`, потім + профілі автентифікації OAuth/токенів `minimax-portal`, потім ключі середовища Token Plan (`MINIMAX_OAUTH_TOKEN`, `MINIMAX_CODE_PLAN_KEY`, + `MINIMAX_CODING_API_KEY`), а потім `MINIMAX_API_KEY`. - Якщо хост TTS не налаштовано, OpenClaw повторно використовує налаштований - OAuth-хост `minimax-portal` і прибирає суфікси шляху, сумісні з Anthropic, + OAuth-хост `minimax-portal` і видаляє суфікси шляхів, сумісних з Anthropic, такі як `/anthropic`. - Звичайні аудіовкладення залишаються у форматі MP3. -- Цільові платформи для голосових нотаток, такі як Feishu і Telegram, перекодовуються з MP3 MiniMax - у 48kHz Opus за допомогою `ffmpeg`, оскільки API файлів Feishu/Lark приймає лише - `file_type: "opus"` для нативних аудіоповідомлень. +- Цілі для голосових нотаток, такі як Feishu і Telegram, транскодуються з MP3 MiniMax + у 48 кГц Opus за допомогою `ffmpeg`, оскільки API файлів Feishu/Lark приймає + лише `file_type: "opus"` для нативних аудіоповідомлень. - MiniMax T2A приймає дробові значення `speed` і `vol`, але `pitch` надсилається як - ціле число; OpenClaw відкидає дробову частину значень `pitch` перед API-запитом. + ціле число; OpenClaw відкидає дробову частину значень `pitch` перед запитом до API. -| Setting | Env var | Default | Description | -| ---------------------------------------- | ---------------------- | ----------------------------- | -------------------------------- | -| `messages.tts.providers.minimax.baseUrl` | `MINIMAX_API_HOST` | `https://api.minimax.io` | Хост API MiniMax T2A. | -| `messages.tts.providers.minimax.model` | `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | id моделі TTS. | -| `messages.tts.providers.minimax.voiceId` | `MINIMAX_TTS_VOICE_ID` | `English_expressive_narrator` | id голосу, що використовується для мовленнєвого виводу. | -| `messages.tts.providers.minimax.speed` | | `1.0` | Швидкість відтворення, `0.5..2.0`. | -| `messages.tts.providers.minimax.vol` | | `1.0` | Гучність, `(0, 10]`. | -| `messages.tts.providers.minimax.pitch` | | `0` | Цілочисельний зсув тону, `-12..12`. | +| Налаштування | Змінна середовища | Типове значення | Опис | +| ---------------------------------------- | ---------------------- | ---------------------------- | ----------------------------------- | +| `messages.tts.providers.minimax.baseUrl` | `MINIMAX_API_HOST` | `https://api.minimax.io` | Хост API MiniMax T2A. | +| `messages.tts.providers.minimax.model` | `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | Ідентифікатор моделі TTS. | +| `messages.tts.providers.minimax.voiceId` | `MINIMAX_TTS_VOICE_ID` | `English_expressive_narrator` | Ідентифікатор голосу для мовлення. | +| `messages.tts.providers.minimax.speed` | | `1.0` | Швидкість відтворення, `0.5..2.0`. | +| `messages.tts.providers.minimax.vol` | | `1.0` | Гучність, `(0, 10]`. | +| `messages.tts.providers.minimax.pitch` | | `0` | Цілочисельний зсув тону, `-12..12`. | ### Генерація музики -Вбудований plugin `minimax` також реєструє генерацію музики через спільний -інструмент `music_generate`. +Вбудований plugin MiniMax реєструє генерацію музики через спільний +інструмент `music_generate` для `minimax` і `minimax-portal`. -- Музична модель за замовчуванням: `minimax/music-2.6` -- Також підтримує `minimax/music-2.5` і `minimax/music-2.0` -- Керування промптом: `lyrics`, `instrumental`, `durationSeconds` -- Формат виходу: `mp3` -- Запуски з підтримкою сесій від’єднуються через спільний потік задачі/статусу, включно з `action: "status"` +- Типова музична модель: `minimax/music-2.6` +- Музична модель OAuth: `minimax-portal/music-2.6` +- Також підтримуються `minimax/music-2.5` і `minimax/music-2.0` +- Керування підказкою: `lyrics`, `instrumental`, `durationSeconds` +- Формат виводу: `mp3` +- Запуски з підтримкою сесій від’єднуються через спільний потік завдань/статусу, включно з `action: "status"` -Щоб використовувати MiniMax як провайдера музики за замовчуванням: +Щоб використовувати MiniMax як типовий провайдер музики: ```json5 { @@ -316,19 +317,20 @@ Plugin використовує той самий `MINIMAX_API_KEY` або OAuth ``` -Див. [Генерація музики](/uk/tools/music-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover. +Див. [Генерація музики](/uk/tools/music-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover. ### Генерація відео -Вбудований plugin `minimax` також реєструє генерацію відео через спільний -інструмент `video_generate`. +Вбудований plugin MiniMax реєструє генерацію відео через спільний +інструмент `video_generate` для `minimax` і `minimax-portal`. -- Відеомодель за замовчуванням: `minimax/MiniMax-Hailuo-2.3` -- Режими: text-to-video і потоки з одним референсним зображенням +- Типова відеомодель: `minimax/MiniMax-Hailuo-2.3` +- Відеомодель OAuth: `minimax-portal/MiniMax-Hailuo-2.3` +- Режими: текст-у-відео та потоки з одним еталонним зображенням - Підтримує `aspectRatio` і `resolution` -Щоб використовувати MiniMax як провайдера відео за замовчуванням: +Щоб використовувати MiniMax як типовий провайдер відео: ```json5 { @@ -343,7 +345,7 @@ Plugin використовує той самий `MINIMAX_API_KEY` або OAuth ``` -Див. [Генерація відео](/uk/tools/video-generation) щодо спільних параметрів інструмента, вибору провайдера та поведінки failover. +Див. [Генерація відео](/uk/tools/video-generation), щоб ознайомитися зі спільними параметрами інструмента, вибором провайдера та поведінкою failover. ### Розуміння зображень @@ -351,50 +353,50 @@ Plugin використовує той самий `MINIMAX_API_KEY` або OAuth Plugin MiniMax реєструє розуміння зображень окремо від текстового каталогу: -| Provider ID | Default image model | -| ---------------- | ------------------- | -| `minimax` | `MiniMax-VL-01` | -| `minimax-portal` | `MiniMax-VL-01` | +| Provider ID | Типова модель зображень | +| ---------------- | ----------------------- | +| `minimax` | `MiniMax-VL-01` | +| `minimax-portal` | `MiniMax-VL-01` | Саме тому автоматична маршрутизація медіа може використовувати розуміння зображень MiniMax навіть -тоді, коли вбудований каталог текстового провайдера все ще показує лише текстові посилання на чат M2.7. +коли вбудований каталог текстових провайдерів усе ще показує лише текстові посилання на чат-моделі M2.7. -### Вебпошук +### Веб-пошук -Plugin MiniMax також реєструє `web_search` через API пошуку MiniMax Coding Plan. +Plugin MiniMax також реєструє `web_search` через пошуковий API MiniMax Coding Plan. -- id провайдера: `minimax` -- Структуровані результати: заголовки, URL, фрагменти, пов’язані запити +- ID провайдера: `minimax` +- Структуровані результати: заголовки, URL, сніпети, пов’язані запити - Бажана змінна середовища: `MINIMAX_CODE_PLAN_KEY` -- Прийнятний псевдонім env: `MINIMAX_CODING_API_KEY` -- Сумісний резервний варіант: `MINIMAX_API_KEY`, якщо він уже вказує на токен coding-plan -- Повторне використання регіону: `plugins.entries.minimax.config.webSearch.region`, потім `MINIMAX_API_HOST`, потім базові URL провайдера MiniMax -- Пошук залишається на id провайдера `minimax`; налаштування OAuth CN/global усе ще можуть опосередковано керувати регіоном через `models.providers.minimax-portal.baseUrl` +- Прийнятний псевдонім змінної середовища: `MINIMAX_CODING_API_KEY` +- Резервний варіант для сумісності: `MINIMAX_API_KEY`, якщо він уже вказує на токен coding plan +- Повторне використання регіону: `plugins.entries.minimax.config.webSearch.region`, потім `MINIMAX_API_HOST`, потім базові URL провайдерів MiniMax +- Пошук залишається на ID провайдера `minimax`; налаштування OAuth CN/global усе ще можуть непрямо спрямовувати регіон через `models.providers.minimax-portal.baseUrl` -Конфігурація розміщується в `plugins.entries.minimax.config.webSearch.*`. +Конфігурація розташована в `plugins.entries.minimax.config.webSearch.*`. -Див. [MiniMax Search](/uk/tools/minimax-search) для повної конфігурації та використання вебпошуку. +Див. [Пошук MiniMax](/uk/tools/minimax-search), щоб ознайомитися з повною конфігурацією та використанням веб-пошуку. ## Розширена конфігурація - | Option | Description | + | Параметр | Опис | | --- | --- | - | `models.providers.minimax.baseUrl` | Надавайте перевагу `https://api.minimax.io/anthropic` (сумісний з Anthropic); `https://api.minimax.io/v1` — необов’язковий для корисних навантажень, сумісних з OpenAI | - | `models.providers.minimax.api` | Надавайте перевагу `anthropic-messages`; `openai-completions` — необов’язковий для корисних навантажень, сумісних з OpenAI | - | `models.providers.minimax.apiKey` | API key MiniMax (`MINIMAX_API_KEY`) | - | `models.providers.minimax.models` | Визначте `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost` | + | `models.providers.minimax.baseUrl` | Надавайте перевагу `https://api.minimax.io/anthropic` (сумісний з Anthropic); `https://api.minimax.io/v1` необов’язковий для payloads, сумісних з OpenAI | + | `models.providers.minimax.api` | Надавайте перевагу `anthropic-messages`; `openai-completions` необов’язковий для payloads, сумісних з OpenAI | + | `models.providers.minimax.apiKey` | Ключ API MiniMax (`MINIMAX_API_KEY`) | + | `models.providers.minimax.models` | Визначає `id`, `name`, `reasoning`, `contextWindow`, `maxTokens`, `cost` | | `agents.defaults.models` | Псевдоніми моделей, які ви хочете додати до allowlist | - | `models.mode` | Залиште `merge`, якщо хочете додати MiniMax поряд із вбудованими | + | `models.mode` | Залиште `merge`, якщо хочете додати MiniMax поруч із вбудованими моделями | - - Для `api: "anthropic-messages"` OpenClaw додає `thinking: { type: "disabled" }`, якщо thinking уже не задано явно в params/config. + + Для `api: "anthropic-messages"` OpenClaw додає `thinking: { type: "disabled" }`, якщо thinking ще не задано явно в параметрах/конфігурації. - Це запобігає тому, щоб потокова кінцева точка MiniMax надсилала `reasoning_content` у дельта-чанках у стилі OpenAI, що призвело б до витоку внутрішніх міркувань у видимий вивід. + Це запобігає тому, що потокова кінцева точка MiniMax надсилатиме `reasoning_content` у дельта-фрагментах у стилі OpenAI, через що внутрішні міркування потраплятимуть у видимий вивід. @@ -402,8 +404,8 @@ Plugin MiniMax також реєструє `web_search` через API пошу `/fast on` або `params.fastMode: true` переписує `MiniMax-M2.7` на `MiniMax-M2.7-highspeed` у сумісному з Anthropic потоковому шляху. - - **Найкраще для:** зберегти вашу найсильнішу модель останнього покоління як основну та використовувати MiniMax M2.7 як резервну. У прикладі нижче як конкретна основна модель використовується Opus; замініть її на бажану основну модель останнього покоління. + + **Найкраще для:** зберегти найсильнішу актуальну модель нового покоління як основну й переключатися на MiniMax M2.7 у разі збою. У прикладі нижче як конкретну основну модель використано Opus; замініть її на бажану для вас актуальну модель нового покоління. ```json5 { @@ -426,50 +428,50 @@ Plugin MiniMax також реєструє `web_search` через API пошу - - API використання Coding Plan: `https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains` (потребує ключа coding plan). - - OpenClaw нормалізує використання MiniMax coding-plan до того самого відображення `% left`, яке використовується для інших провайдерів. Сирі поля MiniMax `usage_percent` / `usagePercent` означають залишок квоти, а не витрачену квоту, тому OpenClaw інвертує їх. Поля на основі підрахунку мають пріоритет, якщо вони присутні. - - Коли API повертає `model_remains`, OpenClaw надає перевагу запису chat-model, за потреби виводить мітку вікна з `start_time` / `end_time` і включає назву вибраної моделі до мітки плану, щоб вікна coding-plan було легше розрізняти. - - Знімки використання розглядають `minimax`, `minimax-cn` і `minimax-portal` як одну й ту саму поверхню квоти MiniMax та надають перевагу збереженому MiniMax OAuth перед резервним використанням змінних середовища з ключем Coding Plan. + - API використання Coding Plan: `https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains` (потрібен ключ coding plan). + - OpenClaw нормалізує використання MiniMax coding plan до того самого відображення `% left`, що й для інших провайдерів. Сирі поля MiniMax `usage_percent` / `usagePercent` означають залишкову квоту, а не спожиту, тому OpenClaw інвертує їх. Поля з підрахунком мають пріоритет, якщо вони присутні. + - Коли API повертає `model_remains`, OpenClaw надає перевагу запису чат-моделі, за потреби виводить мітку вікна з `start_time` / `end_time` і включає вибрану назву моделі до мітки плану, щоб вікна coding plan було легше розрізняти. + - Знімки використання розглядають `minimax`, `minimax-cn` і `minimax-portal` як одну й ту саму поверхню квоти MiniMax і надають перевагу збереженому OAuth MiniMax, перш ніж переходити до змінних середовища з ключами Coding Plan. ## Примітки -- Посилання на моделі залежать від шляху автентифікації: - - Налаштування з API key: `minimax/` +- Посилання на моделі відповідають шляху автентифікації: + - Налаштування з ключем API: `minimax/` - Налаштування OAuth: `minimax-portal/` -- Модель чату за замовчуванням: `MiniMax-M2.7` -- Альтернативна модель чату: `MiniMax-M2.7-highspeed` -- Онбординг і пряме налаштування через API key записують визначення лише текстових моделей для обох варіантів M2.7 -- Для розуміння зображень використовується медіапровайдер `MiniMax-VL-01`, який належить plugin +- Типова чат-модель: `MiniMax-M2.7` +- Альтернативна чат-модель: `MiniMax-M2.7-highspeed` +- Онбординг і пряме налаштування з ключем API записують визначення лише текстових моделей для обох варіантів M2.7 +- Для розуміння зображень використовується медіапровайдер `MiniMax-VL-01`, який належить Plugin - Оновіть значення цін у `models.json`, якщо вам потрібне точне відстеження вартості -- Використайте `openclaw models list`, щоб підтвердити поточний id провайдера, а потім перемкніть через `openclaw models set minimax/MiniMax-M2.7` або `openclaw models set minimax-portal/MiniMax-M2.7` +- Використовуйте `openclaw models list`, щоб підтвердити поточний ID провайдера, а потім перемикайтеся через `openclaw models set minimax/MiniMax-M2.7` або `openclaw models set minimax-portal/MiniMax-M2.7` Реферальне посилання для MiniMax Coding Plan (знижка 10%): [MiniMax Coding Plan](https://platform.minimax.io/subscribe/coding-plan?code=DbXJTRClnb&source=link) -Див. [Провайдери моделей](/uk/concepts/model-providers) щодо правил провайдерів. +Див. [Провайдери моделей](/uk/concepts/model-providers), щоб ознайомитися з правилами для провайдерів. ## Усунення несправностей - Зазвичай це означає, що **провайдер MiniMax не налаштований** (немає відповідного запису провайдера і не знайдено профіль автентифікації/env key MiniMax). Виправлення для цього виявлення є в **2026.1.12**. Щоб виправити: + Зазвичай це означає, що **провайдер MiniMax не налаштовано** (немає відповідного запису провайдера і не знайдено профіль автентифікації/env key MiniMax). Виправлення для цього виявлення є у версії **2026.1.12**. Щоб виправити проблему: - - Оновіться до **2026.1.12** (або запустіть із вихідного коду `main`), а потім перезапустіть Gateway. - - Запустіть `openclaw configure` і виберіть параметр автентифікації **MiniMax**, або + - Оновіться до **2026.1.12** (або запустіть з вихідного коду `main`), а потім перезапустіть Gateway. + - Запустіть `openclaw configure` і виберіть варіант автентифікації **MiniMax**, або - Додайте відповідний блок `models.providers.minimax` або `models.providers.minimax-portal` вручну, або - - Встановіть `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN` або профіль автентифікації MiniMax, щоб можна було інʼєктувати відповідний провайдер. + - Встановіть `MINIMAX_API_KEY`, `MINIMAX_OAUTH_TOKEN` або профіль автентифікації MiniMax, щоб можна було підставити відповідний провайдер. - Переконайтеся, що id моделі **чутливий до регістру**: + Переконайтеся, що ID моделі **чутливий до регістру**: - - Шлях API key: `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed` + - Шлях із ключем API: `minimax/MiniMax-M2.7` або `minimax/MiniMax-M2.7-highspeed` - Шлях OAuth: `minimax-portal/MiniMax-M2.7` або `minimax-portal/MiniMax-M2.7-highspeed` - Потім перевірте ще раз за допомогою: + Потім ще раз перевірте за допомогою: ```bash openclaw models list @@ -479,7 +481,7 @@ Plugin MiniMax також реєструє `web_search` через API пошу -Додаткова допомога: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq). +Більше допомоги: [Усунення несправностей](/uk/help/troubleshooting) і [FAQ](/uk/help/faq). ## Пов’язане @@ -497,8 +499,8 @@ Plugin MiniMax також реєструє `web_search` через API пошу Спільні параметри інструмента відео і вибір провайдера. - - Конфігурація вебпошуку через MiniMax Coding Plan. + + Конфігурація веб-пошуку через MiniMax Coding Plan. Загальне усунення несправностей і FAQ. diff --git a/docs/uk/tools/music-generation.md b/docs/uk/tools/music-generation.md index ecc6a02c3..30300d54c 100644 --- a/docs/uk/tools/music-generation.md +++ b/docs/uk/tools/music-generation.md @@ -3,37 +3,36 @@ read_when: - Генерація музики або аудіо через агента - Налаштування провайдерів і моделей для генерації музики - Розуміння параметрів інструмента `music_generate` -summary: Генеруйте музику за допомогою спільних провайдерів, зокрема Plugin, що підтримуються робочими процесами +summary: Створюйте музику за допомогою спільних провайдерів, зокрема Plugin на основі робочих процесів title: Генерація музики x-i18n: - generated_at: "2026-04-25T10:05:03Z" + generated_at: "2026-04-25T20:33:46Z" model: gpt-5.4 provider: openai - source_hash: fe66c6dfb54c71b1d08a486c574e8a86cf3731d5339b44b9eef121f045c13cb8 + source_hash: 1b23ad4c787e404f681c71e48b73d1642d7eeb116c11cc8716ae4f0e7a75677d source_path: tools/music-generation.md workflow: 15 --- Інструмент `music_generate` дає агенту змогу створювати музику або аудіо через спільну можливість генерації музики з налаштованими провайдерами, такими як Google, -MiniMax і налаштований через робочі процеси ComfyUI. +MiniMax і ComfyUI, налаштований через робочі процеси. Для сеансів агента на основі спільних провайдерів OpenClaw запускає генерацію музики як фонове завдання, відстежує її в журналі завдань, а потім знову пробуджує агента, коли -трек готовий, щоб агент міг опублікувати готове аудіо назад у -початковий канал. +трек готовий, щоб агент міг опублікувати готове аудіо назад в оригінальний канал. -Вбудований спільний інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації музики. Якщо ви не бачите `music_generate` серед інструментів вашого агента, налаштуйте `agents.defaults.musicGenerationModel` або задайте API-ключ провайдера. +Вбудований спільний інструмент з’являється лише тоді, коли доступний принаймні один провайдер генерації музики. Якщо ви не бачите `music_generate` в інструментах вашого агента, налаштуйте `agents.defaults.musicGenerationModel` або вкажіть API-ключ провайдера. ## Швидкий старт ### Генерація на основі спільних провайдерів -1. Установіть API-ключ принаймні для одного провайдера, наприклад `GEMINI_API_KEY` або +1. Укажіть API-ключ принаймні для одного провайдера, наприклад `GEMINI_API_KEY` або `MINIMAX_API_KEY`. -2. За бажанням установіть бажану модель: +2. За бажанням укажіть бажану модель: ```json5 { @@ -47,14 +46,13 @@ MiniMax і налаштований через робочі процеси Comfy } ``` -3. Попросіть агента: _"Згенеруй бадьорий synthpop-трек про нічну поїздку - крізь неонове місто."_ +3. Попросіть агента: _"Згенеруй енергійний synthpop-трек про нічну поїздку + неоновим містом."_ -Агент викликає `music_generate` автоматично. Дозволений список інструментів не потрібен. +Агент автоматично викликає `music_generate`. Дозвільний список інструментів не потрібен. Для прямих синхронних контекстів без запуску агента на основі сеансу вбудований -інструмент усе одно повертається до вбудованої генерації та повертає фінальний шлях до медіафайлу в -результаті інструмента. +інструмент усе одно переходить до вбудованої генерації та повертає фінальний шлях до медіа в результаті інструмента. Приклади запитів: @@ -66,14 +64,14 @@ Generate a cinematic piano track with soft strings and no vocals. Generate an energetic chiptune loop about launching a rocket at sunrise. ``` -### Генерація Comfy на основі робочих процесів +### Генерація Comfy на основі робочого процесу -Убудований Plugin `comfy` підключається до спільного інструмента `music_generate` через +Вбудований Plugin `comfy` підключається до спільного інструмента `music_generate` через реєстр провайдерів генерації музики. -1. Налаштуйте `plugins.entries.comfy.config.music` за допомогою workflow JSON і - вузлів запиту/виводу. -2. Якщо ви використовуєте Comfy Cloud, установіть `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY`. +1. Налаштуйте `plugins.entries.comfy.config.music` за допомогою JSON робочого процесу та + вузлів prompt/output. +2. Якщо ви використовуєте Comfy Cloud, укажіть `COMFY_API_KEY` або `COMFY_CLOUD_API_KEY`. 3. Попросіть агента створити музику або викличте інструмент безпосередньо. Приклад: @@ -82,33 +80,33 @@ Generate an energetic chiptune loop about launching a rocket at sunrise. /tool music_generate prompt="Warm ambient synth loop with soft tape texture" ``` -## Підтримка спільних убудованих провайдерів +## Підтримка спільних вбудованих провайдерів -| Провайдер | Модель за замовчуванням | Еталонні вхідні дані | Підтримувані елементи керування | API-ключ | -| --------- | ----------------------- | -------------------- | ------------------------------------------------------- | -------------------------------------- | -| ComfyUI | `workflow` | До 1 зображення | Визначені робочим процесом музика або аудіо | `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.6` | Немає | `lyrics`, `instrumental`, `durationSeconds`, `format=mp3` | `MINIMAX_API_KEY` | +| Провайдер | Модель за замовчуванням | Еталонні вхідні дані | Підтримувані параметри керування | API-ключ | +| --------- | ----------------------- | -------------------- | ------------------------------------------------------ | -------------------------------------- | +| ComfyUI | `workflow` | До 1 зображення | Музика або аудіо, визначені робочим процесом | `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.6` | Немає | `lyrics`, `instrumental`, `durationSeconds`, `format=mp3` | `MINIMAX_API_KEY` або MiniMax OAuth | ### Матриця оголошених можливостей Це явний контракт режимів, який використовується `music_generate`, контрактними тестами та спільним live sweep. -| Провайдер | `generate` | `edit` | Ліміт редагування | Спільні live lanes | +| Провайдер | `generate` | `edit` | Ліміт редагування | Спільні live-ланки | | --------- | ---------- | ------ | ----------------- | ------------------------------------------------------------------------- | -| ComfyUI | Так | Так | 1 зображення | Не входить до спільного sweep; покрито в `extensions/comfy/comfy.live.test.ts` | +| ComfyUI | Так | Так | 1 зображення | Не входить до спільного sweep; покривається `extensions/comfy/comfy.live.test.ts` | | 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 @@ -122,37 +120,40 @@ Generate an energetic chiptune loop about launching a rocket at sunrise. ## Параметри вбудованого інструмента -| Параметр | Тип | Опис | -| ---------------- | -------- | ------------------------------------------------------------------------------------------------ | -| `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 | Цільова тривалість у секундах, якщо провайдер підтримує підказки щодо тривалості | -| `timeoutMs` | 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 | Цільова тривалість у секундах, якщо провайдер підтримує підказки тривалості | +| `timeoutMs` | number | Необов’язковий тайм-аут запиту до провайдера в мілісекундах | +| `format` | string | Підказка щодо формату виводу (`mp3` або `wav`), якщо провайдер це підтримує | +| `filename` | string | Підказка щодо назви вихідного файла | Не всі провайдери підтримують усі параметри. OpenClaw усе одно перевіряє жорсткі обмеження, -наприклад кількість вхідних даних, перед надсиланням. Коли провайдер підтримує тривалість, але -використовує коротший максимум за запитане значення, OpenClaw автоматично обмежує її -до найближчої підтримуваної тривалості. Справді непідтримувані необов’язкові підказки ігноруються -з попередженням, коли вибраний провайдер або модель не можуть їх виконати. +такі як кількість вхідних даних, перед надсиланням. Коли провайдер підтримує тривалість, але +використовує коротший максимум, ніж запитане значення, OpenClaw автоматично обмежує його +до найближчої підтримуваної тривалості. Справді непідтримувані необов’язкові підказки +ігноруються з попередженням, якщо вибраний провайдер або модель не може їх врахувати. -Результати інструмента повідомляють про застосовані налаштування. Коли OpenClaw обмежує тривалість під час резервного переходу між провайдерами, повернене значення `durationSeconds` відображає надіслане значення, а `details.normalization.durationSeconds` показує відповідність між запитаним і застосованим значеннями. +Результати інструмента повідомляють про застосовані налаштування. Коли OpenClaw обмежує +тривалість під час переходу до резервного провайдера, повернене `durationSeconds` відображає +надіслане значення, а `details.normalization.durationSeconds` показує зіставлення +між запитаним і застосованим значенням. ## Асинхронна поведінка для шляху на основі спільних провайдерів -- Запуски агента на основі сеансу: `music_generate` створює фонове завдання, негайно повертає відповідь started/task і публікує готовий трек пізніше в наступному повідомленні агента. -- Запобігання дублікатам: поки це фонове завдання все ще має стан `queued` або `running`, наступні виклики `music_generate` у тому самому сеансі повертають стан завдання замість запуску нової генерації. -- Перевірка стану: використовуйте `action: "status"`, щоб переглянути активне завдання музики на основі сеансу без запуску нової генерації. -- Відстеження завдань: використовуйте `openclaw tasks list` або `openclaw tasks show `, щоб перевіряти стани queued, running і terminal для генерації. -- Пробудження після завершення: OpenClaw впроваджує внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати подальше повідомлення для користувача. -- Підказка в запиті: наступні користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, коли завдання музики вже виконується, щоб модель не викликала `music_generate` повторно бездумно. -- Резервний варіант без сеансу: прямі/локальні контексти без реального сеансу агента все одно виконуються вбудовано й повертають фінальний результат аудіо в тому самому ході. +- Запуски агента на основі сеансу: `music_generate` створює фонове завдання, одразу повертає відповідь про запуск/завдання, а готовий трек публікує пізніше в наступному повідомленні агента. +- Запобігання дублюванню: поки це фонове завдання має статус `queued` або `running`, наступні виклики `music_generate` у тому самому сеансі повертають статус завдання замість запуску нової генерації. +- Перевірка статусу: використовуйте `action: "status"`, щоб переглянути активне музичне завдання на основі сеансу без запуску нового. +- Відстеження завдань: використовуйте `openclaw tasks list` або `openclaw tasks show `, щоб переглянути статуси `queued`, `running` і фінальні статуси для генерації. +- Пробудження після завершення: OpenClaw додає внутрішню подію завершення назад у той самий сеанс, щоб модель могла сама написати видиме користувачеві повідомлення-продовження. +- Підказка для запиту: наступні користувацькі/ручні ходи в тому самому сеансі отримують невелику підказку під час виконання, якщо завдання генерації музики вже триває, щоб модель не викликала `music_generate` повторно навмання. +- Режим без сеансу: прямі/локальні контексти без реального сеансу агента все одно виконуються вбудовано та повертають фінальний аудіорезультат у тому самому ході. ### Життєвий цикл завдання @@ -161,9 +162,9 @@ Generate an energetic chiptune loop about launching a rocket at sunrise. 1. **queued** -- завдання створено, очікує, поки провайдер його прийме. 2. **running** -- провайдер виконує обробку (зазвичай від 30 секунд до 3 хвилин залежно від провайдера та тривалості). 3. **succeeded** -- трек готовий; агент пробуджується та публікує його в розмові. -4. **failed** -- помилка провайдера або тайм-аут; агент пробуджується з відомостями про помилку. +4. **failed** -- помилка провайдера або тайм-аут; агент пробуджується з деталями помилки. -Перевірка стану з CLI: +Перевірка статусу з CLI: ```bash openclaw tasks list @@ -171,9 +172,9 @@ openclaw tasks show openclaw tasks cancel ``` -Запобігання дублікатам: якщо для поточного сеансу завдання музики вже має стан `queued` або `running`, `music_generate` повертає стан наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб явно перевірити стан без запуску нової генерації. +Запобігання дублюванню: якщо для поточного сеансу музичне завдання вже має статус `queued` або `running`, `music_generate` повертає статус наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб виконати явну перевірку без запуску нової генерації. -## Конфігурація +## Налаштування ### Вибір моделі @@ -192,36 +193,36 @@ openclaw tasks cancel ### Порядок вибору провайдера -Під час генерації музики OpenClaw пробує провайдерів у такому порядку: +Під час генерації музики OpenClaw намагається використовувати провайдерів у такому порядку: 1. параметр `model` з виклику інструмента, якщо агент його вказує -2. `musicGenerationModel.primary` з конфігурації -3. `musicGenerationModel.fallbacks` у заданому порядку -4. Автовизначення з використанням лише типових значень провайдера на основі автентифікації: - - спочатку поточний типовий провайдер +2. `musicGenerationModel.primary` із конфігурації +3. `musicGenerationModel.fallbacks` по черзі +4. Автовизначення лише за допомогою типових значень провайдера на основі автентифікації: + - спочатку поточний провайдер за замовчуванням - решта зареєстрованих провайдерів генерації музики в порядку provider-id -Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі завершуються помилкою, -помилка містить відомості про кожну спробу. +Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі +завершуються помилкою, помилка містить деталі кожної спроби. -Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо ви хочете, щоб -генерація музики використовувала лише явні записи `model`, `primary` і `fallbacks`. +Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо хочете, +щоб генерація музики використовувала лише явні записи `model`, `primary` і `fallbacks`. ## Примітки щодо провайдерів -- Google використовує пакетну генерацію Lyria 3. Поточний убудований потік підтримує - запит, необов’язковий текст пісні та необов’язкові еталонні зображення. -- MiniMax використовує пакетну кінцеву точку `music_generation`. Поточний убудований потік - підтримує запит, необов’язковий текст пісні, інструментальний режим, керування тривалістю та - вивід у форматі mp3. -- Підтримка ComfyUI базується на робочих процесах і залежить від налаштованого графа та - зіставлення вузлів для полів запиту/виводу. +- Google використовує пакетну генерацію Lyria 3. Поточний вбудований потік підтримує + prompt, необов’язковий текст пісні та необов’язкові еталонні зображення. +- MiniMax використовує пакетну кінцеву точку `music_generation`. Поточний вбудований потік + підтримує prompt, необов’язковий текст пісні, інструментальний режим, керування тривалістю та + вивід mp3 через автентифікацію API-ключем `minimax` або OAuth `minimax-portal`. +- Підтримка ComfyUI базується на робочому процесі та залежить від налаштованого графа плюс + зіставлення вузлів для полів prompt/output. ## Режими можливостей провайдера Спільний контракт генерації музики тепер підтримує явні оголошення режимів: -- `generate` для генерації лише за запитом +- `generate` для генерації лише за prompt - `edit`, коли запит містить одне або більше еталонних зображень Нові реалізації провайдерів мають надавати перевагу явним блокам режимів: @@ -243,19 +244,19 @@ capabilities: { ``` Застарілих плоских полів, таких як `maxInputImages`, `supportsLyrics` і -`supportsFormat`, недостатньо для оголошення підтримки редагування. Провайдери повинні +`supportsFormat`, недостатньо для оголошення підтримки редагування. Провайдери мають явно оголошувати `generate` і `edit`, щоб live-тести, контрактні тести та спільний інструмент `music_generate` могли детерміновано перевіряти підтримку режимів. ## Вибір правильного шляху -- Використовуйте шлях на основі спільних провайдерів, якщо вам потрібні вибір моделі, перемикання між провайдерами у разі помилок і вбудований асинхронний потік завдань/стану. -- Використовуйте шлях Plugin, наприклад ComfyUI, коли вам потрібен власний граф робочого процесу або провайдер, який не входить до спільної вбудованої можливості генерації музики. -- Якщо ви налагоджуєте поведінку, специфічну для ComfyUI, див. [ComfyUI](/uk/providers/comfy). Якщо ви налагоджуєте поведінку спільного провайдера, почніть із [Google (Gemini)](/uk/providers/google) або [MiniMax](/uk/providers/minimax). +- Використовуйте шлях на основі спільних провайдерів, коли вам потрібні вибір моделі, перемикання між провайдерами у разі збоїв і вбудований асинхронний потік завдань/статусу. +- Використовуйте шлях Plugin, наприклад ComfyUI, коли вам потрібен власний граф робочого процесу або провайдер, який не є частиною спільної вбудованої можливості генерації музики. +- Якщо ви налагоджуєте поведінку, специфічну для 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 @@ -267,23 +268,23 @@ OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.liv pnpm test:live:media music ``` -Цей live-файл завантажує відсутні змінні середовища провайдера з `~/.profile`, за замовчуванням надає перевагу -API-ключам з live/env перед збереженими профілями автентифікації та запускає покриття -`generate` і оголошеного `edit`, коли провайдер вмикає режим редагування. +Цей live-файл завантажує відсутні змінні середовища провайдерів із `~/.profile`, за +замовчуванням віддає перевагу live/env API-ключам перед збереженими профілями автентифікації та виконує покриття і для +`generate`, і для оголошеного `edit`, коли провайдер вмикає режим редагування. Сьогодні це означає: - `google`: `generate` плюс `edit` - `minimax`: лише `generate` -- `comfy`: окреме live-покриття Comfy, а не спільний sweep провайдерів +- `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 ``` -Файл live Comfy також покриває робочі процеси comfy для зображень і відео, коли ці +Live-файл Comfy також охоплює робочі процеси comfy для зображень і відео, коли ці розділи налаштовані. ## Пов’язане @@ -293,5 +294,5 @@ OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy. - [ComfyUI](/uk/providers/comfy) - [Google (Gemini)](/uk/providers/google) - [MiniMax](/uk/providers/minimax) -- [Моделі](/uk/concepts/models) - конфігурація моделей і перемикання у разі помилок +- [Моделі](/uk/concepts/models) - налаштування моделей і перемикання при збоях - [Огляд інструментів](/uk/tools) diff --git a/docs/uk/tools/video-generation.md b/docs/uk/tools/video-generation.md index d8ce55492..2973eeeb3 100644 --- a/docs/uk/tools/video-generation.md +++ b/docs/uk/tools/video-generation.md @@ -1,83 +1,81 @@ --- read_when: - - Генерування відео через агента - - Налаштування провайдерів і моделей генерації відео + - Створення відео через агента + - Налаштування провайдерів і моделей для генерації відео - Розуміння параметрів інструмента `video_generate` -summary: Генеруйте відео з тексту, зображень або наявних відео за допомогою 14 бекендів провайдерів +summary: Створюйте відео з тексту, зображень або наявних відео за допомогою 14 бекендів провайдерів title: Генерація відео x-i18n: - generated_at: "2026-04-25T17:34:40Z" + generated_at: "2026-04-25T20:33:41Z" model: gpt-5.4 provider: openai - source_hash: f04c9ac25a0ad08036266ab0c61a6ddf41ad944f64aa273ba31e09fc5774ac74 + source_hash: 83349231726cd65299733af1605e0d20ea69a50b35021a784943e5c597bf4eeb source_path: tools/video-generation.md workflow: 15 --- -Агенти OpenClaw можуть генерувати відео з текстових запитів, референсних зображень або наявних відео. Підтримуються чотирнадцять бекендів провайдерів, кожен із різними варіантами моделей, режимами введення та наборами функцій. Агент автоматично вибирає правильного провайдера на основі вашої конфігурації та доступних API-ключів. +Агенти OpenClaw можуть створювати відео з текстових запитів, референсних зображень або наявних відео. Підтримується чотирнадцять бекендів провайдерів, кожен із різними варіантами моделей, режимами введення та наборами функцій. Агент автоматично вибирає відповідного провайдера на основі вашої конфігурації та доступних API-ключів. -Інструмент `video_generate` з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви не бачите його в інструментах вашого агента, установіть API-ключ провайдера або налаштуйте `agents.defaults.videoGenerationModel`. +Інструмент `video_generate` з’являється лише тоді, коли доступний принаймні один провайдер генерації відео. Якщо ви його не бачите серед інструментів агента, задайте API-ключ провайдера або налаштуйте `agents.defaults.videoGenerationModel`. -OpenClaw розглядає генерацію відео як три режими під час виконання: +OpenClaw розглядає генерацію відео як три режими виконання: - `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" ``` -3. Запитайте агента: +3. Попросіть агента: -> Згенеруй 5-секундне кінематографічне відео з дружнім лобстером, який катається на серфі на заході сонця. +> Згенеруй 5-секундне кінематографічне відео, де дружній лобстер катається на серфі на заході сонця. Агент автоматично викликає `video_generate`. Дозволяти інструмент через allowlist не потрібно. ## Що відбувається, коли ви генеруєте відео -Генерація відео є асинхронною. Коли агент викликає `video_generate` у сеансі: +Генерація відео є асинхронною. Коли агент викликає `video_generate` у сесії: -1. OpenClaw надсилає запит провайдеру й одразу повертає ідентифікатор завдання. +1. OpenClaw надсилає запит провайдеру й одразу повертає ID задачі. 2. Провайдер обробляє завдання у фоновому режимі (зазвичай від 30 секунд до 5 хвилин залежно від провайдера та роздільної здатності). -3. Коли відео готове, OpenClaw пробуджує той самий сеанс внутрішньою подією завершення. +3. Коли відео готове, OpenClaw пробуджує ту саму сесію внутрішньою подією завершення. 4. Агент публікує готове відео назад в оригінальну розмову. -Поки завдання виконується, дубльовані виклики `video_generate` у тому самому сеансі повертають поточний стан завдання замість запуску нової генерації. Використовуйте `openclaw tasks list` або `openclaw tasks show `, щоб перевірити хід виконання з CLI. +Поки завдання виконується, повторні виклики `video_generate` у тій самій сесії повертають поточний статус задачі замість запуску нової генерації. Використовуйте `openclaw tasks list` або `openclaw tasks show `, щоб перевірити прогрес через CLI. -Поза запусками агента, що спираються на сеанс (наприклад, прямі виклики інструмента), інструмент повертається до вбудованої генерації та повертає фінальний шлях до медіа в тому самому ході. +Поза запусками агента, що базуються на сесії (наприклад, під час прямих викликів інструмента), інструмент переходить до вбудованої генерації та повертає шлях до фінального медіафайлу в межах того самого ходу. -Згенеровані відеофайли зберігаються в керованому OpenClaw сховищі медіа, коли -провайдер повертає байти. Типове обмеження на збереження згенерованого відео відповідає ліміту -відеомедіа, а `agents.defaults.mediaMaxMb` підвищує його для більших рендерів. -Коли провайдер також повертає розміщену URL-адресу результату, OpenClaw може доставити цю URL-адресу -замість завершення завдання помилкою, якщо локальне збереження відхиляє завеликий файл. +Згенеровані відеофайли зберігаються в керованому OpenClaw сховищі медіа, коли провайдер повертає байти. Типове обмеження збереження для згенерованого відео відповідає ліміту відеомедіа, а `agents.defaults.mediaMaxMb` збільшує його для більших рендерів. +Коли провайдер також повертає URL розміщеного результату, OpenClaw може передати цей URL +замість того, щоб завершити задачу з помилкою, якщо локальне збереження відхиляє +завеликий файл. -### Життєвий цикл завдання +### Життєвий цикл задачі Кожен запит `video_generate` проходить через чотири стани: -1. **queued** -- завдання створено, очікує, поки провайдер прийме його. +1. **queued** -- задачу створено, очікується, поки провайдер її прийме. 2. **running** -- провайдер виконує обробку (зазвичай від 30 секунд до 5 хвилин залежно від провайдера та роздільної здатності). -3. **succeeded** -- відео готове; агент пробуджується й публікує його в розмову. +3. **succeeded** -- відео готове; агент пробуджується та публікує його в розмову. 4. **failed** -- помилка провайдера або тайм-аут; агент пробуджується з деталями помилки. -Перевіряйте статус із CLI: +Перевірка статусу через CLI: ```bash openclaw tasks list @@ -85,80 +83,79 @@ openclaw tasks show openclaw tasks cancel ``` -Запобігання дублюванню: якщо для поточного сеансу завдання відео вже перебуває в стані `queued` або `running`, `video_generate` повертає стан наявного завдання замість запуску нового. Використовуйте `action: "status"`, щоб явно перевірити стан без запуску нової генерації. +Запобігання дублюванню: якщо для поточної сесії задача відеогенерації вже має стан `queued` або `running`, `video_generate` повертає статус наявної задачі замість запуску нової. Використовуйте `action: "status"`, щоб явно перевірити стан без запуску нової генерації. ## Підтримувані провайдери -| Провайдер | Типова модель | Текст | Реф. зображення | Реф. відео | API-ключ | -| --------------------- | ------------------------------ | ----- | ----------------------------------------------------- | ---------------- | ---------------------------------------- | -| 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` 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` | -| 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 зображення першого кадру або до 7 `reference_image` | 1 відео | `XAI_API_KEY` | +| Провайдер | Модель за замовчуванням | Текст | Референс зображення | Референс відео | API-ключ | +| -------------------- | ------------------------------- | ----- | --------------------------------------------------- | ---------------- | ---------------------------------------- | +| 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` | +| 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` або MiniMax OAuth | +| 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 зображення першого кадру або до 7 `reference_image`s | 1 відео | `XAI_API_KEY` | -Деякі провайдери приймають додаткові або альтернативні змінні середовища для API-ключів. Докладніше див. на окремих [сторінках провайдерів](#related). +Деякі провайдери приймають додаткові або альтернативні env vars для API-ключів. Докладніше див. на окремих [сторінках провайдерів](#related). -Виконайте `video_generate action=list`, щоб під час виконання переглянути доступних провайдерів, моделі та -режими роботи. +Запустіть `video_generate action=list`, щоб під час виконання переглянути доступних провайдерів, моделі та режими виконання. -### Матриця заявлених можливостей +### Оголошена матриця можливостей Це явний контракт режимів, який використовується `video_generate`, контрактними тестами -та спільним живим прогоном. +та спільним live sweep. -| Провайдер | `generate` | `imageToVideo` | `videoToVideo` | Спільні живі смуги сьогодні | -| --------- | ---------- | -------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| Alibaba | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропускається, оскільки цьому провайдеру потрібні віддалені URL-адреси відео `http(s)` | -| BytePlus | Так | Так | Ні | `generate`, `imageToVideo` | -| ComfyUI | Так | Так | Ні | Не входить до спільного прогону; покриття, специфічне для workflow, міститься в тестах Comfy | -| fal | Так | Так | Ні | `generate`, `imageToVideo` | -| Google | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропускається, оскільки поточний прогін Gemini/Veo на основі буфера не приймає цей ввід | -| MiniMax | Так | Так | Ні | `generate`, `imageToVideo` | -| OpenAI | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропускається, оскільки цей шлях організації/вводу наразі потребує доступу до provider-side inpaint/remix | -| 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 | +| Провайдер | `generate` | `imageToVideo` | `videoToVideo` | Спільні live lanes зараз | +| --------- | ---------- | -------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| Alibaba | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропущено, оскільки цьому провайдеру потрібні віддалені `http(s)` URL відео | +| BytePlus | Так | Так | Ні | `generate`, `imageToVideo` | +| ComfyUI | Так | Так | Ні | Не входить до спільного sweep; покриття, специфічне для workflow, знаходиться в тестах Comfy | +| fal | Так | Так | Ні | `generate`, `imageToVideo` | +| Google | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропущено, оскільки поточний sweep Gemini/Veo на основі буфера не приймає такий ввід | +| MiniMax | Так | Так | Ні | `generate`, `imageToVideo` | +| OpenAI | Так | Так | Так | `generate`, `imageToVideo`; спільний `videoToVideo` пропущено, оскільки цей шлях org/input зараз потребує доступу до inpaint/remix на боці провайдера | +| Qwen | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропущено, оскільки цьому провайдеру потрібні віддалені `http(s)` URL відео | +| Runway | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` запускається лише тоді, коли вибраною моделлю є `runway/gen4_aleph` | +| Together | Так | Так | Ні | `generate`, `imageToVideo` | +| Vydra | Так | Так | Ні | `generate`; спільний `imageToVideo` пропущено, оскільки вбудований `veo3` підтримує лише текст, а вбудований `kling` потребує віддаленого URL зображення | +| xAI | Так | Так | Так | `generate`, `imageToVideo`; `videoToVideo` пропущено, оскільки цьому провайдеру зараз потрібен віддалений URL MP4 | ## Параметри інструмента ### Обов’язкові -| Параметр | Тип | Опис | -| -------- | ------ | --------------------------------------------------------------------------- | -| `prompt` | string | Текстовий опис відео для генерації (обов’язково для `action: "generate"`) | +| Параметр | Тип | Опис | +| -------- | ------ | --------------------------------------------------------------------------------- | +| `prompt` | string | Текстовий опис відео для генерації (обов’язковий для `action: "generate"`) | -### Вхідні дані контенту +### Входи контенту | Параметр | Тип | Опис | | ----------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `image` | string | Одне референсне зображення (шлях або URL) | | `images` | string[] | Кілька референсних зображень (до 9) | -| `imageRoles`| string[] | Необов’язкові підказки ролей для кожної позиції, паралельні до об’єднаного списку зображень. Канонічні значення: `first_frame`, `last_frame`, `reference_image` | +| `imageRoles`| string[] | Необов’язкові підказки ролей для кожної позиції, паралельні об’єднаному списку зображень. Канонічні значення: `first_frame`, `last_frame`, `reference_image` | | `video` | string | Одне референсне відео (шлях або URL) | | `videos` | string[] | Кілька референсних відео (до 4) | -| `videoRoles`| string[] | Необов’язкові підказки ролей для кожної позиції, паралельні до об’єднаного списку відео. Канонічне значення: `reference_video` | +| `videoRoles`| string[] | Необов’язкові підказки ролей для кожної позиції, паралельні об’єднаному списку відео. Канонічне значення: `reference_video` | | `audioRef` | string | Одне референсне аудіо (шлях або URL). Використовується, наприклад, для фонової музики або референсу голосу, коли провайдер підтримує аудіовходи | | `audioRefs` | string[] | Кілька референсних аудіо (до 3) | -| `audioRoles`| string[] | Необов’язкові підказки ролей для кожної позиції, паралельні до об’єднаного списку аудіо. Канонічне значення: `reference_audio` | +| `audioRoles`| string[] | Необов’язкові підказки ролей для кожної позиції, паралельні об’єднаному списку аудіо. Канонічне значення: `reference_audio` | -Підказки ролей передаються провайдеру без змін. Канонічні значення беруться з -об’єднання `VideoGenerationAssetRole`, але провайдери можуть приймати додаткові +Підказки ролей передаються провайдеру без змін. Канонічні значення походять +із union `VideoGenerationAssetRole`, але провайдери можуть приймати додаткові рядки ролей. Масиви `*Roles` не повинні містити більше елементів, ніж -відповідний список референсів; помилки на один елемент дають зрозуміле повідомлення про помилку. -Використовуйте порожній рядок, щоб залишити позицію незаповненою. Для xAI встановіть для -кожної ролі зображення значення `reference_image`, щоб використовувати режим генерації `reference_images`; не вказуйте роль +відповідний список референсів; помилки на один елемент більше або менше +завершуються з чітким повідомленням про помилку. Використовуйте порожній рядок, щоб залишити позицію незаданою. Для xAI задайте для кожної ролі зображення +`reference_image`, щоб використовувати його режим генерації `reference_images`; не вказуйте роль або використовуйте `first_frame` для image-to-video з одним зображенням. ### Керування стилем @@ -168,70 +165,70 @@ openclaw tasks cancel | `aspectRatio` | string | `1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9`, `21:9` або `adaptive` | | `resolution` | string | `480P`, `720P`, `768P` або `1080P` | | `durationSeconds`| number | Цільова тривалість у секундах (округлюється до найближчого значення, яке підтримує провайдер) | -| `size` | string | Підказка розміру, якщо провайдер її підтримує | -| `audio` | boolean | Увімкнути згенерований звук у результаті, якщо підтримується. Відрізняється від `audioRef*` (входи) | -| `watermark` | boolean | Перемкнути водяний знак провайдера, якщо підтримується | +| `size` | string | Підказка розміру, якщо провайдер це підтримує | +| `audio` | boolean | Увімкнути згенероване аудіо у вихідному результаті, якщо підтримується. Відрізняється від `audioRef*` (входи) | +| `watermark` | boolean | Увімкнути або вимкнути водяні знаки провайдера, якщо підтримується | -`adaptive` — це специфічний для провайдера службовий маркер: він передається без змін -провайдерам, які декларують `adaptive` у своїх можливостях (наприклад, BytePlus +`adaptive` — це спеціальне значення, специфічне для провайдера: воно передається без змін +провайдерам, які оголошують `adaptive` у своїх можливостях (наприклад, BytePlus Seedance використовує його для автоматичного визначення співвідношення сторін за -розмірами вхідного зображення). Провайдери, які його не декларують, показують це значення через -`details.ignoredOverrides` у результаті інструмента, щоб пропуск був видимим. +розмірами вхідного зображення). Провайдери, які не оголошують цю можливість, показують значення через +`details.ignoredOverrides` у результаті інструмента, щоб відкидання було видимим. -### Розширені +### Додатково | Параметр | Тип | Опис | | ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `action` | string | `"generate"` (типово), `"status"` або `"list"` | +| `action` | string | `"generate"` (за замовчуванням), `"status"` або `"list"` | | `model` | string | Перевизначення провайдера/моделі (наприклад, `runway/gen4.5`) | -| `filename` | string | Підказка щодо імені вихідного файлу | +| `filename` | string | Підказка для імені вихідного файлу | | `timeoutMs` | number | Необов’язковий тайм-аут запиту до провайдера в мілісекундах | -| `providerOptions` | object | Специфічні для провайдера параметри як JSON-об’єкт (наприклад, `{"seed": 42, "draft": true}`). Провайдери, які оголошують типізовану схему, перевіряють ключі й типи значень; невідомі ключі або невідповідності пропускають кандидата під час резервного перемикання. Провайдери без оголошеної схеми отримують параметри без змін. Виконайте `video_generate action=list`, щоб побачити, що приймає кожен провайдер | +| `providerOptions` | object | Параметри, специфічні для провайдера, як JSON-об’єкт (наприклад, `{"seed": 42, "draft": true}`). Провайдери, які оголошують типізовану схему, перевіряють ключі та типи значень; невідомі ключі або невідповідності призводять до пропуску кандидата під час fallback. Провайдери без оголошеної схеми отримують параметри без змін. Запустіть `video_generate action=list`, щоб побачити, що приймає кожен провайдер | -Не всі провайдери підтримують усі параметри. OpenClaw уже нормалізує тривалість до найближчого значення, яке підтримує провайдер, а також переналаштовує трансформовані геометричні підказки, наприклад size-to-aspect-ratio, коли резервний провайдер має іншу поверхню керування. Справді непідтримувані перевизначення ігноруються в міру можливості й повідомляються як попередження в результаті інструмента. Жорсткі обмеження можливостей (наприклад, надто багато референсних входів) призводять до помилки ще до надсилання. +Не всі провайдери підтримують усі параметри. OpenClaw уже нормалізує тривалість до найближчого значення, яке підтримує провайдер, а також переназначає перекладені підказки геометрії, наприклад size-to-aspect-ratio, коли fallback-провайдер має іншу поверхню керування. Справді непідтримувані перевизначення ігноруються за принципом best-effort і повідомляються як попередження в результаті інструмента. Жорсткі обмеження можливостей (наприклад, занадто велика кількість референсних входів) призводять до помилки ще до надсилання. -Результати інструмента показують застосовані налаштування. Коли OpenClaw переналаштовує тривалість або геометрію під час резервного перемикання провайдера, повернуті значення `durationSeconds`, `size`, `aspectRatio` і `resolution` відображають те, що було надіслано, а `details.normalization` фіксує трансформацію від запитаного до застосованого. +Результати інструмента повідомляють застосовані налаштування. Коли OpenClaw переназначає тривалість або геометрію під час fallback провайдера, повернуті значення `durationSeconds`, `size`, `aspectRatio` і `resolution` відображають те, що було надіслано, а `details.normalization` фіксує перетворення від запитаного до застосованого. -Референсні входи також вибирають режим під час виконання: +Референсні входи також вибирають режим виконання: -- Без референсних медіа: `generate` +- Немає референсних медіа: `generate` - Будь-який референс зображення: `imageToVideo` - Будь-який референс відео: `videoToVideo` -- Референсні аудіовходи не змінюють визначений режим; вони застосовуються поверх режиму, який вибирають референси зображення/відео, і працюють лише з провайдерами, які декларують `maxInputAudios` +- Референсні аудіовходи не змінюють визначений режим; вони застосовуються поверх режиму, який вибирають референси зображення/відео, і працюють лише з провайдерами, які оголошують `maxInputAudios` Змішані референси зображень і відео не є стабільною спільною поверхнею можливостей. -Надавайте перевагу одному типу референсів на запит. +Краще використовувати один тип референсу на запит. -#### Резервне перемикання та типізовані параметри +#### Fallback і типізовані параметри -Деякі перевірки можливостей застосовуються на рівні резервного перемикання, а не -на межі інструмента, щоб запит, який перевищує ліміти основного провайдера, -усе ще міг виконатися на резервному провайдері з потрібними можливостями: +Деякі перевірки можливостей застосовуються на рівні fallback, а не на межі +інструмента, щоб запит, який перевищує обмеження основного провайдера, +усе ще міг виконатися на fallback, що має потрібні можливості: -- Якщо активний кандидат не декларує `maxInputAudios` (або декларує його як +- Якщо активний кандидат не оголошує `maxInputAudios` (або оголошує його як `0`), він пропускається, коли запит містить аудіореференси, і пробується наступний кандидат. -- Якщо `maxDurationSeconds` активного кандидата менше за запитаний - `durationSeconds`, а кандидат не декларує список +- Якщо `maxDurationSeconds` активного кандидата менший за запитаний + `durationSeconds`, а кандидат не оголошує список `supportedDurationSeconds`, він пропускається. - Якщо запит містить `providerOptions`, а активний кандидат - явно декларує типізовану схему `providerOptions`, кандидат - пропускається, коли надані ключі відсутні в схемі або типи значень + явно оголошує типізовану схему `providerOptions`, кандидат + пропускається, коли передані ключі відсутні в схемі або типи значень не збігаються. Провайдери, які ще не оголосили схему, отримують - параметри без змін (зворотно сумісна передача). Провайдер може + параметри без змін (зворотно сумісна наскрізна передача). Провайдер може явно відмовитися від усіх параметрів провайдера, оголосивши порожню схему - (`capabilities.providerOptions: {}`), що спричиняє той самий пропуск, що й + (`capabilities.providerOptions: {}`), що призводить до такого самого пропуску, як і невідповідність типів. Перша причина пропуску в запиті записується на рівні `warn`, щоб оператори бачили, -коли основного провайдера було обійдено; наступні пропуски записуються на -рівні `debug`, щоб довгі ланцюги резервного перемикання не засмічували журнали. Якщо пропущено кожного кандидата, -агрегована помилка включає причину пропуску для кожного з них. +коли їхній основний провайдер було пропущено; наступні пропуски записуються на +рівні `debug`, щоб довгі ланцюжки fallback не засмічували логи. Якщо кожен кандидат пропущено, +агрегована помилка містить причину пропуску для кожного. ## Дії -- **generate** (типово) -- створити відео з указаного prompt і необов’язкових референсних входів. -- **status** -- перевірити стан поточного відеозавдання для поточного сеансу без запуску нової генерації. +- **generate** (за замовчуванням) -- створити відео з указаного запиту та необов’язкових референсних входів. +- **status** -- перевірити стан поточної задачі генерації відео для поточної сесії без запуску нової генерації. - **list** -- показати доступних провайдерів, моделі та їхні можливості. ## Вибір моделі @@ -240,13 +237,14 @@ Seedance використовує його для автоматичного в 1. **Параметр інструмента `model`** -- якщо агент указує його у виклику. 2. **`videoGenerationModel.primary`** -- із конфігурації. -3. **`videoGenerationModel.fallbacks`** -- пробуються по порядку. -4. **Автовизначення** -- використовує провайдерів із дійсною автентифікацією, починаючи з поточного типового провайдера, а потім решту провайдерів в алфавітному порядку. +3. **`videoGenerationModel.fallbacks`** -- пробуються по черзі. +4. **Автовизначення** -- використовує провайдерів із дійсною автентифікацією, починаючи з поточного провайдера за замовчуванням, а потім решту провайдерів в алфавітному порядку. -Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі кандидати завершуються помилкою, помилка включає деталі кожної спроби. +Якщо провайдер завершується помилкою, автоматично пробується наступний кандидат. Якщо всі кандидати завершуються помилкою, помилка містить подробиці кожної спроби. Установіть `agents.defaults.mediaGenerationAutoProviderFallback: false`, якщо хочете, -щоб генерація відео використовувала лише явні записи `model`, `primary` і `fallbacks`. +щоб для генерації відео використовувалися лише явно вказані записи +`model`, `primary` і `fallbacks`. ```json5 { @@ -265,52 +263,52 @@ Seedance використовує його для автоматичного в - Використовує асинхронний ендпоінт DashScope / Model Studio. Референсні зображення та відео мають бути віддаленими URL `http(s)`. + Використовує асинхронний endpoint DashScope / Model Studio. Референсні зображення та відео мають бути віддаленими URL `http(s)`. - Ідентифікатор провайдера: `byteplus`. + 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`. + Моделі: `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, коли надається зображення. + Моделі T2V (`*-t2v-*`) не приймають зображення на вхід; моделі I2V і загальні моделі `*-pro-*` підтримують одне референсне зображення (перший кадр). Передайте зображення позиційно або задайте `role: "first_frame"`. ID моделей T2V автоматично перемикаються на відповідний варіант I2V, коли надається зображення. - Підтримувані ключі `providerOptions`: `seed` (number), `draft` (boolean — примусово вмикає 480p), `camera_fixed` (boolean). + Підтримувані ключі `providerOptions`: `seed` (number), `draft` (boolean — примусово встановлює 480p), `camera_fixed` (boolean). - Потребує Plugin [`@openclaw/byteplus-modelark`](https://www.npmjs.com/package/@openclaw/byteplus-modelark). Ідентифікатор провайдера: `byteplus-seedance15`. Модель: `seedance-1-5-pro-251215`. + Потребує 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"` для кожного зображення або передайте зображення позиційно. + Використовує уніфікований API `content[]`. Підтримує не більше 2 вхідних зображень (`first_frame` + `last_frame`). Усі входи мають бути віддаленими URL `https://`. Задайте `role: "first_frame"` / `"last_frame"` для кожного зображення або передайте зображення позиційно. - `aspectRatio: "adaptive"` автоматично визначає співвідношення сторін за вхідним зображенням. `audio: true` відображається в `generate_audio`. `providerOptions.seed` (number) передається далі. + `aspectRatio: "adaptive"` автоматично визначає співвідношення сторін із вхідного зображення. `audio: true` зіставляється з `generate_audio`. `providerOptions.seed` (number) передається далі. - Потребує 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`. + Потребує 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"`. + Використовує уніфікований 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) передається далі. + `aspectRatio: "adaptive"` автоматично визначає співвідношення сторін із вхідного зображення. `audio: true` зіставляється з `generate_audio`. `providerOptions.seed` (number) передається далі. - Виконання локально або в хмарі на основі workflow. Підтримує text-to-video і image-to-video через налаштований граф. + Виконання в локальному середовищі або хмарі під керуванням workflow. Підтримує text-to-video та image-to-video через налаштований граф. - Використовує потік на основі черги для довготривалих завдань. Лише одне референсне зображення. + Використовує flow на основі черги для довготривалих завдань. Лише один референс зображення. - Підтримує одне референсне зображення або одне референсне відео. + Підтримує один референс зображення або одне референсне відео. - Лише одне референсне зображення. + Лише один референс зображення. @@ -318,31 +316,31 @@ Seedance використовує його для автоматичного в - Той самий бекенд DashScope, що й Alibaba. Референсні входи мають бути віддаленими URL `http(s)`; локальні файли відхиляються одразу. + Той самий бекенд DashScope, що й у Alibaba. Референсні входи мають бути віддаленими URL `http(s)`; локальні файли одразу відхиляються. - Підтримує локальні файли через data URI. Для video-to-video потрібен `runway/gen4_aleph`. Запуски лише з текстом відкривають співвідношення сторін `16:9` і `9:16`. + Підтримує локальні файли через data URI. Для video-to-video потрібен `runway/gen4_aleph`. Запуски лише з текстом надають співвідношення сторін `16:9` і `9:16`. - Лише одне референсне зображення. + Лише один референс зображення. - Використовує `https://www.vydra.ai/api/v1` напряму, щоб уникнути редиректів, які скидають автентифікацію. `veo3` вбудовано лише для text-to-video; `kling` вимагає віддалену URL-адресу зображення. + Використовує `https://www.vydra.ai/api/v1` безпосередньо, щоб уникнути перенаправлень, які відкидають автентифікацію. `veo3` постачається лише як text-to-video; `kling` потребує віддаленого URL зображення. - Підтримує text-to-video, image-to-video з одним зображенням першого кадру, до 7 входів `reference_image` через xAI `reference_images`, а також віддалені потоки редагування/розширення відео. + Підтримує text-to-video, image-to-video з одним зображенням першого кадру, до 7 входів `reference_image` через xAI `reference_images`, а також потоки віддаленого редагування/розширення відео. ## Режими можливостей провайдера Спільний контракт генерації відео тепер дозволяє провайдерам оголошувати -можливості для конкретних режимів, а не лише плоскі сукупні обмеження. Нові -реалізації провайдерів мають надавати перевагу явним блокам режимів: +можливості, специфічні для режимів, а не лише плоскі агреговані обмеження. Нові реалізації провайдерів +мають надавати перевагу явним блокам режимів: ```typescript capabilities: { @@ -366,15 +364,14 @@ capabilities: { } ``` -Плоских сукупних полів, таких як `maxInputImages` і `maxInputVideos`, недостатньо, -щоб заявити підтримку режимів перетворення. Провайдери мають явно оголошувати -`generate`, `imageToVideo` і `videoToVideo`, щоб живі тести, -контрактні тести та спільний інструмент `video_generate` могли детерміновано перевіряти -підтримку режимів. +Плоских агрегованих полів, таких як `maxInputImages` і `maxInputVideos`, +недостатньо, щоб оголосити підтримку режимів перетворення. Провайдери мають явно оголошувати +`generate`, `imageToVideo` і `videoToVideo`, щоб live-тести, +контрактні тести та спільний інструмент `video_generate` могли детерміновано перевіряти підтримку режимів. -## Живі тести +## Live-тести -Opt-in живе покриття для спільних вбудованих провайдерів: +Opt-in live-покриття для спільних вбудованих провайдерів: ```bash OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts @@ -386,35 +383,35 @@ OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.liv pnpm test:live:media video ``` -Цей live-файл завантажує відсутні змінні середовища провайдерів із `~/.profile`, типово надає -перевагу живим/env API-ключам перед збереженими профілями автентифікації та запускає -безпечний для релізу smoke за замовчуванням: +Цей live-файл завантажує відсутні env vars провайдерів із `~/.profile`, за +замовчуванням надає перевагу live/env API-ключам над збереженими профілями автентифікації та запускає +безпечний для релізу smoke-тест за замовчуванням: -- `generate` для кожного провайдера, крім FAL, у прогоні -- односекундний prompt про лобстера -- обмеження операцій для кожного провайдера з `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` +- `generate` для кожного не-FAL провайдера у sweep +- односекундний запит про лобстера +- ліміт операції для кожного провайдера з `OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS` (`180000` за замовчуванням) -FAL є opt-in, оскільки затримка черги на стороні провайдера може домінувати в часі релізу: +FAL вмикається через opt-in, оскільки затримка черги на боці провайдера може суттєво збільшити час релізу: ```bash pnpm test:live:media video --video-providers fal ``` Установіть `OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1`, щоб також запускати оголошені режими перетворення, -які спільний прогін може безпечно перевіряти з локальними медіа: +які спільний sweep може безпечно перевіряти з локальними медіа: - `imageToVideo`, коли `capabilities.imageToVideo.enabled` -- `videoToVideo`, коли `capabilities.videoToVideo.enabled`, а провайдер/модель - приймає локальний вхід відео на основі буфера в межах спільного прогону +- `videoToVideo`, коли `capabilities.videoToVideo.enabled` і провайдер/модель + приймає локальний відеовхід на основі буфера у спільному sweep -Наразі спільна жива смуга `videoToVideo` охоплює: +Сьогодні спільна live lane `videoToVideo` охоплює: -- `runway` лише тоді, коли ви вибираєте `runway/gen4_aleph` +- `runway` лише тоді, коли вибрано `runway/gen4_aleph` ## Конфігурація -Установіть типову модель генерації відео у своїй конфігурації OpenClaw: +Задайте модель генерації відео за замовчуванням у вашій конфігурації OpenClaw: ```json5 { @@ -438,7 +435,7 @@ openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2 ## Пов’язане - [Огляд інструментів](/uk/tools) -- [Фонові завдання](/uk/automation/tasks) -- відстеження завдань для асинхронної генерації відео +- [Фонові задачі](/uk/automation/tasks) -- відстеження задач для асинхронної генерації відео - [Alibaba Model Studio](/uk/providers/alibaba) - [BytePlus](/uk/concepts/model-providers#byteplus-international) - [ComfyUI](/uk/providers/comfy)