AI画像生成プロンプトの法則|語順・強調構文・ネガティブプロンプトの基礎

AI画像生成プロンプトの法則|語順・強調構文・ネガティブプロンプトの基礎

AI画像生成で「思い通りの画像が出ない」と感じたことはありませんか?

実はプロンプトには明確な法則があります。この法則を理解するだけで、生成画像の品質に大きな影響を与えます。

この記事では、z-image-turboをはじめとするStable Diffusion系モデルに共通するプロンプトの基本ルールを解説します。

プロンプトの語順ルール

プロンプトの中で位置によって影響力が異なります。これはCLIP(テキストエンコーダー)がプロンプトを処理する仕組みに由来しています。

先頭が最も重要

プロンプトの先頭に書いた要素が、生成画像に最も強く反映されます。実際にz-image-turboで同一シード(seed=42)・同一要素で語順だけを変えて実験しました。

実験1: 「portrait」と「cafe」の語順を入れ替える

portrait先頭cafe先頭
portrait先頭cafe先頭
A: portrait先頭
portrait of a Japanese woman, smiling, cafe background, natural lighting, 85mm lens
B: cafe先頭
cafe background, natural lighting, smiling, portrait of a Japanese woman, 85mm lens

結果: portrait先頭(A)はバストアップの人物中心の構図。cafe先頭(B)はやや引きの構図になり、人物の映る範囲が膝上程度まで広がっています。先頭の要素が画像全体の構図に影響を与えていることが分かります。

実験2: 先頭のスタイルキーワードを変更する

先頭のスタイル指定キーワードを変えた比較です(seed=42)。この実験は語順だけでなく、先頭に置くスタイルキーワードの選択が画像全体の方向性を決定づけることを示しています。

photorealistic先頭anime illustration先頭
写実アニメ
A: photorealistic先頭
photorealistic portrait of a Japanese woman, detailed skin texture, natural lighting, 85mm lens, professional photography
B: anime illustration先頭
anime illustration of a Japanese woman, detailed skin texture, natural lighting, 85mm lens, professional photography

結果: 先頭のスタイルキーワードを変えたことで、写実的な肌のテクスチャが見える写真からアニメ調のイラストに変化しています。残りの要素(detailed skin texture, 85mm lensなど)は同一ですが、先頭に置くスタイルキーワードの選択が画像全体の方向性を決めていることが確認できます。なお、この実験は単なる語順の入れ替えではなく、キーワード自体の置換であるため、スタイルキーワードの影響力の大きさを示す実験として捉えてください。

末尾の影響について

CLIPの位置エンコーディングにより、末尾の要素も一定の影響力を持つとされています。中間部分は相対的に影響が弱くなる傾向があります。ただし、この効果については本記事では実験的な検証を行っていないため、あくまで一般的に言われている傾向として紹介します。

先頭(最重要)→ 中間(弱い)→ 末尾(一定の影響力あり)

したがって、プロンプトの構成は:

  1. 先頭: 被写体・主題(何を生成するか)
  2. 中間: 補足的な要素(服装、ポーズ、小物など)
  3. 末尾: 品質・技術設定(カメラ、照明、画質に関する指示)
語順を意識したプロンプト例
portrait of a beautiful Japanese woman in her 20s, long black hair, white blouse, sitting in a modern cafe, warm afternoon sunlight, shallow depth of field, 85mm lens, professional photography

この例では:

  • 先頭: portrait of a beautiful Japanese woman in her 20s(主題)
  • 中間: long black hair, white blouse, sitting in a modern cafe(補足)
  • 末尾: shallow depth of field, 85mm lens, professional photography(品質)

CLIPの75トークン制限

多くのStable Diffusion系モデルでは、CLIPは75トークン単位でプロンプトを処理します。75トークンを超えると次のチャンクに分割されます。

  • 1チャンク目(1〜75トークン)が最も影響力が強い
  • 長すぎるプロンプトは後半の効きが弱くなることがある
  • 重要な要素は最初の75トークン以内に収めるのがベスト

英語の場合、1単語 ≒ 1〜2トークン。75トークンはおおよそ40〜60単語に相当します。

トークンの数え方の具体例

CLIPトークナイザ(BPE方式)は、一般的な英単語は1トークンに、辞書にない語や複合語はサブワードに分割します。「語数」とトークン数は一致しないため注意が必要です。

入力トークン分割トークン数
photophoto1
womanwoman1
yukatayuk + ata2
bokehbo + keh2
vignettevig + nette2
rumpledru + mp + led3
close-upclose + - + up3
20yo2 + 0 + yo3
,(カンマ),1
.(ピリオド).1

専門用語や日本語由来の英語(yukata, bokehなど)はサブワード分割されやすく、実際のトークン数は語数の1.3〜1.5倍になることが多いです。Pythonのtransformersライブラリで正確に計測できます:

from transformers import CLIPTokenizer
tokenizer = CLIPTokenizer.from_pretrained("openai/clip-vit-large-patch14")
tokens = tokenizer("your prompt here")
print(len(tokens["input_ids"]) - 2)  # BOS/EOSを除いたトークン数

