7.StableDiffusionと合わせて使いたいモザイクツールの紹介と、Dynamic Promptsの導入
おはようございます。
今日はStableDiffusion(以下ステディ)を便利に使用するため、
モザイクツールの用意と、拡張機能を入れていきましょう。
まずはモザイクの無料ツール(フリーソフト)です。
はてなブログはアダルトNGですので、紹介するか迷いましたけれど、
ステディを使用するにあたって、要モザイクの画像が生成されてしまうのは
避けられない問題です。
モデルにもよりますが、アダルトNGの命令(プロンプト)を指定していても、
描かれるものは描かれます。
子供がステディを使い始める際、親御さんは要注意です。
一般的なAIイラストのアプリなどでは、アダルトの画像が作成されても
表示させないような設定が入っているものも多いですので、
子供には、そのようなAIアプリから使わせるのが良いでしょう。
モザイクのツール
有志の方が、とても便利なツールを無料で配布してくれています。
※注意:ツールの導入は自己責任となりますので、トラブルには気を付けてください。

記載されているURLへ遷移すると、ギガファイル便が開きます。

いきなりYouTubeの動画が再生されてビックリしますね。
「mosaic_2024-06-02」の圧縮ファイルがダウンロードできますので、解凍します。
解凍したフォルダは、ステディをインストールしているフォルダの直下などに
移動させておくと、見失い難いです。

PNeoneoは、私がステディをインストールしたフォルダです。
※キャプチャに色々と映っていますけど、
個人情報は含まれていないので大丈夫(のはず)です。
mosaic(EXE)のショートカットを、デスクトップに作成しておきます。
このショートカットに、画像をドロップするだけで、ツールが起動します。

この様に開きます。※画像は私がステディで生成したものです。
色々とメニューがありますけれど、画像を範囲指定するだけでOKです。

↓こうなります。

素晴らしい。シンプル イズ ベスト。
しかも、凄いのは、これだけではありません。
モザイクをかけたら、ツールを右上の×ボタンで閉じます。

