mcpField
C
collage-broll-explainers

collage-broll-explainers

github.com/megatroll222クリエイティブ・メディア32077 回インストール17 週間前に更新
リポジトリ

collage-broll-explainers について

短いナレーションをエディトリアルなペーパーカollージュのB-roll動画にする、段階的なワークフローです。比喩の設計、静止画の承認、動画生成を別々のゲートに分け、ナレーションの調整も選択できます。

主な機能

  1. 01ビジュアルメタファーの提案と確認
  2. 02コラージュ静止画の生成とレビュー
  3. 03開始・終了フレームを参照した動画生成
  4. 04動画の品質チェック
  5. 05ナレーションの調整と合成(任意)

活用シーン

  1. 01短いナレーションから映像解説を制作
  2. 02画像生成前にビジュアルの方向性を確認
  3. 03無音のコラージュ動画または音声付き版を制作

MCP 対応

画像、動画、音声の生成には、認証済みのMaxFusion MCP接続が必要です。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/megatroll222/vox-collage-broll --skill collage-broll-explainers

インストール後、Claude Code で/collage-broll-explainersを入力して読み込まれたか確認します。

同梱ファイルLICENSEREADME.md

詳細

コラージュ B ロール解説

約 5 秒のナレーションを、切れ味のある 1 つのビジュアルアイデアに凝縮し、プレミアムなエディトリアル調のペーパーコラージュ組み立てアニメーションに仕上げます。

デフォルトのパイプライン:

  1. ビジュアルメタファーのみを提案し、ユーザーの確認を待ちます
  2. 最終的な静止画フレームのみを生成し、ユーザーの確認を待ちます
  3. 最初と最後のフレームを参照して動画を自動生成し、QA を実施します
  4. 必要に応じて、尺に合わせたナレーションを生成し、動画に多重化します

この 2 段階の確認は、ワークフローの一部であり、余分な手順ではありません。ユーザーは美的な方向性に集中でき、メタファーや静止画の誤りで動画生成コストが無駄になるのを防げます。

