StableDiffusionプロンプトについて

プロンプトのメモいろいろ。
間違ってる部分もあると思うので参考程度に。

基礎知識

プロンプトの区切りには , カンマ を使用します。
入力されたプロンプトは前の方が強く反映され、後ろの方は弱く反映されます。

プロンプトを()で囲むと強調されて((()))のように重ねると重ねた分だけさらに強調されます。
重ねた数によって1.1倍×1.1倍×1.1倍…と乗算されるらしい。

プロンプトを[]で囲むと影響が弱くなる。
強調と同様に[[[]]]のように重ねることで、重ねた分だけ1/1.1倍されていくらしい。

またワードを()で囲んだ後に :1.0 の表記で倍率指定もできます。
(1.1倍のワード:1.1), (1.0倍のワード:1.0), (0.9倍のワード:0.9)

倍率は正直よくわからんので、重ねる数や倍率の数字を弄ってみて実際に出力して調整していく感じでやってます。
同じプロンプトやワードを複数回使うことにも意味があります。

プロンプトで例えば white hair と入力したい場合、white_hair とアンダーバーで表記するのが推奨されてるらしい?
でも別にスペースで普通に反映してるので私はスペースにしてます。
好きな方でいいかもしれないです。

プロンプトを盛りすぎて長文になると、プロンプトの効果が薄まります。
盛り過ぎてキャラクターの見た目が崩壊することもあるので、バランスを取る必要ありです。
プロンプトだけで頑張るよりControlNetとかを上手く活用したいところ。

()はプロンプトの強調になってしまうけど、例えば同じ名前だけど別作品のキャラクターみたいな場合にxxx(作品名)みたいな表記をすることがあると思います。
そういう時に()事態を入力するには\(\)みたいな感じでカッコの前に\マークをつけるらしいです。

プロンプトの分割について

プロンプトは長すぎると分割されちゃうらしい。
1度に処理できるのが75トークンで、とりあえずそれより長いと別々に処理されると思っておけば良いっぽいです。

先頭のプロンプトの方が影響が強いルールがあるので、1→75の順で弱くなっていって76トークン目から次の先頭だから強いよねって感じになるみたいです。
分割された場合それぞれ処理されるから、後半にも別途 best quality とか入れる必要がある?しらんけど。

よく見かけるBREAK構文はプロンプトの途中でBREAKと入力することで、75トークンに達していなくても一度区切ってくれるという話。
使いこなせなくても人のプロンプトを見た時にBREAKが入っている意味が分かるだけでとりあえず良さそう。

試しに条件を同じにして、キャラクターの前にBREAKを入れるかどうかで違いを見てみた。
一旦区切った方はキャラに対してクオリティアップ系が適応されてなさそうなのに対して、繋げている方は少し見た目が整った気がする。

プロンプト
best quality, masterpiece, epic, 4k, 8k, absurdres, highres, insanely detailed, ultra detailed:1.4, beautiful, fantasy, castle, BREAK, (((1girl))), (((solo))), upper body,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,
プロンプト
best quality, masterpiece, epic, 4k, 8k, absurdres, highres, insanely detailed, ultra detailed:1.4, beautiful, fantasy, castle, (((1girl))), (((solo))), upper body,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

色系プロンプトの扱い

髪や目、服など色を指定する機会は多いです。
この時に問題となるのが色移りで、複数の色を指定した場合に別の場所にも色プロンプトが作用してしまいます。
使う色の数が多いほど発生しやすくなるので工夫が必要になります。

例えば red eyes, white hair のように色を連続させるよりも間に別のプロンプトを入れた方が安定感が増すようです。
また基本的には濃い色を後ろに持ってきた方が色移りしにくくなるみたいです。

プロンプトにランダム性を持たせる記述方法 Dynamic Prompts

プロンプトにランダム要素を持たせる方法があります。
まずは拡張機能の Dynamic Prompts を導入します。

ExtensionsタブからAvailableへ進んで Load from: をクリックします。
すると拡張機能の一覧が出てくるので、その中から Dynamic Prompts を選んでインストールします。

インストールが完了したら、通常のt2iやi2iのページ下部に Dynamic Prompts の設定が追加されます。
とりあえず Dynamic Prompts enabled にチェックを入れれば使えるようになるはずです。

{A | B} という記述をするとAもしくはBのどちらか一方のプロンプトだけが反映されます。
{A | B | C} なら3つのうちの1つがランダムに選ばれますが、{2$$A | B | C} とすると3つのうち2つが反映されます。
2$$の部分を1~2$$と書き換えると1~2個がランダムに選ばれることになります。
2$$and$$と書き換えた場合は2つの要素が A and B のように扱われます。

