YouTube Shorts ビジュアルディレクター&画像生成スキル
このスキルは、Antigravity のネイティブ generate_image 機能を使用して、YouTube Shorts 用の一貫性のある映画的な 9:16 縦型シーンを生成するエージェントをガイドします。
1. ビジュアル一貫性フレームワーク(キャラクター&世界観同期) 👥🌍
ショート動画用に 5 ~ 20 枚の画像を生成する際、スタイルやキャラクターのずれを避けることが重要です。キャラクターの顔、服装、環境がシーン間でランダムに変化すると、動画への没入感が損なわれます。
シーン間同期の3つの柱:
-
キャラクターDNA設計図:
- キャラクターが登場するすべてのシーンで、以下の5つの要素からなる正確なキャラクター公式を再現します。
[名前 + 年齢/性別] + [髪型と色] + [顔の特徴] + [正確な衣装と色] - 例:
「マヤ、26歳の女性考古学者、乱れた暗いカーリーヘアをポニーテールにまとめ、そばかすがあり、オリーブ色のリネンサファリシャツと真鍮のコンパスネックレスを着用」 - 「彼女は~のように見える」「その女性は」といった曖昧な表現で代用してはいけません。
- キャラクターが登場するすべてのシーンで、以下の5つの要素からなる正確なキャラクター公式を再現します。
-
世界観&照明アンカー:
- すべてのシーンプロンプトの先頭に付加する共通の環境設定を定義します。
[設定] + [主光源と色温度] + [影のスタイル] + [雰囲気] - 例:
「地下の古代エジプト砂岩の墓、暖かい琥珀色のたいまつの灯りが深くちらつく影を落とし、浮遊する金色の塵、暗いコバルト色の背景」
- すべてのシーンプロンプトの先頭に付加する共通の環境設定を定義します。
-
視覚参照連鎖(
ImagePathsパラメータ) 🔗:- Antigravity の
generate_imageツールは、ImagePaths(以前の画像を視覚的条件付け参照として渡すこと)をネイティブサポートしています。 - ワークフロー:
- シーン1を生成します(マスターキャラクターと照明を確定)。
scene_1.jpgを保存します。- シーン2、3、4... では、
generate_imageにImagePaths: ["<path_to_scene_1.jpg>"]を渡します。 - これにより、シーン1の視覚的な潜在特徴がImagen 3に直接供給され、後続のすべてのシーンで顔の形状、衣服の色、環境のトーンが固定されます!
- Antigravity の
2. 事前検証とユーザー承認 🛑
重要な要件(トークンの無駄遣いゼロ):
generate_image 呼び出しを実行する前に、以下を必ず行うこと:
- 事前ストーリーボードバリデータの実行:
.\backend\venv\Scripts\python.exe backend\scripts\storyboard_validator.py --json "path/to/script.json"- ブロッキングエラーが0であること(例: 禁止テキストトークンがない、有効な9:16信号がある、60秒のShorts上限内であること)。
- 検証済みのストーリーボードとアートスタイルを検証統計情報とともにユーザーに提示します。
- 明示的なユーザー承認を求めます:
「ストーリーボードはすべての事前安全性チェックを通過しました(エラー0件、推定長さ〜X秒)。これらの [N] 枚の9:16画像の生成を続行しますか?それとも、先にシーンやスタイルパラメータを調整しますか?」
- ユーザーから明示的な確認が得られるまで、画像を生成してはいけません。
3. Antigravity generate_image による画像生成
ストーリーボードの各シーンについて(ユーザー承認後):
-
生成前の重複/キャッシュチェック 🛑:
- 出力先フォルダ(
backend/output/<job_id>/)にscene_{X}.jpgまたはscene_{X}.pngが既に存在し、有効(10 KB超)かどうかを確認します。 - 既に存在する場合は、ユーザーが明示的にそのシーンの再生成/リロールを要求しない限り、再生成をスキップし、トークンの無駄を防ぎます。
- 出力先フォルダ(
-
最終プロンプトの合成(明確なカメラフレーミングの確保):
[世界観アンカー] + [キャラクターアンカー] + [シーンのアクションと明確なカメラアングル] + [グローバルアートスタイルテンプレート] + [9:16縦型構図]- 前のシーンと視覚的に同一の静止画が生成されるのを避けるため、カメラショット(例: ワイド vs マクロ vs リアクション)が異なるようにします。
-
ツールの呼び出し:
generate_imageを以下のパラメータで呼び出します:AspectRatio:"9:16"ImageName:scene_1,scene_2,scene_3など(シーンごとに厳密に一意)。Prompt: 合成されたプロンプト。ImagePaths: シーン 2..N では、視覚的条件付けのために["<path_to_scene_1.jpg>"]を渡します。
-
バッチ生成: シーンを順次、またはシーンのグループ単位(ショート動画あたり最大20シーン)で生成します。
4. YTShortsパイプラインへのアセット展開
Antigravity によって画像が生成されたら:
-
Antigravity は生成された画像を会話アーティファクトディレクトリに保存します:
C:\Users\<user>\.gemini\antigravity-ide\brain\<conversation-id>\*.png -
画像を YTShorts の出力/ジョブディレクトリにコピーまたはリンクします:
d:\WorkSpace\YTShorts\backend\output\<job_id>\バックエンドに必要な標準的な命名規則:scene_1.pngscene_2.pngscene_3.png- ...
-
ストーリーボード JSON とペアリング:
script.jsonを同じディレクトリに保存します:d:\WorkSpace\YTShorts\backend\output\<job_id>\script.json
5. 動画レンダリングのトリガー 🚀
画像と script.json が backend/output/<job_id>/ にステージングされたら、スタンドアロンアセンブリツールを実行します:
.\backend\venv\Scripts\python.exe backend\scripts\assemble_short.py --job_dir "backend/output/<job_id>" --voice in_female --caption_style tiktok --music lofi --resolution 1080p --transition dynamic
この単一コマンドは自動的に以下を実行します:
- 高品質 TTS ナレーション(Edge-TTS / KittenTTS)を合成。
- Whisper を介して、単語レベルの同期された ASS 字幕を生成。
- 光学トランジション(
xfade)、Ken Burns パン/ズームモーション、オーディオダッキング付きの背景音楽、字幕の焼き込みをすべて一度に行い、最終的な 1080p/4K.mp4ビデオをレンダリング!
6. チャンネルブランディングとコミュニティアセット生成 🎨📊
9:16 縦型ストーリーシーンに加えて、ビジュアルディレクターは Antigravity のネイティブ generate_image ツールを使用してマーケティングアセットも生成します:
-
コミュニティタブ画像投票(1:1 スクエア):
- キャラクターを 1024x1024 のスクエアカードに生成するか、中央クロップします。
- カードを
backend/output/community_poll_assets/にステージングします(例:poll_1_character.jpg)。 - 画像投票は、新しいチャンネルでのリーチを標準のテキスト投稿よりも 3~5 倍向上させます。
-
チャンネルアバター マスコット(1:1 スクエア):
- 表現力豊かでつややかな目を持ち、輝くストーリーブックを抱えた、中央配置の 1024x1024 3D ピクサー風キャラクターポートレートを生成します。
backend/output/channel_branding/channel_avatar_1024x1024.jpgに保存します。
-
パノラマチャンネルバナー(16:9 ランドスケープ):
- チャンネルの繰り返し登場する世界の、16:9 パノラマシネマティック風景を生成します。
- Lanczos フィルタで 2560x1440 にアップスケールします。
backend/output/channel_branding/channel_banner_2560x1440.jpgに保存します。
-
ゼロ外部API義務:
- 常に Antigravity のネイティブ
generate_imageツールを優先します。未検証の無料外部画像 API に決してフォールバックしてはいけません。
- 常に Antigravity のネイティブ