seed値で画像を再現 – Stable Diffusion


通常、画像生成AIで作成された画像で気に入ったものは「イメージデータ」として保存します。

Stable Diffusion ではプロンプトとseed値を使えば生成過程自体を再現できます。

tweak images via repeated Stable Diffusion seeds

seedは画像を微調整するのに使うそうですが、気に入った画像を後日再現するのに重宝します。

やってみましょう。

Colab にアクセス

まずは、どんなGPU が使われているのか確認しましょう。

 

 

diffusersとライブラリをインストール

 

アクセストークンでHugging Face にログイン

アカウント作成やアクセストークン取得に関してはこちらを参照

無事ログインするとこんな感じ。

 

GPU メモリを節約するために、half-float 精度を使用します。 完全な精度で推論を実行したい場合は、 revision="fp16"torch_dtype=torch.float16 を削除します。

最初にいくつかの画像を生成して、どの画像が最も気に入ったかを確認します。 結果をグリッドに表示します。

この例では、一度に 4 つの画像を生成します。 GPU の RAM の量に応じて、自由に更新してください。 また、目的の出力解像度を「512 × 512」に設定します。

 Latents Generation

シードを再利用するには、潜在変数を自分で生成する必要があります。 そうしないと、パイプラインが内部でそれを行い、それらを複製する方法がありません。
Latents は、拡散プロセス中に実際の画像に変換される初期ランダム ガウス ノイズです。
それらを生成するには、潜在変数ごとに異なる乱数シードを使用し、後で再利用できるように保存します。

これで、画像を生成する準備が整いました。 使用したいLatentsをパイプラインに送信します。 そうしないと、パイプラインが新しいセットを生成します。

生成された画像をgridに表示

サンプルでは以下のような画像が生成されていました。

で、お気に入りの画像として右上の画像のseed値を取得してみます。

サンプル画像のseed値は以下のものだったそうです。

6363507785059417

このseed値を控えておいて、この値で画像を見てみます。

 

 


新しいセッションでColab を使って画像を再現してみましょう。

Colab にアクセス

ノートブックを新規作成した場合は、GPU をアサインしておきましょう。

色々インストールしてHugging Face にログインして、パイプラインを作ってgridを定義するまでは、同じです。

generatorとlatentsを設定

変数を設定、seed値は控えておいたお気に入りの画像ものを使い、プロンプトも同じです。

画像生成

以下の画像が再現されて表示されます。

 

 

 


 

Be the first to comment

Leave a Reply

Your email address will not be published.


*