Skip to main content
Агенты OpenClaw создают видео по текстовым запросам, референсным изображениям или существующим видео с помощью video_generate. Поддерживается шестнадцать серверных частей провайдеров; агент автоматически выбирает подходящую на основе конфигурации и доступных ключей API.
video_generate отображается, только если доступен хотя бы один провайдер генерации видео. Если этот инструмент отсутствует среди инструментов агента, задайте ключ API провайдера или настройте agents.defaults.videoGenerationModel.
У video_generate есть три режима выполнения, определяемые по референсным входным данным в вызове:
  • generate — без референсных медиафайлов (преобразование текста в видео).
  • imageToVideo — одно или несколько референсных изображений.
  • videoToVideo — одно или несколько референсных видео.
Провайдеры могут поддерживать любой набор этих режимов. Инструмент проверяет активный режим перед отправкой и сообщает поддерживаемые режимы в action=list.

Быстрый старт

1

Настройте аутентификацию

Задайте ключ API любого поддерживаемого провайдера:
2

Выберите модель по умолчанию (необязательно)

3

Обратитесь к агенту

Создай 5-секундное кинематографичное видео, в котором дружелюбный лобстер занимается сёрфингом на закате.
Агент автоматически вызывает video_generate. Добавлять инструмент в список разрешённых не требуется.

Как работает асинхронная генерация

Генерация видео выполняется асинхронно:
  1. OpenClaw отправляет запрос провайдеру и сразу возвращает идентификатор задачи.
  2. Провайдер обрабатывает задачу в фоновом режиме (обычно от 30 секунд до нескольких минут в зависимости от провайдера и разрешения; медленные провайдеры с очередями могут работать до истечения настроенного времени ожидания).
  3. Когда видео готово, OpenClaw возобновляет тот же сеанс с внутренним событием завершения.
  4. Агент сообщает о результате через обычный режим видимых ответов сеанса: автоматический итоговый ответ или message(action="send"), если сеанс требует использования инструмента сообщений. Если сеанс инициатора неактивен либо его возобновление завершается сбоем и созданный медиафайл по-прежнему отсутствует в ответе о завершении, OpenClaw отправляет идемпотентный прямой резервный ответ с медиафайлом.
Пока задача выполняется, повторные вызовы video_generate в том же сеансе возвращают текущий статус задачи вместо запуска новой генерации. Используйте action: "status", чтобы проверить статус без запуска новой генерации, либо openclaw tasks list / openclaw tasks show <lookup> из CLI (см. Фоновые задачи). Вне запусков агента с поддержкой сеансов (например, при прямых вызовах инструмента) инструмент переключается на встроенную генерацию и возвращает конечный путь к медиафайлу в том же ходе. Если провайдер возвращает байты, созданные видеофайлы сохраняются в управляемом OpenClaw хранилище медиафайлов. Ограничение по умолчанию составляет 16MB (общее ограничение для видеофайлов); agents.defaults.mediaMaxMb повышает его для более крупных результатов. Если провайдер также возвращает URL размещённого результата, OpenClaw доставляет этот URL вместо завершения задачи с ошибкой, если локальное сохранение отклоняет слишком большой файл.

Жизненный цикл задачи

Проверьте статус из CLI:

Поддерживаемые провайдеры

Некоторые провайдеры принимают дополнительные или альтернативные переменные окружения для ключей API. Подробности см. на отдельных страницах провайдеров. Выполните video_generate action=list, чтобы проверить доступные провайдеры, модели и режимы выполнения во время работы.

Матрица возможностей

Явный контракт режимов, используемый video_generate, контрактными тестами и общей проверкой в реальной среде:

Параметры инструмента

Обязательные

string
обязательно
Текстовое описание видео, которое нужно создать. Обязательно для action: "generate".

Входные данные контента

string
Одно референсное изображение (путь или URL).
string[]
Несколько референсных изображений (до 9).
string[]
Необязательные подсказки ролей для каждой позиции, соответствующие объединённому списку изображений. Канонические значения: first_frame, last_frame, reference_image.
string
Одно референсное видео (путь или URL).
string[]
Несколько референсных видео (до 4).
string[]
Необязательные подсказки ролей для каждой позиции, соответствующие объединённому списку видео. Каноническое значение: reference_video.
string
Одна референсная аудиозапись (путь или URL). Используется для фоновой музыки или в качестве голосового референса, если провайдер поддерживает входные аудиоданные.
string[]
Несколько референсных аудиозаписей (до 3).
string[]
Необязательные подсказки ролей для каждой позиции, соответствующие объединённому списку аудиозаписей. Каноническое значение: reference_audio.
Подсказки ролей передаются провайдеру без изменений. Канонические значения берутся из объединения VideoGenerationAssetRole, но провайдеры могут принимать дополнительные строки ролей. Массивы *Roles не должны содержать больше элементов, чем соответствующий список референсов; ошибки смещения на единицу завершаются с понятным сообщением об ошибке. Используйте пустую строку, чтобы оставить позицию незаданной. Для xAI задайте для каждого изображения роль reference_image, чтобы использовать режим генерации reference_images; не указывайте роль или используйте first_frame для преобразования одного изображения в видео.

