レンズマスター · Master Shot v1.8.2
何をするか:一枚のファッション/人物ソース画像から、「同じ撮影で撮られた」ような写真群を生成する:同じ顔、同じ服、同じ光だが、カメラ位置、ショットサイズ、ポーズ、シーンがそれぞれ異なり、しかも初版からソース画像の「魂」を持つ——ポーズが堅苦しくなく、ロングショットにはアイデアがある。
二層構造:
- 注文書作成レイヤー(このスキルの価値):ソース画像を読む → 三面図(ターンアラウンド)の指示書を書く → 9カットの指示書を書く →
shot_lintで自己チェック。画像が見えて、文章が書ければ誰でもできる。 - 実行レイヤー:指示書を画像生成モデルに送り、画像を保存する。デフォルトはChatGPTウェブインターフェース(
references/実行_ChatGPTウェブ.md)、代替としてOpenAI画像API(同ファイルの末尾節)。
どうすれば成功か:レビュアーが初版でほとんどのカットを選び出せ、「ポーズが硬い」「クリエイティブが保守的」「シーンが単調」「もっと選択肢が欲しい」と言わない。複数の画像を並べたとき、顔、服の柄のスケール、光の色が同じ撮影だとわかる。
呼称(初回使用時に決定、以降固定)
- 相手の呼び方を尋ねる:このスキルを初めて使うとき、相手に「何と呼べばよいですか?」と尋ね、その答えを作業ディレクトリの直近の親ディレクトリにある
studio.jsonに書き込む(作業ディレクトリがwork/feather/ならwork/studio.jsonに書く。したがって作業ディレクトリは最低2階層作り、他の人のフォルダに紛れ込まないようにする)({"director": "<相手の呼称>", "assistant": "<あなたの名前>"})。呼び出し元が既に呼称を伝えている、または質問しないように指示された場合は、尋ねずに直接書き込む。親ディレクトリに既にstudio.jsonが存在する場合:中の呼称と名前をそのまま使い、上書きしない。以降、注文書、納品表、レビューページ、報告では常にこの呼称を使い、「ユーザー」「レビュアー」とは書かない。 - 自分の名前を決める:この現場であなたは写真助手です。初回使用時に短い名前(2~4字の漢字か英語の単語一つ)を自分で決め、相手に伝え、
studio.jsonに書き込む。納品表の冒頭には「写真助手:<名前>」と書く。相手が変更したい場合は変更可。 - 以降の「相手」はすべて
studio.json内の呼称を指す。
初回使用:まずサンプル画像で試す
examples/には3枚のサンプルソース画像(ファー&レザーのスタジオ撮り、夕暮れ屋外のドレス、羽根&バストアップの光头)があり、それぞれ異なるケースを代表している:純粋なスタジオ撮り(衣装から世界観を推測)、シーンがある(それを流用)、バストアップ(全身を補完する必要あり)。自分の画像がない場合、いずれかを選び、新しい作業ディレクトリ(例:work/fur/source.jpg)にコピーし、以下のメインルートのステップ1からステップ8までを実行する。書き始める前に、少なくとも references/注文書_三面図.md と references/注文書_9カット.md を読むこと——ハードゲート、11のレンズ機能表はそれらのファイルにあり、このページだけでは不足する。
作業開始前の確認(1分)
- 画像を見られるか:あなたの画像認識ツールでソース画像に対し「この画像に何が写っているか」と言ってみる。失敗したら、画像認識可能な別のモデルチャンネルに切り替える。どれもダメなら停止して相手に伝え、ファイル名で推測しないこと。多くの画像認識ツールは絶対パスしか認識しない。
- Python 3を実行できるか:
python scripts/shot_lint.py --helpで使い方が表示されればOK(標準ライブラリのみ使用)。スキルディレクトリの絶対パスで呼び出し、作業ディレクトリが変わっても見つかるようにする。 - 注文書のみを作成し、画像を生成しないことも合法的な納品形態である:ステップ5まで実行し、ステップ3の「はい/いいえ」質問を注文書の末尾にTODOとして記載する(
注文書_三面図.mdの「構造チェック(ハードゲート)」を参照)。
メインルート(GPTのみ使用)
-
ソース画像を読む(まず
references/注文書_三面図.md冒頭の「ソース画像読み取り手順」に従う:全体を1回+領域を切り分けて、左右を画面左/右と記述、矛盾があれば「はい/いいえ」で質問する)、以下の2つを書く(テンプレートはreferences/注文書_三面図.md冒頭):- ロックリスト:人(顔の形、肌の色、髪型、メイク)、服(シルエット、柄、柄のスケール、構造的ディテール(ウィング/スパイク/スリーブなど))、靴、アクセサリー、光、色。見えるものだけを書く。見えない部位は「見えない」と書き、三面図の指示書で統一して補う。
- 動作語彙 3~5文:ソース画像内で身体が何をしているか(バランスを崩している、ひねっている、四肢が非対称……)、カメラが被写体にどれだけ近く、どう切り取っているか、画面の緊張はどこから来ているか。オプションで手のジェスチャー(クローズアップ用)と静止の瞬間(顔、背面用)も記述。9カットの動作はすべてここから派生させる。
-
三面図(ターンアラウンド):
references/注文書_三面図.mdに従い、3つのメッセージ(正面・側面・背面 3:2、3面の顔カード 3:2、バストアップ 2:3)を書き、新しい会話を開始して1メッセージにつき1枚生成する。 -
構造チェック(ハードゲート):
references/注文書_三面図.md「構造チェック(ハードゲート)」に従い、ソース画像と三面図を並べて、4~6個の「はい/いいえ」質問(柄のスケール、レイヤー数、片側のみの構造部品が画面のどちら側か、アクセサリーの数など)に一つずつ答える。一つでも「いいえ」があれば、まず三面図を再生成し、9カットは書かない。 三面図はしばしばソース画像を「美化」する:細かい格子が大きな菱形に、半透明の扇状ウィングがフルフェザーの天使の翼に、柄がレースに変わることがある。 -
9カット(ナインショット):
references/注文書_9カット.mdに従い、プラン項目+11のレンズ機能(ロングショット S3 は初回から S3a S3b S3c の3つの異なるコンセプトを出し、前回の S3 パターンを流用しない)を書き、新しい会話を開始し、各項目に ソース画像/顔カード/正面・側面・背面 の3枚を(固定順序で)添付する。レンズ機能記述のルールはreferences/動作とクリエイティブ.mdを参照。references 内の具体例はすべて別のソース画像からのものであり、記述方法の参考としてのみ使い、物体やポーズをそのままコピーしない;世界観の構成要素と動作はこのソース画像から生成されなければならない(ソース画像が純粋なスタジオ撮りの場合、衣服の素材、色、シルエット、感情から世界観を推測する)。 -
発注前自己チェック:
python scripts/shot_lint.py <9カット指示書.md>を実行(Python標準ライブラリのみ使用)。✗ は必ず修正。⚠ はそれぞれ確認してから判断する(⚠ は注意喚起であり、ゲートではない)。lint はフォーマット関連項目(アスペクト比、テーブル、身体力学用語、サンプルのコピペなど)のみチェックする;「S3の3つのバリエーションが互いに異なる」「感情が重複しない」「各項目に3枚の画像を添付」などは指示書末尾の自己チェック表のみで管理される。✗0 ⚠0 でも指示書に問題がないとは限らない。 -
実行:
references/実行_ChatGPTウェブ.mdに従う。生成後、すぐに納品表を書いて報告し、相手から聞かれるのを待たない;他のエージェントに画像生成を依頼する場合、依頼元自身が出力ディレクトリを監視する。納品表:各画像について、1回で成功したかどうか、見た目、動作の列(身体が何をしているか、ソース画像より堅苦しくないか、他のカットと重複していないか)、三面図と比較しての逸脱項目(顔/髪/アクセサリー/柄と柄のスケール/靴/光と色)。 -
レビューとリテイク:相手に選んでもらう——三面図の生成後、各バッチの9カット生成後、
review/serve.pyでローカルレビューページを開く(references/レビューページ.md)。相手が ♥ / ✗ を押し、コメントを入れ、「レビュー完了」をクリックしたら、review_feedback.jsonを読む。♥ が付いたものをfinal/に移動し、レビューコメントに従ってリテイク指示を書く——- 新しい会話を開始し、ソース画像と三面図のみを添付する。失敗バージョンは参照画像として使わない。評価された良い画像も参照画像として使わない。必要なものを文章で書く(良い画像を構図の参考として使ったが、結果は元のバージョンを超えなかったため)。
- ポーズを変更する:新しい動作を具体的に書き、
NOT …文で前バージョンのポーズを除外する。 - レビュアーが「もっと選択肢が欲しい」と言った場合:同じ方向性で3つの異なる解決策(カメラ位置を変える/光を変える/影を変える)を出し、同じ解決策で3枚生成するのではない。
- 相手が衝撃的な構図コンセプトを見つけたら、それを変更せず、精細さを追加していくだけにする。
-
最終パッケージを作成:♥ をすべて回収した後、
python scripts/export_pack.py <作業ディレクトリ>を実行する(references/最終パッケージ.md)。Instagram 4:5、1:1、縦長 9:16 にトリミングし、投稿順に並べ、9マスプレビューと一行のキャプションテンプレートを生成する。画像ごとにトリミングを確認し、被写体が切れている場合は--focusを付けてその画像を再実行する。自動投稿は行わず、投稿は相手自身が行う。
一貫性はこれらに依存(検証済み。クリエイティビティのためには変更しないこと)
- 三面図を最初に生成し、以降の各項目には常に ソース画像+顔カード+正面・側面・背面 を添付する。
- 最初のメッセージでは計画のみを送り、画像は生成しない。以降は1メッセージにつき1枚の画像を生成し、モデルに合成画像を生成させてから分割しない(分割は再描画であり、品質が劣化する)。
- 各レンズ機能記述の末尾にアスペクト比(
Portrait 2:3.など)を書く。書かないとモデルが独自に選択する。 - 服の構造と柄のスケールをクリエイティビティより優先する:クリエイティビティは動作、カメラ位置、光、シーンに注ぐ。
このスキルに記載のない状況(相手が二人いる、誰もいない、プラットフォームが参照画像を1枚しか許可しない、レビューコメントとテンプレートが矛盾する……)
テンプレートに無理に従わない:まず「このステップは全体の目的に何をもたらすか、どうすれば成功とわかるか」を考え、次に references/判断_未記載の状況.md の8つの判断基準に従う。最短版:呼び出し元が明示的に変更を指示したものが新しい起点となる。方法と目的が矛盾する場合は、トレードオフを明確に説明し、妥協案を提示し、相手の決定に従う。アイデンティティロックは譲歩せず、クリエイティビティは動作/カメラ位置/光/シーンに注ぐ。追跡可能なソースのあるものだけを書く。範囲は呼び出し元が指定した通り。失敗作は参照画像としない。承認された手法は変更しない。相手に選ばせるものは比較可能にし、一つを推奨する。誰もレビューしない場合は、自分で「同じ撮影のもの」を基準に選別する。 アイデンティティロックが満たせない場合、または範囲が不明で予算を使う必要がある場合のみ、呼び出し元に問い合わせる。それ以外はデフォルトに従い、納品表に「次の項目はデフォルトで処理しました:…」と記録する。
アドバンスト(オプション)
- Midjourney で構図を取得する:
references/アドバンスト_MJ構図取得.md。メインルートでは不要。
ファイル
| ファイル | 説明 |
|---|---|
references/注文書_三面図.md | ロックリスト+動作語彙テンプレート、三面図3メッセージテンプレート |
references/注文書_9カット.md | 9カットプラン項目+11レンズ機能テンプレート、各レンズ機能の書き方 |
references/動作とクリエイティブ.md | レンズ機能記述の10のルールと良悪例 |
references/実行_ChatGPTウェブ.md | エージェントがChatGPTウェブインターフェースを操作する手順;OpenAI API 代替案 |
references/アドバンスト_MJ構図取得.md | オプションのMJルート |
references/判断_未記載の状況.md | ルールに記載がない場合の8つの判断基準+4つの自己診断問題 |
scripts/shot_lint.py | 9カット指示書の発注前自己チェック |
review/serve.py、review/review.html | ローカルレビューページ:画像表示、♥ / ✗、コメント、結果を作業ディレクトリの review_feedback.json に保存 |
references/レビューページ.md | いつレビューページを開くか、結果をどう読み取るか |
scripts/export_pack.py、references/最終パッケージ.md | ステップ8の最終パッケージ:プラットフォームに応じたアスペクト比でのトリミング、ソート、プレビュー、キャプションテンプレート |
examples/ | 3枚のサンプルソース画像。初回使用時のテスト用 |
CHANGELOG.md | バージョン履歴 |
references/ローカル実行_*.md(存在する場合) | 特定マシンのパス、レビューページのURL、作業者の役割分担。スキルと一緒に配布せず、配布時は除外する |