Stable Diffusion 生成した画像を微妙に変えて再生成する方法

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

たまたま生成できた神画像を微妙に変えてもう一度
生成する方法ってないのかな?

同じプロンプトで生成し続けても全く同じのには出会えないんだよね〜

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

神画像との出会いは基本的に一期一会だが、
何度でも出会う方法があるぞ☆

微妙に変えて出会う方法を中心に教える☆

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

出会うを多用しすぎな気がしますが、とにかく方法があるんですね!

マスターそのやり方を教えてください!

シード値があれば同じ画像を生成できます

そもそもシード値って何なの?

stable diffusionでAI画像を生成する仕組みは、

1.シード値がランダムに決まって画像の初期性能が決まる
(シード箇所の-1は生成時にランダムに決めますという意味になります)

2.そのシード値に対してプロンプトやモデルなどを適用させて
 画像が生成される

このような2ステップになっています。

なのでいくら良いプロンプト、良いモデル、拡張機能などを
用意してもこのシード値との相性が悪いと微妙な画像が
生成されます。

結果論の世界

またシード値はただの数字の羅列なのでどういうシード値が
良いのかは結果を見ないとわからないのでこちらでどうしようも
ないです。

神画像が出た=シード値がよかった

このような認識の仕方になります。

こういう運要素があるため、大量生成して良い画像を残す
という戦略が有効になります。

同じシード値✖️同じプロンプト=同じ画像

良い画像が出た際にその画像のシード値を
設定箇所に入れて、

他の設定を同じにして生成することで
全く同じ画像を作ることができます。

例えばこの画像のシード値は「3122407887」と書いてあるので、
これをseed箇所に貼り付けて生成すると全く同じ画像が生成されます。

こんな感じですね、ちなみにサイコロマークを押すと
ランダム生成の「-1」に戻すことができます。

【3選】微妙に変える方法

シード値を使えば全く同じ画像を生成させる
ことはできますが、

全く同じ画像を生成する機会はほとんどないと
思うのでこれだけだとあまり実践的ではないです。

ここからは同じ画像の要素のまま微妙に変化を
加えて生成する方法について説明します。

方法1:プロンプトを変える

シード値を設定した状態でプロンプトを少し
変えると同じ画像で少し違う画像を作ることが
できます。

さっきのプロンプトに「smile」を加えて生成すると
こんな感じで同じ画像の笑顔バージョンが作れます。

シード値は「3122407887」のままですね。

髪型や服、背景など色んな箇所を元画像を保持したまま
生成することができますが、

プロンプトを変えすぎると保持しきれなくなる場合もあるので
少しずつ変えながら様子をみながらやってみてください。

方法2:エクストラを使う

シード箇所の右に「Extra」書かれているところがあるんですけど、
こちらを使って微妙に変えることもできます。

チェックを入れるとこんな感じでメニューが出てきます。

バリエーションシード(Variation seed)というのは元のシードに
対してバリエーションをつけるためのシードみたいな意味なんですけど、
ここは「-1」のままで大丈夫です。

設定変える箇所はバリエーションストレングス(Variation strength)の箇所で
ここの値を多くすると、

バリエーションシードの影響を強くできる=元画像と少し違う画像が作れます。

こうなります。

バリエーションストレングスの目安は「0.2」でこれを基準に上げたり
下げたりするのがいいかと思います。

また「0.01」単位で変更もできますがあまり意味がないように思えるので
「0.1」単位で調整してみてください。

下の2つの設定はなんなの?

バリエーションシードとバリエーションストレングスの下に
設定が2つありますが、

こちらはサイズ変更に関するものなので「0」のままで
大丈夫です。

「0」だと元の画像と同じサイズという意味になります。

さっきの画像をバリエーションストレングスを「0.2」で生成すると
こんな感じです。

シード値は「3122407887」のままになっています。

またこの方法はバリエーションシードが生成ごとに毎回決まるので、
何回生成しても元画像と微妙に違う色々な画像を生成することができます。


方法3:バリエーションシード値を変える


3つ目の方法はこれまでランダムの「-1」に設定していたバリエーションシード(Variatation seed)
の箇所を変えて画像を変化させる方法になります。

まずバリエーションシード(Variatation seed)箇所に適当な数字を入れます。

ここはどんな数字でもいいのですが逆に迷うので3〜4桁の
連番を入れてみてください。

今回は「1234」で生成してみます。

バリエーションストレングス(variation strength)は方法2と同様に「0.2」
を基準に調節してみてください。

生成結果がこちらになります。

この方法だと方法2とバリエーションシードと違う値に
なるので方法2とは少し違う変化を加えることが可能となります。

またシードとエクストラのバリエーションシードを入れて
プロンプトを変えたり、ストレングスを変えることによって
さらなる変化を加えることも可能です。

このように1つのシードからかなりの広げて生成していくことが
できるのでぜひ試してみてください。

まとめ:逃した魚はでかい

Stable Diffusionで生成した画像に少し変化を加えて再生成
する方法について3つご紹介しました。

やり方は他にもありますが今回ご紹介した方法だとシードの重要性も
理解できるのでとてもおすすめです。

今回のようなシードの活用も大事ですが、すぐに使えるようにシードを
保管しておくこともすごく大事になるので

・良いシードを集める
・良いシードを保管
・良いシードを使う

この3点セットを押さえておいてください。