Управление стилем

string
Подсказка соотношения сторон, например 1:1, 16:9, 9:16, adaptive или значение, специфичное для провайдера. OpenClaw нормализует или игнорирует неподдерживаемые значения в зависимости от провайдера.
string
Подсказка разрешения, например 360P, 480P, 540P, 720P, 768P, 1080P, 4K или значение, специфичное для провайдера. OpenClaw нормализует или игнорирует неподдерживаемые значения в зависимости от провайдера.
number
Целевая длительность в секундах (округляется до ближайшего значения, поддерживаемого провайдером).
string
Подсказка размера, если провайдер её поддерживает.
boolean
Включает генерируемый звук в выходных данных, если это поддерживается. Не следует путать с audioRef* (входные данные).
boolean
Включает или отключает водяной знак провайдера, если это поддерживается.
adaptive — специальное значение, специфичное для провайдера: оно передаётся без изменений провайдерам, которые объявляют adaptive в своих возможностях (например, BytePlus Seedance использует его для автоматического определения соотношения сторон по размерам входного изображения). Провайдеры, которые его не объявляют, отображают это значение через details.ignoredOverrides в результате инструмента, чтобы отбрасывание было заметно.

Расширенные параметры

"generate" | "status" | "list"
по умолчанию:"generate"
"status" возвращает текущую задачу сеанса; "list" проверяет провайдеров.
string
Переопределение провайдера/модели (например, runway/gen4.5).
string
Подсказка имени выходного файла.
number
Необязательный тайм-аут операции провайдера в миллисекундах. Если он не указан, OpenClaw использует agents.defaults.videoGenerationModel.timeoutMs, если этот параметр настроен; в противном случае используется заданное автором плагина значение провайдера по умолчанию, если оно существует.
object
Специфичные для провайдера параметры в виде объекта JSON (например, {"seed": 42, "draft": true}). Провайдеры, объявляющие типизированную схему, проверяют ключи и типы; неизвестные ключи или несоответствия приводят к пропуску кандидата при резервном переключении. Провайдеры без объявленной схемы получают параметры без изменений. Выполните video_generate action=list, чтобы узнать, что принимает каждый провайдер.
Не все провайдеры поддерживают все параметры. OpenClaw нормализует длительность до ближайшего значения, поддерживаемого провайдером, и преобразует подсказки геометрии, например размер в соотношение сторон, если резервный провайдер предоставляет другой набор элементов управления. Полностью неподдерживаемые переопределения по возможности игнорируются и сообщаются как предупреждения в результате инструмента. Жёсткие ограничения возможностей (например, слишком большое количество референсных входных данных) приводят к ошибке до отправки. В результатах инструмента указываются применённые настройки; details.normalization содержит все преобразования запрошенных значений в применённые.
Референсные входные данные определяют режим выполнения:
  • Нет референсных медиафайлов -> generate
  • Есть референсное изображение -> imageToVideo
  • Есть референсное видео -> videoToVideo
  • Референсные входные аудиоданные не изменяют определённый режим; они применяются поверх режима, выбранного референсными изображениями/видео, и работают только с провайдерами, которые объявляют maxInputAudios.
Смешивание референсных изображений и видео не является стабильной общей возможностью. Предпочтительно использовать один тип референсов на запрос.

Резервное переключение и типизированные параметры

Некоторые проверки возможностей выполняются на уровне резервного переключения, а не на границе инструмента, поэтому запрос, превышающий ограничения основного провайдера, всё ещё может быть выполнен подходящим резервным провайдером:
  • Активный кандидат, не объявляющий maxInputAudios (или 0), пропускается, если запрос содержит аудиореференсы; затем проверяется следующий кандидат. Та же проверка применяется к количеству референсных изображений и видео относительно maxInputImages/maxInputVideos.
  • Если maxDurationSeconds активного кандидата меньше запрошенного durationSeconds и список supportedDurationSeconds не объявлен, кандидат пропускается.
  • Если запрос содержит providerOptions, а активный кандидат явно объявляет типизированную схему providerOptions, кандидат пропускается, если переданные ключи отсутствуют в схеме или типы значений не совпадают. Провайдеры без объявленной схемы получают параметры без изменений (обратно совместимая сквозная передача). Провайдер может полностью отказаться от параметров провайдера, объявив пустую схему (capabilities.providerOptions: {}), что приводит к такому же пропуску, как при несоответствии типов.
Первая причина пропуска в запросе записывается в журнал на уровне warn, чтобы операторы видели, когда основной провайдер был пропущен; последующие пропуски записываются на уровне debug, чтобы не перегружать журнал при длинных цепочках резервного переключения. Если пропущены все кандидаты, сводная ошибка включает причину пропуска каждого из них.

Действия

Выбор модели