強調構文

多くの画像生成UIでは (要素:重み) 構文で特定要素の影響力を数値で調整できるとされています。

基本構文: (要素:重み)

(smiling:1.4)     → 「笑顔」の影響力を1.4倍に強調(する意図)
(background:0.7)  → 「背景」の影響力を0.7倍に抑制(する意図)
  • デフォルトの重み: 1.0(何も指定しない場合)
  • 強調: 1.0より大きい値
  • 抑制: 1.0より小さい値

一般的に紹介される重み値の目安

意図される効果
0.5〜0.7かなり弱める
0.8〜0.9少し弱める
1.0デフォルト
1.1〜1.3少し強調
1.4〜1.5強く強調
1.6以上過度な強調(画像が崩れるリスクあり)

実験: z-image-turboでの重み付け効果

実験2-A: smiling の重みを変えて比較

同一シード(seed=42)で smiling の重みだけを変えて比較しました。

(smiling:1.0)(smiling:1.4)
smile 1.0smile 1.4
smiling:1.0(デフォルト)
portrait of a Japanese woman, (smiling:1.0), cafe background, natural lighting, 85mm lens
smiling:1.4(強調)
portrait of a Japanese woman, (smiling:1.4), cafe background, natural lighting, 85mm lens

結果: 視覚的な差は確認できなかった。

実験2-B: 5カテゴリ×3シードでの追加検証

smilingだけでなく、構図・ライティング・スタイル・被写体属性でも重み付け効果を検証しました。各カテゴリで重みなし(1.0相当)と (要素:1.4) を3シード(seed=42, 7295072554507705269, 4517457392071889496)で比較。

カテゴリパラメータ1.0 vs 1.4の差
表情smiling差なし(3/3シード)
構図from below差なし(3/3シード)
ライティングstrong backlighting差なし(3/3シード)
スタイルfilm grain差なし(3/3シード)
被写体属性freckles差なし(3/3シード)

詳細な比較画像は強調構文カテゴリ別検証を参照。

結果: z-image-turboでは、5カテゴリすべてで重み値による属性の強弱変化は確認されなかった。

なお、seed固定でも smiling(smiling:1.4) では構図・服装・顔が変化する。これは重み値の効果ではなく、括弧・コロン・数値の追加によりトークン列全体が変わるためと考えられる。

実用上のポイント: z-image-turboで出力を変えるには、重み値の微調整ではなく、語順と要素の選択(要素を入れる/入れない、先頭に置く/後ろに置く)が効果的です。

他モデルでの扱い

上記はz-image-turbo(CFG=1.0の蒸留モデル)での結果です。CFGが1.0より大きいモデル(Stable Diffusion 1.5、SDXL等)では重み付け構文が機能する場合があります。使用するモデルのドキュメントを確認してください。

括弧のネストによる強調

一部のUIでは、括弧のネストで強調することもできます:

(smiling)     → 1.1倍
((smiling))   → 1.21倍(1.1 × 1.1)
(((smiling))) → 1.331倍(1.1 × 1.1 × 1.1)

z-image-turboでは上記と同様に効果が確認されていません。

ネガティブプロンプトについて

ネガティブプロンプトは「生成してほしくない要素」を指定する仕組みで、Classifier-Free Guidance(CFG)に基づいています。

重要: z-image-turboではネガティブプロンプトは機能しません。 z-image-turboはCFG=1.0で動作する蒸留モデルであり、ネガティブプロンプトの仕組みが働きません。z-image-turboでの画質向上には正のプロンプトの最適化が有効です。詳しくはプロンプトのベストプラクティスを参照してください。

CFG > 1.0のモデル(Stable Diffusion標準モデル等)でのネガティブプロンプトの詳細はネガティブプロンプト解説で解説しています。

z-image-turbo向けの推奨設定

z-image-turboは高速生成が特徴のモデルです。

推奨プロンプト構成

[被写体の説明], [補足的な描写]

z-image-turboはデフォルトで写実的な出力をするため、RAW photophotorealisticなどの品質キーワードは不要です(検証結果)。

推奨パラメータ

パラメータ推奨値説明
Steps8z-image-turboは少ないステップで高品質な出力が可能
Samplereuler高速かつ安定
CFG1.0固定。この設定ではネガティブプロンプトは機能しない
サイズ1024x1024 / 1280x720標準〜横長

z-image-turboのComfyUIワークフロー(最適パラメータ設定済み)はこちらの記事で配布しています。

まとめ

プロンプトの3つの基本法則:

  1. 語順: 先頭が最重要、末尾も重要。主題→補足→品質の順で書く
  2. 強調構文: (要素:1.3) で重要な要素を強調。1.2〜1.4が実用的な範囲
  3. ネガティブプロンプト: z-image-turboでは機能しない(CFG=1.0のため)。正のプロンプトの最適化で品質を上げる

これらの法則を理解した上で、次のステップに進みましょう:

参考資料

この記事の主張の理論的背景となる論文を、落合メソッドで解説しています:

外部リンク:

関連記事