見出し画像

生成AI自動化テクニック大全【StableDiffusionWebUI】

どうも、ひろちゅ~(@hirochuu8)です!

普段はWeb開発者・AI絵師・プロンプトエンジニア・IT&AIコンサルをやらせてもらってます。

Xでは生成AIで創作・マネタイズする方法について発信してます。

日本で初めて「AIクリエイター」として地上波放送(TBS『news23』)にもAI解説で出演しました。

引用:https://newsdig.tbs.co.jp/articles/-/1012555
引用:https://newsdig.tbs.co.jp/articles/-/1012555

「AI×SNSマネタイズ」を教えるAIクリエイタースクール『キラリオン』も運営しています。

本noteでは、StableDiffusionWebUIの機能による
基本的な自動化テクニックを網羅します。

・標準機能
・拡張機能

を共にカバーします。

プログラムの知識は不要なものに絞りました。

このnoteを読めば、WebUIで目的に応じたテクニックを
自由に使い分けられるようになりますよ!

画像付きで説明しているので、誰でもカンタンに習得可能です。

途中で見慣れない言葉も出てきますが、
わかってしまえば簡単です。

一緒に一つずつ見ていきましょう!

全体像は以下のようになっています。


①Batch Count


お馴染みの機能ですが、まずは基本ということで。

Batch Countのスライドバーを調整することにより、
同じプロンプトで生成を何回繰り返すか?を決めます。

デフォルトだと1から100までが選べる状態です。
それ以上の枚数に上げることはできません。

しかし、応用編として「ui.config」ファイルを開いて書き換えることで、
上限の突破が可能
になります。

<手順>

1. フォルダで「stable-dissusion-webui>ui-config.json」を開く

2. 「txt2img/Batch count/maximum": 100」という行をみつける(v1.3.2では61行目)

