見出し画像

SDXLでのネガティブプロンプト大実験!! AUTOMATIC1111「Textual Inversion」でのembeddingを学ぶ

SDXLでの画像生成で「ネガティブプロンプト」使ってますか?

もちろん「worst quality」といったネガティブプロンプトの単語での指定は行いますが、どうしても長くなっていきます。
AUTOMATIC1111では「Textual Inversion」というembedding(埋め込みの重み付け)追加ファイルを使うことで簡単に有効なネガティブプロンプトを指定できるようになります。

たとえばこちらのモデル
blue_pencil-XL-v5.0.0.safetensors [a6023e20de]

「1girl」による1発出しです。シード「3538708546」でいつでも会えます。

地味で可愛い町娘って感じですね!好き

"1girl"
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 3538708546, Size: 512x512, Model hash: a6023e20de, Model: blue_pencil-XL-v5.0.0, Version: v1.6.0

SDXLモデル「CounterfeitXL」と共に配布されている「negativeXL」です

https://civitai.com/models/118406/counterfeitxl

https://huggingface.co/gsdf/CounterfeitXL/tree/main/embeddings

4種類公開されており、
A:Standard
B:Realistic
C:Anime like
D…fixed
という説明があります。
safetensorsファイルをダウンロードしてインストールして確認していきます。

ディレクトリは、AICUが配布しているColabノートブックの場合は
sd/stable-diffusion-webui/embeddings/ の下に配置してください。
ローカル環境:stable-diffusion-webui/embeddings/
Stability Matrixの方は、
Data/Packages/stable-diffusion-webui/embeddings/
になります。

正しくインストールされていると
txt2imgタブの「Textual Inversion」のタブに現れます。
見えない時は「Refresh」ボタンを押します。それでも見えない時はディレクトリを確認しましょう。

ネガティブプロンプトのテキスト入力エリアをクリックして、

negativeXL_A negativeXL_B negativeXL_C negativeXL_D
それぞれを入れて実験していきましょう。

途中から複数混ぜたり、順番を入れ替えたりしていますが、
結論から言うと

・順番に影響がある
・混ぜることはできる
・複数のembeddingsを混ぜるとしても2つぐらい?

という特性を学ぶことができました。これは知見ですね!


negativeXL_A(Standard)


negativeXL_B(Realistic)

negativeXL_C (Anime like)

negativeXL_D(fixed)



negativeXL_A, negativeXL_B


negativeXL_A, negativeXL_C

このかたはよく見かけます。顔の左側の謎のオブジェクトが気になります


negativeXL_A, negativeXL_D



negativeXL_B, negativeXL_C






negativeXL_B, negativeXL_D




negativeXL_C, negativeXL_D




negativeXL_A, negativeXL_B, negativeXL_C



negativeXL_A, negativeXL_B, negativeXL_D


negativeXL_A, negativeXL_C, negativeXL_D


negativeXL_B, negativeXL_C, negativeXL_D


negativeXL_A, negativeXL_B, negativeXL_D


negativeXL_A, negativeXL_C, negativeXL_D


negativeXL_A, negativeXL_B, negativeXL_C, negativeXL_D


また会えましたね

Prompt Matrixをつかおう

ちなみにこの作業は自動化できます。
ネガティブプロンプトに「|」パイプで繋いで表現すると
「negativeXL_A|negativeXL_B|negativeXL_C|negativeXL_D」

組み合わせで画像を生成できます。

Prompt matrixスクリプトを使うとこんな感じ。
ネガティブプロンプトにも反映できます。

AUTOMATIC1111の標準機能です。

しかしここから先の実験は「語順の入れ替えです」。
手作業で進めます。

さらに negativeXL_C, negativeXL_B

ネガティブプロンプトもプロンプトなので逆転させると重み付けも変わります

この系はイラストレーションとしては味があっていいですが

negativeXL_D, negativeXL_A


こういう冷たい目が好きな人にはいいですね


negativeXL_D, negativeXL_A, negativeXL_B, negativeXL_C


耳が破綻している上に目も緑でちょっと不気味なかんじです

やりすぎは良くないですね!

まとめ

「1girl」でシードを固定して、同じ絵が出るはずなのに、ネガティブプロンプトだけでかなり多様な表現ができました。

・順番に影響がある
・混ぜることはできる
・複数のembeddingsを混ぜるとしても2つぐらい?

という特性を学ぶことができました。これは知見ですね!
皆さんもネガティブプロンプト、しっかりつかっていきましょう

最後にネガティブプロンプト指定前の「1girl」をもう一度。

地味な子は地味なりに味がありますね

ネガティブプロンプトひとつとっても、とても奥深いお話でした!


メンバーオンリー画像投稿コーナー

Stable Diffusion - ControlNet入門はこちらから

img2img 入門シリーズはこちらから。

※本ブログは発売予定の新刊書籍に収録される予定です。期間限定で先行公開中しています。
メンバー向けには先行してメンバーシップ版をお届けします
Stable Diffusionをお手軽に、しかもめっちゃ丁寧に学べてしまう情報をシリーズでお送りします。
メンバーは価値あるソースコードの入手や質問、依頼ができますので、お気軽にご参加いただければ幸いです!

この下にGoogle Colabで動作する「AUTOMATIC1111/Stable Diffusion WebUI」へのリンクを紹介しています。
メンバーシップ向けサポート掲示板はこちら!応援よろしくお願いします!

ここから先は

0字
この記事のみ ¥ 300

応援してくださる皆様へ!💖 いただいたサポートは、より良いコンテンツ制作、ライターさんの謝礼に役立てさせていただきます!