
AI進化でも有効!YAMLで作る高精度画像生成プロンプト
はじめに
「ChatGPTの進化で画像生成は簡単になった…でも、本当に 『意図通り』 の絵、毎回出せていますか?」
AIの進化は目覚ましく、簡単な言葉からでも驚くほど高品質な画像が生成されるようになりました。
しかし、だからこそ 「もっと精密にコントロールしたい」「同じキャラで一貫性を保ちたい」「複雑な指示を正確に伝えたい」 といった、一歩進んだ要求も生まれてきているのではないでしょうか。
この記事では、そんな高度な要求に応えるための新しいアプローチ、 「システムプロンプト」 と 「YAML定義ファイル」 の組み合わせをご紹介します。
これは、AIとの対話を通じて、より意図に忠実で、かつ管理しやすいプロンプトを作り出すための強力な手法です。
これからの時代のプロンプトエンジニアリングに、きっと役立つ考え方となるはずです。
※SNS拡散キャンペーン(割引)は終了しました。現在は通常価格です。
なぜ今、「構造化プロンプト」なのか?
AIの進化と残る課題
最新の画像生成AIは非常に賢くなりました。
短い指示でも文脈を読み取り、素晴らしい画像を提案してくれます。
しかし、それでも、こんな経験はありませんか?
「指示したはずの 細かいニュアンス が再現されない…」
「このキャラで シリーズ物 を作りたいのに、生成ごとに微妙に顔や服装が 変わってしまう …」
「複数の要素が絡む 複雑なシーン を、言葉だけで正確に伝えるのが難しい…」
「『なんとなく良い絵』 は出るけど、『まさにこれ!』 という一枚になかなか辿り着けない…」
自然言語の限界と、高まる要求
これらの課題の一因は、私たちが普段使う 「自然言語」 が持つ 曖昧さ にあります。
AIは文脈を読み取ろうとしますが、私たちの頭の中のイメージを100%完璧に理解できるわけではありません。
また、AIの進化によって、ユーザー側も 「もっとこうしたい!」 という、より 高度で複雑な要求 を持つようになってきています。
簡単な指示だけでは、こうした要求に応えきれない場面が増えているのです。
新提案:「システムプロンプト+YAML定義ファイル」とは?
そこで提案したいのが、AIとの連携をより 構造的 に行うアプローチです。
これは、LLM(大規模言語モデル、ChatGPTなどのAI)を 「優秀なプロンプト作成アシスタント」 と見立て、そのアシスタントに以下の2つを与える考え方に基づいています。
システムプロンプト : アシスタント(LLM)に 「あなたの役割と振る舞い方」 を教える指示書。
YAML定義ファイル : アシスタントが参照する 「画像生成の知識・部品データベース」 。
システムプロンプトの役割
これは、LLMに対して 「あなたは、これから渡すYAMLファイルを参照しながら、ユーザーの要望に最適な画像生成プロンプトを作るアシスタントです」 と、その役割と基本的な行動指針を与える 指示書 のようなものです。
どのような思考プロセスでプロンプトを組み立てるか、どのような形式で出力するかなども、ここで指示することができます。
YAML定義ファイルの役割
YAML(ヤムルと読みます)は、人間にもコンピュータにも分かりやすいデータ記述形式です。
このYAML形式で、画像生成に必要な様々な要素を 構造的に整理 したファイルを作成します。
主題: 人物、動物、風景など
属性: 年齢、髪型、服装、ポーズ、表情など
背景/環境: 場所、時間帯、天気など
アートスタイル: 写実、アニメ、油絵、特定のアーティスト風など
構図/カメラ: ショットサイズ、アングル、レンズ効果など
照明: 光の種類、方向、雰囲気など
色彩: 色調、パレットなど
品質タグ: `masterpiece`, `best quality` など
ネガティブプロンプト: 避けたい要素のリスト
パラメータ: アスペクト比、CFG Scaleなど (エンジン別に管理可能)
プリセット: よく使うキャラクター設定やスタイル定義など
このYAMLファイルは、LLMアシスタントにとって 「参照すべき知識ベース」 であり、プロンプトを組み立てるための 「部品カタログ」 のような役割を果たします。
連携の仕組み
このアプローチの連携イメージは以下のようになります。

