
画像生成AIのhow to記事です。
今回はSDWebUIで使える「NegPiP」の使い方についてご紹介します。
NegPiPとは?何ができるの?
NegPiPは、プロンプト内で特定のプロンプトをネガティブプロンプトとして使える拡張機能です。
逆にネガティブプロンプト内でプロンプトを使うこともできます。
具体的に何ができるかというと、ネガティブに入力しただけじゃ除外できない要素が除外できたりします。
例えばテニスユニフォームを生成した場合、高確率でテニスラケットが生成されます。
ネガティブでtennis racketを除外しようとしてもあまり効果がありません。
※ネガティブにtennis racketを入れて生成した画像10枚

また重みを上げてもラケットが消えず、他の要素に影響して画像のクオリティが下がってしまう可能性があります。
※ネガティブに(tennis racket:1.6)で生成

NegPiPを有効化して、プロンプト内でtennis racketの重みを下げると、比較的綺麗にtennis racketが除外できます。
※プロンプトに(tennis racket:-1.2)

こんな感じでネガティブだけじゃ消せない要素を綺麗に消したりできます。
NegPiPのインストール
Extensions→Install from URLにURLを入力してinstallをクリックします。

UIを再起動してtxt2imgタブにNegPiPがあればインストールは完了です。

NegPiPの使い方
まずNegPiPにチェックを入れて有効化します。

あとはプロンプト内に除外したいプロンプトを(prompt:-1)の形で入力します。
重みで効果の強さやクオリティが変わるようです。

これで生成すると入力したプロンプトが反映され、特定の要素を除外したりできます。

NegPiPの影響
NegPiPを使用すると少しクオリティに影響します。
以下同じシード値で生成したものですが、テニスラケットは消せているものの、NegPiPオンの画像は若干描写が甘いです。
左:NegPiPあり 右:NegPiPなし

hires.fixを使うと結果は変わっていますが、そこまで違和感なく生成できています。
左:NegPiPあり 右:NegPiPなし

重みの値にもよると思うので、この辺りは調整して使ってみてください。
ADetailerと併用
ADetailerと一緒に使いたい場合は、Settings > ADetailerから「Script names to apply to ADetailer (separated by comma)」と書かれたテキストボックスの末尾に「,negpip」を追加する必要があるそうです。
forgeだとデフォルトで追加されているみたいなので、この操作は不要です。

モデルや生成内容によって、意図しないものが生成されるシーンは多いです。
そういった場合にNegPiPを使えば、理想の画像が生成できるようになります。
シンプルな機能ですが非常に便利なのでぜひ使ってみてください。
以上SDWebUIの拡張機能「NegPiP」の使い方についてご紹介しました。

