「素晴らしい構図だけど、指が6本ある」「指定した色が背景に漏れ出してしまった」……。
Stable DiffusionやDALL-E 3などの画像生成AIを使う中で、こうした「ガチャ(運要素)」に疲弊していませんか?
本記事では、プロンプトを自然言語の「文章」から、JSON形式の「構造化データ」へと進化させ、生成結果をエンジニアリング的に制御する最新手法を解説します。
1. なぜ「自然言語」ではなく「JSON」なのか?
初期の画像生成AIでは「サイバーパンクな都市の夜景」といった呪文(プロンプト)が主流でした。しかし、DALL-E 3やFluxのような最新モデルにおいて、この手法は限界を迎えています。
1.1 LLMネイティブな解釈メカニズム
最新の画像生成モデルは、フロントエンドに高度な大規模言語モデル(LLM)を搭載しています。これらはGitHub上の膨大なコードで学習されているため、人間が書く曖昧な文章よりも、JSONやYAMLといった構造化データの方が「論理的」に理解しやすいという特性があります。
従来のCLIPエンコーダーベース(Stable Diffusion v1.5等)ではJSONの記号がノイズになる場合がありましたが、DALL-E 3やFlux Proでは逆に「精度の高い指示書」として機能します。
1.2 属性分離 (Disentanglement) による制御
最大のアドバンテージは「属性の分離」です。
例えば文章で「赤い車と青い服を着た男」と書くと、AIは「赤」と「青」を混同しがちです(Attribute Bleeding)。しかし、JSONでスコープを区切れば、このリスクを物理的に遮断できます。
自然言語プロンプトで複数の要素を指定した際に、一つの属性(色、質感など)が意図しないオブジェクトに適用されてしまう現象。例:「赤い車と青い空」→ 車が紫がかる、空が赤みを帯びる、など。
2. コピペで使える「マスター・プロンプト・スキーマ」
Tech Otaku Labが提唱する、汎用性の高いJSON構造(スキーマ)を紹介します。これをテンプレートとして、main_subject や environment の中身を書き換えるだけで、一貫性のある画像生成が可能になります。
{
"meta": {
"usage_context": "product_photography",
"model_version": "dall-e-3"
},
"main_subject": {
"entity": "ヴィンテージの香水瓶",
"appearance": {
"material": "ガラスと真鍮",
"color": {
"dominant": "amber",
"accent": "gold"
}
}
},
"environment": {
"location": "大理石のカウンター",
"lighting": {
"type": "natural_light",
"direction": "side_lighting",
"shadows": "soft_diffused"
}
},
"camera_technical": {
"lens": "macro_100mm",
"aperture": "f/2.8",
"focus": "sharp_on_subject"
},
"style": {
"medium": "photorealistic",
"color_palette": ["#FFD700", "#FFFFFF"]
}
}
この構造のポイントは、「照明(Lighting)」と「カメラ設定(Camera Technical)」を独立させている点です。単に「綺麗な写真」と書くのではなく、f/2.8 や side_lighting と物理パラメータを指定することで、AIのレンダリングエンジンに対して具体的な「光の計算」を指示できます。
スキーマの各セクション解説
| セクション | 役割 | 具体例 |
|---|---|---|
| meta | 生成の文脈・管理情報 | 用途(商品撮影/イラスト)、モデルバージョン |
| main_subject | 主役の定義 | 対象物、素材、色、質感 |
| environment | 周囲の環境 | 場所、照明の種類・方向・影の質 |
| camera_technical | カメラの物理設定 | レンズ、絞り、焦点位置 |
| style | 表現スタイル | メディアタイプ、カラーパレット |
3. 自然言語 vs JSONプロンプト 比較分析
従来の手法と何が違うのか、メリット・デメリットを整理しました。
- 再現性が高い: パラメータの一部だけを変更してバリエーションを作れる
- 属性漏れがない: 色や素材が指定したオブジェクト以外に飛び火しない
- 自動化に最適: プログラムで大量生成する際の管理が容易
- バージョン管理可能: Gitで履歴管理、差分確認ができる
- チーム共有が容易: 誰が見ても構造が理解できる
- トークン消費が多い: 括弧やキー名の分だけ文字数を消費する
- 創造性の低下: 曖昧さが減る分、AIによる「意外なアレンジ」は減る
- 記述が面倒: 手入力には向かない(LLMに書かせるのが前提)
- 学習コスト: JSON構造を理解する必要がある
4. 主要モデル別・実装ワークフロー
DALL-E 3 (ChatGPT) の場合
ChatGPT上で使用する場合、JSONをそのまま貼り付けるだけでは不十分です。以下の「メタプロンプト」を添えて指示してください。
以下のJSON構造記述に基づいて詳細な画像生成プロンプトを作成し、 画像を生成してください。 JSON内の指定事項を厳守し、勝手な要素追加を行わないこと。 [ここにJSONを貼り付け]
Stable Diffusion / Midjourney の場合
これらのモデルはJSONをネイティブサポートしていません。そのため、「保存・管理はJSON、生成時はタグ変換」というワークフローを採用します。
ChatGPT等を使って、先ほどのJSONから (vintage perfume bottle), macro lens, f/2.8, side lighting... といったタグ列に変換させてから入力しましょう。
上記のマスタースキーマをベースに、生成したい画像の要素を定義します。
「このJSONをStable Diffusion用のプロンプトタグに変換して」と指示します。
変換されたタグをStable DiffusionやMidjourneyに入力して生成します。
生成された画像の情報(シード値、設定など)をJSONに追記して管理します。
5. 実践テクニック:JSONプロンプトの最適化
5.1 階層構造を活用したバリエーション生成
JSONの階層構造を利用すれば、特定の属性だけを変更した複数バリエーションを効率的に生成できます。
// ベースのJSON(color.dominant だけ変更)
"color": { "dominant": "amber" } // バージョンA
"color": { "dominant": "emerald" } // バージョンB
"color": { "dominant": "ruby" } // バージョンC
5.2 ネガティブプロンプトの構造化
「生成してほしくないもの」もJSON化することで、より明確な制御が可能です。
"exclude": {
"elements": ["人物", "テキスト", "ロゴ"],
"defects": ["歪み", "ノイズ", "低解像度"],
"styles": ["アニメ調", "漫画風"]
}
5.3 テンプレートライブラリの構築
用途別にJSONテンプレートを用意しておけば、作業効率が劇的に向上します。
- product_photography.json – 商品撮影用
- character_portrait.json – キャラクター肖像用
- landscape_scene.json – 風景シーン用
- technical_diagram.json – 技術図解用
6. 生成AIを快適に動かす環境を整える
JSONプロンプトを駆使して「究極の1枚」を生成するには、試行回数が重要です。ローカル環境(Stable Diffusion)で高速に生成を回すなら、VRAM容量の多いGPUを搭載したBTOパソコンが必須となります。
- GPU: RTX 4070 以上(VRAM 12GB以上)
- メモリ: 32GB以上(大量バッチ処理時)
- ストレージ: NVMe SSD 1TB以上(モデルとデータ用)
また、海外のAIサービスや画像素材サイトにアクセスする際、セキュリティと接続速度を確保するためにVPNの導入も検討すべきでしょう。
7. まとめ:プロンプトは「書く」から「設計する」へ
画像生成AIは、遊びのフェーズから実務のフェーズへと移行しています。
JSON構造化プロンプトは、AIを「魔法の杖」から「精密な工作機械」へと変えるための鍵です。まずは先ほどのマスタースキーマをコピーして、あなたの作りたい世界観を定義してみてください。
すぐに試せるアクション:
- 上記のマスタースキーマをテキストエディタにコピー
main_subject.entityを自分の作りたいものに変更- ChatGPT(DALL-E 3)に「このJSONから画像を生成して」と指示
- 結果を見て、JSONの値を微調整
次回予告:
このJSONプロンプトをPythonスクリプトで自動生成し、寝ている間に1000枚の画像を生成する「完全自動化ワークフロー」について解説予定です。

コメント