【Gemini】画像生成プロンプトの正解は?自然言語 vs JSON書き方を徹底比較【Nano Banana Pro】

eyecatch

【Gemini】画像生成プロンプトの正解は?自然言語 vs JSON書き方を徹底比較【Nano Banana Pro】

SBMJOB

画像生成系のプロンプトをネットで検索していると、いろんな書き方を皆さんされてますよね。
なんでこんな書き方してるんだろ?っておもいませんか?
この記事ではそんな疑問に答えようとおもいますね。

画像生成AI(Stable Diffusion, Midjourney, DALL-E 3, Geminiなど)への指示出し(プロンプト)には、いくつかの主流なスタイルがあります。Gemini Nano Banana Proで画像生成する時のそれぞれの特徴、メリット、デメリットをまとめました。

ただの解説記事ではありません。実際に私がGeminiと対話して見つけた、『プロンプトを再利用しやすくする裏技(JSON)』 も公開していますよ。

本記事では、便宜上、Geminiの画像生成AIをGemini Nano Banana Pro(またはImagen 3)として解説します。

目次

スポンサーリンク

1. 自然言語型 (Natural Language)

普通の文章として、人間や小説家に話しかけるように書くスタイルです。

例:

A realistic photo of a beautiful woman sitting on a bench in a park under the sunlight. She has long hair and is looking at the camera with a gentle smile. (公園のベンチで日差しを浴びている、美しい女性のリアルな写真。彼女は長い髪をしており、優しい笑顔でカメラを見ている。)

特徴人間が話す言葉(英語や日本語)そのままで記述する。
得意なAIGemini (Nano Banana / Imagen 3)DALL-E 3Midjourney v6, Adobe Firefly
メリット・**GeminiなどのLLMベースのAIに最適。**文脈理解力が高い。・「髪を耳にかけている」「風になびくスカート」といった複雑な動作やニュアンスを伝えやすい。・日本語入力でも精度が出やすい。
デメリット・AIが言葉の裏を読みすぎたり、勝手にアレンジを加えることがある。・「完全にこの通りの構図で」という機械的な制御は少し苦手
SBMJOB

Geminiの場合は基本この書き方が推奨されてるみたいです。参照画像をつかったりすると思った通りの画像生成ができそうですね。

2. タグ/単語羅列型 (Tag / Keyword List)

要素をカンマで区切って並べるスタイルです。「呪文」と呼ばれることの多い形式です。

例:

1girl, beautiful face, long hair, white dress, sitting, park bench, sunlight, realistic, 8k, high quality, looking at viewer (女性1人、美しい顔、長い髪、白いドレス、座っている、公園のベンチ、日光、リアル、8k、高品質、こっちを見ている)

特徴必要な要素(被写体、背景、画風、画質)を単語で区切って並べる。
得意なAIStable Diffusion (v1.5, XL), NovelAI, NijiJourney
メリット・「何を描くか」の優先順位がつけやすい(前の単語ほど重視される)。・不要な要素を削ぎ落としやすく、ガチャ(試行錯誤)の回転率が良い。・Danbooruなどの画像管理タグと相性が良い(1girlなどが基本タグ)。
デメリットGeminiやDALL-E 3では非推奨。 単語の羅列だけだと文脈が伝わらず、要素が無視されたり、ちぐはぐな絵になりやすい。・「誰が誰に何をしている」という関係性が伝わらない。
SBMJOB

Gemini Nano Banana Proでは使わない方がよいみたいですが、この書き方でも細かな点を気にしなければ生成自体はできます。

3. 構文活用・重み付け型 (Weighted Syntax)

タグ型に記号を加えて、特定の要素を強調したり弱めたりするスタイルです。

例:

(beautiful:1.4), [cute:cool:0.5], ((white dress)), sunlight (美しさを1.4倍強調、可愛いとカッコいいを生成途中で切り替え、白いドレスを強調…)

