SamSuka
スタジオ真榊
スタジオ真榊

fanbox


「Wildcard」が理解る! タグをランダム化して一括呼び出し

こんばんは、スタジオ真榊です。この記事は、プロンプトをジャンルごとにテキストファイルで管理してランダム化し、一括呼び出しできる拡張機能「Wildcard」についての解説記事です。


{blue eyes|red eyes|yellow eyes}のように記述すると、このうち一つをランダムで採用してくれるのが「DynamicPrompt」でしたが、wildcardはより本格的にプロンプトのランダム化を活用できる機能。

「固定シチュ・ランダムキャラ」で大量生成 DynamicPromptの活用法

こんにちは、スタジオ真榊です。今回は「Dynamic prompt」というローカル用の拡張機能を使って、シチュエーションはしっかり固定しながら、毎回異なるキャラクターの画像を大量生成する方法について解説します。 ※2023年1月に「固定シチュエーションを色んなキャラで描いてもらおう!」として公開した記事がやや古くなっ...

何にでもなれる「ワイルドカード」のようにプロンプトにランダム要素を取り入れることができ、大量の画像バリエーションを作りたいときに大いに役立ちます。この記事では、インストール方法から使い方、効果的な応用方法までを紹介していきます。


目次

ローカル拡張機能「Wildcard」とは

wildcard機能のインストール

  <インストール手順>

プロンプト大辞典からwildcardを入手

Wildcardの使い方

  ・wildcardを追加したときは

  ・「Booru tag autocompletion」を活用しよう

プロンプトのランダム化実践例

  ・アップスケール時に注意

フルプロンプトのランダム生成も可能

XYZプロット的な使い方も

「キュー(待ち行列)」として使う



ローカル拡張機能「Wildcard」とは

wildcardは一言で言えば、「__xxxx__」という自分専用のプロンプトを作り出せる拡張機能です。例えば1行ごとに「red hair」「blue hair」「black hair」と書かれたテキストファイルを「hair.txt」という名前で用意しておき、所定のフォルダに保存しておきます。その上でプロンプトに「__hair__」と入れると、赤・青・黒の髪色のうちランダムに一つを選択し、画像を生成してくれるわけです。


これだけだと「なんだ、いくつかのプロンプトからランダム選択できるdynamic promptと同じじゃん」と思われるかもしれません。確かに見た目の現象は{red |blue|black}hairと打ち込んだときと同じになりますが、wildcardは「一つ一つのランダム要素に詰め込める量が段違い」「大量のwildcardを用意しておけばいつでも好きな要素をランダム化できる」といった違いがあります。


例えば、dynamic promptで20種類の髪型からランダム選択するケースを考えてみましょう。{bob cut | long hair | short hair | twintails | ....}と手打ちしていくのは大変面倒ですし、すぐにプロンプト欄が埋まってしまうでしょう。一方、wildcardなら数十でも数百でも、テキストファイルに書かれているだけのランダム化が可能です。逆に、自分で決めた数種類の中からチョイスしたいときはdynamic promptの方が向いていますので、使い分けが重要ということになります。


こちらは表情をランダム化するwildcardテキストの例です。__expressions__と入力すると、これらの中から1つがランダムに選ばれて生成されるわけですね。


wildcard機能のインストール

実際にやってみないと分かりづらいので、インストール方法を見ていきます。こちらがwildcard単独のリポジトリ(拡張機能配布ページ)です。

(frame embed)



ただ、dynamic promptの拡張機能にもwildcard機能は同梱されているので、そちらをインストールしていればその時点で使用可能になっています。特に理由がなければ、こちらのdynamic promptの拡張機能をインストールしておけばOK。

(frame embed)



<インストール手順>

・拡張機能(Extensions)タブから拡張機能リストを開き、読み込みボタンをクリック。

・リスト下方にある「dynamic prompt」もしくは「wildcard」の欄の「Install」ボタンをクリック(見つからない場合は検索欄の下の「スクリプト」のチェックを外す)

・拡張機能リストの左隣の「インストール済」タブから「適用してUIを再起動」

・成功していれば、「設定」タブの左隣あたりに「ワイルドカードの管理(Wildcards Manager)」タブが現れる

