Stable Diffusionを使って画像生成をする際、「意味の矛盾するプロンプトを組み合わせて画像を生成したいけど、うまく画像生成ができなくて困る!」と感じることはありませんか?
例えば、一部に雲がかかっている晴れ空の画像を生成したいときは、「曇り空」と「晴れわたる空」のプロンプトを組み合わせる必要がありますし、山と海が同時に写っている画像を生成したいときは、「山」のプロンプトと「海」のプロンプトを組み合わせる必要があります。
今回は、このような反意のプロンプトを組み合わせて画像を生成したい方向けに、「Neutral Prompt」という拡張機能について解説していきたいと思います!
拡張機能「Neutral Prompt」とは?
まずは、「Neutral Prompt」が一体どのような拡張機能なのかについて、詳しく解説していきます。
「Neutral Prompt」とは、意味が相反する2つのプロンプトをうまく1枚の画像の中に調和させて反映することができる拡張機能です。
「Neutral Prompt」を導入すると、「AND_PREP」、「AND_SALT」、「AND_TOPK」という3つの接続詞をプロンプトに使うことができるようになります。
この3つの接続詞のうち、「AND_PREP」、または、「AND_SALT」を用いることで、意味が相反する2つのプロンプトを組み合わせても綺麗な画像を生成することができるようになります。
拡張機能「Neutral Prompt」の導入方法
続いて、「Neutral Prompt」の導入方法について、実際に画面をお見せしながら解説していきたいと思います。
「Neutral Prompt」の導入は、以下の手順を踏むことで可能となります。
- Stable Diffusionを起動し「Extensions」タブを開く
- 「Install fromURL」をクリックする
- 「URL for extension’s git repository」に「https://github.com/ljleb/sd-webui-neutral-prompt」と入力する
- 「Install」をクリックしてインストールを開始する
「Neutral Prompt」のインストールが完了したら、Stable Difffusionを再起動してください。
そうすることで、「Neutral Prompt」の使用が可能になります。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
拡張機能「Neutral Prompt」の使い方
次は、「Neutral Prompt」の具体的な使い方について解説していきたいと思います。
「Neutral Prompt」には、いくつか設定しなければならないパラメーターがあるので、まずは、それらのパラメーターについて1つずつ解説していきます。
「Neutral Prompt」を使用するにあたって設定が必要なパラメーターは以下のとおりです。
- 「CFG rescale」
- 「Prompt formatter」
- 「Prompt weight」
- 「Prompt type」
それでは、1つずつ見ていきましょう。
「CFG rescale」
こちらのパラメーターについてはあまり詳しい情報がないのですが、「0〜0.6」あたりの範囲で設定することをおすすめします。
それ以上の数値に設定してしまうと、画像の質が落ちてしまう可能性があるためです。
基本的には、デフォルトの「0」で問題ありません。
「Prompt formatter」
こちらは、強調したいプロンプトを入力する欄です。
意味が反する2つのプロンプトのうち、より強調したい方を入力してください。
「Prompt weight」
こちらは、強調したいプロンプトをどの程度強調するかを設定するパラメーターです。
「Prompt type」
こちらでは、プロンプトを強調する方法を選択することができます。
「Prompt type」には、以下の3種類がありますが、意味が相反する2つのプロンプトをうまく調和させたい場合は、「Perpendicular」、または、「Saliency-aware」を選択してください。
- 「Perpendicular」:「AND_PREP」を使うことができる
- 「Saliency-aware」:「AND_SALT」を使うことができる
- 「Semantic guidance top-k」:「AND_TOPK」を使うことができる
以上のパラメーターに関する知識を踏まえたうえで、次は具体的な使用手順の説明に入っていきたいと思います。
「Neutral Prompt」の使用手順は以下のとおりです。
- 反意のプロンプトを決める
- 「Neutral Prompt」を開く
- 「CFG rescale」を設定する
- 「Prompt formatter」を開き、強調したいプロンプトを入力する
- 「Prompt weight」を設定する
- 「Prompt type」を選択する
- 「Apply to prompt」をクリックする
それでは、以上の使用手順に従って、実際に画像を生成してみたいと思います。
まずは、反意のプロンプトを決めていきます。
今回は、「曇り空」と「晴れわたる」空の2つが調和された景色に女性が写っている画像を生成したいと思います。
そのため、「cloudy sky」「clear sky」という2つのテキストをプロンプトに使用することにします。
また、この2つのテキストのうち、強調する方は「clear sky」にしたいと思います。
反意のプロンプトが決まったら、次は「Neutral Prompt」を開きます。
「Neutral Prompt」を開いたら、「CFG rescale」を設定していきます。
今回は「0」に設定することにします。
続いて、「Prompt formatter」に強調したいテキストを入力します。
今回は、「clear sky」を強調したいので、それを入力します。
そうしましたら、次は「Prompt weight」の設定をします。
今回はデフォルトの「1」のままにしておきます。
最後に、「Prompt type」の選択に移っていきます。
ここでは、一旦、「Perpendicular」を選択することにしたいと思います。
以上の設定が完了したら、「Apply to prompt」をクリックします。
そうすることで、
AND_PREP clear sky :1
というテキストがプロンプトの欄に反映されます。
あとは、「AND_PREP」の前に、画像に反映したいその他の要素をプロンプトとして入力し、画像を生成するだけです。
今回は、以下のプロンプトにしました。
・プロンプト
1woman, black long hair, t-shirt, cloudy sky, AND_PREP clear sky :1
・ネガティブプロンプト
Easy negative, worst quality, bad body, poorly eyes
そして、生成された画像が以下になります。
また、先ほどは「Prompt type」を「Perpendicular」にしましたが、次は、「Saliency-aware」を選択して画像を生成したいと思います。
「Prompt type」を「Perpendicular」に設定したときと「AND_SALT」の部分以外は同じプロンプトを入力し、「Seed値」や「Netural Prompt」の設定も変えなかった場合、どのような変化が起こるか検証していきます。
「Seed値」
4047575476
・プロンプト
1woman, black long hair, t-shirt, cloudy sky, AND_SALT clear sky :1
・ネガティブプロンプト
Easy negative, worst quality, bad body, poorly eyes
すると、以下の画像が生成されました。
「Perpendicular」を選択した場合と、「Saliency-aware」を選択した場合で、プロンプトの反映のされ方は若干異なりましたが、どちらも、反意のプロンプトがうまく調和されて反映されているのがおわかりいただけるかと思います。
CFG Scaleについて
「Neutral Prompt」のパラメーターにも「CFG rescale」という用語が出てきましたが、そもそも「CFG Scale」とは一体どのようなものなのか、ここで簡単にご紹介したいと思います。
「CFG Scale」とは、「プロンプトの効果をどの程度生成する画像に反映するか」ということを意味しています。
つまり、「CFG Scale」の値を大きくするほど、プロンプトに入力した要素を画像に強く反映してくれるということです。
一方で、値を小さく設定するほど、Stable Diffusionはプロンプトに入力した要素をあまり反映せずに画像を生成します。
また、一般的に「CFG Scale」の値は「6〜11」ほどが適正であるとされています。
なぜなら、「CFG Scale」の値を大きくしすぎると画像の質が低下し、小さくしすぎると入力したプロンプトとは全く違う画像が生成されてしまうからです。
「Neutral Prompt」をネスト化する方法
「Neutral Prompt」はネスト化して複数の「Prompt type」を同時に使用することもできます。
ネスト化する方法は非常に簡単で、先ほど解説した、「Neutral Prompt」の使用手順のうち、
- 「Prompt formatter」を開き、強調したいプロンプトを入力する
- 「Prompt type」を選択する
- 「Apply to prompt」をクリックする
の工程を強調したいプロンプトと「Prompt type」を変更しながら行うだけです。
こうすることで、1つのプロンプト内に「AND_PREP」、「AND_SALT」、「AND_TOPK」を同時に使用することができるようになります。
まとめ
いかがでしたでしょうか?
今回は、反意のプロンプトを混ぜた画像を生成する際に役立つ拡張機能「Neutral Prompt」について解説してきました。
今回のポイントをまとめると、以下のようになります。
- 「Neutral Prompt」は意味が矛盾する2つのプロンプトを1枚の画像に調和させて反映することができる拡張機能
- 「Neutral Prompt」を使用する際には、「CFG rescale」、「Prompt formatter」、「Prompt weight」、「Prompt type」の設定が必要
- 「Neutral Prompt」の使用手順は、【反意のプロンプトを決める】→【「Neutral Prompt」を開く】→【「CFG rescale」を設定する】→【「Prompt formatter」を開き、強調したいプロンプトを入力する】→【「Prompt weight」を設定する】→【「Prompt type」を選択する】→【「Apply to prompt」をクリックする】である
- 「CFG Scale」は「プロンプトの効果をどの程度生成する画像に反映するか」ということを意味している
- 「Neutral Prompt」はネスト化して使用することが可能
「Neutral Prompt」は反意のプロンプトを調和させて画像を生成することができる便利な拡張機能です。
効果的に使うことで、より複雑な画像の生成も可能となります。
ぜひ活用してみてください!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい