メインコンテンツへスキップ

動画生成

OpenClaw エージェントは、テキストプロンプト、参照画像、または既存の動画から動画を生成できます。14 個のプロバイダーバックエンドがサポートされており、それぞれでモデルオプション、入力モード、機能セットが異なります。エージェントは、設定内容と利用可能な API キーに基づいて適切なプロバイダーを自動的に選択します。
video_generate ツールは、少なくとも 1 つの動画生成プロバイダーが利用可能な場合にのみ表示されます。エージェントツール内に表示されない場合は、プロバイダーの API キーを設定するか、agents.defaults.videoGenerationModel を構成してください。
OpenClaw は動画生成を 3 つのランタイムモードとして扱います。
  • 参照メディアなしのテキストから動画へのリクエストには generate
  • リクエストに 1 つ以上の参照画像が含まれる場合は imageToVideo
  • リクエストに 1 つ以上の参照動画が含まれる場合は videoToVideo
プロバイダーは、これらのモードの任意の部分集合をサポートできます。ツールは送信前にアクティブな モードを検証し、action=list でサポートされているモードを報告します。

クイックスタート

  1. サポートされている任意のプロバイダーの API キーを設定します。
export GEMINI_API_KEY="your-key"
  1. 必要に応じてデフォルトモデルを固定します。
openclaw config set agents.defaults.videoGenerationModel.primary "google/veo-3.1-fast-generate-preview"
  1. エージェントに依頼します。
夕焼けの中、親しみやすいロブスターがサーフィンしている 5 秒間のシネマティックな動画を生成してください。
エージェントは video_generate を自動的に呼び出します。ツールの allowlist 設定は不要です。

動画を生成すると何が起こるか

動画生成は非同期です。セッション内でエージェントが video_generate を呼び出すと、次のように動作します。
  1. OpenClaw はリクエストをプロバイダーに送信し、すぐにタスク ID を返します。
  2. プロバイダーはバックグラウンドでジョブを処理します(通常は、プロバイダーと解像度に応じて 30 秒から 5 分)。
  3. 動画の準備ができると、OpenClaw は内部完了イベントで同じセッションを再開します。
  4. エージェントは完成した動画を元の会話に投稿します。
ジョブの進行中、同じセッション内での重複した video_generate 呼び出しは、新しい生成を開始する代わりに現在のタスク状態を返します。CLI から進行状況を確認するには、openclaw tasks list または openclaw tasks show <taskId> を使用してください。 セッションに裏付けられたエージェント実行の外側(たとえば、ツールを直接呼び出す場合)では、ツールはインライン生成にフォールバックし、同じターン内で最終的なメディアパスを返します。

タスクライフサイクル

video_generate リクエストは、4 つの状態を経由します。
  1. queued — タスクが作成され、プロバイダーが受け付けるのを待機中。
  2. running — プロバイダーが処理中(通常は、プロバイダーと解像度に応じて 30 秒から 5 分)。
  3. succeeded — 動画の準備完了。エージェントが再開し、会話に投稿。
  4. failed — プロバイダーエラーまたはタイムアウト。エージェントがエラー詳細付きで再開。
CLI から状態を確認します。
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
重複防止: 現在のセッションですでに動画タスクが queued または running の場合、video_generate は新しいタスクを開始する代わりに既存タスクの状態を返します。新しい生成をトリガーせずに明示的に確認したい場合は、action: "status" を使用してください。

サポートされているプロバイダー