OpenClaw определяет модель в следующем порядке:
  1. Параметр инструмента model — если агент указывает его в вызове.
  2. videoGenerationModel.primary из конфигурации.
  3. videoGenerationModel.fallbacks по порядку.
  4. Автоматическое определение — провайдеры с действительными данными аутентификации, начиная с текущего провайдера по умолчанию, а затем остальные провайдеры в алфавитном порядке.
Если провайдер завершается с ошибкой, автоматически выполняется попытка со следующим кандидатом. Если ошибки возникают у всех кандидатов, сообщение об ошибке содержит сведения о каждой попытке. Задайте agents.defaults.mediaGenerationAutoProviderFallback: false, чтобы использовать только явно указанные записи model, primary и fallbacks.

Примечания о провайдерах

Использует асинхронную конечную точку DashScope / Model Studio. Референсные изображения и видео должны быть удалёнными URL-адресами http(s).
Идентификатор провайдера: 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 (логическое значение).
Требуется плагин @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 (число) передаётся без изменений.
Требуется плагин @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 (число) передаётся без изменений.
Локальное или облачное выполнение на основе рабочих процессов. Поддерживает преобразование текста в видео и изображения в видео через настроенный граф.
Использует поток с очередью для длительных задач. По умолчанию OpenClaw ожидает до 20 минут, прежде чем считать выполняющуюся задачу в очереди fal просроченной. Большинство видеомоделей fal принимают одну ссылку на изображение. Модели Seedance 2.0 для преобразования референсов в видео принимают до 9 изображений, 3 видео и 3 аудиореференсов, но не более 12 файлов референсов суммарно.
Поддерживает один референс в виде изображения или видео. Запросы на создание аудио игнорируются с предупреждением при использовании пути Gemini API, поскольку этот API отклоняет параметр generateAudio для текущей генерации видео Veo.
Только один референс в виде изображения. MiniMax принимает разрешения 768P и 1080P; запросы, например 720P, перед отправкой нормализуются до ближайшего поддерживаемого значения.
Передаётся только переопределение size. Другие переопределения стиля (aspectRatio, resolution, audio, watermark) игнорируются с предупреждением.
Использует асинхронный API /videos от OpenRouter. OpenClaw отправляет задачу, опрашивает polling_url и загружает либо unsigned_urls, либо содержимое задачи через документированную конечную точку. Встроенное значение по умолчанию google/veo-3.1-fast заявляет длительности 4/6/8 секунд, разрешения 720P/1080P и соотношения сторон 16:9/9:16.
Использует тот же бэкенд DashScope, что и Alibaba. Входные референсы должны быть удалёнными URL-адресами http(s); локальные файлы отклоняются заранее.
Поддерживает локальные файлы через URI данных. Для преобразования видео в видео требуется runway/gen4_aleph. При запусках только с текстом доступны соотношения сторон 16:9 и 9:16.
Только один референс в виде изображения.
Использует https://www.vydra.ai/api/v1 напрямую, чтобы избежать перенаправлений, при которых теряются данные аутентификации. veo3 встроена только для преобразования текста в видео; для kling требуется удалённый URL-адрес изображения.
Модель 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 проходят ту же проверку и передаются без изменений.

Режимы возможностей провайдеров

Общий контракт генерации видео поддерживает возможности для отдельных режимов, а не только общие совокупные ограничения. В новых реализациях провайдеров предпочтительно использовать явные блоки режимов:
Плоских совокупных полей, таких как maxInputImages и maxInputVideos, недостаточно для объявления поддержки режимов преобразования. Провайдеры должны явно объявлять generate, imageToVideo и videoToVideo, чтобы тесты в реальной среде, контрактные тесты и общий инструмент video_generate могли детерминированно проверять поддержку режимов. Если одна модель провайдера поддерживает больше входных референсов, чем остальные, используйте maxInputImagesByModel, maxInputVideosByModel или maxInputAudiosByModel вместо увеличения ограничения для всего режима.

Тесты в реальной среде

Опциональное тестирование в реальной среде для общих встроенных провайдеров:
Обёртка репозитория:
По умолчанию этот файл тестов в реальной среде использует уже экспортированные переменные окружения провайдеров с приоритетом перед сохранёнными профилями аутентификации и выполняет безопасную для выпуска дымовую проверку:
  • generate для каждого провайдера в проверке, кроме FAL.
  • Односекундный запрос с лобстером.
  • Ограничение числа операций для каждого провайдера из OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS (по умолчанию 180000).
FAL включается отдельно, поскольку задержка очереди на стороне провайдера может занимать основную часть времени выпуска:
Установите OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1, чтобы также запускать объявленные режимы преобразования, которые общая проверка может безопасно тестировать с локальными медиафайлами:
  • imageToVideo, когда capabilities.imageToVideo.enabled.
  • videoToVideo, когда capabilities.videoToVideo.enabled и провайдер или модель принимает в общей проверке локальный видеофайл на основе буфера.
На данный момент общий тестовый маршрут videoToVideo в реальной среде охватывает runway, только если выбрано runway/gen4_aleph.

Конфигурация

Укажите модель генерации видео по умолчанию в конфигурации OpenClaw:
Или через CLI:

Связанные материалы