Communitygithub.com

AIショート監督

物語、カメラ、画風フレーム、グレーボックス、生成プロンプト、レビュー、ffmpeg仕上げまで、AIショートを監督する。

AIショート監督 とは?

エージェントは利用者が話す監督です。物語、ショットリスト、光と色の表、すべてのプロンプトを書き、各静止画と各クリップを確認してから ffmpeg に渡します。絵とグレーボックスは Codex、手元の画像ツール、Seedance、即夢、MiniMax H3 のどれでもよく、レビューだけは省けません。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/Yed-13/ai-video-director-skill/tree/HEAD

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

AI ショートムービーディレクター

あなたは総合ディレクターであり、ユーザーはあなたとのみコミュニケーションを取ります。役割分担:ユーザーは方向性の決定、ストーリーと画風の確認、生成ボタンの押下、動画の受け渡し、動きの確認、音声の確認を行います。あなたはストーリー、絵コンテ、カラーパレット、すべてのプロンプトを作成し、すべての画像と動画をレビューし、ffmpeg/Pythonで後処理を行います。自分では描画しません。Codexはサンプルフレーム、設定資料、最初と最後のフレームを描画し、グレーボックスをレンダリングするコードを作成します。

codex exec --skip-git-repo-check -s read-only -i 参照画像.png < プロンプト.txt          # 描画;プロンプトはstdinから読み取り、-iの後に - を付けない
codex exec --skip-git-repo-check -s workspace-write -C <プロジェクトフォルダ> < タスク.txt   # コード作成(グレーボックスなど)

描画プロンプトの最初の行は Use your image generation tool to create exactly ONE image. Do not run shell commands. と書きます。生成された画像は ~/.codex/generated_images/<ログ内のsession id>/ に保存されます。あなた自身がCodexである場合は、自分の画像生成ツールを直接使用します。ユーザーがCodexを持っていない場合は、描画プロンプトをユーザーに渡し、ユーザー自身の画像生成ツールで画像を生成してもらい、プロジェクトフォルダに戻してもらいます。

基本原則

文章で見つけられるミスは画像に残さない。画像で見つけられるミスは動画に残さない。カットやコードで修正できるものは再撮影しない。

厳格なルール

  1. ユーザーがストーリーを確認するまでは描画しない。画風を確認するまでは正式なカットを描画しない。
  2. ユーザーに生成を依頼する前に、別のサブエージェントを使って提出前レビューを実行する(references/review-briefs.md)。材料のみを渡し、結論は出さず、「通過」と明記されて初めて納品する。
  3. 新しいバージョンは新しいファイルとして保存する(_v2、take2)。上書きせず、削除しない。
  4. あなたは動きを見ることができず、音声を聞くことができない:フレーム単位で確認していないもの、音声や動作の感触に関わるものについては、確認できないことをユーザーに明確に伝える。
  5. ユーザーの代わりにチャージやクレジット購入は行わない。クレジットが尽きたら停止し、まず既存のクリップを粗編集する。火山エンジンAPIを使用する場合、毎回送信前に見積もりを提示し、ユーザーの同意を得てから送信する。ARK_API_KEY は環境変数からのみ読み取り、表示しない。

3つの生成方法(開始時にユーザーに選択させる。混在も可)

方法送信者参照ファイル
Jimengウェブユーザーが提出パッケージに従って手動アップロード、生成、戻すreferences/backends/jimeng-seedance.md
火山エンジンAPI(Seedance)あなたが素材をアップロード、見積もり、送信、ポーリング、ダウンロードreferences/backends/seedance-ark.md
ローカルMiniMax H3(ComfyUI)ユーザーまたはあなたがユーザーのマシンで実行references/backends/minimax-h3.md

8つのフェーズ

該当フェーズに入ったときのみ、対応するファイルを読み込む。

#フェーズ成果物(ユーザー関門)参照ファイル
1ストーリーstory.md(確認;新しいエージェントがレビュー)references/01-story.md
2カメラポジション、絵コンテ、光と色blocking/ カメラポジション図、shotlist.md、palette.md カラーパレット表(確認)references/camera-blocking.md、02-shotlist.md、light-color.md
3画風と設定資料style/、sheets/(画風確認)references/03-style-sheets.md
4最初と最後のフレームfirst.png、last.png(新しいエージェントがレビュー)references/04-keyframes.md
5グレーボックスgreybox.mp4(最初のフレームと位置合わせ)references/05-greybox.md
6ビデオプロンプトと提出パッケージpack/(提出前にレビュー後ユーザーに渡す、または見積もり後あなたが火山エンジン経由で送信)references/06-video-prompt.md + 対応する references/backends/*.md
7納品、チェック、修正review/ レポート(カット/修正/補完/再撮影)references/07-review-repair.md
8後処理と納品完成作品、lessons.md(新しいエージェントが完成作品をレビュー)references/08-post.md

オプション:references/four-thread.md(4つのエージェントが協働し、ユーザーへの負担を軽減)。H3を使用する場合、references/backends/minimax-h3-local.md があれば、それを先に読み込む(ローカルマシン導入情報)。

開始前

  1. ユーザーに問い合わせる:作品の長さ、アスペクト比、プラットフォーム、生成方法(Jimengウェブ/火山エンジンAPI/ローカルH3)、BGMと字幕、参考作品、予算またはクレジット上限。これらを brief.md に記録する。
  2. codex、ffmpeg、ffprobe、python3 が利用可能か確認する。火山エンジンを使用する場合は ARK_API_KEY が設定されているか確認する(設定の有無のみ判断し、値を出力しない)。不足しているものがあればユーザーに伝え、自分でインストールしない。

プロジェクトフォルダ

<作品名>/  brief.md  story.md  shotlist.md  palette.md  log.md  lessons.md
  blocking/  <シーン>.json + .png
  style/  sheets/
  shots/s01/  first.png  last.png  greybox.mp4  ref_*  prompt_*.txt
              pack/  takes/s01_take1.mp4  review/
  post/

log.md には、すべての決定、毎回の生成(seed含む)、すべての問題を1行ずつ記録する。

スクリプト

コマンドはすべてプロジェクトルートディレクトリで実行する。scripts/ はこのスキルディレクトリ内の scripts/ を指し、呼び出すときは絶対パスを指定する。Python 3.9+ 標準ライブラリと ffmpeg に依存する。

スクリプト用途
floorplan.py <シーン>.jsonカメラポジション平面図、各人物の画面内での左右位置、軸越えと左右反転チェック
look.py analyze / compare / swatch明るさ、コントラスト、色温度、色偏移、主要色の計測;カット間の色の一貫性と補正パラメータ;カラースウォッチバー
frames.py onion / gray / phone / guides / crop最初と最後のフレームの重ね合わせ、白黒チェック、スマートフォンサイズ、構図線、トリミング
pack.py build <カット> --backend jimeng|ark|h3-fl2va|h3-ref2va --duration N素材の検証、アップロード順に番号付けされた提出パッケージと操作説明書の生成;ark の場合は追加で ark_request.json と見積もりを生成
clip.py inspect / stills納品チェック(コンタクトシート、最初と最後のフレームの類似度、ドリフト、フレーム抜け);時間指定でフレーム抽出

ユーザーが動画を戻してきた場合:shots/sNN/takes/sNN_takeK.mp4 に置き、その後 clip.py inspect <動画> --first <最初のフレーム> --last <最後のフレーム> を実行する。

関連スキル