実行要件

  • MaxFusion MCP に接続し、認証済みであること(https://mcp.maxfusion.ai/mcp)。画像、動画、音声の生成はすべてこれを通じて行います。接続されていない場合は、ほかの作業に着手せず、接続方法をユーザーに案内してください。
  • ローカルファイルへのアクセスと ffmpeg(例:Claude Code):フレームの準備、動画の QA、無音での納品、ナレーションの尺合わせでは、アセットをダウンロードし、ローカルで処理します。サンドボックス化されたエージェント(ローカルへのダウンロード不可)でも、3 つの確認段階すべてを実行し、MaxFusion ウィジェットに結果を表示できます。ただし、フレームの準備はプロンプトのみを使った色合わせに切り替わり、フレーム単位のセルフ QA、音声の除去、ナレーションの尺合わせは省略されることをユーザーに伝えてください。クリップは目視で確認し、エディターで音声をミュートするよう案内してください。

必須の承認プロトコル

Gate 1:メタファーの確認

台本の文を受け取ったら、まずビジュアルメタファーを提案してください。画像や動画を生成したり、生成ツールを呼び出したりしてはいけません。

各文について、次の内容を提示してください。

  • 中心となる意味
  • 感情
  • 1 文で表すビジュアルの提案
  • 重要なオブジェクト 3~6 個
  • 推奨する背景色と局所的なアクセントカラー
  • 想定する組み立て順序

その後、明示的に停止し、ユーザーが「approved」「all approved」と返信するか、項目ごとの修正内容を伝えるまで待ってください。

ユーザーが番号付き項目の一部だけを承認した場合は、承認された項目のみ Gate 2 に進めてください。残りのメタファーは引き続き調整してください。

Gate 2:静止画フレームの確認

メタファーの承認後に限り、ビジュアル仕様と画像プロンプトを作成し、maxfusion_generate_image で最終的な静止画を生成してください。

元画像をプロジェクトディレクトリに保存し、番号付きの静止画コンタクトシートを作成して、各静止画をすべてユーザーに表示してください(画像ごとに maxfusion_display_generation を 1 回呼び出し、番号との対応も示してください)。その後、再び停止してください。この段階ではまだ動画を生成しません。

ユーザーが一部の静止画だけを承認した場合は、承認された項目のみ Gate 3 に進めてください。却下された静止画を再生成し、先に再確認を受けてください。

Gate 3:動画生成

静止画が承認されたら、ただちに生成してください。使用する動画モデルは固定です:

video_model: gemini-omni-flash

ほかの動画モデルは一切使用しません。モデルの選択肢を提示したり、ユーザーに使用するモデルを尋ねたり、失敗時に別のものへ切り替えたりしてはいけません。修復手順を適用し、gemini-omni-flash で再実行してください。

成功基準

  • 1 行につき、明確なメタファーを 1 つだけ表現する
  • 一連の素材でデザイン言語を統一しつつ、背景を単一の青色に固定しない
  • 背景は意味に応じて変化する、鮮やかでフラットかつ均一な色面にする
  • 被写体は白黒のハーフトーン写真の切り抜きで構成する
  • 主要なカード、ボタン、フィルムストリップ、ルールブックなどには、赤、黄色、ティール、オレンジ、紫、クリーム色の厚紙を使用してもよい
  • すべての紙片に、シャープな切り抜きの縁、クリーム色の縁取り、低不透明度の柔らかな影、紙の質感を加える
  • 動きは何もない状態から組み上がるものにする。穏やかな漂い、揺れ、ゆっくりとしたズームにはしない
  • 字幕、台本全文、ロゴ、ウォーターマーク、UI は入れない
  • デフォルトの納品仕様:9:16、5 秒、720p、無音の MP4(音声トラックを除去)。ユーザーがナレーションを希望する場合は、音声付きで納品します

このスキルを使用しない場合

  • レイヤー、オクルージョン、カメラのフライスルー、または編集可能なタイムラインを精密に制御する必要がある場合は、代わりにレイヤーアニメーションツールを使用してください(例:HTML でレンダリングするレイヤー動画の手法)。
  • ユーザーが完成した動画ではなく、動画用プロンプトだけを求めている場合は、プロンプトを作成するだけにして、このフローは省略してください。
  • ユーザーが実在の人物を起用した製品広告や、カメラの前で説明するプレゼンターを必要としている場合は、このコラージュのフローを使用しないでください。
  • ユーザーがレイヤーごとに編集可能な透明素材を明確に必要としている場合、このスキルではレイヤーごとに分離された透明素材は提供できません。

デフォルトのプロジェクトディレクトリ

ユーザーの現地日付を名前にしたローカル作業フォルダー:

~/collage-broll-projects/YYYY-MM-DD-<title>/

バッチプロジェクトに推奨される構成:

<project>/
├── brief.md
├── visual-spec.json
├── imagegen-prompts.md
├── omni-jobs.json
├── gate2-qa.md
├── gate3-qa.md
├── still-contact-sheet.jpg
├── omni-contact-sheet-all.jpg
├── video-first-frame-all.jpg
├── end-frame-comparison-all.jpg
├── 01-<concept-name>/
│   ├── omni-prompt.txt
│   ├── voiceover-raw.mp3            (optional voiceover stage)
│   ├── voiceover-trim.mp3
│   ├── frames/
│   │   ├── last-frame-original.png
│   │   ├── first-frame.png
│   │   └── last-frame.png
│   └── omni/run-v01/
│       ├── final-5s.mp4
│       ├── final-5s-noaudio.mp4
│       ├── final-5s-voiced.mp4      (optional voiceover stage)
│       ├── contact-sheet.jpg
│       ├── video-last-frame.jpg
│       └── end-frame-comparison.jpg
└── 02-<concept-name>/...

また、maxfusion_create_project で MaxFusion プロジェクトを作成し(同じ名前を使用)、バッチ内のすべての生成でその ID を project_id / project_group_id として渡してください。そうすることで、すべての素材がワークスペース内でグループ化されます。各項目について、確認済みのメタファーテキスト、確認済みの静止画の画像ジョブ ID と画像 ID、アップロードした最初/最後のフレームの file_id、動画ジョブ ID と動画 ID、QA の判定を記録してください。各ゲートでこれらの ID をユーザーに伝えれば、個々の項目を参照したり、個別に再実行したりできます。

フェーズ 1:視覚的なメタファーを設計する

まず、スクリプトの一文をひとつの視覚的な命題に凝縮します。

抽出する内容:

  • 核となる意味:最終的に視聴者に理解してもらうこと
  • 感情:落ち着き、驚き、切迫感、突然の明瞭さ、不条理、皮肉
  • 動作を表す動詞:開く、つなぐ、漏れる、結び付ける、アーカイブする、点灯する、圧縮する、分岐する、組み立てる
  • 視覚的なメタファーの候補:機械、時計、フィルムストリップ、書類キャビネット、コンソール、ルールブック、漏斗、線路、チェスの駒

スクリプトの文章をそのままフレームに入れないでください。デフォルトでは一文につきメタファーをひとつとし、主要なオブジェクトは 3~6 個に収めます。要素が多すぎると意味が薄まり、Omni の組み立てが不安定になります。

抽象的なものより、日常生活で視聴者になじみのあるメタファー(やかん、雪だるま、証明写真機など)を優先してください。話し言葉がユーザーの実際のトピックとの橋渡しをするため、視覚表現は難解にならない範囲で大胆なものにできます。

バッチでは、ビフォー/アフターの物語を形作るメタファーを優先してください。たとえば、最初は手作業の苦労と経験の流出を描き、その後、体系化されたプロセスと人間と機械の役割分担を描きます。

ゲート 1 の出力例
1. Core meaning: expertise gets consumed from scratch every single time
   Visual metaphor: a skilled editor circles a giant film-strip clock cutting frame by frame; the clock completes a full revolution yet yields only a short strip of finished film
   Key objects: film-strip clock, editor figure, scissors, short output strip
   Colors: burnt-orange field, cream and light-teal accents
   Assembly order: clock → figure with scissors → film strip → final short output

これを出力して停止し、確認を待ってください。

フェーズ 2:カラーコラージュの静止画を生成する

メタファーの確認後、まず自己完結型の visual-spec.json を記述してから、画像プロンプトを作成します。

ビジュアル仕様
{
  "script_meaning": "",
  "visual_metaphor": "",
  "style_signature": "flat bold color field, mixed black-and-white halftone cut-outs and colored cardstock accents, crisp cut edges, cream keylines, soft paper shadows, editorial paper collage",
  "aspect_ratio": "9:16",
  "color_field": {
    "background_hex": "",
    "accent_colors": [],
    "paper_grain": "fine uncoated-paper fiber"
  },
  "elements": [
    {
      "what": "",
      "role": "",
      "motion": "",
      "placement": ""
    }
  ],
  "composition": {
    "layout": "",
    "negative_space": "",
    "final_frame": ""
  },
  "motion_plan": "structure first, subject or cards second, action and result last",
  "avoid": "typography, readable letters, numerals, logos, watermark, UI, subtitles, glossy 3D, photoreal environment"
}
色のルール

コバルトブルーを唯一のデフォルトにしないでください。意味に合った強い色面を選び、バッチ全体では「同じデザイン言語で異なる色面」を保ちます。

  • 焦げたオレンジ/赤:時間の消費、労働、切迫感
  • マスタードイエロー:ツール、警告、経験の流出
  • インクグリーン:認知、センス、システムのリセット
  • ディープパープル:ルール、体系化、長期記憶
  • ティール:判断、協働、自律的な実行

被写体はおおむね白黒のハーフトーンにします。ただし、色付きの厚紙のアクセントはすべて情報の階層構造に役立つものとし、見た目だけのために色を付けないでください。

画像プロンプトのテンプレート

maxfusion_generate_image で生成します(デフォルトモデル、aspect_ratio: "9_16"、quality: "high"):

Use case: ads-marketing
Asset type: final still frame for a 9:16 image-to-video B-roll clip
Primary request: Create a finished editorial paper-collage image expressing [one-sentence visual proposition].
Scene/backdrop: perfectly flat [color name] paper field [hex] with subtle uncoated paper fiber.
Style/medium: premium editorial stop-motion paper collage; black-and-white halftone photographic cut-outs mixed with selective [accent colors] colored cardstock.
Composition/framing: vertical 9:16 locked poster frame; central subject within the middle 70 percent; generous clean color-field negative space; 3–6 large separable paper groups for later assemble-from-empty animation.
Materials/textures: visible printed halftone dots, crisp machine-cut edges, thin warm-cream paper keylines, soft low-opacity physical drop shadows.
Constraints: [the one relationship this metaphor must communicate at a glance].
Avoid: no typography, no readable letters, no numerals, no logos, no watermark, no UI, no subtitles, no glossy 3D, no photoreal environment, no clutter.

シーンに文字盤、時計の文字盤、計器、またはカウンターが含まれる場合は、そこにある目盛りはすべて単純な目盛り線のみとし、ローマ数字や数字は使わないよう明示的に制約を加えてください。シーンに眠っている人物が含まれる場合は、「Zzz」の記号を明示的に禁止してください。動画モデルはこうした記号を紛れ込ませがちです。

maxfusion_get_job(wait: 60)でジョブをポーリングし、各静止画をアセット URL から <item>/frames/last-frame-original.png にダウンロードして、画像ジョブ ID と画像 ID を記録してください。

静止画のQA
  • 比喩がひと目で伝わるか
  • 主題がまとまっているか
  • 偽の文字、ロゴ、透かし、UIがないか
  • 空のフレームから組み立てるための、純色の領域が十分に残っているか
  • 画面全体が紙吹雪のようにならず、3〜6個の大きく明確なグループになっているか
  • バッチ全体で、テクスチャに統一感があり、フィールドの色に変化があるか

合格したオリジナルをプロジェクトディレクトリにコピーし、番号付きの静止画コンタクトシートを作成して、ユーザーに提示してください(各画像の maxfusion_display_generation も併せて提示します)。その後、Gate 2 の確認を待って停止してください。静止画のQA判定は <project>/gate2-qa.md に記録してください。

ユーザーが一部の静止画の再生成を求めた場合は、その静止画のみを再生成し、still-contact-sheet-v2.jpg(後のラウンドでは v3、v4…)を作成してください。比較用に以前のコンタクトシートは残し、上書きしないでください。また、却下された静止画を後続工程で再利用しないでください。

Phase 3:Omni で動画を生成する

1. 最初と最後のフレームを準備する

画像生成のオリジナルを保持し、最後のフレームを正規化します。

ffmpeg -y -i <item>/frames/last-frame-original.png \
  -vf "scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920" \
  <item>/frames/last-frame.png

最初のフレームは、デフォルトでは最後のフレームと同じ背景色の、何もない紙のフィールドです。

ffmpeg -y -f lavfi -i color=c=0x<HEX>:s=1080x1920 \
  -frames:v 1 <item>/frames/first-frame.png

(<HEX> はビジュアル仕様の background_hex です。画像プロンプトに記載した同じ16進数の色で、これにより2つのフレームの色が一致します。)

ユーザーが完全に何もないフィールドから始めないよう明示的に求めた場合に限り、最初のフレームに基本となる構造物を1つ残してもかまいません。

maxfusion_upload_asset を使って両方のフレームを MaxFusion にアップロードします(purpose: "image_reference"、content_type: "image/png"、正確な size_bytes、filename)。このツールはアップロードセッションを返します。upload.fields のすべてのキーと値を指定どおりに含め、ファイルバイト列を file という名前の最後のパートとして追加したマルチパートフォームを upload.url に POST します(2xx はすべて成功です)。その後、返された各 file_id を使用します。各項目の2つの file_id を記録してください。

2. Omni アニメーションプロンプトを作成する

デフォルトの動作順序:

base structure → figure or key cards → connectors → action → final result

プロンプトテンプレート(項目ごとに <item>/omni-prompt.txt として保存します):

Paper-collage stop-motion assembly, using Image 1 as the exact empty first frame and Image 2 as the exact completed last frame. In one continuous locked-off vertical shot, open on the empty flat [color] paper field.

Assemble the scene piece by piece with crisp physical stop-motion timing: [describe, in order, how the 3–6 elements slide in, snap into place, connect, and complete the action]. End by holding the supplied completed composition.

Preserve the exact 9:16 framing, [hex] color field, colored cardstock accents, uncoated paper grain, halftone dots, cream keylines, crisp cut edges and soft shadows. Restrained tactile 2D paper craft only.

No scene cuts, no camera movement, no zoom, no morphing, no new objects, no text, no letters, no numbers, no logos, no watermark, no UI, no sound.

すべてのプロンプトで、Image 1 は何もない最初のフレーム、Image 2 は確認済みの完成した最後のフレームであることを明記してください。最終的な構図は Image 2 に一致させ、モデルに再デザインさせないでください。静止画プロンプトに文字を防ぐ制約(文字盤は目盛りのみ、Zzz は不可)があれば、動画プロンプトにも引き継いでください。

3. 生成を送信する

項目ごとに maxfusion_generate_video を1回呼び出します。参照画像の順序でフレームの役割が決まります。何もない最初のフレームが1つ目の ID、正規化された最後のフレームが2つ目の ID で、プロンプト内の「Image 1」/「Image 2」と一致させます。

video_model: gemini-omni-flash
ref_image_file_ids: [<first-frame file_id>, <last-frame file_id>]
prompt: <omni animation prompt>
duration: 5
aspect_ratio: 9_16
resolution: 720p
project_group_id: <batch project id>

送信したジョブを <project>/omni-jobs.json に記録します(項目ごとにプロンプト、フレームの file_id、ジョブ ID、出力パスを記録)。各ジョブを maxfusion_get_job(wait: 60)で終端状態になるまでポーリングし、完了した各動画を <item>/omni/run-v01/final-5s.mp4 にダウンロードします。個別のジョブが失敗した場合は、そのジョブのみを再実行してください。すでに合格した項目は再実行しないでください。

4. 無音で納品する

プロンプトで「no sound」と指定していても、ffmpeg を使って音声トラックがゼロのバージョンを作成してください。

ffmpeg -y -i <run>/final-5s.mp4 \
  -map 0:v:0 -c:v copy -an \
  <run>/final-5s-noaudio.mp4

デフォルトでは final-5s-noaudio.mp4 を納品し、元の final-5s.mp4 は中間ファイルとして保持してください。

動画QA

最終フレームだけで判断せず、組み立ての進行と最終的な着地を確認してください。

コンタクトシート
ffmpeg -y -i <run>/final-5s-noaudio.mp4 \
  -vf "fps=1,scale=270:480,tile=5x1" \
  -frames:v 1 <run>/contact-sheet.jpg

合格基準:

  • 最初のフレームは、ほぼ無地の色面です。紙の端が境界にわずかに見える程度であれば許容されます
  • クリップの途中では、構造物、人物、カードが段階的に入ってきます。画面全体が一度にフェードインする形ではありません
  • カット、ズーム、3D化、フォトリアルなシーンへの変化がないこと
  • 偽の文字、ロゴ、透かし、UIがないこと
  • 最終フレームが確認済みの静止画と一致すること。比喩の意味に影響しない軽微なポーズの変化や小さなパーツのずれ(人物のポーズが少し変わる、小さなパーツが追加または欠落するなど)は合格とし、そのために再実行しないでください
  • 出力が9:16、720p、5秒で、音声ストリームが0であること(ffprobeで確認してください)

動画の最終フレームも抽出し、確認済みの静止画と並べて <run>/end-frame-comparison.jpg に配置してください。バッチプロジェクトでは、さらに次の3つの概要画像を結合してください。

  • omni-contact-sheet-all.jpg:完成したすべてのクリップの、1秒ごとのフレーム
  • video-first-frame-all.jpg:すべてのクリップの実際の最初のフレーム。各クリップが本当に無地の色面から始まることを確認します
  • end-frame-comparison-all.jpg:確認済みの静止画と動画の最終フレームを並べた画像

合格とした理由(欠点を記したうえで合格とする場合はその理由を含む)を含め、項目ごとのQA判定を <project>/gate3-qa.md に記載してください。

修正手順(よくある問題)
  • 最初のフレームに紙の端が見える:わずかであれば許容されます。冒頭を完全に空にする必要がある場合は、動画編集ソフトで冒頭のビートを追加してください
  • 組み立て感が弱い:要素の数を減らし、パーツごとにスライドインして所定の位置にはまる順序を明示するプロンプトに書き直してください
  • 最終フレームのずれ:「Image 2 is the exact completed last frame」(画像2が完成状態の正確な最終フレームであること)と「End by holding the supplied completed composition」(提供された完成済みの構図を表示したまま終えること)を強調してください
  • 偽の文字が表示される(単語、数字、文字盤のローマ数字、眠る人の「Zzz」など):戻って再生成してください。文字入りの静止画なら新しい静止画を作成し、文字入りの動画で静止画に問題がない場合は、プロンプトに明示的な禁止事項を追加して動画を1回だけ再実行してください
  • 動画が1本失敗する:そのジョブだけをgemini-omni-flashで再実行し、モデルは切り替えないでください

フェーズ4:ナレーション(任意)

ユーザーがクリップにセリフを入れたい場合は、MaxFusionで生成し、ローカルで長さを調整してください。

1. 音声を選ぶ

maxfusion_list_platform_voices(ユーザーが保存済みの音声を持っている場合は maxfusion_list_my_voices も)を使って音声を一覧表示し、ユーザーに1つ選んでもらってください。ユーザーから明示的に依頼されない限り、新しい音声は作成しないでください。バッチ内のすべての項目で同じ音声を使用してください。

2. 生成してトリミングする

選択した voice_id を指定して maxfusion_generate_speech で各セリフを生成し、(テンポの速い読み上げに適したデフォルトの speed: 1.1 を使用します)、mp3をダウンロードして末尾の無音を削除してください。

ffmpeg -y -i <item>/voiceover-raw.mp3 \
  -af "areverse,silenceremove=start_periods=1:start_threshold=-45dB,areverse" \
  <item>/voiceover-trim.mp3
3. 4~5秒の範囲に収める

ffprobeで長さを測定してください。トリミング後のセリフは4.0~5.0秒に収める必要があります。短すぎると5秒のクリップに無音部分が生じ、長すぎると途中で切れます。同じ条件でもTTSの長さは±1.5秒変動するため、必ず測定し、推測で済ませないでください。

次の順で調整してください。

  1. 無音をトリミングします(上記で実施済み)
  2. 短すぎる場合は文面を少し長くし、長すぎる場合は短くして、speed: 1 で再生成します
  3. 最後の手段として、わずかに長いセリフに限り、聞き取れない程度にテンポを調整します。最大で -af "atempo=1.05" とします
4. 多重化

動画ストリームは変更せずにコピーし、音声は正確に5秒になるようパディングします。

ffmpeg -y -i <run>/final-5s-noaudio.mp4 -i <item>/voiceover-trim.mp3 \
  -map 0:v:0 -map 1:a:0 -c:v copy -c:a aac -af apad -t 5 \
  <run>/final-5s-voiced.mp4

デフォルトの納品物

ユーザーに以下を納品してください。

  • 各項目の <item>/omni/run-v01/final-5s-noaudio.mp4。ナレーション工程を実行した場合は final-5s-voiced.mp4(さらに maxfusion_display_generation でMaxFusionウィジェットに生成内容を表示してください)
  • 各項目のコンタクトシート
  • バッチの概要コンタクトシート
  • 最終フレームの比較画像
  • スクリプトのセリフがどのように視覚的な比喩になったかを説明する、項目ごとの1文
  • バッチのMaxFusionプロジェクト名と、再実行や参照に必要な項目ごとのID

欠陥がOmniの高速生成の制限に起因する場合は、そのことを明確に伝えてください。レイヤーを精密に制御する必要が本当にある場合に限り、レイヤーアニメーションツールへの切り替えを提案してください。

クレジット

ビジュアル言語、3つのゲートからなるフロー、プロンプトテンプレート、色の意味付け、QA/修復プレイブックは、pyang5166によるgbro-collage-brollが出典です。これは、ローカルのGeminiスクリプトとともにCodex向けに中国語で書かれたものです。このバージョンは、Claude Code + MaxFusion MCP向けの英語版で、ナレーションに合わせる工程を追加しています。

コメント