なんと、ファイル名の末尾に「_mc」を付けた画像が、
元ファイルと同じ階層に自動で保存されています。
これぞ時短ツールの最先端。完璧です。神ツールです。
この様な高性能ツールが、無料で配布されている事に感謝です。
見つけるのは少し大変でしたけれど。。
ステディも無料ですし、この世界には優しい神様達がいて助かりますね。
モザイクの設定は色々と変えられますので、興味がある方は触ってみてください。
ダイナミックプロンプト(Dynamic Prompts)の拡張機能
ダイナミックプロンプトは、指定したプロンプトをランダム・または順番に使用する、
便利な拡張機能です。
※ダイレクトじゃないですよ。
例えば、【笑顔・怒った顔・泣き顔・驚いた顔】を指定しまして、
これら4つの中からランダムに選んで生成してもらったり、
複数の画像を作成する際に、左から順番に選択される、という事が可能になります。
これは表情に限った機能ではなく、服装を【Tシャツ・着物】で選択するなど、
様々な事に応用が可能(のはず)です。まだ試せていませんけれど。
導入方法は、ググって最上部に出た下記のサイト様を参考とさせていただきます。
Dynamic Promptsのインストール方法
- [Extensions]タブを開きます。
- [Install from URL]タブを開きます。
- [URL for extension's git repository]に以下のURLを入力します。
https://github.com/adieyal/sd-dynamic-prompts.git- [Install]ボタンを押します。

インストールできましたので、反映させます。
裏で画像を生成中の場合、途中で切断されますから注意してください。
- [Installed]タブを開きます。
- [sd-dynamic-prompts]が表示されていることを確認します。
- [Apply and restart UI]ボタンをクリックして、WebUIに変更を反映させます。
なかなか時間を要します。


画像の生成中にインストールを行った場合、
途中で切断された画像群の結合画像は作成されませんでした。
拡張機能のインストールは、画像の生成を終えてから。(基本)
私は今回で学びました。何事もチャレンジです。
※プロンプトのウィンドウ内にも、個人情報を含む場合がありますので
記事にキャプチャを張り付ける際は、ご注意ください。
ただ、含まれるのはステディの保存場所や使用モデルくらいでしょうか。
話を戻しまして、無事に?インストールは終わりました。
ステディのページ最下部に「Dynamic Prompts」が追加されています。

開くと、こうなります。

使い方と設定を、上から簡単に説明していきます。
1.プロンプトにダイナミックプロンプト用の呪文を追加
プロンプトに { smile | angry | wince } 等の指定を追加します。
※私が調べた限り、選択肢の数に制限は無いと思います。
2.Dynamic Prompts enabled
チェックが付いていることを確認します。
チェックが付いていることで、ダイレクトプロンプトは有効になります。
3.Combinatorial generation
チェックを入れない場合は、指定からランダムで選択されます。
チェックを入れると、選択順と画像枚数が、選択肢の内容で固定化されます。
要は、{ smile | angry | wince } を指定した場合、batch countの指定に関わらず、
smile → angry → wince の順に、3枚×「Combinatorial batches」で指定した数が、
生成されます。
・・・と思っていました。(詳細は後述)
4.Max generations (0 = all combinations - the batch count value is ignored)
生成する画像の枚数です。
数を指定すると、選択肢の左から順に選択して、指定の数だけ画像を生成します。
要は、{ smile | angry | wince } の指定をした状態で、2を指定した場合、
1枚目にsmile、2枚目にangryを使用した画像が生成されます。
こちらの数を指定すると、batch countで指定した数は無視されます。
5.Combinatorial batches
こちらも生成する画像枚数に関する指定です。
{ smile | angry | wince } の指定をした状態で、2を指定した場合、
smile → smile → angry → angry → wince → wince の様に、2枚ずつ作成します。
・・・と思っていました。(詳細は後述)
ここで気になるのは、これらの設定を組み合わせた時に、どのような挙動をするか?
という所かと思います。
いくつか調べましたので、共有します。
※「Dynamic Prompts enabled」はチェックを付けてある前提です。
パターンA
・プロンプトに「{ smile | angry | wince },」を追加
・Batch countに「4」を指定
・Combinatorial generationにはチェックを付けない
・Max generationsに「2」を指定
・Combinatorial batchesに「3」を指定
結果:4枚の画像が生成されます。
結論:
「Combinatorial generation」にチェックを付けなければ、
「Max generations」と「Combinatorial batches」は無視されます。
smile、angry、winceからランダムに選択され、選ばれたプロンプトは
生成後の画像情報や、「PNG Info」を使用して確認できます。


パターンB
・プロンプトに「{ smile | angry | wince },」を追加
・Batch countに「4」を指定
・Combinatorial generationにはチェックを付ける
・Max generationsに「2」を指定
・Combinatorial batchesに「3」を指定
結果:
2枚の画像を生成した後、エラー「IndexError: list index out of range」が出て終了。
![]()
結論:smile → angryの順で画像を作成しますが、エラーとなります。
この様に、プロンプトとMax generationsの数が合わない場合、
Combinatorial batchesは使えないみたいです。(初体験)
パターンC
・プロンプトに「{ smile | angry | wince },」を追加
・Batch countに「4」を指定
・Combinatorial generationにはチェックを付ける
・Max generationsに「0」を指定
・Combinatorial batchesに「3」を指定
結果:27枚の画像が生成されます。(想定外)
smile → smile → smile → angry → angry → angry → wince → wince → wince
→ smile → smile → smile → angry → angry → angry → wince → wince → wince
→ smile → smile → smile → angry → angry → angry → wince → wince → wince
上記の順番で画像が生成されました。
結論:
プロンプトの数(3)×Combinatorial batches(3)×Combinatorial batches(3)=27
Combinatorial batchesで指定した数が、なぜか2乗されている・・・と思われます。
パターンD
・プロンプトに「{ smile | angry | wince },」を追加
・Batch countに「1」を指定
・Combinatorial generationにはチェックを付ける
・Max generationsに「0」を指定
・Combinatorial batchesに「2」を指定
結果:12枚の画像が生成されます。
smile → smile → angry → angry → wince → wince
→ smile → smile → angry → angry → wince → wince
結論:
やはり、プロンプトの指定を2回×2回、生成していますね。
これは私だけでしょうか・・・?
試しに、プロンプトの指定数を大量に増やして、
Combinatorial batchesに「4」を指定し、生成ボタンを押してみます。
パターンE
・プロンプトに下記を追加
{ Happy Smile | Pleased | Great Joy | Cheerful | Grin | big laugh | :d | Smirk | Angry | Annoyed | Furious | pout |Scared | Afraid | Upset | Uneasiness | Sad | closed eyes, tearful | Cry | Bawl | Embarrassed | Blush | Nose Blush | shy |Surprised | Amazed | expressionless | Serious | Stick Out Tongue | Saliva |sweat, blush, narrow eyes, open mouth | sweat, blush, closed eyes, open mouth | wink, one eye closed |Sleepy | heart-shaped pupils | Open-Mouthed },
・Batch countに「1」を指定
・Combinatorial generationにはチェックを付ける
・Max generationsに「0」を指定
・Combinatorial batchesに「4」を指定

結果:生成時間が62時間と表示されました。

さすがに待っていられないので、キャンセルしました。

結論:
指定は36あるため、4×4を乗算すると、576枚。
1枚にSampling stepsが20ですので、11520。
コマンドに表示されている数字と計算が合っていますね。
私のPCで画像サイズ1200×1600の画像を576枚の生成するためには、
62時間かかる様です。
これはPCスペックに影響しますので、Gフォース4060での結果になります。
1時間に9枚の計算。。通常の生成に、そこまで時間はかからないため、
ダイナミックプロンプトで大量に生成する際は、時間が余分に必要かもしれません。
超高スペックPCを使用している方、ぜひ検証してみてください。
といった所で、今回の記事は閉めたいと思います。
気付けば5000文字の記事になっていますね。
ダイナミックプロンプトに関するボリュームが多くなりすぎました。
モザイクのツールと記事を分けても良かったですね。
次の記事は、プロンプトの内容について書く予定です。
それではまた。