wildcardsで生成にバリエーションを持たせよう
最近全然更新が出来ていなくて、なんかすいませんね。
こういうときはサクッと更新できるAI絵の話にしようそうしよう。
wildcards
大雑把に言うと「予め決めた範囲の中で、ランダムにPromptのキーワードを選択してくれる機能」のこと。
例えば髪色を「black / white / blonde / pink / red / blue」と規定しておくと、その中からランダムで選んでくれるようになり、逆に規定されていないgreenやyellowは出なくなる、ということ。
かなり前からあるExtensionsで、正直扱うのも今更って感じがするんだけど、個人的にすごいお世話になっているExtensionsでもあるので、紹介しておきましょう。
インストール
ここでも度々インストール手順を紹介しているので、これも今更ですが「Extensions」タブの「Install from URL」に
https://github.com/AUTOMATIC1111/stable-diffusion-webui-wildcards |
---|
と入れて「Install」です。
インストール成功後、Webuiを再起動するとタブ一覧の中に「Wildcards Manager」が出来ています。
wildcardsの使い方
このExtensionsは少し変わった仕組みでして、生成されたフォルダの中にワイルドカードとして規定する用語をまとめた.txtファイルが必要になります。
タブを開くとこんな感じ。
左側には説明と、私が使っているワイルドカードのリストが、右にはその中身が表示されています。
例えば画像でアクティブになっている「__haircolor__」というワイルドカードだと、私は絵に出力されてほしい色のリストのみを作成しています。
redやblackなどシンプルな色の名前のリストですね。
あとは画像生成時にPromptで「__haircolor__ hair」と入力すると、生成時に__haircolor__の箇所にランダムでredやblackなどの規定したワードが代入され、生成されるというわけです。
wildcardsの規定の仕方
先程の画像の左側に書かれていますが、
\stable-diffusion-webui\extensions\sd-dynamic-prompts\wildcards folder |
---|
をまず開きましょう。
このフォルダに右クリック→新規作成→テキストドキュメントで.txtファイルを作成し、任意の名前をつけます。
動作に影響するかわかりませんが、半角英数で名前をつけましょう。
そのテキストファイルに、シンプルにPromptでランダム出力されたいキーワードを入れていきましょう。
ワード1つにつき1行ですので、1つ入れたら改行します。
例えば乳のサイズを貧・普・巨の3種からランダムで出力させたい場合、breast.txt(ファイル名はなんでもいいけど)を作成し
breast,
small breast,
big breast,
という各Promptを1行につき1つ入れて保存します。
念のためwildcardsタブからbreastが認識されているのを確認します。
「Wildcards file」欄にある「__breast__」というのが、Prompt上で実際に使用するワイルドカードを代入させるキーワードになります。
ここまで準備が出来たら画像生成タブを開き、Promptで「__breast__」を入力します。
普通Promptはカンマで区切りますので、1 girl, __breast__, shirt, pants, standing…みたいなPromptにするわけですね。
そうすると生成時に、ランダムで__breast__の位置に
breast,
small breast,
big breast,
の3つのうちのどれかが代入され、1 girl, small breast, shirt, pants, standing…と出力される、というわけです。
うちで使っているのだと__ware__として
sailor suit, pleated skirt
sailor suit, pleated skirt, black highneck
white capelet, full-length zipper, nun, white gloves, habit
white collar shirt, pleated skirt,
track suit,
gold eyes, asymmetrical hair, princess, royal, gold embroidery dress,
gold decoration black robe, clergyman,
fantasy, adventurer, armor, knight, warrior,
fantasy, adventurer, dress, long skirt,
fantasy, adventurer, mant, boots, Accessory pouch bert,
black sailor suit, pleated skirt, white socks, leather shoe, short sleeve,
とかにしています。
上からセーラー服、セーラー服+黒ハイネック(個人的フェチ)、シスター服、ワイシャツ+スカート、ジャージ、聖職者服1、聖職者服2、ファンタジー戦士、ファンタジー淑女、ファンタジー冒険者、黒セーラー(個人的フェチ)となっております。
世界観すらバラバラですが、なんかランダムでいろんな女の子を生成させたいときに便利。
実際に使ってみよう
せっかくなので、wildcardsを使って生成させるとこんな感じになります、というのをやっておきましょう。
Promptは
__haircolor__ hair, __hairstyle__,
__ware__,
__face__, (blush: 0.7)
(white background:1.6),
髪色、ヘアスタイル、服装、表情をワイルドカードで作成し、ファンタジー要素を加えた上での「座っている女の子」の生成です(クオリティ系ワード除く)。
(blush: 0.7)は、頬を赤らめている感じは欲しいものの、1だと強すぎる事が多いので7掛けにしたものです。
ネガティブは
今はこんな感じ。低クオリティ排除と、手指足の崩れや増えたり減ったりを抑制します。100%で抑えられるわけじゃないけど、あると無いとでは打率が違います。
というわけで上記のワイルドカードを4つ盛ったPromptで女の子を5人作るぜ!
一人目
black sailor suit, pleated skirt, white socks, leather shoe, short sleeve,
smirk, (blush: 0.7)
出力はこうなりました。
一人目なので細かく説明していきましょう。
black hair,
ワイルドカードのリストにカンマを付けず、続けてhairを付けることで様々な色の髪になります。
一応ヘアカラー用を想定したので「__haircolor__」という名前にしてあるけど単なる色リストなので、例えば「__haircolor__ shirt」とするとワイルドカードにラインナップされた色のシャツがランダムで生成出来たりします。
sidelocks, crossed bangs, antenna hair, tired hair, flipped hair,
この5ワードで一まとまりです。この5つの組み合わせで、くせっ毛ハネ髪ショートボブが生成できるのです。
sidelocksは耳の手前にかかる髪ですね。antenna hairでアホ毛、tired hairはくせっ毛とか整えられてないぼさぼさ頭、みたいな感じ。
外ハネ髪を意味するflipped hairと合わせて、こんな感じになるわけですね。
black sailor suit, pleated skirt, white socks, leather shoe, short sleeve,
半袖黒セーラーですね。本当は白エリに黒地のセーラー服になってほしかったんだけど、普通のセーラー服でしたね。
まぁ似合ってるのでいいか。
smirk,
smirkはにやにや笑い。
広角をぐっと上げた含み笑いみたいな表情になってくれます。
(blush: 0.7)との相性が良くていいですね。
めちゃくちゃ可愛くて気に入っちゃったので、referenceonlyで表情Promptを「clear face」に変えて追加生成。
服装も「white shirt, short sleeve」にしました。
二重人格キャラみたいになって、物語の主役感が出てきました。
こうやって気に入ったキャラの差分をスイと出せるのめちゃくちゃ良いな~。
二人目
sailor suit, pleated skirt,
smirk, (blush: 0.7)
髪型は黄色の編み+ポニテ、服装はセーラー服です。こっちは真っ黒セーラー服になりましたが、タイが黄色と白で混じっていてだいぶ謎。
「__face__」は2連続で同じタグが選ばれたようで、今回もsmirkでした。
7掛けした割にblushが強く出ている気がしますが、なんか好きな男の子をからかっている年上幼馴染、みたいな感じが出ていてめちゃくちゃ可愛いですねコイツ。
うしろのロング三つ編みと髪型が繋がっていない感じがすごい惜しい。
三人目
track suit,
smirk, (blush: 0.7)
前の二人とはだいぶ毛色が変わりました。
ファンタジー色強めの水色ヘアに片目隠れです。その割着ているのがジャージなのでなんかシュール。きらら系ヒロインと思えばアリか…ぼっちちゃん的な。
表情がまたsmirkなんだけど、AI君女の子のニヤニヤ笑い好きすぎだろ…。
この子も気に入ったのでreferenceonlyを使って別バージョンを生成しました。
なんか純情な主人公に全年齢的エッチないたずらとかしてきそう。でもエロ担当扱いになって主人公との恋は実らなさそうなタイプだ。
四人目
white collar shirt, pleated skirt,,
evil smile, (blush: 0.7)
だいぶギャル系のが出ましたね。
french braidは結った髪を頭に形に合わせて沿わせるタイプの髪型のこと。
勝手に追加されたピアスとチョーカー、ボア付きジャケットが強烈にギャルっぽさをPRしています。なんだこのAI…手際が良すぎる…。
ネクタイとサスペンダーが融合してるのが惜しいかなー。
でもスカートの腰をベルト?で巻いてるのはおしゃれかもしれんぞ。
表情は初めてsmirkではなく…evil smileがでました。これも小悪魔的ニヤニヤ顔が出ます。このスケベAIがよ。
ピンク髪とニヤニヤ顔と襟付きシャツ+スカートの組み合わせから勝手にギャルのテイストを汲み取って、ピアスとかを追加したんでしょうか。
黒髪ロングにすると清楚っぽい雰囲気にしてくれますし、AIが学習元にしている絵がそういうの多いんですかね。
五人目
gold eyes, asymmetrical hair, princess, royal, gold embroidery dress,
evil smile, (blush: 0.7)
髪はredだと言ってるのに、完璧に金髪になりました。まぁこういうこともある。
服装タグは本当は
こういうファンタジーお貴族様衣装を想定していたのですが…。
どうやら表情のevil smileのevilが強く作用してしまったようで、悪魔娘になってしまいました。
多分そこの雰囲気から金髪巨乳悪魔娘に誘導され、その範囲内で金刺繍ドレスがスケベドレスになったんでしょう。
にしてもevil一つで悪魔の羽まで出てくるのは凄いですね。
Promptに入れたワード一つが全体に作用してしまうことはたまにありますが、これは珍しいくらい強く出ましたね。
連続で生成したいときに、共通して設定したい部分は通常通りにPromptを設定し、ランダムで変化させたい部分だけWildcardsにすることで、今回のように「座ってる女の子」という枠の中で、髪色も髪型も服装も表情もランダムに生成してもらうことができるわけです。
作ったワイルドカードのファイルは後に残るので、使い込むほど自由度が高まり、自分だけの作業効率を得られる一風変わったExtensionsでした。