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
хранилище медиафайлов. Ограничение по умолчанию составляет 16MB (общее ограничение для
видеофайлов); 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 в контракте плагина предназначены для преобразования текста в видео |
| 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, если этот параметр настроен; в противном случае используется заданное автором плагина значение провайдера по умолчанию, если оно существует.
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, // необязательное переопределение тайм-аута запроса провайдера для отдельного инструмента }, }, },}Примечания о провайдерах
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
Требуется плагин @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
Требуется плагин @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