上の図は、既にたくさんのwildcardを入手した状態のスクリーンショットです。初回インストール時は何も表示されませんので、さっそく何かwildcardを入手してみましょう。



プロンプト大辞典からwildcardを入手

プロンプト大辞典では「髪の毛」「ポーズ」「H体位」など種別ごとのwildcardを一括ダウンロードできるようにしておきましたので、今回はこちらを使っていろいろな要素をランダム化してみたいと思います。


ページ最下部の【巻末付録】Wildcard からzipを入手できますので、任意の場所に保存したら、次のような要領で使ってみましょう。

画像生成プロンプト大辞典【for illustrious】

この辞典は、StableDiffusionやNovelAIといった画像生成AIモデルにおいて広く採用されている「danbooruタグ」に準拠したプロンプトについて、illustriousXL系の人気モデルにおける効果をまとめたものです。イラスト生成に有用なタグを属性ごとに「見出し語」としてまとめ、生成結果や取り扱いのコツを経験則に従って解説...



Wildcardの使い方

zipを解凍して出てきたテキストファイルは、各webUIのインストールフォルダ内にある「extensions\sd-dynamic-prompts\wildcards」に保存します。StabilityMatrixの場合、「Data\Packages\〇〇(webUI名)\extensions\sd-dynamic-prompts\wildcards」となります。このフォルダに全てのwildcard(テキストファイル)を並べてもよいですし、多くなりすぎるようなら「hair」「pose」などとフォルダ分けして管理してもよいでしょう。


例えば「eyes-color.txt」の中身はこのような感じ。

「haircolor.txt」はこうです。

ミナちゃんを生成するときに、普段「black hair」「blue eyes」としている部分を「__haircolor__」「__eyes-color__」に変更するとこのようになります。(※前後の「__」は全角アンダーバーではなく「半角アンダーバー✕2」ですのでご注意ください)


このほか、カラー指定だけが入っている「color.txt」もあります。アイデア次第ですが、「__color__ ribbon」などと指定することで、リボンの色をランダム化させることも可能になるわけですね。

・wildcardを追加したときは

Wildcardフォルダの内部に変動があった場合は、拡張機能画面の下部にあるタブを開いて「ワイルドカードの一覧を更新する」を押すと最新の状態に変更されます。「すべてのワイルドカードを削除する」は滅多に使う機会がないと思うので、間違って押さないよう気を付けましょう。


・「Booru tag autocompletion」を活用しよう

それぞれのwildcardの呼び出しタグは「__XXXX(テキストファイル名)__」になるわけですが、いちいち覚えていなくても、Booru tag autocompletion機能で「__」と打つだけで一覧呼び出しすることができます。LoRA名と同様ですね。

Booru tag autocompletion機能は、danbooruタグを予測変換してくれる非常に便利な拡張機能です。こちらの記事の「⑥」で解説していますので、導入することを強くおすすめします。

ローカル環境を整備しよう!画像生成が捗る"12の小ワザ"+α

こんにちは、スタジオ真榊です。この記事は、StableDiffusionのローカル生成環境をより便利にする「TIPSまとめ」です。例えば、通常は縦横2048pxまでしかないキャンバスサイズのスライダーを制限突破する方法や、無数のCheckpointやLoRAを見つけやすく整理する方法、最初にインストールしておくと捗る拡張機能、生成完了...


プロンプトのランダム化実践例

wildcardはさまざまな使い道がありますが、よく使うのは固定したいシチュエーションだけを指定しておいて、背景や表情、衣装といった要素をランダム化してみることです。


例えば、オリジナルキャラを呼び出すタグに、

「__cosplay__,__expression_all__,__color__ background,__pose_hand__」

・・・と追記してみたとします。


こうすると、さまざまなコスプレや表情、手のポーズがランダムが選択されつつ、背景はランダムなカラーになるわけですね。「__color__」の部分にyellowやblueなどが「代入」されるので、「yellow background」「blue background」などと毎回変わるはずです。


こちらが生成結果。それぞれの要素がしっかりランダム化されていることがわかります。