あまり使ったことはありませんが、各要素に重みをつけることもできるようです。
{0.1 :: A | 0.3 :: B} のように記述することで相対的な重みを反映できます。使い道は少なそうですが。

プロンプトのごく一部にランダム要素を持たせる場合はこの記述の方法は便利です。
が、例えばWebUIを再起動した際などに1つ前に生成したプロンプトを再利用する場合、読み込まれるのはランダムに選択された後のプロンプトになります。
再起動をしてもう1度同じように生成したい場合なんかは注意が必要です。

またランダムにする要素を増やせば複雑なプロンプトになってしまうので、複数個所にランダム要素を持たせたり、選ばれる選択肢を多くしたい場合はWildcardsの機能を使うことを推奨します。

この機能は事前に用意しておいたプロンプトを記入したtxtファイルを呼び出して利用する感じです。
stable-diffusion-webui/extensions/sd-dynamic-prompts/wildcards の中にファイルを入れておきます。
試してみた感じだとファイル名は2バイト文字でも問題なさそうです。

txtファイルの中身はプロンプトを1行につき1つ記入していきます。
例えば表情であれば
smile
angry
cry
みたいな感じです。

呼び出すためにはプロンプトに__ファイル名__と記載します。
アンダーバーは2個ずつです。
ファイル拡張子は不要です。

同時に複数使うこともできるので __表情__, __ポーズ__, __カメラアングル__ みたいな感じにすることもできます。

txtファイルの編集はもちろん自分でエディタで行っても構いませんし、WebUI上で行っても構いません。
基本的にはWebUI上で管理した方が楽です。
Wildcards Manager のタブを開くとこんな感じの画面になるかと思います。

画像左下の一覧が既にフォルダ内に配置されているtxtファイルです。
新規で作っても良いですし、既存のものをクリックすれば右の編集画面に中身が表示されるので修正することもできます。

ちなみに、どれかの行がランダムに呼び出されるので1行しかないファイルであれば確定で呼び出されます。
髪色・髪型・目の色・服装 などのプロンプトを全て1行に記載したtxtファイルを呼び出せば、確定でその見た目のキャラクターを生成することもできるので、うちの子を呼び出す呪文を圧縮するといった使い方をしている人も居るそうな。

Embeddingについて

webui内のembeddingsフォルダに対象のptファイルなどを入れておいて使う仕組み。
スタイルや構図などを学習させたファイルで、使用すると簡単にそれっぽい感じの出力にしてくれる。
有名なEasyNegativeはよく利用されていて、導入してネガティブプロンプトにEasyNegativeと入力するだけで出力が安定する。
導入しておくと良さそう。

EasyNegative
多分一番有名なやつ。
まずは導入してみると良さそう。
EasyNegative2も出ていて、Counterfeit-V3.0と一緒に配布されています。
ただCounterfeit-V3.0用に特化しているため汎用性が少し下がっているらしいです。

bad-hands-5
手を綺麗に出力するやつ。
導入しても崩れる時は崩れるます。

他にも探せば色々あります。

基礎プロンプト

よく使うクオリティアップ

超基本のプロンプト

best quality, masterpiece
クオリティアップ系のお守りプロンプト。初心者はとりあえず入れとけってやつ。
手軽に絵が安定するかわりに、よくあるAI画像の顔に収束する。
使わないで済むならそっちの方が良い。

お好みで入れてもいいやつ

beautiful detailed girl, beautiful detailed eyes, ultra detailed,
そのまんま綺麗なディティールで出力というプロンプト。
わりと効果あると思います。
目のディティールアップをすると目がアップになる効果もあるっぽいです。

high quality, hyper quality,
効果はあるけど、こういうプロンプトまで全部入れてたら長くなりすぎるかも。

full color
そのままの意味。
私はネガティブプロンプト側にmonochromeを入れてるので基本的に入れてないです。

very high resolution, large filesize
高解像度とかでかいファイルサイズ=美麗な画像じゃね?という発想。
個人的には全然使ってない。

モデルやシード値そのままでプロンプトだけ変更した出力結果が以下の画像です。

プロンプト
1girl,
ネガティブ
なし
プロンプト
best quality, masterpiece, beautiful detailed eyes, 1girl,
ネガティブ
なし

よく使うネガティブプロンプト

超基本のネガティブプロンプト

worst quality, low quality
低クオリティを出力しないようにするためのネガティブプロンプト。
とりあえず入れとけってやつ。

好みで入れてもいいやつ

monochrome
ネガティブに入れることでモノクロを出力しなくなるので、色鮮やかな画像が生成される。
逆にモノクロ画像を出したい時とかは困るので外しましょう。

lowres, normal quality
低解像度、普通のクオリティを出力しないようにする。
とりあえず入れといていいと思います。

