白黒ラフ絵コンテ生成
ゴール
入力画像1枚を、後段の動画制作でカメラ、構図、位置関係を制御するための白黒構造ラフへ変換する。プロンプト提示だけで終わらず、Codexの組み込みImageGenで1枚生成し、入力画像と比較して目視確認する。
完成イラストや人物の清書ではなく、頭部楕円、顔の十字線、体軸、肩・腕・手、小物、背景の構造線、修正線が残る制作メモとして仕上げる。
スコープ
- 必須入力はローカル画像1枚とする。画像がなければ生成せず、入力画像を依頼する。
- 画像の視覚情報を正本とする。台本、過去のプロンプト、ファイル名から構図を推測しない。
$imagegenの既定の組み込み編集フローを使う。- 複数画像を依頼された場合も、1画像につき1回の独立した手順とImageGen呼び出しで処理する。
実行前に読むもの
$imagegenを読み、組み込みツールの編集フローと保存方針に従う。- imagegen-coreを読み、採用画像、候補、プロンプト、request、reviewの保存契約に従う。
- 画像生成直前にHybrid v1プロンプトを最後まで読み、固定契約を削らず変数だけを埋める。
入出力
入力
SOURCE_IMAGE: 必須。ローカル画像の絶対パス。OUTPUT_TASK: 任意。省略時は{source-stem}-storyboard-rough。
補足テキストは構図の根拠にしない。ユーザーが追加指示を与えた場合も、入力画像に存在する要素の省略やラフさの調整にだけ使い、新しい人物、部位、小物、背景要素を追加しない。
出力
imagegen-coreの規約で、採用画像をoutput/<task>/<model>.<ext>へ保存する。このスキルで組み込みCodex ImageGenの実行profileしか識別できない場合は、安定IDとしてimage-generation-v1を使い、request.jsonにもexecution_profile: "image-generation-v1"を記録する。生成結果が実モデルIDを返す場合は、そのIDを優先する。
Workflow
1. 入力を直接観察する
view_imageでSOURCE_IMAGEを開く。生成前に必ず画像を会話コンテキストへ読み込み、次をその場で記録する。
- ショットサイズ、カメラ角度、縦横の向き
- 人物数、顔数、手数、その他に見えている身体部位数
- 被写体の大きさ、crop、体軸、顔・胴・肩・腕・手の位置と向き
- 頭、手、肩など主要anchorの画面内相対位置と大きさ、および身体が画面端やoverlayで切れる位置
- 入力に実在する主要な小物の位置
- 背景の大きな面、境界、什器の位置
- 服と髪の大きな外形、および存在するアクセサリー
- 焼き込みテロップ、ロゴ、数字、アイコン、矢印など、実景ではない編集overlayの範囲
服の素材、襟、袖口、しわ、髪の毛流れを描画指示として詳述しない。服・髪・アクセサリーの記録は、存在しない装飾を増やさないためのguardに限定する。
2. 寸法と比率を決める
sips -g pixelWidth -g pixelHeight "$SOURCE_IMAGE"で実寸を確認する。プロンプトのASPECT_RATIOは、入力比率に最も近い次の値から機械的に選ぶ。
1:1, 2:3, 3:2, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 21:9
向きや比率をファイル名や既定値から決めない。組み込みImageGenへ存在しないsize引数を渡さず、比率はプロンプト内の構図契約として指定する。
3. 編集overlayだけを局所ブラーする
入力画像に焼き込みテロップ、価格バナー、字幕、ロゴ、数字、アイコン、矢印などがある場合だけ、元画像を変更せず、一時コピーの該当矩形へ強いガウシアンブラーをかける。
ROUGH_TMP_DIR="$(mktemp -d)"
MASKED_REFERENCE="$ROUGH_TMP_DIR/masked-reference.png"
magick "$SOURCE_IMAGE" \
-region "{WIDTH}x{HEIGHT}+{X}+{Y}" -blur 0x30 +region \
"$MASKED_REFERENCE"
- 複数領域は
-region ... -blur ... +regionを領域ごとに繰り返す。 - 白塗り、黒塗り、全面ブラーを使わない。
- overlayの外接矩形だけをブラーし、その横や間に見えている顔、手、足、小物を巻き込まない。
view_imageで一時コピーを開き、文字・図形が判読不能で、実在する被写体が保たれていることを確認する。- 各ブラー領域について、周囲から直接分かる最も単純な面の続きだけを
MASKED_REGION_DESCRIPTIONSへ書く。隠れた身体を完成させず、新しい人物、手、部位、小物、什器を想像で足さない。 - overlayがなければこのStepを飛ばし、
SOURCE_IMAGEをそのまま参照画像に使う。
4. Hybrid v1プロンプトを組み立てる
Hybrid v1プロンプトの変数を埋める。OBSERVED_DESCRIPTIONは構図と大きな配置、FRAMING_LOCKは主要anchorの相対位置・大きさ・見切れ位置、VISIBLE_COUNTSは人物・顔・手・身体部位の数、CLOTHING_ACCESSORY_GUARDは存在する服・髪・アクセサリーの外形だけにする。
個別の失敗を予防しようとして、服飾の清書指示や長い物語説明を追加しない。写真どおりに描く、参照画像に忠実な服装、髪型を精密に再現に相当する文言を入れない。
5. 組み込みImageGenで1枚生成する
入力画像から構図を保った画風変換なので、$imagegenのeditとして扱う。
- overlayがなければ
SOURCE_IMAGE、あれば確認済みMASKED_REFERENCEを参照画像として1枚だけ渡す。 - 1候補につき組み込みImageGenを1回呼ぶ。
- 生成後、採用候補をworkspaceへコピーし、
imagegen-coreに従ってメタデータを保存する。
6. 入力画像と生成結果を目視比較する
view_imageで入力画像と生成結果を開き、次をすべて確認する。
- 完全な白黒線画で、色、陰影、塗り、網点がない。
- 文字、数字、ロゴ、透かし、矢印、集中線、装飾記号がない。
- 画面端まで構図を使い、内側のコマ枠、picture frame、matte、白余白、blank paddingがない。
- 頭部楕円、顔の十字線、体軸、肩・腕・手、背景の構造線、修正線が残っている。
- 清書人物画、服飾画、完成イラストではなく、全要素が同じ粗さの制作メモになっている。
- 元画像のショットサイズ、crop、主要anchorの相対位置と大きさ、人物配置、ポーズ軸、手、小物、背景の大きな面が保たれ、zoom outや見えていない身体の展開がない。
- 元画像にない人物、顔、手、身体部位、小物、アクセサリー、柄、什器が追加されていない。
- ブラー領域が白紙にならず、周囲から直接分かる最も単純な面の続きになっている。
不合格なら採用画像にせず、問題を1つに絞って修正生成する。指示を長くする前に固定Hybrid v1へ戻し、清書を誘発する周辺文言を削る。変更していない制約も再指定し、修正後に全項目を再確認する。
7. 保存して報告する
imagegen-coreに従い、採用画像、候補、prompt.txt、request.json、review.jsonを整理する。request.jsonには少なくとも入力画像、参照に使った画像、元寸法、比率、execution profile、出力先を記録する。review.jsonにはStep 6の各判定と、修正の有無を残す。
完了時は、採用画像の絶対パス、入力画像、選んだ比率、組み込みImageGenを使ったこと、目視QA結果を簡潔に報告する。