1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「なんとなく」で設定している方へ Stable Diffusionの各パラメータを最適化するコツ

1
Posted at

はじめに

 こんにちは。私は普段、機械知能研究室に所属し、画像の品質評価に関する研究をしています。研究室のHPはこちらです。

前回の記事では、Stable Diffusionの内部構造(VAE、U-Net、CLIP)や、GAN・VAEの違いなど、画像生成の仕組みについて解説しました。

前回の記事:[Stable Diffusion]画像生成モデルはどう動いているのか?Stable Diffusionの構造を理解する

仕組みを理解して、次に突き当たるのが、「どの数値をいじれば思い通りの画像を生成できるか?」 という実践的な悩みです。Stable Diffusionは生成時のパラメータが多く、理解が浅いと、生成したい画像を思うように生成できません。
そこで本記事では「Samling Stepsを増やせば綺麗になるのか?」「CFG Scaleを上げすぎるとどうなるのか?」など、Stable Diffusionの画像生成における主要なパラメータに焦点を当て、それぞれの役割と生成結果への影響を整理・解説します。

目次

検証環境の条件

比較実験を行うにあたり、モデルにはフォトリアル系で定評のあるRelistic Visionモデルを採用します。

項目 設定値 備考
UI Stable Diffusion web UI forge -
Checkpoint Realistic Vision V6.0 B1 フォトリアル系の代表的モデル
Resolution 512 x 512 SD1.5ベースモデルの推奨サイズ
Sampler Euler a デフォルト設定
CLIP Skip 1 モデルの推奨設定(標準)

プロンプト設定
Realistic Visionを採用し、自然の風景を描写してみようと思います。今回の各プロンプトは以下の通りです。

 ・Prompt

RAW photo, a beautiful landscape of nature, forest, lake, mountain, high detailed, masterpiece, 8k

 ・Negative Prompt

(deformed iris, deformed pupils, semi-realistic, cgi, 3d, render, sketch, cartoon, drawing, anime), text, cropped, out of frame, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck, UnrealisticDream

Seed値の固定

Stable Diffusionにおいて、Seed値は画像生成の初期ノイズを決定する数値です。
通常、Seed値が-1(ランダム)に設定されている場合、同じプロンプト・パラメータでも、実行するたびに全く異なる画像が生成されます。今回は、パラメータによって生成画像を比較するのでSeed値は固定して実行します。

生成画像の比較
本記事の検証では、以下の手順で行います。

  1. ランダム生成により、ベースとなる1枚を見つける
  2. その画像のSeed値を固定する
  3. 固定した状態で、特定のパラメータだけを変化させる

主要パラメータの比較検証

CFG Scale(Classifier-Free Guidance Scale)

CFG Scaleは、モデルが入力されたプロンプトの指示にどれだけ忠実に従うかを制御するパラメータです。

  • 値を低くする (1〜4): 自由度が高まりますが、プロンプトを無視しやすくなり、全体的にぼんやりした、コントラストの低い絵になります。
  • 値を高くする (7〜11): プロンプトに忠実になり、ディテールがはっきりします。一般的な推奨値はこの範囲です。
  • 値を高くしすぎる (15〜30): プロンプトに忠実になりすぎて自由度を完全に失い、色が極端に濃くなったり、ノイズが入り画像が破綻するようになります。

image.png

CFG Scaleは30まで上げることができますが、結果の通り7〜9あたりですでに加工されたような色彩になっているのが確認できます。

Sampling Steps(サンプリング回数)

次に、ノイズから画像を復元する際の、ノイズ除去回数を比較します。

  • 少ないステップ (1〜10): ノイズが除去しきれておらず、全体的にぼやけていたり、オブジェクトの形が不完全です。
  • 中程度のステップ (20〜30): 公式で推奨されている回数です。ほとんどのモデルで生成画像の品質は最もよくなります。
  • 多いステップ (50〜100): ノイズ除去数は増えますが、変化は少なくなります。Sampling Stepsを増やすと計算時間が増えるため、コスパは悪くなります。

image (1).png

Hires.fix(高解像度補助)

Stable Diffusionは、512×512pixを超えるサイズで生成しようとすると、構図が崩れたり、オブジェクトが破綻したりといった問題が発生しやすくなります。これらを解決し、生成画像の品質を上げるために設定するのがHire.fixです。

  • 仕組み:

    • 一度低解像度で画像を復元し、それを拡大(Upscale)したあとに、サイドノイズ除去を行ってよりディテールを綺麗に復元します。
  • Upscaler: 拡大アルゴリズムを選択します。実写系であれば、R-ESRGAN 4x+4x-UltraSharpが推奨されます。

  • Hire steps: 拡大後のノイズ除去回数です。通常、SamplingStepsの半分程度を設定します。

  • Denoising strength: ノイズ除去の強度です。値が低い(0.3以下)と変化が少なく、高い(0.7以上)ともとの構図を無視してしまいます。0.5周辺の値が推奨されています。

image (3).png

結果から、構図はそのまま、詳細な部分をより高品質に復元できていると思います。実写系の画像を生成する際には、設定必須な項目かと思います。

検証結果:個人的にベストな実写系設定

様々な比較検証を通して、Relistic Visionで最も自然かつ精細な風景を出力できた設定をまとめます。

項目 設定値
Sampling Method DPM++ 2M
Schedule type Karras
CFG Scale 5
Sampling steps 25
Hires.fix あり

00062-Landscape,_8k,_RAW_photo,_realistic_lighting_DPM++ 2M_25steps_5cfg_364602727.jpg

まとめ

今回は,Stable Diffusionにおける主要なパラメータの影響を比較しました。
プロンプトを工夫することとは別で、パラメータを理解し、適切に制御することで、生成画像に対する満足度と効率はかなりあがります。みなさんも自分なりの黄金比を見つけてみてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?