特徴カッコ()や数字、ブレンド構文などを使ってAIへの指示強度を数値的に制御する。
得意なAIStable Diffusion (WebUI/ComfyUI), Midjourney (一部パラメータ --stylize 等)
メリット・「もう少しだけ目を大きく」「背景の主張を弱く」といった微調整が可能。・プロレベルのこだわった作品作りには必須(SDの場合)。
デメリットGemini (Nano Banana Pro) には効果が薄い、または無効。 ( ):1.5といった記号は、単なる文字や模様として解釈されてしまい、絵の中に謎の数字が出てくる原因になることさえある。・ツールごとに記号のルール(文法)が違うため、汎用性がない。
SBMJOB

自分も画像生成始めた頃はこの書き方疑問を持ちつつもやってました。うまく数値が反映された様に思ってたんですが、俗にいう画像ガチャでいいタイミングで良い画像ができあがってただけだったみたいです。
ガチャの裏側には、SDがランダムシードに対して初期ノイズをどう配置するかという根本的な違いがあるため、GeminiのLLMベースのモデルとは挙動が全く異なります。

4. 構造化データ型 (JSON / YAML)

プロンプトそのものをデータの塊として記述するスタイルです。

例 (YAML)

image_generation_request:
  # 生成したい画像の内容(ポジティブプロンプト)
  prompt: >
    masterpiece, best quality, ultra detailed,
    1girl, cyberpunk city background, neon lights,
    short blue hair, mechanical glossy eyes,
    wearing futuristic armor jacket,
    cinematic lighting, depth of field
  
  # 除外したい要素(ネガティブプロンプト)
  negative_prompt: >
    low quality, worst quality, bad anatomy,
    missing fingers, extra digit, blurry,
    monochrome, text, watermark, signature
  
  # 生成パラメータ設定
  parameters:
    model: "v1-5-pruned-emaonly.ckpt"
    width: 512
    height: 768
    sampler: "DPM++ 2M Karras"
    steps: 30
    cfg_scale: 7.0
    seed: -1  # -1はランダムの意味

例 (JSON):

{
  "subject": {
    "type": "woman",
    "appearance": ["beautiful", "long hair", "slender"],
    "clothing": "casual white dress"
  },
  "environment": {
    "location": "park",
    "lighting": "sunlight"
  },
  "style": "photorealistic"
}
特徴プログラミングで使うデータ形式で記述し、要素を論理的に整理する。
用途ComfyUIのワークフロー管理、ChatGPT/Geminiにプロンプトを考案させる際の中間出力、API連携
Geminiでの活用YAMLはインデント等のずれが生じた場合、Geminiに細かな指示がうまく伝わらないかもしれません。
GeminiはJSONを理解できるため、「このJSON記述の内容で画像を生成して」と指示すれば描けるが、内部的には自然言語に変換して処理していると思われる。直接描かせるよりも、設定保存用として優秀。
またGeminiにプロンプトの要素を分析・考案させる際の中間出力としても使用できます。番外で使用例を示しています。
SBMJOB

個人的にはJSON型構造化記述がわかりやすくて好きなんですが、内部処理的には無駄なのかもしれないですね。ただ要素とその内容がわかりやすくて、ちょっとした変更や要素追加もわかりやすくていいです。

まとめ:Gemini (Nano Banana Pro) 攻略法

SBMJOB

プロンプトは自然言語型が無難です。

「強調したいなら、形容詞と副詞で盛れ!」

Nano Banana Proのような最新モデルで、特定の要素(例えば美しさ)を強調したい場合、カッコや数字を使うのではなく、言葉の力を使います。

  • 弱い: beautiful
  • 強い: breathtakingly beautifulgorgeousstunning appearance
  • さらに強調: The image focuses on her captivating beauty. (文脈として「焦点」を指定する)

AIも人間と一緒で、「美人」って言われるより「息を呑むほど美しい」って言われた方が、気合い入れて生成してくれるってわけだ。

