gemini-omni について
Gemini Interactions API を通じて Google Gemini Omni 1.1 Flash で動画を生成・編集する OpenMontage スキルです。対話状態を保ちながら段階的に編集したい制作者向けに、プロンプトと参照画像の使い方も説明します。
主な機能
- 013~10秒の動画クリップ生成
- 02インタラクション ID による既存クリップの編集
- 03プロンプトでシーンのビートを指定
- 04参照画像による条件付け
- 05音声合成とテキスト描画
活用シーン
- 01シーンのプロンプトから短い動画を生成
- 02既存クリップの照明や動きを段階的に調整
- 03タイムコードで複数のビートを指定
- 04参照画像で被写体やスタイルを指定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ calesthio/ openmontage --skill gemini-omniインストール後、Claude Code で/gemini-omniを入力して読み込まれたか確認します。
詳細
Gemini Omni Flash(Google DeepMind)
Gemini Omni は、Google DeepMind の動画生成および編集モデルファミリーです。OpenMontage の直接アダプターは、Gemini Interactions API を通じて、一般提供されている Gemini Omni 1.1 Flash モデル(gemini-omni-1.1-flash)を使用します。実装されている基本機能では、音声を合成した 720p/24fps の 3~10 秒のクリップを生成します。OpenMontage のモデル群における差別化要因は、状態を保持する対話型編集です。保存された各生成結果は interaction_id を返し、previous_interaction_id を指定した後続の呼び出しで、その動画をそのまま編集できます。ラップされている他のプロバイダーでは、クリップを再生成せずに調整することはできません。
OpenMontage では gemini_omni_video としてラップされています(ネイティブの Gemini API を使用し、ゲートウェイは不要です)。google_imagen および google_tts と GOOGLE_API_KEY/GEMINI_API_KEY を共有するため、1 つのキーで 3 つの機能を利用できます。有料ティアのみです。出力動画 1 秒あたり約 $0.10 です(入力やテキスト/思考の出力を除き、1 秒あたり正確に 5,792 出力トークン、100 万トークンあたり $17.50)。
Google の直接キーを選択したプロバイダーとして使用しない場合は、次のドキュメント記載のルートを利用できます。
| ルート | OpenMontage の呼び出し | 重要な制限 |
|---|---|---|
| fal.ai | gemini_omni_fal | T2V、I2V、参照動画、編集の各エンドポイントに対応します。Google の interaction ID は返されません |
| Runway | runway_video、model: "gemini_omni_flash" | T2V/I2V/V2V に対応します。動画編集では最大 5 枚の画像を参照できます |
| ComfyUI Partner Node | このアダプターでは、安定した 1.1 フォールバックではありません | 既存の GeminiVideoOmni マッピングは従来のプレビュー用ノードを対象としています。Omni 1.1 のサポートを表明する前に、別途 GeminiVideoOmniV2 へ移行してください |
状態を保持する対話型編集には、直接の gemini_omni_video ルートを使用してください。ゲートウェイルートは通常のプロバイダータスクを返すため、Google の previous_interaction_id ワークフローを維持できません。fal の編集エンドポイントでは、各出力動画の URL を次の編集呼び出しに渡すことで、引き続き反復編集できます。
使用する場面(および使用しない場面)
| 次の用途に使用 | 次の用途には別のプロバイダーを推奨 |
|---|---|
| 反復的な調整 — 生成し、確認してから、同じクリップを段階的に編集する | 一度で完成させる映画的なヒーロークリップ(→ Seedance 2.0、seedance-2-0 を参照) |
| 既存またはアップロード済みのクリップの編集(スタイル変更、オブジェクトの追加/削除、テキストの変更) | 10 秒を超えるクリップ、または 720p を超える解像度 |
| 画面上にレンダリングするテキストや、単語ごとのテキストの演出 | シード値で再現可能な生成(シード値には対応していません) |
| プロンプトタグで参照画像に紐づける被写体/スタイル | 最初と最後のフレーム間の補間(→ veo_video) |
| 1 つのプロンプトからタイムコードでスケジュールする複数のビートからなるクリップ | 英語以外のナレーション(完全にサポートされているのは英語のみ) |
生成操作では video_selector を経由してください。編集(edit_video)は直接ツールを呼び出す操作です。複数ターンにわたる対話状態はセレクターのモデル外にあるため、レジストリから gemini_omni_video を呼び出してください。
料金と再生時間のヒント
durationは呼び出し元が計画やプロンプト作成に使用するヒントにすぎません。アダプターはこれを Google に送信しません。タイミングはプロンプトまたはタイムコードで指定し、実際の長さはモデルに選択させてください。durationによって請求額が上限設定されることはありません。ToolResult.cost_usdは、有効なレスポンスのusageが利用可能な場合、それに基づいて計算します。入力トークンはすべてのモダリティで 100 万トークンあたり $1.50、テキスト出力は 100 万トークンあたり $9.00、動画出力は 100 万トークンあたり $17.50 です。不明または分類されていない出力、および別途報告された思考トークンには、結果が実際の料金を下回らないよう、より高い 100 万トークンあたり $17.50 のレートを適用します。- 有効な
usageがない場合、フォールバックでは最大の 10 秒出力を想定します。10 × 5,792 × $17.50/1M = $1.0136に加えて、プロンプトおよび利用可能なメディア入力トークンについて保守的な上限見積もりを加算します。短いdurationのヒントによって、このフォールバック額が減ることはありません。
生成プロンプト
シーン+カメラ+照明+動き+音声を記述します。公式の例:
ふわふわのトラ猫が、日差しの差し込む窓辺に座り、緑豊かな庭を眺めています。カメラは途切れることなく、手持ちで撮影します。猫のしっぽがゆっくりと動き、周囲の物音に反応して耳がわずかに回転します。陽光が空中のほこりを照らします。
- 単一ショットを明示的に指定します:「1つの連続したショットで(In a single continuous shot)」/「シーンを切り替えないでください(No scene cuts)」。指定しないと、モデルがシーンを切り替えることがあります。
- ネガティブ指定は文章で記述します —
negative_promptパラメーターはありません:「セリフなし(No dialogue)」「余分な効果音なし(No extra sound effects)」。 - サンプラーの制御には対応していません:システム指示、temperature、top_p、seed はすべてサポートされていません。プロンプトだけが調整手段です。
- 品質向上のメタプロンプト:「微細なディテール、表情、タイミングを考慮し、非常に豊かで詳細ながら、完全に自然なシーンを作成します。」
タイムコードの構文
角括弧で囲んだ範囲、または自然言語を使って場面の展開を指定します。これは OpenMontage のシーンプランのタイミングに直接対応します。
[0-3s] A person is walking [3-6s] They stop and turn around
「3秒後に、女性がシーンに入ってきます。」/「5秒で、背景音声にコーラスが始まります。」
音声と画面上のテキスト
音声は自動的に合成されます。プロンプトで指定してください:「落ち着いたBGMを入れてください」「背景では、音質の悪いラジオ放送が小さく流れています」。レンダリングされたテキストは使用でき、表示時間も指定できます。
画面に一度に1語ずつ表示します:「did, you, know, that, Omni, can, do, awesome, text?」。各単語は1秒間表示されます。
参照画像(<FIRST_FRAME> / <IMAGE_REF_N> タグ)
reference_image_paths でローカル画像を渡し(指定した順に送信されます)、プロンプト内でタグを使って役割に割り当てます。<IMAGE_REF_N> のインデックスは、指定順に0から始まります。
in the style of <IMAGE_REF_0> a woman <IMAGE_REF_1> is walking
[0-3s] A studio fashion sequence. Starting with woman <IMAGE_REF_0>, she is
holding <IMAGE_REF_1> [3-6s] Then we see the man <IMAGE_REF_2> holding <IMAGE_REF_3>
<FIRST_FRAME>は画像を冒頭のフレームとして使います:<FIRST_FRAME> a woman is walking。- 高解像度の画像を使い、「動かして」ではなく、意図する動きを具体的に説明します。
- それぞれの画像が何を示すのか(製品/キャラクター/スタイル/背景の参照画像)を明記します。モデルは文脈から用途を判断します。
対話型編集(差別化要素)
編集プロンプトは生成プロンプトとは正反対で、短く、的を絞ったものにします。 編集プロンプトが説明的すぎると、意図しない変更が生じます。
- ベースとなるクリップ(被写体+シーン+動き)を生成します。ツールは結果データに
interaction_idを返します。 operation="edit_video"を指定し、previous_interaction_idとして渡し直して、変更点だけを説明します。- 指定していない要素を固定するため、**「ほかはすべてそのままにしてください。」**を追加します。
- レイヤーごとに調整します。照明、カメラ、アクション、音声をそれぞれ別のターンで指定します。
公式の良い例/悪い例:
| 避ける例 | 推奨例 |
|---|---|
| 「ソファに座っている男性の動画に、小さな黒猫を追加してください……」 | 「猫を追加して、彼の膝に飛び乗らせ、彼が撫ではじめるようにしてください。ほかはすべてそのままにしてください。」 |
| 「携帯電話を削除して……背景を、まるで……のように埋めてください」 | 「携帯電話を見えなくしてください。ほかはすべてそのままにしてください。」 |
ほかに使える編集プロンプト:「この動画をアニメにしてください」/「この人物におしゃれな帽子をかぶせてください」/「照明をもっとドラマチックにしてください」/「看板の文字を『Omni Flash』に変更してください」。
注意点 — store: previous_interaction_idを使った編集は、前回の呼び出しでインタラクションをサーバー側に保持している場合にのみ機能します(gemini_omni_videoではstoreのデフォルトはtrueです)。今後編集する予定のない一度きりの生成に限り、store=falseを設定してください。
ダウンロードの復旧: 有料生成が受け付けられた後でも、Files APIのポーリングやダウンロードに失敗することがあります。その場合、ツールはoutput_uri、使用量が有効に返された場合は使用量に応じた料金(それ以外の場合は控えめな推定額)、およびresume_downloadペイロードを返します。そのペイロードをgemini_omni_videoに渡すと、既存ファイルのGET/ポーリング処理のみを再試行します。別の有料生成を送信することはありません。
アップロードした動画の編集: previous_interaction_idの代わりにinput_video_pathを渡します。ツールがFiles APIを使ってアップロードします。EEA、スイス、英国では利用できません(生成された動画の編集はどこでも利用できます)。
現在のアダプターの制限事項(安定版モデル)
- 出力:3~10秒、720p、24fps、音声付きMP4。アスペクト比は
16:9または9:16です。すべての出力に不可視のSynthIDウォーターマークが付与されます。 - シード、ネガティブプロンプト、temperature、top_p、システム指示には対応していません。
- 安定版のGoogleモデルは、動画の延長、最初と最後のフレーム間の補間、および追加の解像度に対応していますが、このOpenMontageアダプターではこれらの制御機能を実装していません。これらを直接ツールの機能として案内しないでください。音声の編集には対応していません。
- 音声参照入力には対応していません。3秒以下の動画参照はスキーマ上は受け付けられますが、正しく処理されません。これに依存しないでください。
- 複数動画のプロンプトには対応していません。出力品質が低下する可能性があります。
- 英語は完全にサポートされています。ほかの言語は未検証です。
- 未成年者の画像(EEA/スイス/英国)や、一部の識別可能な人物の画像は、アップロード/編集時にブロックされます。