bad hand, bad anatomy, missing fingers
表記は様々ですが奇形にならないようにそれっぽいワードをチョイス。
ただ入力しといても普通にダメな出力してくるので、ネガティブプロンプトだけじゃ限界あり。

error, jpeg, blurry
どれくらい効果あるかわからないけどお守りで入れてもいいかも?

ネガティブプロンプトのみ追加してどれくらい変わるか出力した結果。

プロンプト
1girl,
ネガティブ
なし
プロンプト
1girl,
ネガティブ
(worst quality:1.4), (low quality:1.4), (monochrome:1.1),

いろんなプロンプト

重要

nsfw
職場で見るのにふさわしくない内容を意味するワード。主にエログロ。
モデルによってエロ系が出やすいものや出にくいものがあるので、勝手にエロくなるモデルならネガティブプロンプトに入れる必要があります。
逆にエロに対応しているモデルで確実にエロ系を出したいならプロンプトに入れることになりますが、エロ系の出力結果の扱いは慎重に。

ただnsfwというのは概念がふわっとしているので、特にネガティブに入れる場合はお守り的な感覚。
実際に出力してみて例えば服を着ていない場合などは素直に服装をプロンプトで指定してあげるとか、下着が見えてるのが問題ならネガティブにunderwearなどの下着に関するワードを入れるといった具体的なものの方が圧倒的に効果があります。

クオリティ系

absurdres, highres
高解像度の~って意味らしい。
解像度でかい画像を出力したい時によくついてるやつです。

detailed
細部の書き込みが増えるワードです。
ultra detailed や insanely detailed などのバリエーションが使われることが多いです。