ただ、ここまでランダム性が高い設定だと、滅多に良い取り合わせのイラストにはなりません。表情もランダムですから、かっこいい衣装によだれがたれている表情(drooling)がついてきたりして、ちぐはぐなものばかりになってしまいがち。こうしたランダム生成は全くアイデアが湧いてこないときに「とりあえずやってみる用」で、実際にはもっとシチュエーションを絞り込んで、ちょっとした「遊び」を作るためにwildcardを使うことのほうが多いかなと思います。


例えばこのように、「正解」のシチュエーションをもう固定してしまって、背景色だけをランダムにしてみるような場合です。

衣装と表情、ポーズの取り合わせに悩んだときなども、wildcardから意外なインスピレーションを得られることがありますので、着想に詰まったときはいろいろとランダム生成してみると面白いかも知れません。案出しの際はstep数を普段よりぐっと落として、スピード優先にするのがポイントです。


こちらは背景色を赤と決めた後、衣装カラーとの取り合わせを検討してみた例。何を「良い」と感じたかを考えて、自分の中にしかない正解ににじり寄っていくのにWildcardは役立つと思います。


・アップスケール時に注意

テスト生成が終わり、ようやく本番生成というときに注意すべきポイントがあります。img2imgタブに移動してアップスケールをする場合、プロンプトを確認するようにしてください。再びプロンプトがランダム(__XXXX__が混じって状態状態)になってしまうと、生成結果がおかしくなってしまいます。「img2imgに送る」ボタンを押すときは、ちゃんとプロンプトが確定後のものになっているかよく見てから生成開始するようにしましょう。


フルプロンプトのランダム生成も可能

wildcardは、テキストに書かれた各行を一つだけランダムに採用する機能ですので、一行にいくらでもタグを詰め込むことができます。つまり、プロンプトの一部だけを差し替えるだけでなく、完成した全く別のプロンプトを何行かに分けて記述しておけば、同時に全く違うプロンプトで生成を行うことも可能になります。


例えば「test.txt」というファイルを作り、このように1行目にちびミナちゃん、2行目に綾香さんのプロンプトを記述したとします。(右端で折り返していますが、それぞれは1行扱いです)


この状態で「__test__」のみで生成すると、このように毎回1行目か2行目のプロンプトが選択されて、2種類の生成を同時に行うことができます。

この方法で4種類のプロンプトを100バッジ生成すると、全400枚にほぼ均等に4種のイラストが割り付けられることになります。朝出かけてから帰宅するまでずっと生成させるような場合、無駄な生成量を押さえながらさまざまなガチャを楽しむことができて大変便利です。


XYZプロット的な使い方も

wildcardはさまざまな設定で最適な結果を探っていくXYZプロット的な使い方もできます。(XYZ plotについてはこちらを参照)

「XYZ plot」で比較実験 モデルの最適設定を探るには?

こんばんは、スタジオ真榊です。今回はStableDiffusionWebUI上で生成結果の比較実験ができる機能「XYZ plot」に関する解説記事をお届けします。(※2023年3月配信のアーカイブ記事「XYZ plotで初めてのモデルと仲良くなろう!」の内容をアップデートしたものです) 入手したばかりのモデルはどんなクォリティタグが効くの...


例えば、そのイラストに合ったクォリティタグをいろいろ探ってみたいときに、クォリティタグ部分を何パターンか書き分けてwildcardを多数回ガチャる…なんて使い方も可能です。



「キュー(待ち行列)」として使う

「ダウンロードキュー」という言葉をよく聞くと思いますが、イラスト生成でもあんな風に「まずはAのイラスト、その生成が終わったらBのイラスト、その次は…」と、いま頭の中にある複数のアイデアを順番に試したいときってありますよね。これまではAの生成が終わったら、その結果を見て、次にBを試して、というふうにずっとPCの前に座っていなければならなかったのですが、wildcardを使えばもっとスマートにできます。


例えば、これから漫画のコマを10コマ分作りたいとしましょう。一つ一つ組んでは生成、組んでは生成していたら何日掛かっても終わりませんが、10コマ分のプロンプトをさきに組んでwildcard化し、Forever生成(生成ボタンを右クリックして停止するまで生成を続ける手法)しておけば、翌日には大量のコマ材料がPC内にできあがっているわけですね。