3. 「100」の部分を、好きな数字に書き換えてください(ここでは300にしてみます。

※i2iの方もご希望であれば、同じ要領で書き換えることができます。

4.ui-config.jsonファイルを保存

5. WebUIのSettingsタブから「ReloadUI」で更新

6. 最大値の数値が変わりました!

②Batch Size

「同プロンプトで同時に生成する枚数」を決める機能です。
並列処理する枚数を指定しています。

メリットとしては、同時生成するので生成速度が速くなることです。

先程のBatch Countと合わせると、
Batch Count×Batch Size=1回で生成する枚数となります。

例えば「Batch Count:10 」「Batch Size:4」であれば
10×4=40枚が生成されます。

では、Batch Sizeも最大限に……といきたいところですが、
「VRAM」の容量によっては並列処理に対応できずにエラーになってしまいます。

※VRAM( Video Random Access Memory) とは、 映像をモニター出力することに特化した パーツ「GPU」に搭載されているメモリのことです。

https://dosparaplus.com/library/details/000734.html

なので、ご自分のマシンの性能に合わせて、
エラーにならない程度まで上げてみると良いでしょう。

Paperspace(クラウド)の高性能GPUを使っているなど、VRAMの容量が大きければ、バッチサイズを4ぐらいまで上げて時間を節約できます。

③i2iの「バッチ」


特定のフォルダにある画像に対して、
まとめてi2iで「バッチ処理」をかけることができる機能です。

バッチ処理とは“一定量の(あるいは一定期間の)データを集め、一括処理するための処理方法”です。

https://www.imkk.jp/blog/what-is-batch-processing.html

例えば、「リアル系の画像をまとめてアニメ風に変える」といった時に便利です。

また、動画を変換するときのテクニックとしても用いられています。

今回は、以下の複数のAI美女画像を、一気にまとめてアニメ風に変えてみましょう!

わかりやすく4枚で行いますが、実際には何枚でも一気に変換可能です。

<手順>

「i2iバッチ」への移動

1. img2imgタブをクリック

2. 下に出てくるBatchタブをクリック

◆「i2iバッチ」の設定

①元画像の入ったフォルダパスを記入する

②出力先にしたいフォルダパスを記入する

③プロンプト(任意)を設定する

④モデルを設定する

⑤生成開始!

これで完了です!
おつかれさまでした。

以下のように、一撃で全ての画像をアニメ風に変換できました。

Before→Afterはこちらです。

オススメの使い所としては、既存の商品画像を雰囲気の違うモデルで変換して、新たな商品を生み出すなどです。

もちろんControlNetを併用することもできますので、
より輪郭を忠実にしたいなら「Canny」「Lineart」を使うなど、
お好みに応じて使ってみてくださいね。

注意点としては、必ず「Batch」タブが選択されている状態で生成を開始することです。

通常の「i2i」タブなどに変えていると、バッチ処理が開始しません。

④Generate Forever


実は、Generateでマウスを右クリックすると……

こんなふうに「Generate forever」という表示が出てきます。

ここを左クリックするだけで、永遠に生成され続けます。

デフォルトで入っている機能なので、
拡張機能は必要ありません。

止めたい時は、もう一度右クリックして「Cancel generate forever 」をクリックするだけです。

注意点としては、ブラウザを閉じても永遠に生成が続くことです。

ちゃんと「Cancel generate forever」して止めるか、
StableDiffusionの実行自体を止めないと終わりません。w

ハードディスク容量を圧迫することになりかねないので、
気をつけて使いましょう。

注意点としては、Seed値を固定しないことです。
サイコロマークを押して「-1」になっていることを確認ましょう。

固定していると「全く同じ画像」が大量に生成されてしまいます。笑

⑤Easy Generate Forever


もしかしたらお気づきになっていた方もいるかもしれませんが、
ぼくのWebUIでは「Generate」ボタンの下に、ボタンが2つ追加されています。

これは「Easy Generate Forever」という拡張機能によるものです。

先程のGenerate Foreverをボタン化するというものになります。

https://github.com/blue-pen5805/sdweb-easy-generate-forever

以上のURLを使って、拡張機能をインストールしてください。
拡張機能の入れ方はこちら:https://koneko3.com/stable-diffusion-extension-index/

Easy Generate Foreverの良いところは、
Seed値が固定されていると「禁止」アイコンが出るところです。

視覚的にSeed値の状態が分かるので、
永遠に生成しようとするときだけではなく、
いろんな場面で便利な機能になっています。

ただ、禁止マークになっていても、
実行自体はできてしまいます。

マークの状態には気をつけてください。笑

⑥Script機能:Prompts from File or Textbox


StableDiffusionWebUIの画面の内、
ControlNetの更に下にひっそりと佇む「Script機能」……。

非常に地味なのと、名前からは機能がよくわからないので、
あまり使っている人がいません。

しかし、これが本当に便利なんです!

とりあえずクリックしてみます。

すると、選択肢が色々と出てきます。

この内、自動化に直接関連するのが

Prompts from File or Textbox」です。

これは、多数のプロンプトを順番に実行できる機能です。

選択してみると、こんな画面が出てきます。

Prompts from File or textboxの具体的な使い方は2パターンあります。

1. 直接プロンプトを入力する
2. テキストファイルを入れる

一つずつ見ていきましょう!

1.直接プロンプトを入力する


以下の部分にプロンプトを入力していきます。

例えば以下のように入力して……

いつものように「Generate」を押すと……

全てのプロンプトで1枚ずつ生成されました!


2.テキストファイルを入れる


以下の部分にテキストファイルを入れることも可能です。

複数プロンプトをこのようにテキストファイルに書いて……

ドラッグ&ドロップすると(①)、
自動で複数プロンプトが入力されます(②)。

テキストファイルを使い回せるので、
よく使うプロンプトセットがでてきた場合に便利です!

使い終わったら必ずNoneに戻しておきましょう。
意外と忘れがちです。


⑦Dynamic Prompts


「Dynamic Prompts」は、プロンプトのランダム作成ができる機能です。

例えば、以下のようなプロンプトです。

1girl, {black hair|yellow hair|purple hair}

カギカッコで挟まれていて、棒で区切られている部分が
Dynamic Promptsです。

このプロンプトで生成すると「black hair」「yellow hair」「purple hair」の中からランダムに1つ選ばれます。

試しにBatch countを9にして、9枚連続で生成してみると、
以下のようになります。

バラバラに生成されているのが分かると思います。

ただし、これでは完全にランダムなので、
確率的にかなり偏ってしまうこともあります。

上の例では、ムラサキの子が1人しかいません。

そこで、確率に重みをつけて修正することもできます。
例えば以下のようなプロンプトを書きます。

1girl, {1::black hair|1::yellow hair|1::purple hair}

上記では、それぞれの要素が1:1:1で出るように指定しています。
※数字は相対評価なので、何でもOKです。

これで9枚生成してみると、以下のようになります。

生成される枚数が均等になりました!

実際に使うには「sd-dynamic-prompts」という拡張機能を入れる必要があります。

https://github.com/adieyal/sd-dynamic-prompts.git

以上のURLでインストールしてください。
拡張機能の入れ方はこちら:https://koneko3.com/stable-diffusion-extension-index/

「txt2img」タブの左下に「Dynamic Prompts」という項目が追加されます。

クリックして、「Dynamic Prompts enabled」にチェックが入っているか確認してください。

デフォルトはONになっています。

⑧ワイルドカード(Dynamic Prompt × 複数テキストファイル)


ワイルドカードは、「⑥Dynamic Prompt」と「⑦Prompts from file or textで使ったテキストファイル」の合わせ技のような機能です。

これにより、「複数のテキストファイルに保存されたプロンプトセットを、ランダムに組み合わせていく」ことができます。

・・・・・・と、聞いただけだと意味不明だと思うので、
具体的に説明します。

以下のようなプロンプトを書きます。

1girl, __hair__, __dress__ 

この『_(半角アンダーバー)』2つ(__)に挟まれたワードが、
「テキストファイルの名前」に対応します。

上記の例でいうと「hair.txt」「dress.txt」からプロンプトが読み込まれます。

以下のようなイメージです。

テキストファイルに書かれたプロンプトを「Dynamic Prompt」として扱うわけですね。

これは実質、以下のプロンプトと同じです。
複数のDynamic Promptを併用しています。

1girl, {black hair|yellow hair|purple hair},{red dress|blue dress|green dress}

しかし毎回これを書くのは面倒ですし、
選択肢が多い場合はなおさらですよね。

そういう時に、この「ワイルドカード」が役立つということです。


でも、Prompt from file or textの機能では、
ファイルは一つしか使えないはずですよね?

しかし、それを解決するため、
「ワイルドカード専用のテキストファイル置き場」が用意されています!

具体的には
「stable-diffusion-webui>extensions>sd-dynamic-prompts>wildcards」になります。

以上のようにテキストファイルを置くと、準備完了です!

試しに9枚生成してみると……

バラバラの組み合わせでランダム生成できました!

ちょっと赤いドレスに偏っていますね。
テキストファイルからはDynamic Promptのような「重み付け」が効かないので、そこがワイルドカードの弱点になります。

注意点としては、ワイルドカードと「⑦Script機能:Prompts from file or textbox」は直接関係ありません。
Script機能は「none」を選択しておきましょう。

似ているのでややこしい部分ですね。笑


そして、そもそも1からワイルドカードを作るのも面倒だという人もいると思います。笑

そういう方向けに、「CIVITAI」で大量のサンプルが配付されています!

興味のある方はダウンロードしてみてください。
リンク:https://civitai.com/models/20868/200-wildcards-nsfw-and-sfw



以上、WebUIの標準機能・拡張機能による自動化テクニック大全でした。

また新たなテクニックを発見し次第、随時更新していきますね!

あとここだけの話、ぼくは上記の自動化テクニックにプログラム(Pythonコード)を掛け合わせた「オリジナル自動化ツール」を使用して生成しています。

これについても、近日公開したいと思っています。
プログラム不要で簡単に使用できるようにする予定ですので、お楽しみに😁

記事が参考になったら「♡」をポチッとしてくれると嬉しいです。

今後も生成AIを活用するための情報を発信していきますので、Xのフォロー(@hirochuu8)もよろしくお願いします!


この記事が気に入ったらサポートをしてみませんか?