Tools
Генерація відео
Агенти OpenClaw створюють відео з текстових запитів, референсних зображень або
наявних відео за допомогою video_generate. Підтримується шістнадцять серверних
реалізацій постачальників; агент автоматично вибирає відповідну на основі конфігурації
та доступних ключів API.
video_generate має три режими виконання, які визначаються за референсними вхідними
даними у виклику:
generate— без референсних медіафайлів (перетворення тексту на відео).imageToVideo— одне або кілька референсних зображень.videoToVideo— одне або кілька референсних відео.
Постачальники можуть підтримувати будь-яку підмножину цих режимів. Інструмент перевіряє
активний режим перед надсиланням і повідомляє про підтримувані режими в action=list.
Швидкий початок
Налаштуйте автентифікацію
Задайте ключ API для будь-якого підтримуваного постачальника:
export GEMINI_API_KEY="your-key"Виберіть модель за замовчуванням (необов’язково)
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"Зверніться до агента
Створи 5-секундне кінематографічне відео, у якому доброзичливий омар катається на серфінгу на заході сонця.
Агент автоматично викликає video_generate. Додавати інструмент
до списку дозволених не потрібно.
Як працює асинхронне генерування
Генерування відео відбувається асинхронно:
- OpenClaw надсилає запит постачальнику та негайно повертає ідентифікатор завдання.
- Постачальник обробляє завдання у фоновому режимі (зазвичай від 30 секунд до кількох хвилин залежно від постачальника та роздільної здатності; повільні постачальники з чергами можуть працювати до завершення налаштованого часу очікування).
- Коли відео готове, OpenClaw активує той самий сеанс внутрішньою подією завершення.
- Агент повідомляє про результат у звичайному для сеансу режимі видимої відповіді:
автоматичною остаточною відповіддю або через
message(action="send"), якщо сеанс вимагає використання інструмента повідомлень. Якщо сеанс запитувача неактивний або його не вдається активувати й згенерований медіафайл досі відсутній у відповіді про завершення, OpenClaw надсилає ідемпотентну пряму резервну відповідь із медіафайлом.
Поки завдання виконується, повторні виклики video_generate у тому самому
сеансі повертають поточний стан завдання замість запуску нового
генерування. Використовуйте action: "status" для перевірки без запуску нового
генерування або openclaw tasks list / openclaw tasks show <lookup> у
CLI (див. Фонові завдання).
Поза запусками агента, пов’язаними із сеансом (наприклад, під час прямих викликів інструмента), інструмент переходить до вбудованого генерування та повертає шлях до готового медіафайлу в межах того самого ходу.
Згенеровані відеофайли зберігаються в керованому OpenClaw сховищі медіафайлів, якщо
постачальник повертає байти. Обмеження за замовчуванням становить 16 МБ (спільне
обмеження для відеофайлів); agents.defaults.mediaMaxMb збільшує його для більших
результатів. Якщо постачальник також повертає URL-адресу розміщеного результату,
OpenClaw доставляє цю URL-адресу замість завершення завдання з помилкою, якщо локальне
збереження відхиляє завеликий файл.
Життєвий цикл завдання
| Стан | Значення |
|---|---|
queued |
Завдання створено й очікує, доки постачальник його прийме. |
running |
Постачальник обробляє його (зазвичай від 30 секунд до кількох хвилин залежно від постачальника та роздільної здатності). |
succeeded |
Відео готове; агент активується та публікує його в розмові. |
failed |
Помилка постачальника або завершення часу очікування; агент активується з подробицями помилки. |
Перевірте стан у CLI:
openclaw tasks listopenclaw tasks show <lookup>openclaw tasks cancel <lookup>Підтримувані постачальники
| Постачальник | Модель за замовчуванням | Текст | Референсне зображення | Референсне відео | Автентифікація |
|---|---|---|---|---|---|
| Alibaba | wan2.6-t2v |
✓ | Так (віддалена URL-адреса) | Так (віддалена URL-адреса) | MODELSTUDIO_API_KEY |
| BytePlus (1.0) | seedance-1-0-pro-250528 |
✓ | До 2 зображень (лише моделі I2V; перший і останній кадри) | - | BYTEPLUS_API_KEY |
| BytePlus Seedance 1.5 | seedance-1-5-pro-251215 |
✓ | До 2 зображень (перший і останній кадри через роль) | - | BYTEPLUS_API_KEY |
| BytePlus Seedance 2.0 | dreamina-seedance-2-0-260128 |
✓ | До 9 референсних зображень | До 3 відео | BYTEPLUS_API_KEY |
| ComfyUI | workflow |
✓ | 1 зображення | - | COMFY_API_KEY або COMFY_CLOUD_API_KEY |
| DeepInfra | Pixverse/Pixverse-T2V |
✓ | - | - | DEEPINFRA_API_KEY |
| fal | fal-ai/minimax/video-01-live |
✓ | 1 зображення; до 9 із перетворенням референсу на відео в Seedance | До 3 відео з перетворенням референсу на відео в Seedance | FAL_KEY |
veo-3.1-fast-generate-preview |
✓ | 1 зображення | 1 відео | GEMINI_API_KEY |
|
| MiniMax | MiniMax-Hailuo-2.3 |
✓ | 1 зображення | - | MINIMAX_API_KEY або OAuth MiniMax |
| OpenAI | sora-2 |
✓ | 1 зображення | 1 відео | OPENAI_API_KEY |
| OpenRouter | google/veo-3.1-fast |
✓ | До 4 зображень (перший/останній кадр або референси) | - | OPENROUTER_API_KEY |
| Qwen | wan2.6-t2v |
✓ | Так (віддалена URL-адреса) | Так (віддалена URL-адреса) | QWEN_API_KEY |
| Runway | gen4.5 |
✓ | 1 зображення | 1 відео | RUNWAYML_API_SECRET |
| Together | Wan-AI/Wan2.2-T2V-A14B |
✓ | Лише Wan-AI/Wan2.2-I2V-A14B |
- | TOGETHER_API_KEY |
| Vydra | veo3 |
✓ | 1 зображення (kling) |
- | VYDRA_API_KEY |
| xAI | grok-imagine-video |
✓ | Classic: 1 перший кадр або 7 референсів; 1.5: 1 кадр | Classic: 1 відео | XAI_API_KEY |
Деякі постачальники приймають додаткові або альтернативні змінні середовища ключів API. Докладніше див. на окремих сторінках постачальників.
Виконайте video_generate action=list, щоб під час виконання переглянути доступних
постачальників, моделі та режими виконання.
Матриця можливостей
Явний контракт режимів, який використовують video_generate, контрактні тести та
спільна перевірка в реальному середовищі:
| Постачальник | generate |
imageToVideo |
videoToVideo |
Поточні спільні сценарії перевірки в реальному середовищі |
|---|---|---|---|---|
| Alibaba | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo пропущено, оскільки цьому постачальнику потрібні віддалені URL-адреси відео http(s) |
| BytePlus | ✓ | ✓ | - | generate, imageToVideo |
| ComfyUI | ✓ | ✓ | - | Не входить до спільної перевірки; покриття окремих робочих процесів забезпечують тести Comfy |
| DeepInfra | ✓ | - | - | generate; нативні схеми відео DeepInfra у контракті Plugin передбачають перетворення тексту на відео |
| fal | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo лише за використання перетворення референсу на відео в Seedance |
| ✓ | ✓ | ✓ | generate, imageToVideo; спільний videoToVideo пропущено, оскільки поточна перевірка Gemini/Veo із вхідними даними з буфера не приймає такі дані |
|
| MiniMax | ✓ | ✓ | - | generate, imageToVideo |
| OpenAI | ✓ | ✓ | ✓ | generate, imageToVideo; спільний videoToVideo пропущено, оскільки цей шлях організації/вхідних даних наразі потребує доступу до редагування відео на боці постачальника |
| OpenRouter | ✓ | ✓ | - | generate, imageToVideo |
| Qwen | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo пропущено, оскільки цьому постачальнику потрібні віддалені URL-адреси відео http(s) |
| Runway | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo виконується лише тоді, коли вибрано модель runway/gen4_aleph |
| Together | ✓ | ✓ | - | generate, imageToVideo |
| Vydra | ✓ | ✓ | - | generate; спільний imageToVideo пропущено, оскільки вбудована модель veo3 підтримує лише текст, а вбудована kling потребує віддаленої URL-адреси зображення |
| xAI | ✓ | ✓ | ✓ | Classic підтримує всі режими; Video 1.5 підтримує лише перетворення зображення на відео; віддалені вхідні файли MP4 не дають змоги включити videoToVideo до спільної перевірки |
Параметри інструмента
Обов’язкові
promptstringrequiredТекстовий опис відео, яке потрібно створити. Обов’язковий для action: "generate".
Вхідні дані вмісту
imagestringimagesstring[]imageRolesstring[]Необов’язкові підказки ролей для кожної позиції, паралельні об’єднаному списку зображень.
Канонічні значення: first_frame, last_frame, reference_image.
videostringvideosstring[]videoRolesstring[]Необов’язкові підказки ролей для кожної позиції, паралельні об’єднаному списку відео.
Канонічне значення: reference_video.
audioRefstringОдне референсне аудіо (шлях або URL-адреса). Використовується для фонової музики або референсу голосу, якщо провайдер підтримує аудіовходи.
audioRefsstring[]audioRolesstring[]Необов’язкові підказки ролей для кожної позиції, паралельні об’єднаному списку аудіо.
Канонічне значення: reference_audio.
Керування стилем
aspectRatiostringПідказка щодо співвідношення сторін, наприклад 1:1, 16:9, 9:16, adaptive або специфічне для провайдера значення. OpenClaw нормалізує або ігнорує непідтримувані значення залежно від провайдера.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc29sdXRpb24iIHR5cGU9InN0cmluZyI
Підказка щодо роздільної здатності, наприклад 360P, 480P, 540P, 720P, 768P, 1080P, 4K або специфічне для провайдера значення. OpenClaw нормалізує або ігнорує непідтримувані значення залежно від провайдера.
OPENCLAW_DOCS_MARKER:paramClose:
durationSecondsnumberЦільова тривалість у секундах (округлюється до найближчого значення, підтримуваного провайдером).
sizestringaudiobooleanУвімкнути згенероване аудіо у вихідному результаті, якщо воно підтримується. Відрізняється від audioRef* (вхідних даних).
watermarkbooleanadaptive — це специфічне для провайдера сигнальне значення: воно передається без змін
провайдерам, які оголошують adaptive у своїх можливостях (наприклад, BytePlus
Seedance використовує його для автоматичного визначення співвідношення сторін за розмірами
вхідного зображення). Провайдери, які його не оголошують, відображають це значення через
details.ignoredOverrides у результаті інструмента, щоб ігнорування було помітним.
Розширені параметри
action"generate" | "status" | "list"default: generate"status" повертає поточне завдання сеансу; "list" перевіряє провайдерів.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
Перевизначення провайдера/моделі (наприклад, runway/gen4.5).
OPENCLAW_DOCS_MARKER:paramClose:
filenamestringOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InRpbWVvdXRNcyIgdHlwZT0ibnVtYmVyIg
Необов’язковий час очікування операції провайдера в мілісекундах. Якщо його не вказано, OpenClaw використовує agents.defaults.videoGenerationModel.timeoutMs, якщо це значення налаштовано, інакше — стандартне значення провайдера, визначене автором Plugin, якщо воно існує.
OPENCLAW_DOCS_MARKER:paramClose:
providerOptionsobjectСпецифічні для провайдера параметри у вигляді об’єкта JSON (наприклад, {"seed": 42, "draft": true}).
Провайдери, які оголошують типізовану схему, перевіряють ключі та типи; невідомі
ключі або невідповідності призводять до пропуску кандидата під час резервного переходу. Провайдери без
оголошеної схеми отримують параметри без змін. Виконайте video_generate action=list,
щоб побачити, що приймає кожен провайдер.
Референсні входи визначають режим виконання:
- Немає референсних медіаданих ->
generate - Є будь-яке референсне зображення ->
imageToVideo - Є будь-яке референсне відео ->
videoToVideo - Референсні аудіовходи не змінюють визначений режим; вони застосовуються
поверх режиму, вибраного референсними зображеннями/відео, і працюють лише
з провайдерами, які оголошують
maxInputAudios.
Поєднання референсних зображень і відео не є стабільною спільною поверхнею можливостей. Надавайте перевагу одному типу референсу в кожному запиті.
Резервний перехід і типізовані параметри
Деякі перевірки можливостей застосовуються на рівні резервного переходу, а не на межі інструмента, тому запит, що перевищує обмеження основного провайдера, усе одно може виконатися у здатного резервного провайдера:
- Активний кандидат, який не оголошує
maxInputAudios(або оголошує0), пропускається, якщо запит містить аудіореференси; виконується спроба з наступним кандидатом. Та сама перевірка застосовується до кількості референсних зображень і відео відносноmaxInputImages/maxInputVideos. - Активний кандидат, у якого
maxDurationSecondsменше за запитанеdurationSecondsі немає оголошеного спискуsupportedDurationSeconds, пропускається. - Запит містить
providerOptions, а активний кандидат явно оголошує типізовану схемуproviderOptions-> кандидат пропускається, якщо наданих ключів немає у схемі або типи значень не збігаються. Провайдери без оголошеної схеми отримують параметри без змін (зворотно сумісна наскрізна передача). Провайдер може відмовитися від усіх параметрів провайдера, оголосивши порожню схему (capabilities.providerOptions: {}), що спричиняє такий самий пропуск, як і невідповідність типів.
Перша причина пропуску в запиті записується на рівні warn, щоб оператори бачили, коли
їхнього основного провайдера було пропущено; подальші пропуски записуються на рівні debug, щоб
довгі ланцюжки резервного переходу не створювали зайвого шуму. Якщо пропущено кожного кандидата,
сукупна помилка містить причину пропуску для кожного з них.
Дії
| Дія | Що вона робить |
|---|---|
generate |
Типова дія. Створює відео із заданого запиту та необов’язкових референсних входів. |
status |
Перевіряє стан поточного відеозавдання для поточного сеансу, не запускаючи нову генерацію. |
list |
Показує доступних провайдерів, моделі та їхні можливості. |
Вибір моделі
OpenClaw визначає модель у такому порядку:
- Параметр інструмента
model— якщо агент указує його у виклику. videoGenerationModel.primaryз конфігурації.videoGenerationModel.fallbacksза порядком.- Автоматичне визначення — провайдери з дійсними даними автентифікації, починаючи з поточного стандартного провайдера, а потім решта провайдерів в алфавітному порядку.
Якщо провайдер зазнає невдачі, автоматично виконується спроба з наступним кандидатом. Якщо всі кандидати зазнають невдачі, помилка містить подробиці кожної спроби.
Установіть agents.defaults.mediaGenerationAutoProviderFallback: false, щоб використовувати
лише явно задані записи model, primary і fallbacks.
{ agents: { defaults: { videoGenerationModel: { primary: "google/veo-3.1-fast-generate-preview", fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"], timeoutMs: 180000, // optional per-tool provider request timeout override }, }, },}Примітки щодо провайдерів
Alibaba
Використовує асинхронну кінцеву точку DashScope / Model Studio. Референсні зображення та
відео мають бути віддаленими URL-адресами http(s).
BytePlus (1.0)
Ідентифікатор провайдера: byteplus.
Моделі: seedance-1-0-pro-250528 (стандартна),
seedance-1-0-pro-t2v-250528, seedance-1-0-pro-fast-251015,
seedance-1-0-lite-t2v-250428, seedance-1-0-lite-i2v-250428.
Моделі T2V (*-t2v-*) не приймають вхідні зображення; моделі I2V і
універсальні моделі *-pro-* підтримують одне референсне зображення (перший
кадр). Передайте зображення позиційно або задайте role: "first_frame".
Якщо надано зображення, ідентифікатори моделей T2V автоматично замінюються на відповідний
варіант I2V.
Підтримувані ключі providerOptions: seed (число), draft (логічне значення —
примусово встановлює 480p), camera_fixed (логічне значення).
BytePlus Seedance 1.5
Потребує Plugin @openclaw/byteplus-modelark
(зовнішній, не вбудований). Ідентифікатор провайдера: byteplus-seedance15. Модель:
seedance-1-5-pro-251215.
Використовує уніфікований API content[]. Підтримує щонайбільше 2 вхідні зображення
(first_frame + last_frame). Усі вхідні дані мають бути віддаленими URL-адресами
https://. Задайте role: "first_frame" / "last_frame" для кожного зображення або
передайте зображення позиційно.
aspectRatio: "adaptive" автоматично визначає співвідношення сторін за вхідним зображенням.
audio: true відповідає generate_audio. Значення providerOptions.seed
(число) передається без змін.
BytePlus Seedance 2.0
Потребує Plugin @openclaw/byteplus-modelark
(зовнішній, не вбудований). Ідентифікатор провайдера: byteplus-seedance2. Моделі:
dreamina-seedance-2-0-260128,
dreamina-seedance-2-0-fast-260128.
Використовує уніфікований API content[]. Підтримує до 9 референсних зображень,
3 референсних відео та 3 референсних аудіо. Усі вхідні дані мають бути віддаленими
URL-адресами https://. Задайте role для кожного ресурсу — підтримувані значення:
"first_frame", "last_frame", "reference_image",
"reference_video", "reference_audio".
aspectRatio: "adaptive" автоматично визначає співвідношення сторін за вхідним зображенням.
audio: true відповідає generate_audio. Значення providerOptions.seed
(число) передається без змін.
ComfyUI
Локальне або хмарне виконання на основі робочих процесів. Підтримує перетворення тексту на відео та зображення на відео за допомогою налаштованого графа.
fal
Використовує потік на основі черги для тривалих завдань. За замовчуванням OpenClaw очікує до 20 хвилин, перш ніж вважати активне завдання в черзі fal таким, для якого минув час очікування. Більшість відеомоделей fal приймають одне еталонне зображення. Моделі Seedance 2.0 для перетворення еталонних матеріалів на відео приймають до 9 зображень, 3 відео та 3 аудіоматеріалів, але загалом не більше 12 еталонних файлів.
Google (Gemini / Veo)
Підтримує одне еталонне зображення або відео. Запити на створення аудіо
ігноруються з попередженням у шляху Gemini API, оскільки цей API відхиляє
параметр generateAudio для поточної генерації відео Veo.
MiniMax
Підтримується лише одне еталонне зображення. MiniMax приймає роздільності 768P і 1080P;
запити на кшталт 720P перед надсиланням нормалізуються до найближчого
підтримуваного значення.
OpenAI
Передається лише перевизначення size. Інші перевизначення стилю
(aspectRatio, resolution, audio, watermark) ігноруються з
попередженням.
OpenRouter
Використовує асинхронний API /videos OpenRouter. OpenClaw надсилає
завдання, опитує polling_url і завантажує результат або з unsigned_urls, або з
документованої кінцевої точки вмісту завдання. Вбудована типова модель google/veo-3.1-fast
заявляє підтримку тривалості 4/6/8 секунд, роздільностей 720P/1080P і
співвідношень сторін 16:9/9:16.
Qwen
Використовує той самий серверний компонент DashScope, що й Alibaba. Еталонні вхідні дані мають бути віддаленими
URL-адресами http(s); локальні файли відхиляються заздалегідь.
Runway
Підтримує локальні файли через URI даних. Для перетворення відео на відео потрібна
модель runway/gen4_aleph. Запуски лише з текстом підтримують співвідношення
сторін 16:9 і 9:16.
Together
Підтримується лише одне еталонне зображення.
Vydra
Використовує https://www.vydra.ai/api/v1 безпосередньо, щоб уникнути перенаправлень,
які скидають автентифікацію. veo3 вбудовано лише для перетворення тексту на відео; kling потребує
віддаленої URL-адреси зображення.
xAI
Типова модель grok-imagine-video підтримує перетворення тексту на відео,
одного зображення першого кадру на відео, до 7 вхідних даних reference_image через
reference_images xAI, а також потоки редагування й подовження віддаленого відео. За замовчуванням
генерація використовує 480P; під час перетворення одного зображення на відео успадковується співвідношення сторін
джерела, якщо aspectRatio не вказано. Редагування й подовження відео успадковують геометрію
вхідних даних і не приймають перевизначення співвідношення сторін або роздільності. Для подовження підтримується
тривалість 2–10 секунд.
grok-imagine-video-1.5 призначена лише для перетворення зображення на відео: надайте рівно одне зображення.
Вона підтримує тривалість 1–15 секунд і роздільності 480P, 720P або 1080P, типово
використовуючи 480P; не вказуйте aspectRatio, щоб успадкувати співвідношення сторін вихідного зображення. Ідентифікатори
попередньої версії та версії 1.5 із датою проходять ту саму перевірку й передаються
без змін.
Режими можливостей провайдерів
Спільний контракт генерації відео підтримує можливості для окремих режимів, а не лише плоскі сукупні обмеження. Новим реалізаціям провайдерів варто віддавати перевагу явним блокам режимів:
capabilities: { generate: { maxVideos: 1, maxDurationSeconds: 10, supportsResolution: true, }, imageToVideo: { enabled: true, maxVideos: 1, maxInputImages: 1, maxInputImagesByModel: { "provider/reference-to-video": 9 }, maxDurationSeconds: 5, }, videoToVideo: { enabled: true, maxVideos: 1, maxInputVideos: 1, maxDurationSeconds: 5, },}Плоских сукупних полів, як-от maxInputImages і maxInputVideos,
недостатньо, щоб заявити підтримку режимів перетворення. Провайдери мають
явно оголошувати generate, imageToVideo і videoToVideo, щоб актуальні
тести, тести контрактів і спільний інструмент video_generate могли
детерміновано перевіряти підтримку режимів.
Якщо одна модель провайдера підтримує ширший набір еталонних вхідних даних, ніж
решта, використовуйте maxInputImagesByModel, maxInputVideosByModel або
maxInputAudiosByModel, замість того щоб збільшувати обмеження для всього режиму.
Актуальні тести
Добровільно ввімкнене актуальне покриття для спільних вбудованих провайдерів:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.tsОбгортка репозиторію:
pnpm test:live:media videoЗа замовчуванням цей файл актуальних тестів надає перевагу вже експортованим змінним середовища провайдерів, а не збереженим профілям автентифікації, і виконує безпечну для випуску базову перевірку:
generateдля кожного провайдера, крім FAL, у перевірці.- Односекундний запит із лобстером.
- Обмеження тривалості операції для кожного провайдера з
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(типово180000).
FAL вмикається окремо, оскільки затримка черги на боці провайдера може переважати в часі випуску:
pnpm test:live:media video --video-providers falУстановіть OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1, щоб також запускати оголошені
режими перетворення, які спільна перевірка може безпечно виконувати з локальними медіафайлами:
imageToVideo, колиcapabilities.imageToVideo.enabled.videoToVideo, колиcapabilities.videoToVideo.enabledі провайдер або модель приймає локальні вхідні відеодані з буфера у спільній перевірці.
Наразі спільний актуальний напрям videoToVideo охоплює лише runway, якщо
вибрано runway/gen4_aleph.
Налаштування
Задайте типову модель генерації відео в конфігурації OpenClaw:
{ agents: { defaults: { videoGenerationModel: { primary: "qwen/wan2.6-t2v", fallbacks: ["qwen/wan2.6-r2v-flash"], }, }, },}Або через CLI:
openclaw config set agents.defaults.videoGenerationModel.primary "qwen/wan2.6-t2v"Пов’язане
- Alibaba Model Studio
- Фонові завдання — відстеження завдань асинхронної генерації відео
- BytePlus
- ComfyUI
- Довідник із налаштування
- fal
- Google (Gemini)
- MiniMax
- Моделі
- OpenAI
- Qwen
- Runway
- Together AI
- Огляд інструментів
- Vydra
- xAI