【ランダム化】Stable Diffusionで似たような画像が生成されるのを避ける方法

かな(見習い)
かな(見習い)

は〜、最近似たような画像ばかり生成しちゃってるなー
思いつくプロンプトは入れ尽くしたしどうしよう、、

ナカ(マスター)
ナカ(マスター)

プロンプトにランダム性を入れると
いい感じに意図してない画像が生成されるぞ☆

かな(見習い)
かな(見習い)

プロンプトにランダム要素って入れれるんですか!?
マスター、やり方を教えてください!

似た顔を避けるにはこの拡張機能がおすすめ

同じプロンプトを使い続けているとどうしても同じような画像が
生成されてしまいます。

また、毎回プロンプトを変えて生成しようとすると大量生成が
できないので大変です。

なので、

「一度入れたプロンプトをできる限り変えずに
同じような画像が生成されない」

この状態を作る必要があります。

そしてこの状態を作ってくれるのが
「Dynamic Prompts」という拡張機能になります。

「Dynamic Prompts」の特徴は以下になります。

・{ } プロンプト内に波括弧を使うと起動して、波括弧の中に入れたプロンプトを
1回の生成につきランダムに1個取り出して使ってくれる

・大量に単語登録しておいてその単語の中から1回の生成につき1個取り出す
設定もできる

・書いたプロンプトの後にプロンプトをランダムで付け足してくれる

このようにプロンプトに、ひたすらランダム性を入れてくれる
神拡張機能になります。

神拡張機能の導入方法

「Dynamic Prompts」の導入方法を説明します。

Stable Diffusionを起動して、

Extention→Install from URLの順にタブを開き、

一番上の箇所に以下をコピペしてオレンジの「Install」
を押してください。

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

その後は他の拡張機能の導入と同様に、

Installedタブを開いてオレンジの「Apply and quit」
を押すと、

Stable Diffusionが再起動されて「Dynamic Prompts」が
使えるようになります。

ランダム性を持たせる使い方

まず「Dynamic Prompts enabled」にチェックを入れて
起動状態にしましょう。

基本の書き方は波括弧

波括弧の中にプロンプトを入れて縦棒で区切ります。

{A | B | C}

このような形になります。

3つと決まっているわけではなく、2つでも
いいですし、4つ以上でも大丈夫です。

波括弧の中に入れるプロンプトは同じような特徴の
ものを入れるのが基本となります。

例えば髪型の特徴の

{long hair | medium hair| short hair}

場所を表す特徴同士の

{room | beach | hotel}

みたいな形ですね。

波括弧の中に違う種類の特徴を入れると
収集がつかなくなる可能性もあるので、
同じ種類の特徴同士まとめましょう。

波括弧の中の比重は変えれる

基本の書き方の場合は、それぞれの
プロンプトが均等の確率で選ばれます。

選ばれるプロンプトに多少の偏りはでますが
大元の確率は同じなので、

大量に作った場合は同じくらいの画像枚数になります。

選ばれる確率を変えたい場合は小数点と「::」を使って合計1になるように
数字を割り振ります。

{0.5::A | 0.3::B | 0.2::C}

このような感じですね、この場合
Aが一番選ばれやすく、Cが一番選ばれにくくなります。

合計を1にせずに合計2とか合計0.8とかでも確率は変わりますが、
毎回同じ数字にした方がわかりやすいと思うので合計1に統一させる
のをおすすめします。

波括弧の中からランダムに複数選ぶ書き方

波括弧の中から複数選びたい場合はドルマークを使います。

2つ選ぶ場合は、

{2$$ A | B | C}

と書きます。3つの場合は「3$$ 」と数字部分を変える
形ですね。

比重との併用も可能です。

ただし波括弧に特徴同士まとめて入れるのが基本なので
特徴を2つ以上選ぶ場合に適さないことが多々あります。

「long hair」と「short hair」の2つが選ばれると
画像が崩壊しますし、

「room」と「beach」も2つ選ばれると画像の崩壊を招きます。

なので複数選ばれても問題ないような、アクセサリーや小物、
インテリア、装備などに使うのが良いと思います。

また人種や髪色などをあえて2つ選ばせるのは場合によって
はうまくいくかもしれません。

人種は2つ選んでもらうとハーフみたいな顔になる可能性が
ありますし、
髪色は2つ選んでもらうとツートーンカラーになる可能性が
あります。

長くなりそうなので今回は導入と基本の使い方に留めます、
次回以降にさらにランダム性を加速させる応用的な使い方を
ご紹介します。

まとめ:わからないから楽しい

Stable DiffusionのAI画像生成する際に似たような画像を避ける
方法について説明しました。

予測可能なことは飽きやマンネリに繋がりがちなので、
そういうのを避けるためにも、

ランダム性を持たせて予測不可能な領域を展開していきましょう。