LINE用のスタンプづくりなどをするときにも、wildcardは役立ちそうです。LINEスタンプは8、16、24、32、40枚用意する必要がありますから、それだけの行数のプロンプトをwildcardにしておいて、外出中に掛ければOK。キャラクターを統一してもよいですし、ランダムにしたい場合も、複数のwildcardを組み合わせれば思い通りにガチャを引き続けることができます。


とにかくアイデアさえあれば、どんどん創作の幅が広がる拡張機能なので、ぜひ活用してみてくださいね。


それでは今日はこのへんで。スタジオ真榊でした。


「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し 「Wildcard」が理解る! タグをランダム化して一括呼び出し

Comments

この記事を見てwildcard使ってみようかと思います。 これまで数千キャラのランダム出力をdynamic_promptで行っていて、プロンプトの作りで混乱することあったので活用させていただこうかと思います。

naritomo08

見直したところseed固定でXYZ plotで回していたので、ランダム選択結果が固定になっていた状況でした。ちゃんと効いてますね。お騒がせしました。 Wild cardは最近は最初からインストールされていますし、超便利機能ですね。活用させていただきます。

ohyamanobuko

最初 {laughing|__expressions__} で試していたのですが、動作しなかったため () を付加したところ、そのときは動作しました。しかし、あとでもう一度やると、動作せず。動作したりしなかったりな不安定な挙動です。 もしかすると、例によって、自分の環境の問題ということもありそうですね。PC再起動してみます

ohyamanobuko

たぶん、()を取り払って{laughing|__expressions__}だと動作するのではないでしょうか?いま手元でやってみましたが、おそらく大丈夫そうでした。

スタジオ真榊【AIイラスト術解説】

素敵のzipご提供ありがとうございます。色々な表情を作れて楽しいですね!ミオリネさんの笑顔がなかなか出てくれないので、{laughing|(__expressions__)} としてみたのですが、動作することもあるものの、laughing で固定されることもあり、動作が安定しないようでした。dynamicと混ぜて使えるものではなさそうですね。笑顔多めに記述した __laughing_expressions__ とか作ってみます

ohyamanobuko

いつも有益な情報ありがとうございます。 この記事を参考にワイルドカードをフル活用しようと色々試してたんですが、これってテキスト内にLoRAを記述しても読み込んでくれないんでしょうか? テキスト内にプロンプトと<lora:xxxx>の記述をしたんですが、どうも読み込まれてないっぽくて。。 ただ作られた画像をPNG infoに放り込むとちゃんとセットはされてるという・・・。 ワイルドカードで色んなLoRAを効かせられると色々捗るのでもし良い方法があれば教えてくださいませ

一閃

Wild cardで男要素と女要素を別個に固めたら混ざらないんじゃないかという… 夢を見ました。 部分的にチェックポイントやLoRAのオンオフまで制御出来ればなぁ。

z-kumagon

いえいえ、こちらこそ教えをこいている身ですので 私も、引き続き情報収集してみます ありがとうございました

shingo.play

そうでしたか、想像で知ったかしちゃいましたわ… 確かにアスペクト比は生成の根幹に関わる部分なので、そう簡単にいじれない要素な気がしますよね。何か方法がありそうな気もしますし、ほっといたらしれっとxyプロットに実装されてそうな気もしますが、気づいたことがあったら報告いたします😊

スタジオ真榊【AIイラスト術解説】

x/y/xプロットの中にも、Width、Heightの項目は無いんですよ。 恐らく、生成時の重みや探索ステップとは別レベルの、そもそもの生成ネットワークの規模(出力層のサイズ)を決めるためのパラメータだと思うので、ちょっと扱い方が違うのかなぁ、と思ってます。 もし、何か情報があれば共有頂けると幸いです。

shingo.play

おおっ、その発想はありませんでしたわ。外出しちゃったので確認できませんが、それはxyプロットで設定できるのではないかしら。x軸にheight、y軸にwidthをいくつか入れてフォーエバー生成すると(ランダムではありませんが)複数のアスペクト比で出そうな気がしますわ。

スタジオ真榊【AIイラスト術解説】

(プロンプトの中にWidth、Height指定が記述できれば話は早いのですが。。。)

shingo.play

