Stable Diffusionのプロンプトには様々な機能や書き方があります。
その1つがPrompt Editing。
プロンプトを生成途中で切り替える機能です。
Prompt Editingは[from:to:when]の形式で記述します。
whenが切り替えタイミングの指定で、ステップ数またはステップ数の割合を指定します。
たとえば20stepsで[A:B:10]と記述すると、
1~10ステップではA、11~20ステップではBを生成するようになります。
ステップ数の割合でも指定ができるので、[A:B:0.5]でも同様の意味合いになります。
Prompt Editingの詳細は以下サイト「Features · AUTOMATIC1111/stable-diffusion-webui Wiki · GitHub」に掲載されてます。
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Features#prompt-editing
とても面白い機能なのですが、試しに裸オーバーオールを作ってみたところ、かなり試行錯誤が必要になりました。
ということで、せっかくなので、裸オーバーオールが良い感じに生成できるまでの流れをそのまま掲載しておきます。
設定
デフォルトは以下のようにしました。普通にオーバーオール着てるだけ。
Prompt:
(best quarity:1.2), masterpiece,
1girl, solo, ultra cute kawaii, detailed cute face and eyes,
smile, standing, hands in pocket,
overall,
cowboy shot, outdoor
Negative prompt:
(worst quality, low quality:1.4), (EasyNegative:1.2), negative_hand-neg, (text, watermark, signature, speech bubble, bubble, 2koma, panel layout, multiple views:1.2)
Steps: 20, Sampler: DDIM, CFG scale: 7, Seed: 1798537570, Size: 512×512, Model hash: d3cd6ac55a, Model: none_hassakuHentaiModel_v12, Clip skip: 2, Version: v1.2.1
生成の流れ
とりあえずnudeを追加してみただけ。なぜかアウター+シャツ+デニムパンツに。
nudeをtoplessに変更。シャツだけ消えました。
toplessをno shirtに変更。振り出しに戻りました。
no shirtを消して、overallをoverall onlyに変更。ほぼ変化なし。服装に対してonlyは効きづらそうです。
overall onlyをfusion of nude and overallに変更。オーバーオール要素が消えてスポーツウェアみたいな格好になりました。fusion ofも効きづらそうです。
fusion of nude and overallを[overall:naked:0.5]に変更。いまいちPrompt Editingの効果は出てません。
nsfwを追加して、[overall:naked:0.5]を[no wearing:wearing blue dungarees:0.1]に変更。記述する単語のパターンや重みを色々変えて試してたところ、この段階で、「hands in pocketのせいでアウターが生成されているのでは?」という疑問が。
hands in pocketを消して、[no wearing:wearing blue dungarees:0.1]を[no wearing:wearing overall:0.1]に変更。アウターは生成されなくなりましたが、相変わらずシャツは消えません。
もしかしてこのSeedだけシャツが消えてないのでは?と考えて、batch size:6で生成したところ、思っていたよりがっつり脱いじゃってました。
nsfwを削除。服装の箇所は[no wearing:wearing overall:0.1]のまま。nsfwが悪さをしていたようです。
数パターン試して、[no wearing:wearing overall:0.1]を[naked:blue dungarees:0.3]に変更。
2枚目は一応成功しているものの、色味が白くなってますし、6枚中1枚では成功率がだいぶ低いです。
このあたりで、「Prompt Editingが上手く効いていない気がする」「nakedとblue dungareesが両方とも重み0.3で反映されているような気がする」と感じ始めました。
重みを少し増して、[naked:wearing blue dungarees:0.4]に変更。脱ぎすぎてるし、オーバーオールの形もおかしくなってます。そもそも色味がまったく反映されてません。というか、肌の色に影響を受けている気がします。
[naked:wearing blue dungarees:0.4]を消して、nude, (blue dungarees)に変更。6枚中3枚が裸オーバーオールになりました!
Prompt Editingの機能を使わずに裸オーバーオール作れるんかい!
試しにサイドからも。プロンプトにlarge breastとfrom sideを足しただけ。こちらは服の形状を無視すると6枚中5枚が成功してます。
一応成功したものの、Prompt Editingの機能を使ってみたかったので再度。
今度は順番を入れ替えて、[blue dungarees:naked:0.3]としてみたところ6枚中4枚が成功!
サイドでも試したところ、6枚中5枚で成功しました。
まとめ
・Prompt Editing([from:to:when])はfromとtoの順番も重要
・裸オーバーオールはnude, (blue dungarees)でも生成可能
(nudeとblue dungareesの重さはモデルデータによって異なる場合があります)
今回の検証では、アップスケールしたり微調整を行ったところ、Prompt Editingの方はシャツが生成されてしまう確率が高く、nude, (blue dungarees)の方が成功率が高かったです。
Prompt Editingは、冒頭のサイトにあるように、男性と女性を混ぜる、のような場合にはより効果を発揮するようです。場合によって使い分けましょう。
最後に、成功した正面とサイドの画像をそれぞれ1枚ずつアップスケールしたものも掲載しときます。
コメント