Tools
動画生成
OpenClawエージェントは、テキストプロンプト、参照画像、または既存の動画から動画を生成できます。16個のプロバイダーバックエンドがサポートされており、それぞれモデルの選択肢、入力モード、機能セットが異なります。エージェントは、構成と利用可能なAPIキーに基づいて、適切なプロバイダーを自動的に選択します。
OpenClawは、動画生成を3つのランタイムモードとして扱います。
generate- 参照メディアなしのテキストから動画へのリクエスト。imageToVideo- リクエストに1つ以上の参照画像が含まれます。videoToVideo- リクエストに1つ以上の参照動画が含まれます。
プロバイダーは、これらのモードの任意のサブセットをサポートできます。ツールは送信前にアクティブなモードを検証し、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 を自動的に呼び出します。ツールの許可リスト設定は不要です。
非同期生成の仕組み
動画生成は非同期です。エージェントがセッション内で video_generate を呼び出すと、次のように動作します。
- OpenClawはリクエストをプロバイダーに送信し、すぐにタスクIDを返します。
- プロバイダーはバックグラウンドでジョブを処理します(通常、プロバイダーと解像度に応じて30秒から数分です。キューを使う低速なプロバイダーでは、構成されたタイムアウトまで実行されることがあります)。
- 動画の準備ができると、OpenClawは内部完了イベントで同じセッションを起動します。
- エージェントはユーザーに通知し、完成した動画を添付します。メッセージツールのみの可視配信を使用するグループ/チャンネルチャットでは、OpenClawが直接投稿する代わりに、エージェントがメッセージツールを通じて結果を中継します。
ジョブが実行中の間、同じセッション内で重複した video_generate 呼び出しを行うと、別の生成を開始する代わりに現在のタスク状態が返されます。CLIから進捗を確認するには、openclaw tasks list または openclaw tasks show <taskId> を使用します。
セッションに紐づいたエージェント実行の外部(たとえば、直接のツール呼び出し)では、ツールはインライン生成にフォールバックし、同じターンで最終メディアパスを返します。
プロバイダーがバイトを返す場合、生成された動画ファイルはOpenClaw管理のメディアストレージに保存されます。生成動画のデフォルト保存上限は動画メディア制限に従い、agents.defaults.mediaMaxMb によってより大きいレンダリング用に引き上げられます。プロバイダーがホストされた出力URLも返す場合、ローカル永続化がサイズ超過ファイルを拒否しても、OpenClawはタスクを失敗させる代わりにそのURLを配信できます。
タスクのライフサイクル
| 状態 | 意味 |
|---|---|
queued |
タスクが作成され、プロバイダーによる受け入れを待っています。 |
running |
プロバイダーが処理中です(通常、プロバイダーと解像度に応じて30秒から数分)。 |
succeeded |
動画の準備ができました。エージェントが起動し、会話に投稿します。 |
failed |
プロバイダーエラーまたはタイムアウトです。エージェントがエラー詳細とともに起動します。 |
CLIから状態を確認します。
openclaw tasks list
openclaw tasks show <taskId>
openclaw tasks cancel <taskId>
現在のセッションに対して動画タスクがすでに 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枚の画像(role経由の最初と最後のフレーム) | - | 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枚の画像。Seedance参照から動画では最大9枚 | Seedance参照から動画では最大3本の動画 | 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 |
✓ | 1枚の画像 | - | TOGETHER_API_KEY |
| Vydra | veo3 |
✓ | 1枚の画像(kling) |
- | VYDRA_API_KEY |
| xAI | grok-imagine-video |
✓ | 1枚の最初のフレーム画像、または最大7枚の reference_image |
1本の動画 | XAI_API_KEY |
一部のプロバイダーは、追加または代替のAPIキー環境変数を受け付けます。詳細は個別のプロバイダーページを参照してください。
実行時に利用可能なプロバイダー、モデル、ランタイムモードを確認するには、video_generate action=list を実行します。
機能マトリックス
video_generate、契約テスト、共有ライブスイープで使用される明示的なモード契約は次のとおりです。
| プロバイダー | generate |
imageToVideo |
videoToVideo |
現在の共有ライブレーン |
|---|---|---|---|---|
| Alibaba | ✓ | ✓ | ✓ | generate、imageToVideo。このプロバイダーはリモート http(s) 動画URLが必要なため、videoToVideo はスキップされます |
| BytePlus | ✓ | ✓ | - | generate、imageToVideo |
| ComfyUI | ✓ | ✓ | - | 共有スイープには含まれません。ワークフロー固有のカバレッジはComfyテスト側にあります |
| DeepInfra | ✓ | - | - | generate。ネイティブのDeepInfra動画スキーマは、バンドルされた契約ではテキストから動画です |
| fal | ✓ | ✓ | ✓ | generate、imageToVideo。videoToVideo はSeedance参照から動画を使用する場合のみです |
| ✓ | ✓ | ✓ | generate、imageToVideo。現在のバッファベースのGemini/Veoスイープはその入力を受け付けないため、共有 videoToVideo はスキップされます |
|
| MiniMax | ✓ | ✓ | - | generate、imageToVideo |
| OpenAI | ✓ | ✓ | ✓ | generate、imageToVideo。この組織/入力パスでは現在プロバイダー側のinpaint/remixアクセスが必要なため、共有 videoToVideo はスキップされます |
| OpenRouter | ✓ | ✓ | - | generate、imageToVideo |
| Qwen | ✓ | ✓ | ✓ | generate、imageToVideo。このプロバイダーはリモート http(s) 動画URLが必要なため、videoToVideo はスキップされます |
| Runway | ✓ | ✓ | ✓ | generate、imageToVideo。videoToVideo は、選択されたモデルが runway/gen4_aleph の場合のみ実行されます |
| Together | ✓ | ✓ | - | generate、imageToVideo |
| Vydra | ✓ | ✓ | - | generate。バンドルされた veo3 はテキスト専用で、バンドルされた kling はリモート画像URLを必要とするため、共有 imageToVideo はスキップされます |
| xAI | ✓ | ✓ | ✓ | generate、imageToVideo。このプロバイダーは現在リモートMP4 URLを必要とするため、videoToVideo はスキップされます |
ツールパラメーター
必須
promptstringrequired生成する動画のテキスト説明。action: "generate" では必須です。
コンテンツ入力
imagestringimagesstring[]imageRolesstring[]結合された画像リストと並行する、省略可能な位置ごとのロールヒント。
正規値: first_frame, last_frame, reference_image。
videostringvideosstring[]videoRolesstring[]結合された動画リストと並行する、省略可能な位置ごとのロールヒント。
正規値: reference_video。
audioRefstring単一の参照音声(パスまたは URL)。プロバイダーが音声入力をサポートしている場合、バックグラウンドミュージックまたは音声 参照に使用されます。
audioRefsstring[]audioRolesstring[]結合された音声リストと並行する、省略可能な位置ごとのロールヒント。
正規値: reference_audio。
スタイル制御
aspectRatiostring1:1, 16:9, 9:16, adaptive、またはプロバイダー固有の値などのアスペクト比ヒント。OpenClaw は、プロバイダーごとに未サポートの値を正規化するか無視します。
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9InJlc29sdXRpb24iIHR5cGU9InN0cmluZyI
480P, 720P, 768P, 1080P, 4K、またはプロバイダー固有の値などの解像度ヒント。OpenClaw は、プロバイダーごとに未サポートの値を正規化するか無視します。
OPENCLAW_DOCS_MARKER:paramClose:
durationSecondsnumber目標の長さ(秒単位、最も近いプロバイダー対応値に丸められます)。
sizestringaudiobooleanサポートされている場合、出力で生成音声を有効にします。audioRef*(入力)とは別です。
watermarkbooleanadaptive はプロバイダー固有のセンチネルです。機能で adaptive を宣言している
プロバイダーにはそのまま転送されます(例: BytePlus
Seedance は、入力画像の寸法から比率を自動検出するためにこれを使用します)。
これを宣言していないプロバイダーでは、ツール結果の
details.ignoredOverrides を通じて値が表示されるため、破棄が可視化されます。
高度な設定
action"generate" | "status" | "list""status" は現在のセッションタスクを返します。"list" はプロバイダーを検査します。
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Im1vZGVsIiB0eXBlPSJzdHJpbmci
プロバイダー/モデルの上書き(例: runway/gen4.5)。
OPENCLAW_DOCS_MARKER:paramClose:
filenamestringtimeoutMsnumberproviderOptionsobjectJSON オブジェクトとしてのプロバイダー固有オプション(例: {"seed": 42, "draft": true})。
型付きスキーマを宣言しているプロバイダーはキーと型を検証します。不明な
キーまたは不一致がある場合、フォールバック中に候補をスキップします。宣言済みスキーマのないプロバイダーは、
オプションをそのまま受け取ります。各プロバイダーが受け付ける内容を確認するには、
video_generate action=list を実行します。
参照入力はランタイムモードを選択します。
- 参照メディアなし →
generate - 画像参照がある場合 →
imageToVideo - 動画参照がある場合 →
videoToVideo - 参照音声入力は、解決されたモードを変更しません。画像/動画参照が選択する
どのモードにも追加で適用され、
maxInputAudiosを宣言している プロバイダーでのみ機能します。
画像参照と動画参照の混在は、安定した共有機能サーフェスではありません。 リクエストごとに 1 種類の参照タイプを優先してください。
フォールバックと型付きオプション
一部の機能チェックはツール境界ではなくフォールバック層で適用されるため、 プライマリプロバイダーの上限を超えるリクエストでも、 対応可能なフォールバックで実行できます。
maxInputAudiosを宣言していない(または0の)アクティブ候補は、 リクエストに音声参照が含まれる場合にスキップされます。次の候補が試行されます。- アクティブ候補の
maxDurationSecondsが要求されたdurationSecondsより小さく、supportedDurationSecondsリストが宣言されていない場合 → スキップされます。 - リクエストに
providerOptionsが含まれ、アクティブ候補が型付きのproviderOptionsスキーマを明示的に宣言している場合 → 指定されたキーが スキーマにない、または値の型が一致しない場合はスキップされます。宣言済みスキーマのないプロバイダーは、 オプションをそのまま受け取ります(後方互換の パススルー)。プロバイダーは空のスキーマ(capabilities.providerOptions: {})を 宣言することで、すべてのプロバイダーオプションを拒否できます。これにより、 型の不一致と同じスキップが発生します。
リクエスト内の最初のスキップ理由は warn でログ出力されるため、オペレーターは
プライマリプロバイダーが見送られたタイミングを確認できます。以降のスキップは debug でログ出力され、
長いフォールバックチェーンを静かに保ちます。すべての候補がスキップされた場合、
集約エラーには各候補のスキップ理由が含まれます。
アクション
| アクション | 実行内容 |
|---|---|
generate |
デフォルト。指定されたプロンプトと省略可能な参照入力から動画を作成します。 |
status |
別の生成を開始せずに、現在のセッションで実行中の動画タスクの状態を確認します。 |
list |
利用可能なプロバイダー、モデル、およびその機能を表示します。 |
モデル選択
OpenClaw は次の順序でモデルを解決します。
modelツールパラメーター - エージェントが呼び出しで指定している場合。- config の
videoGenerationModel.primary。 videoGenerationModel.fallbacksの順序。- 自動検出 - 有効な認証を持つプロバイダー。現在のデフォルトプロバイダーから開始し、 残りのプロバイダーをアルファベット順に試します。
プロバイダーが失敗した場合、次の候補が自動的に試行されます。すべての 候補が失敗した場合、エラーには各試行の詳細が含まれます。
明示的な model, primary, fallbacks エントリのみを使用するには、
agents.defaults.mediaGenerationAutoProviderFallback: false を設定します。
{
agents: {
defaults: {
videoGenerationModel: {
primary: "google/veo-3.1-fast-generate-preview",
fallbacks: ["runway/gen4.5", "qwen/wan2.6-t2v"],
},
},
},
}
プロバイダーの注記
Alibaba
DashScope / Model Studio 非同期エンドポイントを使用します。参照画像と
動画はリモートの http(s) URL である必要があります。
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" を設定します。
画像が提供されると、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: true は generate_audio にマッピングされます。providerOptions.seed
(number)は転送されます。
BytePlus Seedance 2.0
@openclaw/byteplus-modelark
plugin が必要です。プロバイダー ID: byteplus-seedance2。モデル:
dreamina-seedance-2-0-260128,
dreamina-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: true は generate_audio にマッピングされます。providerOptions.seed
(number)は転送されます。
ComfyUI
ワークフロー駆動のローカルまたはクラウド実行。設定されたグラフを通じて text-to-video と image-to-video をサポートします。
fal
長時間実行ジョブにはキューに裏付けられたフローを使用します。OpenClaw はデフォルトで最大20 分待機してから、進行中の fal キュージョブをタイムアウトとして扱います。ほとんどの fal 動画モデルは 1つの画像参照を受け付けます。Seedance 2.0 reference-to-video モデルは最大9個の画像、3個の動画、3個の音声参照を受け付け、参照ファイルの合計は 最大12個です。
Google (Gemini / Veo)
1つの画像または1つの動画参照をサポートします。生成音声リクエストは
Gemini API パスでは警告付きで無視されます。その API は現在の Veo 動画生成で
generateAudio パラメーターを拒否するためです。
MiniMax
画像参照は1つのみです。MiniMax は 768P と 1080P
解像度を受け付けます。720P などのリクエストは送信前に最も近い
サポート値へ正規化されます。
OpenAI
size オーバーライドのみが転送されます。その他のスタイルオーバーライド
(aspectRatio, resolution, audio, watermark) は警告付きで
無視されます。
OpenRouter
OpenRouter の非同期 /videos API を使用します。OpenClaw は
ジョブを送信し、polling_url をポーリングし、unsigned_urls または
文書化されたジョブコンテンツエンドポイントのいずれかをダウンロードします。バンドルされた google/veo-3.1-fast デフォルトは
4/6/8秒の長さ、720P/1080P 解像度、および
16:9/9:16 アスペクト比を提示します。
Qwen
Alibaba と同じ DashScope バックエンドです。参照入力はリモートの
http(s) URL である必要があります。ローカルファイルは事前に拒否されます。
Runway
data URI 経由でローカルファイルをサポートします。video-to-video には
runway/gen4_aleph が必要です。テキストのみの実行では 16:9 と 9:16 のアスペクト
比が公開されます。
Together
画像参照は1つのみです。
Vydra
認証が落ちるリダイレクトを避けるため、https://www.vydra.ai/api/v1 を直接使用します。
veo3 は text-to-video のみとしてバンドルされています。kling には
リモート画像 URL が必要です。
xAI
text-to-video、単一の最初のフレームによる image-to-video、xAI reference_images 経由の最大7つの
reference_image 入力、およびリモート
動画編集/延長フローをサポートします。
プロバイダー機能モード
共有動画生成コントラクトは、フラットな集計上限だけでなく モード固有の機能をサポートします。新しいプロバイダー実装では、 明示的なモードブロックを優先してください。
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 ツールがモードサポートを
決定論的に検証できるようにしてください。
プロバイダー内の1つのモデルだけが他より広い参照入力サポートを持つ場合は、
モード全体の上限を引き上げるのではなく、maxInputImagesByModel、maxInputVideosByModel、または
maxInputAudiosByModel を使用してください。
ライブテスト
共有バンドルプロバイダー向けのオプトインのライブカバレッジ:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts
リポジトリラッパー:
pnpm test:live:media video
このライブファイルは不足しているプロバイダー環境変数を ~/.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 ライブレーンは、runway/gen4_aleph を選択した場合に限り
runway を対象にします。
設定
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