
Stable Difussionはプロンプトと呼ばれる英単語や文章で指示を与え、画像を生成することができます。
英単語をそのまま並べるだけでも画像は生成できますが、カッコや数字を使うことでより細かい指定ができます。
今回は画像を比較しながら、プロンプトの基本的な入力方法について解説します。
プロンプトの指示を細かく調整したいという方は、ぜひ参考にしてみてください。
- プロンプトの入力方法がしりたい
- カッコや数字の影響がしりたい
- プロンプトで細かく要素を指定したい
なお、この記事はStable Difussion Web UIがインストールされている方を対象にしています。
インストールがまだの方はこちらの記事を参考にしてみてください。
Stable Difussion Web UIでプロンプトを入力する場所は2つ
Stable Difussion Web UIはプロンプトの入力欄が2つあります。
- プロンプト
- ネガティブプロンプト
プロンプト
プロンプトには画像に加えたい要素を入力します。
例えば「黒髪の少女」を生成したいのであれば「black hair,girl」や「The girl with the black hair」など。
モデルによって異なりますが、一部日本語も反映される場合があります。
こちらはシード値(ランダム性を制御するもの)を同じにして、プロンプトだけ変えたものです。



英語・日本語、単語・文章によって、生成される画像も変化します。
ネガティブプロンプト
ネガティブプロンプトは画像に加えたくない要素を入力します。
例えば低画質な画像を生成したくない場合は「low quality」、アダルト要素を除外したい場合は「nsfw」など。
ネガティブプロンプトを使うと、生成される画像をより限定的にすることができます。
またLoRAという学習されたモデルを使用すれば、短いプロンプトで複数のネガティブ要素を除外することも可能です。
プロンプトの基本的な入力方法
プロンプトには影響を強調したり、減少したりできる機能があります。
ここではプロンプトの具体的な入力方法やルールについてご紹介します。
プロンプトは入力順が影響する場合がある
プロンプトは入力する順番によって、生成結果に影響がでる場合があります。
一般的に手前の要素が強く影響し、後ろのプロンプトの影響は少なくなると言われています。
実際に「1girl,black hair」を入れ替えて生成してみました。
ほぼ同じですが、背景や口元の辺りに微妙な変化があります。


なお、順番は絶対的なものではなく、使用モデルによって異なります。
大きな変化は得られないかもしれませんが、要素の影響を調整したいときは入れ替えてみるといいかもしれません。
プロンプトは75文字で1つのチャンク
プロンプト入力欄の右上には「0/75」と表示されていますが、これはプロンプトの上限数ではありません。
プロンプトの入力は無限で、75文字で1つのチャンクとカウントされます。
チャンクは情報やデータの塊のことです。
例えば被写体について75文字、服装について75文字、画質について75文字を入力すると、これらは3つのチャンクに分かれ、それぞれが独立してモデルに入力されます。
なお、大文字で「BREAK」と入力すると、そこまでを1つのチャンクとして扱うことができます。
例えば以下は被写体、服装、画質をそれぞれのチャンクに分けた形です。
1girl, black hair, BREAK,suit, BREAK, masterpiece
またチャンクの順番や、特定のプロンプトがどのチャンクに入っているかによって生成結果も変化します。
1枚目は上記のプロンプト、2枚目はチャンク入れ替え、3枚目は1girlを3つ目のチャンクに移動したものです。



カンマと半角スペースの違い
カンマはプロンプトを明確に区切るときに使います。
例えば「orange juice」はオレンジジュースですが、「orange, juice」にするとオレンジとジュースが別のプロンプトとして処理されます。
同じシード値で生成するとどちらもオレンジジュースではありますが、結果が異なります。


また半角スペースは名詞+装飾語や、文章でプロンプトを入力する場合に使います。
例えば「black hair」と「balckhair」は結果が変わります。


また文章で入力した場合、半角スペースあり・なしだと大きく画像が変化します。