プロンプト
best quality, masterpiece, tree,
ネガティブ
(worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,
プロンプト
(ultra detailed:1.4), (insanely detailed:1.4), best quality, masterpiece, tree,
ネガティブ
(worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

epic
なんか壮大な感じにしてくれるみたい。
epicの有無しか差がなくても構図自体が大きく変わりました。
どっちが良いかは別問題ですが。

プロンプト
best quality, masterpiece, flower garden, (magnificent panorama view:1.3),
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,
プロンプト
best quality, masterpiece, flower garden, (magnificent panorama view:1.3), (epic:1.4),
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

4k, 8k, 16k
お守りで入れてみることもある。ぶっちゃけ別にいらない。
クオリティが実際に上がってるかは不明。
どちらかと言えば構図に影響してるって話も聞いたので試してみて邪魔なら消す方向で。

カメラ

low angle, from below, low position
どれもキャラクターを下から見上げるようなプロンプトです。
モデルによってもそれぞれ影響の強さが違いそうなので入れ替えて試してみると良いかも。
体感としてはfrom belowが一番それっぽい出力になることが多いです。
ライティング系で下から光を当てたい時にlight from belowみたいな入力した時に構図にめっちゃ影響出ちゃうので善し悪し。

プロンプト
best quality, masterpiece, 1girl, solo, (from below:1.4), full body,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres, bad hand,

high angle, from above, high position, bird’s eye view
どれも高い位置から見下ろすようなアングルになります。
from above や bird’s eye view は体感で効果強めな気がします。モデル次第かもしれませんが。
ただbirdの部分に反応して鳥が生成されることも多いので注意。
めっちゃ強めに補正すると抱き枕カバーとかによくある構図っぽくなる気がします。

プロンプト
best quality, masterpiece, 1girl, solo, (from above:1.1),
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres, bad hand,
プロンプト
best quality, masterpiece, 1girl, solo, (from above:1.8), lie on one’s back, hands up, on bed,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres, bad hand,

fisheye lens, fisheye
魚眼レンズで撮影したような画像を出力できる。
効果を強めると魚やレンズが描画されることが多いので扱いが難しいです。
出力結果を見つつどっちを使うか選べば良さそう。

プロンプト
(ultra detailed:1.4), (insanely detailed:1.4), best quality, masterpiece, bedroom, (fisheye lens), (fisheye:1.2), (high angle shot:1.4), 1girl, solo, upper body,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

dutch angle shot
斜めアングルになるプロンプト。
かけすぎると人の体勢がたまに変な感じになるけど注意していれば普通に使える。

プロンプト
best quality, (beautiful detailed eyes), school, (dutch angle shot:1.4), from side, 1girl, solo, standing,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

構図

1girl, 1boy
超基本のプロンプトです。
それぞれ女性と男性が1人映っている構図になります。年齢問わず使えます。
表記の由来などは割愛しますが、めちゃくちゃよく使うので初心者がまず最初に覚えるプロンプトです。

solo
画面のキャラクターが1人であることを強調するプロンプトです。
1人だけ出力したい時にはとりあえず入れておくと良さそう。

2girls, 2boys
2人を出力するためのプロンプトです。
人数を増やしたい場合は数字を弄ってください。

multiple girls
人数を指定せず複数人が生成されるプロンプトです。
もちろんboysでも可。

no humans
人が生成されないようにするプロンプトです。
背景画像だけ生成したい場合や、物だけにフォーカスして生成したい場合に便利です。
ネガティブにhumansを入れるのもアリ。

yuri
いわゆる百合になる。

立ちポーズ

standing
立っているポーズの基本となるプロンプト。
とりあえず立っている状態にするなら入れとけってやつ。

プロンプト
beautiful detailed eyes, best quality, masterpiece, 1girl, solo, standing, full body,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

walking
歩いているポーズです。
当然立っているポーズになりますが、ある程度全身が映るようなカメラ位置になることが多いです。

プロンプト
beautiful detailed eyes, best quality, masterpiece, 1girl, solo, (walking),
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

running
走っているポーズです。
モデルによって効き方が結構違うかも?

プロンプト
beautiful detailed eyes, best quality, masterpiece, 1girl, solo, (running:1.4),
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

contrapposto
なんかそれっぽい立ちポーズを取ってくれるプロンプトです。

プロンプト
beautiful detailed eyes, best quality, masterpiece, 1girl, solo, (contrapposto:1.2),
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

arched back
背中を反らすみたいな意味のプロンプトです。
正確には立っている状態を表しているわけではありませんが、単体で使うとだいたい立っている状態になると思います。

プロンプト
beautiful detailed eyes, best quality, masterpiece, 1girl, solo, (arched back:1.2), shirt, skirt,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

座るポーズ

sitting
座るプロンプトの基本。
座り方の幅が広いからちょっと使いにくいかもしれない。
crossed legs を追加すると足を組んでくれます。

プロンプト
best quality, masterpiece, 1girl, solo, sitting,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,
プロンプト
best quality, masterpiece, 1girl, solo, sitting, crossed legs,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

wariza
いわゆる女の子座りのポーズ。
結構有用な気がします。

プロンプト
best quality, masterpiece, 1girl, solo, wariza,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

seiza
そのまま正座のポーズ。
成功率はあんまり高くなくて、女の子座りっぽくなることも多い。

プロンプト
best quality, masterpiece, 1girl, solo, seiza,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

yokozuwari
説明難しいですが、画像みたいなポーズです。
座る系プロンプトの中で体感一番難しい気がします。全然安定しないです。
安定するプロンプトがあれば教えてください。

プロンプト
best quality, masterpiece, 1girl, solo, yokozuwari,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

hugging own legs
いわゆる体育座りのポーズだけど成功率低め。
ちょっとむずい。

プロンプト
best quality, masterpiece, 1girl, solo, hugging own legs,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

indian style, lotus position
いわゆる胡坐のポーズです。
成功率低めでちゃんと足を組んでくれなかったり、足同士が融合しちゃうことも多いので難しいです。
lotus position は正確にはちょっと違うみたいですが、実質ほぼ胡坐が出力されると思います。
sittingと併用した方が安定性が増す気はします。

プロンプト
best quality, masterpiece, 1girl, solo, indian style,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

squat
しゃがんでる状態を表すプロンプト。
お尻を付けて座って欲しくない時に重宝する。

プロンプト
best quality, masterpiece, 1girl, solo, squat,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

kneeling
膝をつくポーズのプロンプトです。
膝をついて座る場合と膝立ちのパターンがあるので、sittingと併用するといいかも?
one knee だと片膝立ちになります。

プロンプト
best quality, masterpiece, 1girl, solo, kneeling,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,
プロンプト
best quality, masterpiece, 1girl, solo, one knee,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:1.1), lowres,

その他のポーズ

handstand
逆立ちポーズです。
モデルにもよりますが成功率かなり低いので、プロンプトだけで制御するのは難しいかも。

髪につてい

red hair
髪色を赤にします。
もちろん色の部分を書き変えれば別の色になります。

very short hair
ショートヘアより更に短く。

プロンプト
best quality, masterpiece, 1girl, solo, very short hair,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:0.6), lowres, bad hand, badhandv4,

short hair
ショートヘア。

プロンプト
best quality, masterpiece, 1girl, solo, short hair
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:0.6), lowres, bad hand, badhandv4,

medium hair
肩くらいの長さの髪。

プロンプト
best quality, masterpiece, 1girl, solo, medium hair,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:0.6), lowres, bad hand, badhandv4,

long hair
ロングヘアです。

プロンプト
best quality, masterpiece, 1girl, solo, long hair,
ネガティブ
EasyNegative, (worst quality:1.4), (low quality:1.4), (monochrome:0.6), lowres, bad hand, badhandv4,

更新作業中……