はじめに:なぜプロンプトを構造化すべきなのか
「可愛い女の子、綺麗な背景、高画質」といった単語を思いつくままに並べたプロンプトでは、AIの解釈がブレてしまい、1枚生成するたびに構図や画風が激しく変動します。
狙い通りのクオリティと構図を最小限の生成回数(歩留まり80%以上)で得るためには、プロンプトを体系的なブロック構造として記述するエンジニアリングアプローチが不可欠です。
1. プロンプトの5大基本ブロック構造
[1. 主題・被写体] -> [2. 衣装・ディテール] -> [3. 構図・カメラアングル] -> [4. 環境・照明] -> [5. スタイル・画質]
具体的な記述例(英語タグ構文)
(1girl, 20yo solo, detailed expressive eyes, gentle smile:1.1),
(modern tech wear, black oversized hoodie, cybernetic accessories:1.0),
(cowboy shot, three-quarter view, dynamic pose, looking at viewer:1.2),
(futuristic Tokyo night street, neon glowing bokeh, cinematic volumetric lighting, rainy reflections:1.1),
(masterpiece, best quality, 8k uhd, photorealistic, sharp focus, 35mm lens photography:1.2)
2. 破綻を防ぐ強力なネガティブプロンプト設計
ネガティブプロンプトは「出力したくない要素」を明示的に指定することで、特に手足や顔の破綻を物理的に防ぎます。
必須ネガティブプロンプト(万能テンプレート)
(worst quality, low quality, normal quality:1.4), (bad anatomy, bad hands, missing fingers, extra fingers, mutated hands:1.3), (deformed iris, deformed pupils, bad eyes:1.2), (blurry, out of focus, depth of field:1.1), (watermark, signature, text, username, logo:1.3), (bad proportions, gross proportions, malformed limbs:1.2), (cloned face:1.2)
3. JSONプロンプトによる自動化・バッチ生成
APIやスクリプトで大量生成する際は、プロンプトをJSONオブジェクトとして管理することで、パラメータの動的置換が容易になります。
{
"subject": "1girl, 20yo Japanese model, natural smile",
"attire": "white linen summer dress, straw hat",
"camera": "medium shot, eye level, 50mm f/1.8",
"environment": "sunlit seaside cafe terrace, bright sunny day",
"style": "clean modern Japanese commercial photography, soft natural shadows",
"negative": "bad anatomy, extra limbs, deformed fingers, blur, watermark"
}
このJSONを結合してプロンプト化することで、被写体はそのままで背景や衣装だけを自在にスワップするバッチ生成が可能になります。