Stable Diffusionは、テキストでプロンプトを入力し、画像が生成できる技術です。
通常プロンプトに反映したい要素を入力して画像を生成しますが、それだけだと低画質だったり、描写が崩れたりしてしまうことがあります。
そのため、除外したい要素はネガティブプロンプトに入力します。
プロンプトとネガティブプロンプトをうまく調整することで、クオリティの高い画像生成が可能です。
今回はこのネガティブプロンプトの入力例やコツについてご紹介します。
ネガティブプロンプトとは?
ネガティブプロンプトは、画像に反映させたくない要素を制御できるものです。
例えばよくわからない文字やロゴが入っていたり、指や腕が数本あったりする画像は、ネガティブプロンプトで除外できる可能性があります。
また、Textual Inversionを使えば、短いプロンプトで複数のネガティブ要素を除外することも可能。
ネガティブプロンプトをうまく調整することで、綺麗な画像を生成できる可能性が上がります。
ネガティブプロンプトの入力例
それでは実際にネガティブプロンプトの入力例をご紹介します。
低画質を除外するネガティブプロンプト
こちらは画質の劣化を抑えるためによく入力されているネガティブプロンプトです。
これらを入力することで、高画質の画像が生成されやすくなります。
jpeg artifacts | JPEGアーティファクト |
lowers | 低解像度 |
low-res | 低解像度 |
worst quality | 最低品質 |
low quality | 低クオリティ |
normal quality | 通常品質 |
体や顔が崩れるのを除外するネガティブプロンプト
被写体の特定の部位が崩れてしまうのを抑えるネガティブプロンプトです。
基本は「要素+部位」という形で入力すれば、ある程度プロンプトとして成立します。
非常に多くの部位が存在し、人によって入力例がさまざまなので、よく入力されているものだけピックアップしてご紹介します。
もし載ってない部位が崩れてしまう場合は、「要素+部位」の形で入力してみてください。
例)bad ears,bad mouth,bad eyes
poorly drawn | 下手な~ | poorly drawn head poorly drawn face poorly drawn arms poorly drawn hands poorly drawn fingers poorly drawn legs poorly drawn limb poorly drawn anatomy |
bad | 悪い~ | bad face bad eyebrows bad arms bad hands bad fingers bad legs bad limb bad anatomy |
partial | 部分的な~ | partial head partial face partial arms partial hands partial fingers partial legs partial limb partial anatomy |
wrong | 間違った~ | wrong head wrong face wrong arm wrong hand wrong finger wrong leg wrong limb wrong anatomy |
mutated, deformed, disfigured | 変異・変形した~ | mutated head mutated face mutated arms mutated hands mutated fingers mutated legs mutated limb mutated anatomy |
missing | 欠けた~ | missing head missing face missing arms missing hands missing fingers missing legs missing limb missing anatomy |
extra | 余分な~ | extra head extra face extra arms extra hands extra fingers extra legs extra limb extra anatomy |
fused | 融合した~ | fused head fused face fused arms fused hands fused fingers fused legs fused limb fused anatomy |
malformed | 奇形な~ | malformed head malformed face malformed arms malformed hands malformed fingers malformed legs malformed limb malformed anatomy |
abnormal | 異常な~ | abnormal head abnormal face abnormal arms abnormal hands abnormal fingers abnormal legs abnormal limb abnormal anatomy |
disfigured | 傷ついた~ | disfigured head disfigured face disfigured arms disfigured hands disfigured fingers disfigured legs disfigured limb disfigured anatomy |
floating | 浮いている~ | floating head floating face floating arms floating hands floating fingers floating legs floating limb floating anatomy |
disconnected | 切断された~ | disconnected head disconnected face disconnected arms disconnected hands disconnected fingers disconnected leg disconnected limb disconnected anatomy |
inaccurate | 不正確な~ | inaccurate head inaccurate face inaccurate arms inaccurate hands inaccurate fingers inaccurate legs inaccurate limb inaccurate anatomy |
fewer digits extra digits | 指が5本より少ない~ 指が5本より多い~ | fewer digits extra digits |
ugly | 醜い | ugly |
long | 長い~ | long neck long body long fingers |
ロゴやテキストを除外するネガティブプロンプト
画像にロゴやテキストが入ってしまうのを除外できるプロンプトです。
logo | ロゴ |
signature | 署名 |
text | テキスト |
watermark | 透かし |
username | 名前 |
artist name | アーティスト名 |
画像の分割を除外するネガティブプロンプト
画像が分割したり、切れてしまうのを除外するプロンプトです。
multiple views | 画像内に被写体が2人以上 |
cropped | トリミングされた画像 |
cross section | 断面図 |
その他のよく使われているネガティブプロンプト
error | 問題がある |
monochrome | 単色 |
grey scale | グレースケール |
ネガティブプロンプトを入力するときのコツは?
上記でコピペ用とか作っておいてあれですが、入れすぎないのが一番のコツです。
以前は可能な限り詰め込み画像生成していたのですが、プロンプトに入力した要素が反映されなかったり、同じような画像が生成されたりすることがありました。
おそらく入れすぎて生成できる画像が限定的になってしまったからだと思われます。
ある程度はモデルの生成能力を信頼して、ネガティブプロンプトは最低限にとどめると綺麗な画像を生成しつつ、多様性も失わずに済みます。
後述するTextual Inversionを使えば入力も簡単になるので、組み合わせて使ってみてください。
Textual Inversion(embeddings)でネガティブ要素を抑える方法
Textual Inversionはモデルに対して追加の学習データを適用できるものです。
ネガティブ要素を学習したデータを追加することで、短いプロンプトで複数のネガティブ要素を除外することができます。
なお、Textual Inversionのことをembeddingsと呼ぶこともありますが、この記事ではTextual Inversionで統一します。
Textual Inversionの使い方
まずTextual Inversionの使い方について解説します。
使いたいTextual Inversionのデータをダウンロードしたら、以下のパスにあるフォルダに入れます。
stable-diffusion-webui\embeddings
Stable Diffusion Web UIを起動してTextual Inversionタブに行けば、ダウンロードしたデータが表示されます。
ネガティブプロンプト入力欄にカーソルがある状態でデータをクリックすると、Textual Inversionを使うためのプロンプトが自動で入力されます。
この状態で画像を生成すれば、Textual Inversionが適用されます。
おすすめのTextual Inversion
EasyNegative
ネガティブプロンプトで検索すると必ず名前が出てくるくらい有名なTextual Inversionです。
EasyNegativeはCounterfeitというモデルで学習されたもので、公式にて検証画像がアップされています。
Counterfeit以外のモデルで効果があるか不明と書かれていますが、AbyssOrangeMix2やanything-v4.0でもしっかり機能しているようです。
ダウンロード
bad_prompt
こちらもネガティブプロンプトを学習させて、1つの単語で使用できるようにしたものです。
公式では強度を0.8にして使うよう推奨しています。(bad_prompt:0.8)
Version2は開発中と書かれていますが、通常版より優れているそうです。
ファイル自体はどちらも軽いので、両方試してみてもいいかもしれません。
ダウンロード
Deep Negative
Deep Negativeは不完全な人体構造、配色、空間などを学習したものです。
そのため、textやlogoなど別のネガティブプロンプトと合わせて使用することが推奨されています。
なお、使用するバージョンによってそれぞれ効果が異なります。
75T | 一番使いやすいバージョンで副作用がほとんどない。ただ劇的な変化もない |
64T | すべてのモデルで機能。副作用が出やすいため、重みを変更して使用が推奨されている [( NG_DeepNegative_V1_64T :0.9) :0.1] |
32T | 便利だけど多すぎる ※翻訳の意味がよくわかりませんでした |
16T | 悪い解剖学は減るが、醜い顔を生成する可能性がある |
4T | 悪い解剖学は減るが、光と影に少し影響する場合がある |
2T | T75と同様に「使いやすい」が効果は少し |
ダウンロード
badhandv4
手の崩れを抑えてくれるTextual Inversionです。
似たようなTextual Inversionは多数ありますが、個人的には現状こちらが一番効果ある印象です。
badhandv4 - AnimeIllustDiffusion - badhandv4 | Stable Diffusion Embedding | Civitai
他にも実写系や手に特化したTextual Inversionなど、さまざまな種類があります。
それぞれライセンスなども異なるため、生成したい画像に合わせて使ってみてください。
Textual Inversionを使うときの注意点
Textual Inversionを使うと便利ではありますが、ネガティブな要素をピンポイントで除外できるわけではありません。
そのため、除外できないネガティブ要素については、個別に入力する必要があります。
またこちらも大量に使用すると一部のプロンプトが効きにくくなることもあります。
ですので、画像を生成しながら少しずつ調整してみてください。
使えるネガティブプロンプトまとめ
今回は使えるネガティブプロンプトやコツ、おすすめのTextual Inversionについてご紹介しました。
ネガティブプロンプトは綺麗な画像を生成するために外せない重要な要素です。
少し入力のバランスや調整は難しいですが、理想の画像を目指していろいろ試行錯誤してみてください。