「Wild card」でもっとForever生成を楽しもう! (Pixiv Fanbox)
Downloads
Content
こんばんは、スタジオ真榊です。このところControlnetの研究報告が続いたので、今夜はとっても便利なのに取り上げる機会がなかった拡張機能、「Wild card」についての記事を書こうと思います。「固定シチュエーションを色んなキャラで描いてもらおう!」で紹介したDynamicPromptに似た機能で、何にでもなれる「ワイルドカード」のようにプロンプトにランダム要素を取り入れることができるのですが、うまく使うとDynamicPrompt以上に柔軟でエキサイティングなガチャを楽しめます!まだ試していない方はインストールの価値があるので、ぜひトライしてみてくださいね。
インストール方法
WebUIの拡張機能リストの中にあるので、日本語化のときと同様にインストールするだけでOKです。
・拡張機能(Extensions)タブから拡張機能リストを開き、読み込みボタンをクリック。
・リスト下方にある「wild card」の欄の「Install」ボタンをクリック(見つからない場合は検索欄の下の「スクリプト」のチェックを外す)
・拡張機能リストの左隣の「インストール済」タブから「適用してUIを再起動」
・成功していれば、「設定」タブの左隣あたりに「Wildcards Manager」タブが現れる
どんな機能なの?
wild cardは一言で言えば、「__xxxx__」(xxxxには好きな文字列が入る)という自分専用のプロンプトを作り出せる拡張機能です。例えば1行ごとに「red hair」「blue hair」「black hair」と書かれたhair.txtというテキストファイルを用意しておき、所定のフォルダに保存した上でプロンプトに「__hair__」と入れると、赤・青・黒の髪色のうちランダムに一つを選択し、画像を生成してくれます。
これだけだと「なんだ、いくつかのプロンプトからランダム選択できるdynamic promptと同じじゃん」と思われるかもしれません。確かに見た目の現象は{red |blue|black}hairと打ち込んだときと同じになりますが、wildcardは一つ一つのランダム要素に詰め込める量が段違いなのです。
dynamic promptではすぐにプロンプト欄が埋まってしまうので、せいぜい3~4種類の要素をいじるのが精一杯だったわけですが、wild cardなら数十でも数百でも、danbooru tagsやプロンプト新辞典に書いてある要素をがっつり盛り込んでSSR待ちをすることができますし、これからこの記事でご紹介したいさまざまな応用法があります。さらにControlnetと組み合わせると、例えば「Segmentation」で構図を固定しながらさまざまな容姿のキャラクターを生み出すことも可能になるわけで、似たりよったりのイラストでフォルダが埋め尽くされるより、ずっと楽しみになると思いませんか?
一つ一つのテキストにはこんな感じで、ランダムに入れ込みたいプロンプトを記入します。これは「expressions」というテキストにしたので、「__expressions__」をプロンプトの中に入れればこれらのうち一つの表情がランダムに挿入されるというわけです。
【ポイント】テキストは1行だけでもOK!
実はこのテキストファイル、複数行にわたっていればそのうちランダムに一つが選ばれるわけですが、1行だけなら必ずその文字列が選択されます。ということは、
(anime coloring:1.4),masterpiece,extremely detailed CG,official art,high resolusion
と1行だけ書かれた「quality.txt」というテキストファイルを置いておけば、「__quality__」と指定するだけでいつものクォリティタグを一括呼び出しすることも可能なわけですね。看板娘的な「うちの子」キャラの起動術式を放り込んでみるのも便利ですよ!(※残念ながら記事執筆時点ではネガティブプロンプトには使えないようです)
使い方
テキストファイルの保存先は「C:\stable-diffusion-webui\extensions\stable-diffusion-webui-wildcards\wildcards」。いちいちテキストを作るのは面倒だと思いますので、こちらでdanbooruタグを適当にぶちこんだかんたんwildcard集を作っておきました!
こちらのzipファイルをダウンロード後解凍し、上記の保存フォルダに放り込みましょう。まずはテストとして、試しにこちらのプロンプトで生成してみます。
__pose__,__expressions__,1girl having beautiful __color__ eyes and __breasts__ and __color__ hair,__length__, wearing detailed __wear__,background is __outdoor__+クォリティタグ
前後の「__」は全角アンダーバーではなく「半角アンダーバー✕2」ですのでご注意を。
生成結果
はい、見事に全然違う画像になりました。それぞれのプロンプトを見てみましょう。
【左上】contrapposto,wavy mouth,1girl having beautiful light green eyes and breasts and pink hair,very long hair, wearing detailed cardigan,background is hill
【右上】arms behind head,furrowed brow,1girl having beautiful streaked eyes and breasts and white hair,absurdly long hair, wearing detailed aran sweater,background is ferris wheel
【左下】faceplant,furrowed brow,1girl having beautiful orange eyes and breasts and colored inner hair,very short hair, wearing detailed raincoat,background is cave
【右下】arm_up,grin,1girl having beautiful blonde eyes and breasts and blonde hair,very long hair, wearing detailed safari jacket,background is crosswalk
それぞれポーズ、表情、目の色、髪の色、髪の長さ、服、背景がランダマイズされているのが分かると思います。ここまですべてランダムにしてしまうと、もはやただの「1girl」生成とある意味同じような結果になってしまいますね。ちなみにこれ、胸の大きさのランダム化に失敗して、全部「breasts」になってしまっています。これは、テキストファイル名が「breast.txt」なのに、「__breasts__」と誤記してしまったせい。「eye」と「eyes」など、最後の「s」を間違えることがよくあるので、皆様もご注意下さい…。
wild cardを使いこなす上で大切なのは、全部AIにお任せするのではなく、シチュエーションを指定してしまうことです。例えばこちらのように…
「夜のアウトドアエロバニーさん」という要素を固定してしまい、他をランダマイズすることで奇跡の取り合わせを狙うパターンですね。プロンプトは以下の通り。
__outdoor__,erotic,__pose__,__expressions__,1girl having beautiful __color__ eyes and __breast__ and __color__ hair,__length__, wearing (detailed __color__bunnysuit,pantyhose,bunny ears:1.4),night,beautiful sky+クォリティタグ
ランダム要素は広げすぎると収集がつかなくなるので、自分の好みを一点突破で狙うのが良いようです。例えばシチュエーションを固定してキャラクターの「job」だけランダマイズするとか、逆にキャラクターを固定して背景だけランダムにしてみるとかですね。
注意が必要なポイントとして、「img2imgに送る」をしても、プロンプトは固定される前のランダム指定のもので送られてしまいます。そのままアップスケールしたいのに全く違う画像になってしまうことがあるので、各イラストの確定プロンプトからコピペするか、いったんimage browserなどからアップスケールしたい画像を選んで、そこから「img2imgに送る」ようにしてください。
こちらはメイドさんをランダム生成したパターンですね。ランダム化の要素はあまり多くしすぎず、Forever生成するときに何かバリエーションしても良い部分(例えば瞳の色や胸の大きさなど)を特定しておくとよいでしょう。ただ、実はwildcardの真骨頂はまだ他にあります。
フルプロンプトをランダム生成しよう!
ちょっと考えてみましょう。起動術式やクオリティタグを一行に詰め込めるということは、あるイラストのプロンプト全体を一行に詰め込んでも問題ないはずです。例えば「test.txt」というファイルを作り、一行目に「パノラマ風景と少女」のプロンプトを入れたとします。2行目は「えちちなメイドさん」、3行目は「フィギュアスケート選手」、4行目は「魔法使い」として、プロンプト「__text__」だけでランダム生成してみましょう。
残念!えちちなメイドさんが抽選漏れしました。
ただ、この方法で4枚を100バッジで生成するとなると、全400枚にほぼ均等に4種のイラストが割り付けられることになります。朝出かけてから帰宅するまでずっと生成させるような場合、無駄な生成量を押さえながらさまざまなガチャを楽しむことができるわけ。これって、さらに応用できると思いませんか?
X/Yプロット的な使い方をしてみよう!
そう、wildcardはさまざまな設定で最適な結果を探っていくX/Yプロット的な使い方もできるのです。例えば、このイラストに合ったクォリティタグをいろいろ探ってみたいときに、クォリティタグ部分を何パターンか書き分けてwildcardを多数回ガチャる…なんて使い方ができます。
【1行目】(えっちなメイドさんプロンプト)+masterpiece,high resolusion,illustration,ultra detailed 8k art
【2行目】(えっちなメイドさんプロンプト)+(masterpiece:1.5), (high resolusion:1.5), (illustration:1.5),(ultra detailed 8k art:1.5)
【3行目】(えっちなメイドさんプロンプト)+(masterpiece:2), (high resolusion:2), (illustration:2),(ultra detailed 8k art:2)
【4行目】(えっちなメイドさんプロンプト)+glowing particles,illustration,extremely detailed,intense shadows
【5行目】(えっちなメイドさんプロンプト)+beautiful,8k,delicate
【6行目】(えっちなメイドさんプロンプト)+soft lighting,shiny skin,curated masterpiece
こんな風にいろいろな可能性をガチャってみるのもよいでしょう。こうしたクォリティータグ確認ガチャをよく試すなら、「+」以下だけを「qualitytest.txt」にすればOKですし、慣れてくるとプロンプティングの幅がグッと広がります。ちなみに、上記のwildcardでできたのがこれ。
どれがどのプロンプトで生成されたかは、生成結果を見て確認しましょう。ちなみにこちらの画像のプロンプトは下記のとおりでした。私は右上の意外性が好きです笑
【左上】(masterpiece:1.15), (high resolusion:1.2), (illustration:1.05),(ultra detailed 8k art:1.05)
【右上】glowing particles,illustration,extremely detailed,intense shadows
【左下】(masterpiece:1.5), (high resolusion:1.5), (illustration:1.5),(ultra detailed 8k art:1.5)
【右下】masterpiece,high resolusion,illustration,ultra detailed 8k art
「キュー(待ち行列)」として使ってみよう!
「ダウンロードキュー」という言葉をよく聞くと思いますが、イラスト生成でもあんな風に「まずはAのイラスト、その生成が終わったらBのイラスト、その次は…」と、いま頭の中にある複数のアイデアを順番に試したいときってありますよね。というより、普段の画像生成時って基本はその繰り返しということもできます。これまではAの生成が終わったら、その結果を見て、次にBを試して、というふうにずっとPCの前に座っていなければならなかったのですが、wildcard&Forever生成を使えばもっとスマートにできます。
例えば、これから漫画のコマを10コマ分作りたいとしましょう。一つ一つ組んでは生成、組んでは生成していたら何日掛かっても終わりませんが、10コマ分のプロンプトをさきに組んでForever生成しておけば、翌日には大量のコマ材料がPC内にできあがっているわけです。それが30コマなら?いや30ページ分なら?夢が広がりますね!
終わりに
そんなわけで、今日の記事は「Wild cardでもっとForever生成を楽しもう!」でした。さっきは「夢が広がりますね」で終わらせちゃいましたが、もっとはっきり言えば、10種類のキャラの見た目(__chara__)+「日常風景」「こちらを睨んでいる」「催眠を掛ける(虚ろ目)」「笑顔のえっちシーン」の4つ(__situation__)を何日間か大量生成して正しく並べ替えた場合、安易に10人分のワンシチュ催眠4コマCG集ができてしまいます。この機能の名前、wildcardで本当にいいのか?
とにかくアイデアさえあれば、どんどん創作の幅が広がる拡張機能なので、ぜひ活用してみてくださいね。
それでは皆様、よりワイルドな画像生成ライフを!スタジオ真榊でした。