2023年5月17日水曜日

Stable Diffusion でシード値を使って全く同じ画像を生成する方法

Stable Diffusion でシード値を使って全く同じ画像を生成する方法

概要

Stable-Diffusion で全く同じ画像を生成するにはシード値を使います
今回は PromptHero にある画像をシード値を使って生成する方法を紹介します

環境

  • GoogleColab (2023/05/03 時点)
  • stable-diffusion-webui 1.1.0
  • stable-diffusion 1.5 (pruned)

再現する画像

今回はこちらを生成してみます

ポイント

シード値は当然ですがそれ以外にもモデル、モデル用設定ファイル、プロンプトやネガティブプロンプト、ステップ数なども同一の値にする必要があります

特にモデルが大変でバージョンが違うだけで全然違う画像が生成されてしまうので必ず同一モデル+同一パラメータで生成する必要があります

コード

今回は stable-diffusion-v1.5 を使います
StableDiffusionWebUI はデフォルトで stable-diffusion-v1.5 を使いますが emaonly 版なので pruned 版を使うようにします

!git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
%cd stable-diffusion-webui

!wget https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors -O /content/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned.safetensors
!wget https://huggingface.co/runwayml/stable-diffusion-v1-5/raw/main/v1-inference.yaml -O /content/stable-diffusion-webui/configs/v1-inference.yaml

!COMMANDLINE_ARGS="--share --gradio-debug --xformers --gradio-auth me:qwerty" REQS_FILE="requirements.txt" python launch.py

動作確認

今回は以下を同一の値に設定します

  • プロンプト -> (masterpiece:1.0), (best quality:1.4), (ultra highres:1.2), (photorealistic:1.4), (8k, RAW photo:1.2), (soft focus:1.4), 1 woman, posh, (sharp focus:1.4), (korean:1.2), (american:1.1), detailed beautiful face, black hair, (detailed open blazer:1.4), tie, beautiful white shiny humid skin, smiling
  • ネガティブプロンプト -> illustration, 3d, sepia, painting, cartoons, sketch, (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, normal quality, ((monochrome)), ((grayscale:1.2)),newhalf, collapsed eyeshadow, multiple eyebrows, pink hair, analog, analogphoto
  • シード値 -> 300563992
  • ステップ数 -> 35
  • サンプラー -> DPM++ 2M Karras
  • CFG -> 7.0

これで実行して同一画像が生成されることを確認しましょう

最後に

モデルのバージョンが違うと別の画像になることがあるのでモデルのバージョンとリビジョンも確認しましょう

0 件のコメント:

コメントを投稿