Инструмент
video_generate появляется только тогда, когда доступен хотя бы один
провайдер генерации видео. Если вы не видите его в инструментах агента, задайте
API-ключ провайдера или настройте agents.defaults.videoGenerationModel.generate- запросы text-to-video без референсных медиа.imageToVideo- запрос включает одно или несколько референсных изображений.videoToVideo- запрос включает одно или несколько референсных видео.
action=list.
Быстрый старт
Как работает асинхронная генерация
Генерация видео выполняется асинхронно. Когда агент вызываетvideo_generate в
сессии:
- OpenClaw отправляет запрос провайдеру и сразу возвращает идентификатор задачи.
- Провайдер обрабатывает задание в фоне (обычно от 30 секунд до нескольких минут в зависимости от провайдера и разрешения; медленные провайдеры с очередью могут работать до настроенного тайм-аута).
- Когда видео готово, OpenClaw пробуждает ту же сессию внутренним событием завершения.
- Агент сообщает пользователю через обычный для сессии режим видимого ответа:
доставка финального ответа, если она автоматическая, или
message(action="send"), если сессии требуется инструмент сообщений. Если сессия запросившего неактивна или ее активное пробуждение завершается с ошибкой, а часть сгенерированного видео все еще отсутствует в ответе о завершении, OpenClaw отправляет идемпотентный прямой резервный ответ только с недостающим видео.
video_generate в той же
сессии возвращают текущий статус задачи вместо запуска еще одной
генерации. Используйте openclaw tasks list или openclaw tasks show <taskId>, чтобы
проверить прогресс из CLI.
Вне запусков агента, привязанных к сессии (например, при прямых вызовах инструмента),
инструмент переключается на встроенную генерацию и возвращает итоговый путь к медиа
в том же ходе.
Сгенерированные видеофайлы сохраняются в управляемом OpenClaw хранилище медиа, когда
провайдер возвращает байты. Лимит сохранения сгенерированного видео по умолчанию следует
лимиту видеомедиа, а agents.defaults.mediaMaxMb повышает его для
более крупных рендеров. Когда провайдер также возвращает размещенный URL результата, OpenClaw
может доставить этот URL вместо сбоя задачи, если локальное сохранение
отклоняет слишком большой файл.
Жизненный цикл задачи
| Состояние | Значение |
|---|---|
queued | Задача создана и ожидает, пока провайдер ее примет. |
running | Провайдер выполняет обработку (обычно от 30 секунд до нескольких минут в зависимости от провайдера и разрешения). |
succeeded | Видео готово; агент пробуждается и публикует его в беседе. |
failed | Ошибка провайдера или тайм-аут; агент пробуждается с подробностями ошибки. |
queued или running,
video_generate возвращает существующий статус задачи вместо запуска новой.
Используйте action: "status", чтобы выполнить явную проверку без запуска новой
генерации.
Поддерживаемые провайдеры
| Провайдер | Модель по умолчанию | Текст | Реф. изображение | Реф. видео | Аутентификация |
|---|---|---|---|---|---|
| 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 или MiniMax OAuth |
| 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 | ✓ | 1 изображение первого кадра или до 7 reference_image | 1 видео | XAI_API_KEY |
video_generate action=list, чтобы во время выполнения посмотреть доступных провайдеров, модели и
режимы выполнения.
Матрица возможностей
Явный контракт режимов, используемыйvideo_generate, контрактными тестами и
общей реальной проверкой:
| Провайдер | generate | imageToVideo | videoToVideo | Общие текущие проверки |
|---|---|---|---|---|
| Alibaba | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo пропускается, потому что этому провайдеру нужны удаленные URL видео http(s) |
| BytePlus | ✓ | ✓ | - | generate, imageToVideo |
| ComfyUI | ✓ | ✓ | - | Не входит в общую проверку; покрытие для конкретных workflow находится в тестах Comfy |
| DeepInfra | ✓ | - | - | generate; нативные схемы видео DeepInfra являются text-to-video в контракте 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 | ✓ | ✓ | ✓ | generate, imageToVideo; videoToVideo пропускается, потому что этому провайдеру сейчас нужен удаленный URL MP4 |
Параметры инструмента
Обязательные
Текстовое описание видео для генерации. Обязательно для
action: "generate".Входные данные контента
Одно референсное изображение (путь или URL).
Несколько референсных изображений (до 9).
Необязательные подсказки ролей по позициям, параллельные объединенному списку изображений.
Канонические значения:
first_frame, last_frame, reference_image.Одно референсное видео (путь или URL).
Несколько референсных видео (до 4).
Необязательные подсказки ролей по позициям, параллельные объединенному списку видео.
Каноническое значение:
reference_video.Один референсный аудиофайл (путь или URL). Используется для фоновой музыки или голосового
референса, когда провайдер поддерживает аудиовходы.
Несколько референсных аудиофайлов (до 3).
Необязательные подсказки ролей по позициям, параллельные объединенному списку аудио.
Каноническое значение:
reference_audio.Подсказки ролей передаются провайдеру как есть. Канонические значения берутся из
union
VideoGenerationAssetRole, но провайдеры могут принимать дополнительные
строки ролей. Массивы *Roles не должны содержать больше элементов, чем
соответствующий список референсов; ошибки смещения на один элемент завершаются понятной ошибкой.
Используйте пустую строку, чтобы оставить слот незаданным. Для xAI задайте роль каждого изображения как
reference_image, чтобы использовать режим генерации reference_images; опустите
роль или используйте first_frame для преобразования одного изображения в видео.Управление стилем
Подсказка соотношения сторон, например
1:1, 16:9, 9:16, adaptive или значение, специфичное для провайдера. OpenClaw нормализует или игнорирует неподдерживаемые значения для каждого провайдера.Подсказка разрешения, например
480P, 720P, 768P, 1080P, 4K или значение, специфичное для провайдера. OpenClaw нормализует или игнорирует неподдерживаемые значения для каждого провайдера.Целевая длительность в секундах (округляется до ближайшего значения, поддерживаемого провайдером).
Подсказка размера, когда провайдер ее поддерживает.
Включить сгенерированное аудио в выходном результате, когда это поддерживается. Отличается от
audioRef* (входные данные).Переключает водяной знак провайдера, когда это поддерживается.
adaptive — специфичный для провайдера sentinel: он передается как есть
провайдерам, которые объявляют adaptive в своих возможностях (например, BytePlus
Seedance использует его для автоматического определения соотношения по размерам
входного изображения). Провайдеры, которые его не объявляют, показывают значение через
details.ignoredOverrides в результате инструмента, чтобы было видно, что оно отброшено.
Расширенные параметры
"status" возвращает текущую задачу сессии; "list" проверяет провайдеров.Переопределение провайдера/модели (например,
runway/gen4.5).Подсказка имени выходного файла.
Необязательный тайм-аут операции провайдера в миллисекундах. Если он не указан, OpenClaw использует
agents.defaults.videoGenerationModel.timeoutMs, если настроено, иначе значение провайдера по умолчанию, заданное Plugin, когда оно существует.Специфичные для провайдера параметры в виде JSON-объекта (например,
{"seed": 42, "draft": true}).
Провайдеры, объявляющие типизированную схему, проверяют ключи и типы; неизвестные
ключи или несоответствия пропускают кандидата во время fallback. Провайдеры без
объявленной схемы получают параметры как есть. Запустите video_generate action=list,
чтобы увидеть, что принимает каждый провайдер.Не все провайдеры поддерживают все параметры. OpenClaw нормализует длительность до
ближайшего значения, поддерживаемого провайдером, и переназначает переведенные подсказки геометрии,
например размер в соотношение сторон, когда fallback-провайдер предоставляет другую
поверхность управления. Действительно неподдерживаемые переопределения игнорируются по принципу максимального
старания и сообщаются как предупреждения в результате инструмента. Жесткие ограничения возможностей
(например, слишком много референсных входов) завершаются ошибкой до отправки. Результаты инструмента
сообщают примененные настройки;
details.normalization фиксирует любой
перевод из запрошенного значения в примененное.- Нет референсных медиа →
generate - Любой референс изображения →
imageToVideo - Любой референс видео →
videoToVideo - Референсные аудиовходы не меняют разрешенный режим; они применяются поверх
того режима, который выбирают референсы изображения/видео, и работают только
с провайдерами, объявляющими
maxInputAudios.
Fallback и типизированные параметры
Некоторые проверки возможностей применяются на слое fallback, а не на границе инструмента, поэтому запрос, превышающий ограничения основного провайдера, все еще может выполниться на подходящем fallback:- Активный кандидат, не объявляющий
maxInputAudios(или объявляющий0), пропускается, когда запрос содержит аудиореференсы; пробуется следующий кандидат. maxDurationSecondsактивного кандидата ниже запрошенногоdurationSecondsи списокsupportedDurationSecondsне объявлен → пропускается.- Запрос содержит
providerOptions, а активный кандидат явно объявляет типизированную схемуproviderOptions→ пропускается, если переданные ключи отсутствуют в схеме или типы значений не совпадают. Провайдеры без объявленной схемы получают параметры как есть (обратно совместимая сквозная передача). Провайдер может отказаться от всех параметров провайдера, объявив пустую схему (capabilities.providerOptions: {}), что вызывает такой же пропуск, как при несоответствии типа.
warn, чтобы операторы видели, когда
их основной провайдер был пропущен; последующие пропуски логируются на уровне debug, чтобы
длинные цепочки fallback оставались тихими. Если пропущены все кандидаты,
агрегированная ошибка включает причину пропуска для каждого.
Действия
| Действие | Что делает |
|---|---|
generate | По умолчанию. Создает видео из заданного prompt и необязательных референсных входных данных. |
status | Проверяет состояние выполняющейся видеозадачи для текущей сессии, не запуская новую генерацию. |
list | Показывает доступных провайдеров, модели и их возможности. |
Выбор модели
OpenClaw разрешает модель в таком порядке:- Параметр инструмента
model— если агент указывает его в вызове. videoGenerationModel.primaryиз конфигурации.videoGenerationModel.fallbacksпо порядку.- Автоопределение — провайдеры с действительной авторизацией, начиная с текущего провайдера по умолчанию, затем остальные провайдеры в алфавитном порядке.
agents.defaults.mediaGenerationAutoProviderFallback: false, чтобы использовать
только явные записи model, primary и fallbacks.
Примечания по провайдерам
Alibaba
Alibaba
Использует асинхронную конечную точку DashScope / Model Studio. Референсные изображения и
видео должны быть удаленными URL
http(s).BytePlus (1.0)
BytePlus (1.0)
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.Модели T2V (*-t2v-*) не принимают входные изображения; модели I2V и
общие модели *-pro-* поддерживают одно референсное изображение (первый
кадр). Передайте изображение позиционно или задайте role: "first_frame".
ID моделей T2V автоматически переключаются на соответствующий вариант I2V,
когда предоставлено изображение.Поддерживаемые ключи providerOptions: seed (number), draft (boolean -
принудительно 480p), camera_fixed (boolean).BytePlus Seedance 1.5
BytePlus Seedance 1.5
Требует Plugin
@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" для каждого изображения или
передайте изображения позиционно.aspectRatio: "adaptive" автоматически определяет соотношение по входному изображению.
audio: true сопоставляется с generate_audio. providerOptions.seed
(number) передается дальше.BytePlus Seedance 2.0
BytePlus Seedance 2.0
Требует Plugin
@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".aspectRatio: "adaptive" автоматически определяет соотношение по входному изображению.
audio: true сопоставляется с generate_audio. providerOptions.seed
(number) передается дальше.ComfyUI
ComfyUI
Выполнение локально или в облаке на основе workflows. Поддерживает преобразование текста в видео и
изображения в видео через настроенный граф.
fal
fal
Использует поток с очередью для длительных заданий. OpenClaw по умолчанию ждет до 20
минут, прежде чем считать выполняющееся задание очереди fal истекшим по времени.
Большинство видеомоделей fal принимают одну ссылку на изображение. Модели Seedance 2.0
для преобразования референсов в видео принимают до 9 изображений, 3 видео и
3 аудиореференсов, но не более 12 файлов-референсов всего.
Google (Gemini / Veo)
Google (Gemini / Veo)
Поддерживает один референс изображения или один референс видео. Запросы с генерацией аудио
игнорируются с предупреждением на пути Gemini API, потому что этот API отклоняет
параметр
generateAudio для текущей генерации видео Veo.MiniMax
MiniMax
Только один референс изображения. MiniMax принимает разрешения
768P и 1080P;
запросы вроде 720P перед отправкой нормализуются к ближайшему поддерживаемому
значению.OpenAI
OpenAI
Передается только переопределение
size. Другие переопределения стиля
(aspectRatio, resolution, audio, watermark) игнорируются с
предупреждением.OpenRouter
OpenRouter
Использует асинхронный API OpenRouter
/videos. OpenClaw отправляет
задание, опрашивает polling_url и скачивает либо unsigned_urls, либо
документированную конечную точку содержимого задания. Встроенное значение по умолчанию
google/veo-3.1-fast объявляет длительности 4/6/8 секунд, разрешения
720P/1080P и соотношения сторон 16:9/9:16.Qwen
Qwen
Тот же бэкенд DashScope, что и у Alibaba. Входные референсы должны быть удаленными
URL
http(s); локальные файлы отклоняются заранее.Runway
Runway
Поддерживает локальные файлы через data URI. Для преобразования видео в видео требуется
runway/gen4_aleph. Запуски только с текстом предоставляют соотношения сторон
16:9 и 9:16.Together
Together
Только один референс изображения.
Vydra
Vydra
Использует
https://www.vydra.ai/api/v1 напрямую, чтобы избежать редиректов,
сбрасывающих авторизацию. veo3 встроен только как преобразование текста в видео;
kling требует URL удаленного изображения.xAI
xAI
Поддерживает преобразование текста в видео, преобразование одного изображения первого кадра в видео,
до 7 входов
reference_image через reference_images xAI, а также удаленные
потоки редактирования и расширения видео.Режимы возможностей провайдера
Общий контракт генерации видео поддерживает возможности, специфичные для режима, а не только плоские агрегированные лимиты. Новым реализациям провайдеров следует предпочитать явные блоки режимов:maxInputImages и maxInputVideos,
недостаточно, чтобы объявить поддержку режима преобразования. Провайдерам следует
явно объявлять generate, imageToVideo и videoToVideo, чтобы живые
тесты, контрактные тесты и общий инструмент video_generate могли детерминированно
проверять поддержку режимов.
Когда одна модель у провайдера поддерживает больше входных референсов, чем
остальные, используйте maxInputImagesByModel, maxInputVideosByModel или
maxInputAudiosByModel вместо увеличения лимита для всего режима.
Живые тесты
Включаемое живое покрытие для общих встроенных провайдеров:generateдля каждого провайдера не из FAL в проверке.- Односекундный prompt с лобстером.
- Лимит операций для каждого провайдера из
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000по умолчанию).
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1, чтобы также запускать объявленные
режимы преобразования, которые общий проход может безопасно выполнить с локальными медиа:
imageToVideo, когдаcapabilities.imageToVideo.enabled.videoToVideo, когдаcapabilities.videoToVideo.enabledи провайдер/модель принимает локальный видеовход на основе буфера в общем проходе.
videoToVideo покрывает только runway, когда вы
выбираете runway/gen4_aleph.
Конфигурация
Задайте модель генерации видео по умолчанию в конфигурации OpenClaw:Связанное
- Alibaba Model Studio
- Фоновые задачи - отслеживание задач для асинхронной генерации видео
- BytePlus
- ComfyUI
- Справочник по конфигурации
- fal
- Google (Gemini)
- MiniMax
- Модели
- OpenAI
- Qwen
- Runway
- Together AI
- Обзор инструментов
- Vydra
- xAI