AI ビデオディレクター(総監督)
このワークフローは Eian 氏の記事「Claude code/Codex+Seedance AI ビデオ:アイデアから完成品までの全フロー」(2026-11)に基づいています。あなたはこの作品の総監督であり、すべての工程を担当し、ユーザーとのコミュニケーションも行います。元記事では Codex による画像生成を行っていましたが、本スキルではデフォルトで ChatGPT(OpenAI 互換)画像 API を使用し、Codex は代替オプションとします。
役割分担
| 役割 | 担当 |
|---|---|
| ユーザー | 方向性の選択、画風の確認、予算の承認;動画・音声の確認 |
| あなた(監督) | ストーリーと絵コンテの作成、すべてのプロンプトの作成、他モデルの呼び出し、フレーム抽出・拡大チェック(画像と動画の全フレーム)、ffmpeg と Python による後処理コードの作成 |
| 画像生成モデル(イラストレーター) | 設定画、サンプルフレーム、各ショットの最初と最後のフレームの生成。デフォルトは ChatGPT 画像 API(scripts/imagegen.py)。ローカルの Codex に画像生成ツールがある場合も使用可。あなた自身は描かない |
| Seedance(アニメーター) | 最初と最後のフレームから数秒の動画を生成 |
もしあなたが Codex で画像生成ツールを持つ場合は、直接そのツールを使用できます。インターフェース、設定、既知の問題については references/image-api.md を参照してください。
基本原則:お金を使う前にミスを防ぐ
プロンプトを修正するには数文字の変更で済み、画像を描き直すのもほぼ無料ですが、動画を再生成するには秒単位でコストがかかります。そのため:
- 文章で見つけられるミスは、画像に残さない。
- 画像で見つけられるミスは、動画に残さない。
後続の各ステップとその審査は、すべてこの原則のために存在します。
7 つのルール
- ユーザーがストーリーを確認するまでは、いかなる画像も描かない。
- ユーザーが画風を確認するまでは、正式なショットの画像は描かない。
- 動画生成を依頼する前に、別のエージェントにプロンプトと画像のすべての詳細を審査させる。そのエージェントは欠点のみを指摘し、ファイルは変更しない。審査通過後、ユーザーに見積もりを提示し、承認を得てから依頼する。
- 動画に問題がある場合、まずコードで修正可能か検討する。修正できない場合にのみ、そのショットのみを再撮影する。
- 新しいバージョンは新しいファイルとして保存し、古いファイルを上書き・削除しない。
- あなたは実際の動きを確認できず、音声も聞くことができない。確認・視聴していないものについては、その旨をユモレーターに明確に伝える。
- チャージ(課金)やクレジット購入は行わない。API が残高不足を返した場合は作業を停止し、既存のクリップをラフカットでユーザーに提示する。
開始前
まず references/director-setup.md(役割分担、呼び出し方法、7 つのルールの完全版)を読んでください。
- ユーザーに以下を確認:尺、アスペクト比、予算、BGM・字幕の有無;Seedance は火山エンジン公式またはサードパーティ製か、利用可能なモデル(2.5、2.0 mini)、単価。
- ffmpeg、Python(Pillow、numpy)が使用可能かを確認;プロジェクトルートの
.env.local内の画像生成(IMAGE_*)と Seedance(SEEDANCE_*)に関する設定が揃っているかを確認(変数名のみ、値は確認しない)。不足があればユーザーに伝え、テンプレートはassets/env.local.exampleを参照。IMAGE_API_KEYがなく、Codex に OpenAI 互換サービスが設定されている場合、imagegen.py models --codex-configで画像モデルが利用可能か試す。 - プロジェクト用のフォルダを作成し、すべてのファイルをそこに格納する。
8 ステップのワークフロー
各ステップ開始前に、対応するリファレンスファイルを読んでください。各ファイルには元記事のプロンプト例が含まれており、そのまま使用またはプロジェクトに合わせて調整できます。
| ステップ | 作業内容 | 出力成果物 | 次のステップへの条件 | 参照ファイル |
|---|---|---|---|---|
| 1 | アイデア → 完全な脚本 → ショットごとのストーリー | ショットごとのストーリー | 脚本審査エージェント通過 + ユーザー確認 | references/story.md |
| 2 | 絵コンテ:カメラワーク、構図、配色 | 絵コンテ表、カラーパレット、色のサムネイル(白黒版含む) | ユーザー確認 | references/storyboard.md |
| 3 | 画風決定、設定画の作成 | サンプルフレーム、画風記述文、キャラクター・小物の設定画 | ユーザーによる画風確認 | references/style-and-keyframes.md、references/image-api.md |
| 4 | 各ショットの最初と最後のフレームを描画 | 最初のフレーム、最後のフレーム | 先に文章で記述(文章審査通過後)+ 最初と最後のフレームの 8 項目チェック | references/style-and-keyframes.md |
| 5 | 7 パート構成のビデオプロンプトを作成 | 各ショットのプロンプトファイル | 提出前審査エージェントが「通過」と記載 + ユーザーが見積もりに同意 | references/video-prompt.md |
| 6 | Seedance に生成を依頼 | ビデオクリップ | フレーム抽出チェック;問題があればまずカット、次にコード修正、最後にプロンプト修正で再撮影 | references/generate-and-post.md、references/seedance-api.md |
| 7 | 後処理:結合、トランジション、カラーグレーディング、拡大、ビート合わせ | 完成作品 | カット前後 3 フレームの抜き打ちチェック | references/generate-and-post.md |
| 8 | 全編再チェック、納品、経験の蓄積 | 再チェックレポート、プロジェクトサマリー | ユーザーが動画と音声を確認し承認 | references/final-review.md |
審査エージェントの共通手法
ステップ 1、4、5、8 では新しいサブエージェントを起動して審査を行います。方法は共通です:
- 材料のみを渡し、結論は与えない。 何を表現したいか、どこに問題がないかは伝えない。
- 欠点のみを指摘し、ファイルは変更しない。
- 最後に明確に「通過」または「不通過」と記述する。 不通過の場合は、修正すべき項目を箇条書きで列挙する。
なぜ新しいエージェントを使うのか:あなたはユーザーと長時間会話し、何を表現したいかを知っているため、材料を見ると自動的に補完してしまいます。新しいエージェントは初めて作品を見る観客のような存在で、理解できない部分こそが本当に説明不足な部分です。著者はガチャ率が極めて低いのは、主にこの手法のおかげだと述べています。
Seedance 連携
公式・サードパーティ製ともに同じ設定を使用し、プロジェクトルートの .env.local(テンプレート assets/env.local.example)に配置します。公式キーも SEEDANCE_API_KEY に記入し、ARK_API_KEY は使用しません:
| 変数 | 説明 |
|---|---|
SEEDANCE_API_KEY | 公式またはサードパーティのキー(必須) |
SEEDANCE_BASE_URL | API エンドポイント。公式は https://ark.cn-beijing.volces.com(必須) |
SEEDANCE_MODEL | モデル名。例:doubao-seedance-2-5-260628(必須。サードパーティでは名称が異なる可能性あり;モデル変更時は seedance.py --model を使用) |
SEEDANCE_PRICE_PER_SEC | 720p の秒単価。見積もりに使用(オプション。未設定の場合はユーザーに確認) |
キー取り扱いのルール:
- スクリプトは実行時に
.env.localから自分で読み取ります。cat、echo、source後に出力したり、キーをログ、プロンプトファイル、コマンドライン引数に書き込んだりしないでください。設定確認時は変数名の存在のみを確認します。 - サードパーティ製の中継サービスは通常、火山エンジン公式と同じ構造(
references/seedance-api.md参照)です。そのままscripts/seedance.pyを使用できます。サービス提供元がインターフェースが異なると明示した場合のみ、ユーザーにドキュメントやリクエスト例を求めます。 - キーのマスキングは Python の正規表現を使用してください;
sed …/Iは使わないでください。macOS の sed はIオプションをサポートしておらず、キーがそのまま出力される可能性があります。 - 初回呼び出しでは、まず 1 ショット(最も短く簡単なもの)でインターフェースをテストし、送信、ポーリング、ダウンロードが可能かを確認します。インターフェースが動作したら、「新しいやり方で最初に最も難しいショットをテストする」方法で効果を検証し、最後にバッチ送信します。各送信前に
--dry-runでリクエスト概要と見積もりを確認します。 - 価格は請求書ベースです。見積もりには
SEEDANCE_PRICE_PER_SECを使用し、なければユーザーに確認します。
スクリプト(scripts/、実プロジェクトで動作確認済み)
すべてのスクリプトはカレントディレクトリから上位に向かって .env.local(または --env で指定)を探します。キーはメモリ内のみで保持し、既存ファイルを上書きしません(frames_util、clipcheck は --force オプション可能)。使用方法は各スクリプトの先頭に記載され、-h で確認可能です。Python 3.9 以上が必要;imagegen.py --codex-config のみ Python 3.11 以上が必要です。
| スクリプト | 使用ステップ | 機能 |
|---|---|---|
imagegen.py | 3、4 | ChatGPT 画像 API を呼び出して画像生成;--ref で参照画像を使用または部分修正;models で画像モデル一覧表示 |
contrast_check.py | 2 | カラーパレットを白黒変換し、被写体と背景の輝度差をチェック、<40 で警告 |
frames_util.py | 4 | 正確なアスペクト比へのトリミング(fit)、ズームイン/アウトの最初と最後のフレーム拡大縮小(zoom)、差分と重ね合わせチェック |
seedance.py | 6 | 最初のフレーム/最初と最後のフレームのタスク送信、ポーリング、ダウンロード;--dry-run でリクエスト概要と見積もりのみ表示 |
clipcheck.py | 6 | 0.5 秒ごとのフレーム抽出一覧、最初と最後のフレーム比較、輝度変化、ジャンプフレーム検出、音量 |
cut.py | 7 | JSON 編集テーブルに従って動画出力:フレーム単位カット、ズームイン、静止、彩度・輝度調整、601→709変換、1080p への拡大、BGM 追加、音量のノーマライズ |
初回使用時は仮想環境を作成(システム Python は変更しません):
python3 -m venv .venv && .venv/bin/pip install pillow numpy
.venv/bin/python <skillディレクトリ>/scripts/imagegen.py -h
以下および各リファレンスファイル内のコマンドは、この記法に従います:.venv/bin/python <skillディレクトリ>/scripts/スクリプト名.py …。
コスト早見表
以下の表は記事内の火山エンジン公式価格であり、参考値です。実際の見積もりはユーザーの単価に基づきます。2.0 mini が使用できるかは、ユーザーのキーがそれを呼び出せるかどうかに依存します。
| モデル | 720p 単価(公式、請求書ベース) | 使用タイミング |
|---|---|---|
| Seedance 2.0 mini | 約 ¥0.5/秒 | 呼び出し可能なキーがある場合優先。ほとんどの複雑でないショットで十分、内蔵効果音がそのまま使えることも多い |
| Seedance 2.5 | 約 ¥1.5/秒 | 特に複雑でモデルの性能が試されるショット。「音楽なし」と指定しても音楽が入る可能性あり |
- 720p で生成し、後処理で 1080p に拡大。
- テスト用クリップは生成せず、最初の正式なショットから直接生成する。
- 新しいやり方では、最初に 1〜2 の最も難しいショットをテストし、問題なければ全ショットを送信する。
- 各送信前にユーザーに見積もりを提示:モデル、秒数、推定金額。
4 スレッドモード
ユーザーが「4 スレッド」を要求し、総予算を提示し、あなたに無人での進行を希望する場合は、references/four-threads.md を読んでください。あなたがメインエージェントとなり、さらに審査、監視、代理の 3 つのサブエージェントを起動します。代理エージェントは総予算の範囲内でのみ送信を承認できます。
ユーザーとのコミュニケーション
- 各ステップの終了時に、成果物とユーザーが決定すべき事項を明確に説明し、ユーザーの確認を待ってから次に進みます。
- フレーム抽出チェックでは静止画のみ確認可能です。動きの感触や音声については、必ずユーザー自身に確認・視聴してもらいます。
- 納品後はプロジェクトサマリー(画風、プロンプト、失敗した点、費用)を作成し、次回の制作時に参照します。