Stable Diffusion のプロンプトはどう書くのか?

著者 更新日 2 分で読めます

Stable Diffusion のプロンプトは、画像を導く文章による説明です。まず明確な被写体、次に画風、光、構図、そして品質を表す語をいくつか、カンマで区切って並べます。短く、具体的に、重要な順に。これが予測どおりの画像を得るコツです。

うまくいく構成

  1. 被写体:誰が・何が、何をして、どこで。a red fox sitting on a mossy rock in a pine forest
  2. 画風・技法:oil painting、35mm photograph、watercolor、3D render、または画家名:by Ivan Shishkin。
  3. 光と雰囲気:golden hour、soft diffused light、dramatic rim light、foggy。
  4. 構図とレンズ:close-up、wide shot、85mm、shallow depth of field。
  5. 品質の語:highly detailed、sharp focus、masterpiece。二つか三つで十分です。

プロンプトの先頭の語は末尾の語より強く効く傾向があります。被写体は必ず先頭に。

注釈付きの例

portrait of an old fisherman, weathered face, wool sweater, oil painting by Rembrandt, warm candlelight, dark background, close-up, 85mm, highly detailed

最初の五語が被写体を決めます。画家名は色調と筆致を決めます(一つの名前でどれほど変わるかは画家スタイルのページで確認できます)。光の語が雰囲気を、構図の語が配置を決め、最後の一群が仕上げます。ネガティブプロンプトは blurry, deformed hands, extra fingers, watermark, text。詳しくはネガティブプロンプトとはへ。

重みと強調

Automatic1111、Forge、Fooocus、ComfyUI では、丸括弧で語の重みを指定します。(red scarf:1.3) はその語への注目を30%強め、(background:0.7) は弱める、という意味です。Automatic1111 では角括弧で重みを下げられます。0.6〜1.4 の範囲に収めてください。それを超えると画像が崩れやすくなります。重みは、モデルが無視し続ける細部を救うために使い、全部の語に付けてはいけません。

よくある間違い

  • 否定表現:「a room without windows」はたいてい窓を描きます。要らないものはネガティブプロンプトへ。
  • 詰め込みすぎ:一枚に一つの被写体。SD 1.5 と SDXL では75トークン(約60語)が一つの CLIP ブロックの上限です。それを超えた分は、Automatic1111 では二つ目のブロックに回され、ブロック分割をしないツールでは切り捨てられます。
  • 矛盾する画風:photorealistic watercolor は濁った結果になります。
  • 一度に全部変える:シードを固定し、一語ずつ変えて、それぞれの効果を確かめましょう。

モデルによる違い

SD 1.5 と SDXL は上の例のようなキーワードの列に反応します。Stable Diffusion 3 と 3.5 は自然な文章をよりよく理解し、複数の被写体を配置でき(「a cat on the left, a dog on the right」)、引用符で囲んだ短い文字も描けます。どのモデルでも、このサイトの100+本の記録付きプロンプトは各画像のパラメータを示し、プロンプト生成ツールは数語から完全なプロンプトを作ります。 スタイルの一文が何をするかを見るには、FLUX.2で比較した画風を開いてください。同じシーンと同じシードをすべての画風で描き分け、コピーできる一文を添えています。

よくある質問

プロンプトはどのくらいの長さが良いですか?

SD 1.5 と SDXL なら15〜60語が目安です。10語未満だとモデルが空白を勝手に埋めます。75トークンを超えると、Automatic1111 は文章をブロックに分割し、その機能がないツールは超えた分を切り捨てます。

画家名はまだ効きますか?

SD 1.5 と SDXL では効きます。数千人の画家を知っており、同じ四つのプロンプトとシードで生成した1,731人の比較で各名前の効果が分かります。Stable Diffusion 3 は画家名への反応が弱めです。

プロンプトは英語で書くべきですか?

はい。テキストエンコーダは主に英語のキャプションで学習されています。日本語のプロンプトも部分的には効きますが精度が落ちます。先に英語へ翻訳してください。