2つの単語で1つの意味になるものや、空白がないと意味が変わってしまうものは、スペースやカンマの位置に注意して入力してみてください。
()丸括弧
()丸括弧はプロンプトを強調したいときに使用する記号です。
複数プロンプトがある場合に、特定のプロンプトの影響を強めることができます。
具体的な数値で言うと丸括弧で囲むとその要素が1.1倍になり、重ねる数に応じで乗算されます。
1*(1.1^n) n=丸括弧の数

またプロンプトの後にコロンと数値で直接倍率を指定することも可能です。
例)cherry blossom:1.1

値を1以下に指定するとその要素は弱まります。

なお、プロンプトを選択した状態でCtrl+上下キーを押すと、簡単に値が調整できます。

[]角括弧
角括弧は複数使い方があり、1つは囲んだプロンプトの要素を弱めることができます。
ネガティブプロンプトはその要素を除外しますが、角括弧は目立つ要素を抑えたいときなどに有効です。
丸括弧と同じく重ねる数に応じで乗算されます。
1/(1.1^n) n=角括弧の数

角括弧では重みの値は指定ができず、値を指定すると別の機能になります。
[]角括弧と値
角括弧に値を指定すると、プロンプトを反映させるタイミングを指定できます。
例えばSampling Stepsが20のとき、[crying:15]とするとstep15以降でcryingが反映されます。

また[A:B:15]という書き方をすれば、step15でプロンプトAをBに切り替えるという指定もできます。
例)[black:red:15] hair

これが小数点の場合は割合で計算され、赤と黒が混ざったような髪の毛になります。
整数値と違い[black:red:0.5] hairにした場合、Sampling Stepsが50%のところでredが混ざります。
50%なのでsteps10ならsteps5のとき、steps12ならsteps6でredが追加されるという感じです。
整数値の方と同じシード値ですが、全画像にblackとredの要素が反映され、赤と黒が混ざり合った髪色になっているのがわかると思います。

またこのプロンプトの入力はhires.fixを使うと上手く反映されません。
整数値と同じシード値・プロンプトですが、赤の要素があまり反映されませんでした。

詳細はわかりませんが、おそらく工程数や工程の順番が影響しているのかと思われます。
英語ですが公式で使い方や比較画像を掲載しているので、こちらも参考にしてみてください。
AND・NOT
ANDはプロンプト同士を融合できるものです。
「A AND B」と入力すれば、AとBが融合したような画像が生成できます。


NOTは特定の要素を否定できるものです。
「cloud AND bear AND NOT White」とすると「雲と熊を融合して白を使わない」という意味になります。

なお、ANDとNOTはモデルやサンプラーによって反映されたり、されなかったりだったので、具体的にどういうシーンで使えばいいのかよくわかりませんでした。
こちらも公式を参考にいろいろ試行錯誤してみてください。
プロンプトのエラー
プロンプト内で入力に問題がある場合、右上のカウンターに赤い枠線が表示されます。

このように赤くなっている場合は、カッコの数や位置がズレてうまく機能していない可能性があります。
プロンプトを見直して問題がないか確認してみてください。
基本的なプロンプトの入力方法まとめ
今回はStable Difussion Web UIのプロンプトの入力方法について解説しました。
- プロンプトを入力する場所
- プロンプトの基本的な入力方法
- プロンプトは入力順が影響する場合がある
- プロンプトは75文字で1つのチャンク
- カンマと半角スペースの違い
- ()丸括弧
- []角括弧
- []角括弧と値
- AND・NOT
- プロンプトのエラー
正直使いどころが難しい機能もありますが、プロンプトを効果的に活用することで、モデルに対して具体的な指示や制御を与えることができます。
特に強調・BREAK・弱める構文は比較的使いやすく、画像への影響も出やすいので便利かもしれません。
プロンプトがうまく使えると自分の理想やニーズに合った結果が得られるので、試行錯誤しながら遊んでみてください。
コメント