![見出し画像](https://assets.st-note.com/production/uploads/images/132940543/rectangle_large_type_2_0ff1e0fa90d4fae73778bd3c640ec3b1.png?width=1200)
SDXLでのネガティブプロンプト大実験!! AUTOMATIC1111「Textual Inversion」でのembeddingを学ぶ
SDXLでの画像生成で「ネガティブプロンプト」使ってますか?
もちろん「worst quality」といったネガティブプロンプトの単語での指定は行いますが、どうしても長くなっていきます。
AUTOMATIC1111では「Textual Inversion」というembedding(埋め込みの重み付け)追加ファイルを使うことで簡単に有効なネガティブプロンプトを指定できるようになります。
たとえばこちらのモデル
blue_pencil-XL-v5.0.0.safetensors [a6023e20de]
「1girl」による1発出しです。シード「3538708546」でいつでも会えます。
![](https://assets.st-note.com/img/1709577415607-jBDL29haqi.png)
"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」ボタンを押します。それでも見えない時はディレクトリを確認しましょう。
![](https://assets.st-note.com/img/1709578105177-ICratqGgSj.png?width=1200)
ネガティブプロンプトのテキスト入力エリアをクリックして、
negativeXL_A negativeXL_B negativeXL_C negativeXL_D
それぞれを入れて実験していきましょう。
途中から複数混ぜたり、順番を入れ替えたりしていますが、
結論から言うと
・順番に影響がある
・混ぜることはできる
・複数のembeddingsを混ぜるとしても2つぐらい?
という特性を学ぶことができました。これは知見ですね!
negativeXL_A(Standard)
![](https://assets.st-note.com/img/1709578259941-pXHEUgYWsp.png)
negativeXL_B(Realistic)
![](https://assets.st-note.com/img/1709578332672-3qq93HaOqb.png)
negativeXL_C (Anime like)
![](https://assets.st-note.com/img/1709578378674-HRH92RVWVC.png)
negativeXL_D(fixed)
![](https://assets.st-note.com/img/1709578424533-RIMBpZAEkr.png)
negativeXL_A, negativeXL_B
![](https://assets.st-note.com/img/1709578696811-ZG2bfQsUSX.png)
negativeXL_A, negativeXL_C
![](https://assets.st-note.com/img/1709578750752-iDStpPbNHI.png)
このかたはよく見かけます。顔の左側の謎のオブジェクトが気になります
negativeXL_A, negativeXL_D
![](https://assets.st-note.com/img/1709578564460-BnegOsKlPA.png)
negativeXL_B, negativeXL_C
![](https://assets.st-note.com/img/1709578787531-RlbVdJa4eK.png)
negativeXL_B, negativeXL_D
![](https://assets.st-note.com/img/1709578827226-jfrb5pqfok.png)
negativeXL_C, negativeXL_D
![](https://assets.st-note.com/img/1709578857592-VwO3OzNij5.png)
negativeXL_A, negativeXL_B, negativeXL_C
![](https://assets.st-note.com/img/1709578906629-Ivy1F7AgYJ.png)
negativeXL_A, negativeXL_B, negativeXL_D
![](https://assets.st-note.com/img/1709579127966-VvRfUvPrck.png)
negativeXL_A, negativeXL_C, negativeXL_D
![](https://assets.st-note.com/img/1709579084526-Rdoo2gYPGu.png)
negativeXL_B, negativeXL_C, negativeXL_D
![](https://assets.st-note.com/img/1709578933285-6qaWC91LBP.png)
negativeXL_A, negativeXL_B, negativeXL_D
![](https://assets.st-note.com/img/1709579018437-Z60NVkQhQe.png)
negativeXL_A, negativeXL_C, negativeXL_D
![](https://assets.st-note.com/img/1709578984592-mxAbDjBCZO.png)
negativeXL_A, negativeXL_B, negativeXL_C, negativeXL_D
![](https://assets.st-note.com/img/1709578730211-K3XWfCHsQj.png)
また会えましたね
Prompt Matrixをつかおう
ちなみにこの作業は自動化できます。
ネガティブプロンプトに「|」パイプで繋いで表現すると
「negativeXL_A|negativeXL_B|negativeXL_C|negativeXL_D」
組み合わせで画像を生成できます。
Prompt matrixスクリプトを使うとこんな感じ。
ネガティブプロンプトにも反映できます。
![](https://assets.st-note.com/img/1709585699382-mKJ8MFK1IL.png?width=1200)
AUTOMATIC1111の標準機能です。
しかしここから先の実験は「語順の入れ替えです」。
手作業で進めます。
さらに negativeXL_C, negativeXL_B
ネガティブプロンプトもプロンプトなので逆転させると重み付けも変わります
![](https://assets.st-note.com/img/1709579506879-xW9LSLzdFK.png)
この系はイラストレーションとしては味があっていいですが
negativeXL_D, negativeXL_A
![](https://assets.st-note.com/img/1709579599877-x571cnAOUs.png)
こういう冷たい目が好きな人にはいいですね
negativeXL_D, negativeXL_A, negativeXL_B, negativeXL_C
![](https://assets.st-note.com/img/1709579705192-ZD3b0ICW0Z.png)
耳が破綻している上に目も緑でちょっと不気味なかんじです
やりすぎは良くないですね!
まとめ
「1girl」でシードを固定して、同じ絵が出るはずなのに、ネガティブプロンプトだけでかなり多様な表現ができました。
・順番に影響がある
・混ぜることはできる
・複数のembeddingsを混ぜるとしても2つぐらい?
という特性を学ぶことができました。これは知見ですね!
皆さんもネガティブプロンプト、しっかりつかっていきましょう
最後にネガティブプロンプト指定前の「1girl」をもう一度。
![](https://assets.st-note.com/img/1709577415607-jBDL29haqi.png)
ネガティブプロンプトひとつとっても、とても奥深いお話でした!
メンバーオンリー画像投稿コーナー
Stable Diffusion - ControlNet入門はこちらから
img2img 入門シリーズはこちらから。
※本ブログは発売予定の新刊書籍に収録される予定です。期間限定で先行公開中しています。
メンバー向けには先行してメンバーシップ版をお届けします
Stable Diffusionをお手軽に、しかもめっちゃ丁寧に学べてしまう情報をシリーズでお送りします。
メンバーは価値あるソースコードの入手や質問、依頼ができますので、お気軽にご参加いただければ幸いです!
この下にGoogle Colabで動作する「AUTOMATIC1111/Stable Diffusion WebUI」へのリンクを紹介しています。
メンバーシップ向けサポート掲示板はこちら!応援よろしくお願いします!
ここから先は
応援してくださる皆様へ!💖 いただいたサポートは、より良いコンテンツ制作、ライターさんの謝礼に役立てさせていただきます!