いつも丁寧なご解説、ありがとうございます。 今回の解説も「Forever生成」ライフのQOLが向上いたしました! さらなる向上に向けて、Width、Height(正確にはアスペクト比)にもバリエーションを持たせたいと思って、やり方を探しているのですが、ここは何かやり方をご存じだったりしますでしょうか? (内部的にはStable Diffusionに引数として渡しているはずなので、その処理を上書きできれば出来るのかな?と思って探しているのですが。。。)

shingo.play

これ違う機能なんですね ありがとうございます。

dynamic promptsにも同じワイルドカード機能があって、そのフォルダはそちらの方のフォルダですわね~。機能としてはこの記事で紹介しているstable-diffusion-webui-wildcardsと同じなはずです!

スタジオ真榊【AIイラスト術解説】

(スラッシュの向きがなんか途中からおかしいですが誤植です)

フォルダ指定が 「C:\stable-diffusion-webui\extensions\stable-diffusion-webui-wildcards\wildcards」 と説明されていますが、おそらく正しくは 「C:\stable-diffusion-webui\extensions/sd-dynamic-prompts/wildcards」 ではないでしょうか?

そして再セット完了しても見つからないなと焦っていたら、気がついたらタブがもうある…。 うん、便利でした。 お騒がせいたしました。 これ、指定した要素を1つ選択ではなく、指定要素全盛りのやつが欲しいですね。(※LORAも含めて一行に纏めたらいいんですね。理解しました。)特定のキャラの設定を纏められて楽ですね。

z-kumagon

あるあるですわね~~~再セットアップ、何度やったか分かりませんわ。増築に継ぐ増築でみんなわけわからん状態になっていると思うので、どこかでドンガラしないといけないのですわ…

スタジオ真榊【AIイラスト術解説】

ワイルドカードがリストに出せず苦戦中です。 アップデート時にエラーが出てアップデートのチェックすら出来ない状態になってしまったので、再び最初からセットアップいたしました。 今回はいくつかのダウンロードしたファイルがあるフォルダを先にバックアップへ逃がしておきましたが、いくつか漏れがありました。復旧だけで時間かかりますね。いや、本当に助かります。

z-kumagon

そうだったんですね! 勉強になります! 自分でモデルを作る事はできそうにないのです技術の進歩に期待します… パンツ2枚穿きの解決策もありがとうございます! ボツ画像で試してみたいと思います!! あるある質問集楽しみにしてますね!

金柑

どれもあるあるですわね~。それは学習モデルがそのように学習元から学んでいるので、完全に排除することはできないのですわ。高品質なえちちイラストが出るのと引き換えに、そうしたえちちイラストにはピンクのパンツや文字やハートマークや体の震え線が描き込まれているので、どうしても出てしまうんですよね(少数枚から学ぶLoRAなんかはその傾向が顕著ですわ) どれくらい強く出るかは出したいイラストと学習モデル等によりますが、排除する方法はネガティブに思い当たるものを入れるほかないと思います。トラブルシューティングというよりAIの宿命みたいなものですが、現時点では学習モデルの進歩を願うか、自分で作るほかないと思います。今後の技術進歩に期待ですわね~(パンツニ枚履きはpanty thighletをネガティブに入れるとか、Controlnetで直すこともできます。Cannyで抽出して二重パンツ部分を消して再生成とか) AIイラストあるある質問集みたいな企画はあっても面白いですね、考えてみます!

スタジオ真榊【AIイラスト術解説】

わかりやすい記事ありがとうございます。 ワイルドカード、とても便利ですよね! 私も愛用しています! この記事を拝見して、「パンツ2枚穿き」と「ピンクのパンツが多くなる現象」は誰でも起こりえるんだなと少しほっとしました。 もし解決策をご存じでしたらご教授ください。 ※ネガティブに2pantiesやpink pantiesを入れても直りません。 と、少し話が逸れたついでにご要望を。 もしお時間に余裕があれば「みんなの悩みと解決方法」というような企画?記事が欲しいです。 私の場合、「パンツ2枚穿き」と「ピンクのパンツが多くなる現象」や「文字やハートマークのようなものが画面上に多量に出る」事があるという悩みがあります。 ※思い当たる文言をネガティブに入れても解消せず AI術士として、その悩みが自分だけのものかの把握と、解決方法の模索ができるのはとても有意義だと思います。 何卒ご一考ください。

金柑


More Creators