プロバイダーデフォルトモデルテキスト画像参照動画参照API キー
Alibabawan2.6-t2vYesYes(リモート URL)Yes(リモート URL)MODELSTUDIO_API_KEY
BytePlus (1.0)seedance-1-0-pro-250528Yes最大 2 枚の画像(I2V モデルのみ。先頭 + 最終フレーム)NoBYTEPLUS_API_KEY
BytePlus Seedance 1.5seedance-1-5-pro-251215Yes最大 2 枚の画像(role 経由の先頭 + 最終フレーム)NoBYTEPLUS_API_KEY
BytePlus Seedance 2.0dreamina-seedance-2-0-260128Yes最大 9 枚の参照画像最大 3 本の動画BYTEPLUS_API_KEY
ComfyUIworkflowYes画像 1 枚NoCOMFY_API_KEY または COMFY_CLOUD_API_KEY
falfal-ai/minimax/video-01-liveYes画像 1 枚NoFAL_KEY
Googleveo-3.1-fast-generate-previewYes画像 1 枚動画 1 本GEMINI_API_KEY
MiniMaxMiniMax-Hailuo-2.3Yes画像 1 枚NoMINIMAX_API_KEY
OpenAIsora-2Yes画像 1 枚動画 1 本OPENAI_API_KEY
Qwenwan2.6-t2vYesYes(リモート URL)Yes(リモート URL)QWEN_API_KEY
Runwaygen4.5Yes画像 1 枚動画 1 本RUNWAYML_API_SECRET
TogetherWan-AI/Wan2.2-T2V-A14BYes画像 1 枚NoTOGETHER_API_KEY
Vydraveo3Yes画像 1 枚(klingNoVYDRA_API_KEY
xAIgrok-imagine-videoYes画像 1 枚動画 1 本XAI_API_KEY
一部のプロバイダーは、追加または代替の API キー env var を受け付けます。詳細は個別のプロバイダーページを参照してください。 ランタイム時に利用可能なプロバイダー、モデル、ランタイムモードを確認するには、 video_generate action=list を実行してください。

宣言された機能マトリクス

これは、video_generate、契約テスト、 および共有ライブスイープで使用される明示的なモード契約です。
プロバイダーgenerateimageToVideovideoToVideo現在の共有ライブレーン
AlibabaYesYesYesgenerate, imageToVideo; このプロバイダーはリモート http(s) 動画 URL を必要とするため、videoToVideo はスキップ
BytePlusYesYesNogenerate, imageToVideo
ComfyUIYesYesNo共有スイープには含まれない。workflow 固有のカバレッジは Comfy テスト側にある
falYesYesNogenerate, imageToVideo
GoogleYesYesYesgenerate, imageToVideo; 現在のバッファベースの Gemini/Veo スイープはその入力を受け付けないため、共有 videoToVideo はスキップ
MiniMaxYesYesNogenerate, imageToVideo
OpenAIYesYesYesgenerate, imageToVideo; この org/input 経路では現在プロバイダー側の inpaint/remix アクセスが必要なため、共有 videoToVideo はスキップ
QwenYesYesYesgenerate, imageToVideo; このプロバイダーはリモート http(s) 動画 URL を必要とするため、videoToVideo はスキップ
RunwayYesYesYesgenerate, imageToVideo; videoToVideo は選択されたモデルが runway/gen4_aleph の場合にのみ実行
TogetherYesYesNogenerate, imageToVideo
VydraYesYesNogenerate; バンドルされた veo3 はテキスト専用で、バンドルされた kling はリモート画像 URL を必要とするため、共有 imageToVideo はスキップ
xAIYesYesYesgenerate, imageToVideo; このプロバイダーは現在リモート MP4 URL を必要とするため、videoToVideo はスキップ

ツールパラメーター

必須

パラメーター説明
promptstring生成する動画のテキスト説明(action: "generate" では必須)

コンテンツ入力

パラメーター説明
imagestring単一の参照画像(パスまたは URL)
imagesstring[]複数の参照画像(最大 9 枚)
imageRolesstring[]結合された画像リストと位置対応する任意の role ヒント。正準値: first_framelast_framereference_image
videostring単一の参照動画(パスまたは URL)
videosstring[]複数の参照動画(最大 4 本)
videoRolesstring[]結合された動画リストと位置対応する任意の role ヒント。正準値: reference_video
audioRefstring単一の参照音声(パスまたは URL)。プロバイダーが音声入力をサポートする場合、たとえば BGM や音声参照に使用
audioRefsstring[]複数の参照音声(最大 3 個)
audioRolesstring[]結合された音声リストと位置対応する任意の role ヒント。正準値: reference_audio
role ヒントはそのままプロバイダーに転送されます。正準値は VideoGenerationAssetRole union に由来しますが、プロバイダーによっては 追加の role 文字列を受け付ける場合があります。*Roles 配列のエントリー数は、 対応する参照リストを超えてはいけません。1 つずれた指定は明確なエラーで失敗します。 スロットを未設定のままにするには空文字列を使用してください。

スタイル制御

パラメーター説明
aspectRatiostring1:12:33:23:44:34:55:49:1616:921:9、または adaptive
resolutionstring480P720P768P、または 1080P
durationSecondsnumber目標の秒数(最も近いプロバイダー対応値に丸められる)
sizestringプロバイダーがサポートしている場合のサイズヒント
audiobooleanサポートされている場合、出力に生成音声を含める。audioRef*(入力)とは別物
watermarkbooleanサポートされている場合、プロバイダーのウォーターマーク付与を切り替える
adaptive はプロバイダー固有のセンチネルです。これは、その機能に adaptive を宣言している プロバイダーにそのまま転送されます(例: BytePlus Seedance はこれを使って入力画像の 寸法から比率を自動検出します)。これを宣言していないプロバイダーでは、 値はツール結果の details.ignoredOverrides を通じて表示されるため、 無視されたことが分かります。

高度な設定

パラメーター説明
actionstring"generate"(デフォルト)、"status"、または "list"
modelstringプロバイダー/モデルのオーバーライド(例: runway/gen4.5
filenamestring出力ファイル名のヒント
providerOptionsobjectJSON オブジェクトとして渡すプロバイダー固有オプション(例: {"seed": 42, "draft": true})。型付きスキーマを宣言しているプロバイダーでは、キーと型が検証されます。不明なキーや型の不一致があると、フォールバック中にその候補はスキップされます。宣言済みスキーマのないプロバイダーには、そのままオプションが渡されます。各プロバイダーが受け付ける内容は video_generate action=list を実行して確認してください
すべてのプロバイダーがすべてのパラメーターをサポートしているわけではありません。OpenClaw はすでに duration を最も近いプロバイダー対応値に正規化しており、フォールバック先プロバイダーが異なる制御サーフェスを公開している場合は、size-to-aspect-ratio のような変換済みジオメトリヒントも再マッピングします。本当に未対応のオーバーライドはベストエフォートで無視され、ツール結果では警告として報告されます。厳格な機能制限(参照入力が多すぎる、など)は送信前に失敗します。 ツール結果には適用された設定が報告されます。OpenClaw がプロバイダーフォールバック中に duration または geometry を再マッピングした場合、返される durationSecondssizeaspectRatio、および resolution の値は送信された内容を反映し、details.normalization には要求値から適用値への変換が記録されます。 参照入力はランタイムモードの選択にも使われます。
  • 参照メディアなし: generate
  • 画像参照がある: imageToVideo
  • 動画参照がある: videoToVideo
  • 参照音声入力は解決されるモードを変更しません。画像/動画参照で選択されたモードに上乗せで適用され、maxInputAudios を宣言しているプロバイダーでのみ機能します
画像参照と動画参照の混在は、安定した共有機能サーフェスではありません。 1 リクエストにつき 1 種類の参照タイプを推奨します。

フォールバックと型付きオプション

一部の機能チェックは、ツール境界ではなくフォールバック層で適用されます。これにより、 プライマリプロバイダーの制限を超えるリクエストでも、 対応可能なフォールバック先で実行できる場合があります。
  • アクティブな候補が maxInputAudios を宣言していない(または 0 として宣言している)場合、リクエストに音声参照が含まれているとその候補はスキップされ、 次の候補が試されます。
  • アクティブな候補の maxDurationSeconds が要求された durationSeconds を下回っており、かつその候補が supportedDurationSeconds リストを宣言していない場合、その候補はスキップされます。
  • リクエストに providerOptions が含まれており、アクティブな候補が 型付き providerOptions スキーマを明示的に宣言している場合、 指定されたキーがスキーマに存在しない、または値の型が一致しないと、 その候補はスキップされます。まだスキーマを宣言していないプロバイダーには、 オプションがそのまま渡されます(後方互換のパススルー)。 プロバイダーは空スキーマ (capabilities.providerOptions: {})を宣言することで、すべての provider option を 明示的に拒否できます。この場合も型不一致と同様にスキップされます。
リクエスト内で最初のスキップ理由は warn でログ出力されるため、オペレーターは プライマリプロバイダーが見送られたことを確認できます。後続のスキップは 長いフォールバックチェーンを静かに保つため debug でログ出力されます。すべての候補がスキップされた場合、 集約エラーには各候補のスキップ理由が含まれます。

アクション

  • generate(デフォルト) — 指定されたプロンプトと任意の参照入力から動画を作成します。
  • status — 現在のセッションで進行中の動画タスクの状態を確認します。新しい生成は開始しません。
  • list — 利用可能なプロバイダー、モデル、およびその機能を表示します。

モデル選択

動画生成時、OpenClaw は次の順序でモデルを解決します。
  1. model ツールパラメーター — 呼び出し時にエージェントが指定した場合。
  2. videoGenerationModel.primary — config から。
  3. videoGenerationModel.fallbacks — 順番に試行。
  4. 自動検出 — 有効な認証を持つプロバイダーを使用し、現在のデフォルトプロバイダーから始めて、その後は残りのプロバイダーをアルファベット順で試します。
あるプロバイダーが失敗した場合、自動的に次の候補が試されます。すべての候補が失敗した場合、エラーには各試行の詳細が含まれます。 動画生成で明示的な modelprimaryfallbacks エントリーのみを使用したい場合は、 agents.defaults.mediaGenerationAutoProviderFallback: false を設定してください。
{
  agents: {
    defaults: {
      videoGenerationModel: {
        primary: "google/veo-3.1-fast-generate-preview",
        fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
      },
    },
  },
}

プロバイダーメモ

プロバイダーメモ
AlibabaDashScope/Model Studio の非同期エンドポイントを使用します。参照画像と参照動画は、リモートの http(s) URL でなければなりません。
BytePlus (1.0)プロバイダー ID は byteplus です。モデル: seedance-1-0-pro-250528(デフォルト)、seedance-1-0-pro-t2v-250528seedance-1-0-pro-fast-251015seedance-1-0-lite-t2v-250428seedance-1-0-lite-i2v-250428。T2V モデル(*-t2v-*)は画像入力を受け付けません。I2V モデルと一般的な *-pro-* モデルは、単一の参照画像(先頭フレーム)をサポートします。画像は位置指定で渡すか、role: "first_frame" を設定してください。T2V モデル ID は、画像が提供された場合に対応する I2V バリアントへ自動的に切り替えられます。サポートされる providerOptions キー: seed(number)、draft(boolean、480p を強制)、camera_fixed(boolean)。
BytePlus Seedance 1.5@openclaw/byteplus-modelark Plugin が必要です。プロバイダー ID は byteplus-seedance15 です。モデル: seedance-1-5-pro-251215。統一された content[] API を使用します。入力画像は最大 2 枚までサポートします(first_frame + last_frame)。すべての入力はリモートの https:// URL でなければなりません。各画像に role: "first_frame" / "last_frame" を設定するか、画像を位置指定で渡してください。aspectRatio: "adaptive" は入力画像から比率を自動検出します。audio: truegenerate_audio にマッピングされます。providerOptions.seed(number)はそのまま転送されます。
BytePlus Seedance 2.0@openclaw/byteplus-modelark Plugin が必要です。プロバイダー ID は byteplus-seedance2 です。モデル: dreamina-seedance-2-0-260128dreamina-seedance-2-0-fast-260128。統一された content[] API を使用します。最大 9 枚の参照画像、3 本の参照動画、および 3 個の参照音声をサポートします。すべての入力はリモートの https:// URL でなければなりません。各アセットに role を設定してください — サポートされる値: "first_frame""last_frame""reference_image""reference_video""reference_audio"aspectRatio: "adaptive" は入力画像から比率を自動検出します。audio: truegenerate_audio にマッピングされます。providerOptions.seed(number)はそのまま転送されます。
ComfyUIworkflow 駆動のローカルまたはクラウド実行です。構成済みグラフを通じて text-to-video と image-to-video をサポートします。
fal長時間実行ジョブ向けにキュー支援フローを使用します。参照画像は 1 枚のみです。
GoogleGemini/Veo を使用します。画像 1 枚または動画 1 本の参照をサポートします。
MiniMax参照画像は 1 枚のみです。
OpenAIsize オーバーライドのみが転送されます。その他のスタイルオーバーライド(aspectRatioresolutionaudiowatermark)は、警告付きで無視されます。
QwenAlibaba と同じ DashScope バックエンドです。参照入力はリモートの http(s) URL でなければならず、ローカルファイルは事前に拒否されます。
Runwaydata URI を介してローカルファイルをサポートします。video-to-video には runway/gen4_aleph が必要です。テキストのみの実行では、16:99:16 の aspect ratio が公開されます。
Together参照画像は 1 枚のみです。
Vydra認証が落ちるリダイレクトを避けるため、https://www.vydra.ai/api/v1 を直接使用します。veo3 は text-to-video 専用としてバンドルされており、kling にはリモート画像 URL が必要です。
xAItext-to-video、image-to-video、およびリモート動画の編集/拡張フローをサポートします。

プロバイダー機能モード

共有の動画生成契約では現在、プロバイダーは 単なるフラットな集約制限だけでなく、モード固有の機能を宣言できます。新しいプロバイダー 実装では、明示的なモードブロックを推奨します。
capabilities: {
  generate: {
    maxVideos: 1,
    maxDurationSeconds: 10,
    supportsResolution: true,
  },
  imageToVideo: {
    enabled: true,
    maxVideos: 1,
    maxInputImages: 1,
    maxDurationSeconds: 5,
  },
  videoToVideo: {
    enabled: true,
    maxVideos: 1,
    maxInputVideos: 1,
    maxDurationSeconds: 5,
  },
}
maxInputImagesmaxInputVideos のようなフラットな集約フィールドだけでは、 変換モード対応を示すには不十分です。プロバイダーは generateimageToVideovideoToVideo を明示的に宣言し、ライブテスト、 契約テスト、および共有 video_generate ツールがモード対応を 決定的に検証できるようにする必要があります。

ライブテスト

共有バンドルプロバイダー向けのオプトイン型ライブカバレッジ:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
リポジトリラッパー:
pnpm test:live:media video
このライブファイルは、不足しているプロバイダー env var を ~/.profile から読み込み、 デフォルトで保存済み認証プロファイルよりも live/env API キーを優先し、 デフォルトでリリース安全なスモークを実行します。
  • スイープ内のすべての非 FAL プロバイダーに対する generate
  • 1 秒のロブスタープロンプト
  • OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS (デフォルト 180000)によるプロバイダーごとの操作上限
FAL は、プロバイダー側のキュー遅延がリリース時間を支配する可能性があるため、オプトインです。
pnpm test:live:media video --video-providers fal
共有スイープがローカルメディアで安全に実行できる宣言済み変換 モードも実行するには、OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1 を設定します。
  • capabilities.imageToVideo.enabled の場合は imageToVideo
  • capabilities.videoToVideo.enabled であり、かつプロバイダー/モデルが 共有スイープでバッファ支援のローカル動画入力を受け付ける場合は videoToVideo
現在、共有 videoToVideo ライブレーンは次をカバーします。
  • runwayrunway/gen4_aleph を選択した場合のみ)

設定

OpenClaw config でデフォルトの動画生成モデルを設定します。
{
  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"

関連