SBMJOB

自分はJSON形式のデータ構造型が一番しっくりくるので
チームでお仕事するのなら統一しておいた方がよいかもですね。

形容詞で比較!!!

beautiful
Gemini Nano Banana ProでJSON形式で解析する元画像
The image focuses on her captivating beauty
SBMJOB

ほ、本当だ。全然ちがう

番外 画像をJSON形式で解析させるプロンプトを作って、生成させてみる

STEP
解析・JSON出力プロンプト(解析用プロンプト)を作成してもらう

Geminiに以下のプロンプトを入力

参照画像を完全に分析解析してその要素と内容をJSON形式で出力依頼するプロンプトを作りたいので手伝って。
STEP
解析用プロンプトをコピーしよう

Geminiの解答例
1. 【推奨】汎用・高精度分析プロンプト

このプロンプトは、AIに対して「コンピュータビジョンの専門家」としての役割を与え、JSONスキーマ(構造)を指定することで、解析エラーや情報の抜け漏れを防ぎます。

以下のテキストをコピーして、画像を添付したAIに入力してください。

# Role
あなたは高度な画像認識能力を持つAIであり、プロのコンピュータビジョンエンジニアです。
添付された画像を詳細に分析し、その視覚情報、意味的情報、技術的情報をすべて抽出して、指定されたJSON形式で出力してください。

# Task
1. 画像内の主要な被写体、背景、オブジェクトを特定する。
2. 芸術的なスタイル、画風、媒体(写真、イラスト、3Dレンダリングなど)を分析する。
3. カラーパレット(主要な色とアクセントカラー)を16進数カラーコードで抽出する。
4. 照明、構図、視点などの技術的要素を分析する。
5. 画像内の雰囲気や感情的要素を言語化する。
6. 画像内にテキストが含まれる場合は、OCR(文字認識)を行い内容を抽出する。

