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 をはじめ多くのインターフェースでは、丸括弧で語の重みを上げます。(red scarf:1.3) は30%重要、(background:0.7) は控えめ、という意味です。角括弧は重みを下げます。0.6〜1.4 の範囲に収めてください。それを超えると画像が崩れます。重みは、モデルが無視し続ける細部を救うために使い、全部の語に付けてはいけません。

よくある間違い

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

モデルによる違い

SD 1.5 と SDXL は上の例のようなキーワードの列に反応します。Stable Diffusion 3 と 3.5 は自然な文章をよりよく理解し、複数の被写体を配置でき(「a cat on the left, a dog on the right」)、引用符で囲んだ短い文字も描けます。どのモデルでも、このサイトの69本の記録付きプロンプトは各画像の全パラメータを示し、プロンプト生成ツールは数語から完全なプロンプトを作ります。

よくある質問

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

15〜60語です。10語未満だとモデルが空白を勝手に埋め、75トークン(SD 1.5 と SDXL)を超えると文章がブロックに分割されて後半の影響が弱まります。

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

SD 1.5 と SDXL では効きます。数千人の画家を知っており、同じシードで生成した1,731人の比較で各名前の効果が分かります。Stable Diffusion 3 は画家名を減らして学習されているため反応が弱めです。

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

はい。テキストエンコーダは主に英語のキャプションで学習されています。日本語のプロンプトも部分的には効きますが精度が落ちます。翻訳するか、プロンプト生成ツールを使ってください。