ユーザーが要望を伝えると、LLMアシスタントは 「システムプロンプト」 の指示に従い、「YAML定義ファイル」 を参照しながら最適な部品を選び出し、最終的なプロンプトとパラメータを組み立ててくれる、という流れです。
このアプローチの絶大なメリット
では、この 「システムプロンプト+YAML定義ファイル」 を使うと、具体的にどんないいことがあるのでしょうか?
メリット1:驚異的な「精度」と「制御性」
YAMLで要素を細かく定義しておくことで、自然言語の曖昧さが減り、「この髪型にしてほしい」「このポーズで」「このライティングで」 といった 特定の要求 をより確実に反映させることができます。
複雑なシーンも要素ごとに整理して伝えられるため、意図通りの画像 を生成する精度が格段に向上します。
メリット2:揺るぎない「一貫性」と「再現性」
キャラクター設定(髪色、服装など)や特定のアートスタイル、ライティング設定などをYAMLに 「プリセット」 として定義しておけば、LLMはその定義を参照してプロンプトを生成します。
これにより、シリーズ物の制作 や 特定スタイルの維持 が非常に容易になり、生成結果の 一貫性 と 再現性 が高まります。
メリット3:プロンプト資産の「体系化」と「再利用」
試行錯誤して見つけた 「効くキーワード」 や 「最適なパラメータ設定」 などをYAMLファイルに蓄積していくことで、それがあなただけの 「プロンプト知識データベース」 になります。
よく使う設定を 部品化(プリセット化) しておけば、毎回ゼロから考える手間が省け、効率的にプロンプトを作成できます。
チームで共有すれば、ノウハウの共有もスムーズです。
メリット4:多様なAIエンジンへの「適応性」
YAML定義ファイル内に、Stable Diffusion、Midjourney、DALL-E 3など、エンジンごとの推奨パラメータ や プロンプトの書き方(テンプレート) を含めることができます。
LLMアシスタントは、生成したい画像の特性やユーザーの指定に応じて、最適なエンジン向けのプロンプト を柔軟に出力し分けることが可能になります。
特定のプラットフォームに縛られない、汎用性の高いプロンプト管理 が実現します。
メリット5:LLMとの「対話促進」と「解釈支援」
たとえユーザーの指示が曖昧でも、LLMアシスタントはYAML定義ファイルの 豊富な選択肢 を基に 「こんなスタイルはどうですか?」「ライティングはどの雰囲気がお好みですか?」 といった具体的な質問を投げかけることができます。
これにより、ユーザー自身も気づいていなかった 潜在的な要望 を引き出し、LLMの 解釈を助け、より 質の高い対話 を通じて理想の画像に近づくことができます。
実践!具体例を見てみよう
言葉だけではイメージしにくいかもしれませんので、簡単な具体例を見てみましょう。
YAML定義ファイルの一部(抜粋例)
例えば、キャラクターシートとライティング設定をYAMLで定義すると、このようになります。
# === 再利用可能なプリセット/コンポーネント集 ===
presets:
character_sheets:
elara_the_mage: &elara # '&elara'がエイリアス名
subject:
type: person
categories:
person:
keywords: ["female mage", "sorceress"]
attributes:
age: "young adult (around 25)"
hair_style: "long flowing silver hair, slightly wavy"
clothing_style: "ornate deep blue velvet robes with gold embroidery"
expression: "wise and determined look"
lighting_setups:
cinematic_night_rain: &cinematic_night_rain # '&cinematic_night_rain'がエイリアス名
lighting:
type: multiple
categories:
dramatic_effect: ["cinematic lighting", "dramatic shadows", "rim light", "neon lights reflected on wet surfaces"]
mood: ["dark and moody", "mysterious atmosphere"]
environment:
attributes:
time_of_day: "night"
weather: ["heavy rain", "wet pavement"]ポイント: `&elara` や `&cinematic_night_rain` は 「エイリアス」 と呼ばれ、後で `*elara` のように呼び出して設定を再利用できます。
システムプロンプトの例(コア部分の抜粋)
LLMアシスタントに与える指示書は、例えばこのように記述します。
# システムプロンプト (LLMへの役割指示)
あなたは高性能な画像生成プロンプトのアシスタントです。
添付されたYAML定義ファイルを知識ベースとして参照し、ユーザーの要望(テキストや参考画像)を理解し、最適な画像生成プロンプト(ポジティブ、ネガティブ)とパラメータを生成してください。
YAML内のプリセット(エイリアスで定義されたもの)も積極的に活用してください。想定される対話フロー(イメージ)
ユーザー: 「魔法使いElara(さっき定義したキャラ)が、雨の夜の街にいるシネマティックな絵を描いてほしい。」
LLMアシスタント: (システムプロンプトに従い、YAMLを参照)
「承知しました。YAML定義のキャラクターシート `*elara` とライティング設定 `*cinematic_night_rain` を基に、以下のプロンプト(Stable Diffusion XL向け)を生成しました。」
Positive Prompt:
masterpiece, best quality, cinematic shot, (female mage, sorceress:1.1), young adult (around 25), long flowing silver hair, slightly wavy, wearing ornate deep blue velvet robes with gold embroidery, wise and determined look, standing on a street at night during heavy rain, wet pavement, cinematic lighting, dramatic shadows, rim light, neon lights reflected on wet surfaces, dark and moody, mysterious atmosphere... (以下略)
Negative Prompt:
low quality, worst quality, blurry, text, watermark, signature, cartoonish... (以下略)
Parameters (for SDXL):
Aspect Ratio: 16:9
CFG Scale: 7.0
Steps: 30このように、YAMLで定義した部品を組み合わせることで、詳細で一貫性のあるプロンプトを効率的に生成できるイメージです。
システムプロンプトとYAML定義ファイルの全容
より深く理解したい方、実際に試してみたい方向けに、この記事で解説した 「システムプロンプト」 と 「YAML定義ファイル」 の完全版を以下に掲載します。
これらをベースにご自身の環境に合わせてカスタマイズしてみてください。
注意: YAMLファイルは非常に長いため、コピー&ペーストする際は全体が正しく選択されているかご確認ください。また、インデント(字下げ)が非常に重要なので、テキストエディタなどで編集する際はインデントが崩れないように注意が必要です。