# Constraints
- 出力は**有効なJSONフォーマットのみ**で行うこと。
- JSONの前後に説明文やMarkdownの装飾(```json などのコードブロック記号は可)を含めないこと。
- 値が不明な場合は `null` を使用すること。
- 言語は「日本語」で出力すること(ただしカラーコードや技術用語は英語可)。

# Output JSON Structure
以下の構造に厳密に従ってください。

{
  "summary": "画像の簡潔な説明(50文字以内)",
  "description": "画像の非常に詳細な描写(視覚障害者に状況を伝えるレベル)",
  "visual_elements": {
    "subjects": ["主要な被写体リスト"],
    "objects": ["検出された物体のリスト"],
    "background": "背景の説明",
    "environment": "場所や設定(例:屋内、森林、宇宙)"
  },
  "style_and_aesthetics": {
    "medium": "媒体の種類(例:デジタルイラスト、実写写真、油絵)",
    "art_style": "芸術様式(例:サイバーパンク、ミニマリズム、印象派)",
    "vibe_mood": "雰囲気や感情(例:穏やか、不気味、活発)"
  },
  "colors": {
    "dominant_colors": ["#RRGGBB", "#RRGGBB"],
    "accent_colors": ["#RRGGBB"],
    "lighting": "照明の種類と方向(例:自然光、ネオン、逆光)"
  },
  "composition": {
    "camera_angle": "カメラアングル(例:俯瞰、ローアングル、クローズアップ)",
    "framing": "構図の特徴(例:三分割法、シンメトリー)",
    "focus": "焦点の状態(例:浅い被写界深度、パンフォーカス)"
  },
  "text_content": {
    "detected_text": "画像内の文字(なければnull)",
    "language": "言語(なければnull)"
  },
  "technical_tags": ["画像生成プロンプトとして使えるタグのリスト", "高画質", "4k", "etc"]
}
STEP
サンプル画像を解析してみよう

Geminiのチャット画面にサンプル画像をアップロードして、Step2の解析用プロンプトで処理してみましょう。

以下の様な解析結果が出力されました。

{
  "summary": "日本の住宅街の路上で、足元に座る三毛猫を優しく見下ろして微笑む若い男性。",
  "description": "晴天の日本の住宅街の坂道にて、紺色のワッフル編みセーターと濃い色のジーンズを着用した黒髪の若いアジア人男性が立っている。彼の両足の間には一匹の三毛猫がお行儀よく座り、少し上を見上げている。男性は猫の方へ視線を落とし、穏やかで優しい笑みを浮かべている。背景の右側には日本的な丸石を積んだ石垣とフェンスが続き、左側には電柱や電線、遠くの家並みと木々が確認できる。日差しは明るく、地面にははっきりとした影が落ちており、のどかな日常の一コマを切り取ったような情景である。",
  "visual_elements": {
    "subjects": [
      "若いアジア人男性",
      "三毛猫"
    ],
    "objects": [
      "ニットセーター",
      "ジーンズ",
      "スニーカー",
      "石垣",
      "フェンス",
      "電柱",
      "電線",
      "アスファルト道路",
      "マンホールまたは溝蓋"
    ],
    "background": "日本の静かな住宅街の坂道、石積み擁壁、青空と緑",
    "environment": "屋外、昼間の住宅地"
  },
  "style_and_aesthetics": {
    "medium": "フォトリアリスティック(実写風デジタル画像)",
    "art_style": "日常系スナップ、ポートレート、スライス・オブ・ライフ",
    "vibe_mood": "穏やか、温かい、平和、癒やし、幸福感、のんびりした"
  },
  "colors": {
    "dominant_colors": [
      "#2F3B55",
      "#808080",
      "#FDFDFD",
      "#4A4A4A"
    ],
    "accent_colors": [
      "#C88A35",
      "#556B2F"
    ],
    "lighting": "明るい自然光(順光〜トップライト)、コントラストのある影"
  },
  "composition": {
    "camera_angle": "アイレベル、フルショット(全身)",
    "framing": "被写体を中央に配置、道路のラインによる遠近法(リーディングライン)",
    "focus": "被写体深度はやや深く、背景も比較的認識できるが被写体が際立っている"
  },
  "text_content": {
    "detected_text": null,
    "language": null
  },
  "technical_tags": [
    "Japanese man",
    "calico cat",
    "street photography",
    "knitted sweater",
    "stone wall",
    "sunny day",
    "looking down at cat",
    "warm interaction",
    "photorealistic",
    "depth of field",
    "high quality",
    "8k"
  ]
}
STEP
解析結果を使って画像を作成してみよう。

Geminiのチャット画面に『このJSON記述の内容で画像を生成して』+ 解析結果を貼り付けて処理してみましょう。

このJSON記述の内容で画像を生成して
[ここに解析結果を貼り付ける]
STEP
生成画像の比較
Gemini Nano Banana ProでJSON形式で解析する元画像

before

Gemini Nano Banana ProでJSON形式で解析データから再生成した画像

after

SBMJOB

元画像にかなり似た生成画像ができてきましたね。こんな要素を特徴としてGeminiはとらえているんだ?とか、じゃぁこんな要素加えたらどう変わるかな?とか色々試しがいがありそうですね。

どんなに便利か以下の様にJSON記述を変更してみましょう。

変更内容

中年の女性
"subjects[0]_hairstyle": "long hair",
"subjects[2]_outfit_color": "shocking pink"
  • subjects配列の中に”中年女性”を追加して画像のどこかに出現させます。
  • subjects[0]が若いアジア人男性なので、そのヘアスタイル要素をsubjects[0]_hairstyleとしてlong hairにする。
  • subjects[2]が中年の女性なので、その服装の色を要素subjects[2]_outfit_colorとしてshocking pinkとする。

「※Geminiは柔軟なので、このようにJSONのキーを独自に追加しても、文脈から意図を汲み取って反映してくれます」

以下の画像を作成して
次の画像を作成して
{
  "summary": "日本の住宅街の路上で、足元に座る三毛猫を優しく見下ろして微笑む若い男性。",
  "description": "晴天の日本の住宅街の坂道にて、紺色のワッフル編みセーターと濃い色のジーンズを着用した黒髪の若いアジア人男性が立っている。彼の両足の間には一匹の三毛猫がお行儀よく座り、少し上を見上げている。男性は猫の方へ視線を落とし、穏やかで優しい笑みを浮かべている。背景の右側には日本的な丸石を積んだ石垣とフェンスが続き、左側には電柱や電線、遠くの家並みと木々が確認できる。日差しは明るく、地面にははっきりとした影が落ちており、のどかな日常の一コマを切り取ったような情景である。",
  "visual_elements": {
    "subjects": [
      "若いアジア人男性",
      "三毛猫",
      "中年の女性"
    ],
"subjects[0]_hairstyle": "long hair",
"subjects[2]_outfit_color": "shocking pink",
    "objects": [
      "ニットセーター",
      "ジーンズ",
      "スニーカー",
      "石垣",
      "フェンス",
      "電柱",
      "電線",
      "アスファルト道路",
      "マンホールまたは溝蓋",
      "救急車"
    ],
 "objects_color": "red",
    "background": "日本の静かな住宅街の坂道、石積み擁壁、青空と緑",
    "environment": "屋外、昼間の住宅地"
  },
  "style_and_aesthetics": {
    "medium": "フォトリアリスティック(実写風デジタル画像)",
    "art_style": "日常系スナップ、ポートレート、スライス・オブ・ライフ",
    "vibe_mood": "穏やか、温かい、平和、癒やし、幸福感、のんびりした"
  },
  "colors": {
    "dominant_colors": [
      "#2F3B55",
      "#808080",
      "#FDFDFD",
      "#4A4A4A"
    ],
    "accent_colors": [
      "#C88A35",
      "#556B2F"
    ],
    "lighting": "明るい自然光(順光〜トップライト)、コントラストのある影"
  },
  "composition": {
    "camera_angle": "アイレベル、フルショット(全身)",
    "framing": "被写体を中央に配置、道路のラインによる遠近法(リーディングライン)",
    "focus": "被写体深度はやや深く、背景も比較的認識できるが被写体が際立っている"
  },
  "text_content": {
    "detected_text": null,
    "language": null
  },
  "technical_tags": [
    "Japanese man",
    "calico cat",
    "street photography",
    "knitted sweater",
    "stone wall",
    "sunny day",
    "looking down at cat",
    "warm interaction",
    "photorealistic",
    "depth of field",
    "high quality",
    "8k"
  ]
}
Gemini Nano Banana ProでJSON形式で解析データから要素を追加変更して再生成した画像

生成結果

中年の女性がショッキングピンクの服を着て追加されており、男性の髪型がロングヘアになっています。また遠くではありますが救急車も登場しています。

ただの登場人物もJSON記述のフォーマット次第で簡単に増やせたり
その特徴も簡単に追加でき変更も簡単です。

SBMJOB

JSON形式でのフォーマットは自分で理解しやすい様に整形できるので要素の追加・変更が容易です。生成結果の様に簡単に書き換えられるのが最大の利点ですね。これがJSONを使えば、プロンプトの特定の要素だけを狙い撃ちで修正できる」という、構造化データならではの真のメリットです。

参考リンク

スポンサーリンク

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

システム開発SE・アプリ開発・デバッガー等々なんでもやる猫の下僕です。現在は凶暴猫にカタカタ動く手を狙われながらキーボードを打っています。かなりゆるい性格なのでコメントやメッセージお気軽に〜お仕事のご依頼もお気軽にぃ〜

スポンサーリンク

コメント

コメントする

CAPTCHA


目次