プロントを指定しているのに画像に希望通りに反映されない。
意図している画像がなかなか生成されない。
そんなお悩みをお持ちの方は、CFG scaleの値を変更してみてはどうでしょうか?
今回の記事では、CFG scaleについて解説しています。CFG scaleへの理解を深め、理想の画像を生成しましょう!!
『CFG scale』とは?
CFG scaleとは、プロンプトに対してどれだけ忠実な画像を生成するかを指定する数値です。
数値が大きいほど、プロンプトに忠実な画像を生成しようとします。公式の学習モデルでは、一般的に7〜11の範囲で数値を指定します。Stable Diffusion Web UIでは、CFG Scale 7.0がデフォルトとして設定されています。
CFG scaleの値が大きいほど、プロンプトや「img2img」で入力した参考画像が強く反映された画像を生成します。
しかし、指示に忠実になろうとするあまり、画像が崩れる可能性も高まります。
逆に、CFG scaleの値が小さいと、プロンプトからは離れる可能性が高まるものの、生成される画像の品質は向上することを意味します。
つまり、プロンプトを強く反映させたい場合はCFG scaleを大きく設定し、画像の品質を重視する場合はCFG scaleを小さく設定します。
CFG scaleの適正値は使用するモデルによって異なるため、Civitalなどのモデルダウンロードページを参照して確認しましょう。迷ったときやCFG scaleの指定がない場合は、デフォルト値を使用するのがおすすめです。
『CFG scale』のメリット
1. カスタマイズ性
CFG scaleを使用することで、ユーザーはプロンプトにどれだけ忠実な画像を生成するかを指定することができます。これにより、具体的な要望や目的に応じて画像の出力を作用させられます。
2. 柔軟性
CFG scaleは数値を変更することで、生成する画像の特性を変えることが可能です。これにより、ユーザーは忠実度と画像品質のバランスを取ることができます。
『CFG scale』の設定はどれくらいがおすすめ?
公式の学習モデル使用するとき
公式の学習モデルでは、一般的に7〜11の範囲で設定をすることが推奨されています。
独自のモデルを使用するとき
独自のモデルを使用する場合は、使用するモデルによって適正値は異なる可能性があるため、Civitalなどのモデルダウンロードページを参照して、そのモデルにおける適正値を確認しましょう。
判断に迷ったとき
CFG scaleの適正値が不明な場合や、特定の設定に不安がある場合は、デフォルト値の7を使用するのがおすすめです。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
『CFG scale』の違いを検証
それではシード値を固定して、CFGを変更した画像を見て違いを比較してみましょう。
今回は、拡張機能などは使用せず、CFG scaleの違いだけを比較していきます。
プロンプトは、「白い背景で正面を向いて座っている白いTシャツを着た黒髪の日本人の女性」と指定しています。
CFG scaleを1.0〜5.0に設定
seed値を固定しているものの、CFG scale:1.0と5.0では別人に見えます。背景は白ではなく、灰色です。目線はこちらを向いているものの、姿勢はこちらを向いていません。
全体的、プロンプトの影響が小さため、求めている画像には届いていません。
それでもCFG scale:5からプロンプトに近い画像になっています。
CFG scaleを6.0〜10.0に設定
どの画像も表情が安定しています。
CFG scale:6.0〜10.0の範囲が指定したプロンプトのイメージに近いです。
CFG scale:7.0から背景も白くなってきました。目線とともに姿勢も正面を向いています。
CFG scale:7.0〜10.0に範囲がもっともイメージに近い画像です。適切なCFG scaleの範囲7.0〜10.0だと考えられます。
CFG scaleを11.0〜15.0に設定
人物については非常に安定しています。
ただし、徐々に画像全体の色彩に変化が発生しています。
CFG scale:14.0以降ははっきりと色彩が崩れ、非常に人物が見辛くなっています。
CFG scaleを16.0〜20.0に設定
CFG scaleが17.0からは画像の色彩の崩れのほかに、Tシャツに変化も加えられています。首元に黒の柄が加えられています。
この辺りの画像を使用したいのならば、拡張機能などで色彩の手直しが必要です。
以上、CFG scale別の比較を見たところ、プロンプトを正確に作用させるには、CFG scaleは7.0〜10.0の範囲が適正値だと考えられます。
『CFG scale』以外の設定項目
CFG scaleの設定だけでは解決できない場合は、下記の項目もチェックしてみましょう。
Sampling steps
理想的な画像を生成するためには、Sampling stepsも考慮するポイントです。
Sampling stepsとは、画像生成のフィードバック工程をどのくらいの回数実行するかを決める設定です。
数値が多いほど、より精緻な画像が生成されますが、それだけ画像生成の時間も長くなります。初期設定の20は安定していますので、画像が完成に近づいた段階で数値を調整することをおすすめします。
拡張機能「sd-dynamic-thresholding(CFG Scale Fix)」
CFG scaleはデフォルトで7に設定されていますが、この値を大幅に変更すると画像が崩れることがあります。
sd-dynamic-thresholding(CFG Scale Fix)は、これらの問題を大幅に改善する拡張機能です。
CFG Scaleを下げると、画像が抽象的となり、全体的にぼやけた出力になる傾向があります。一方、CFG Scaleを上げると、画像の鮮明感は増すものの、色調が変わったり、形状が乱れたり、ノイズが生じることがあります。
CFG Scaleを上げても、形状の乱れやノイズが発生しない場合、より鮮明な画像が得られると期待できます。これを実現する拡張機能がsd-dynamic-thresholding (CFG Scale Fix)です。
それでは、実際に生成された画像で比較してしましょう。
まずは、CFG Scal:25.0で設定し、sd-dynamic-thresholding (CFG Scale Fix)を使用しないで生成した画像です。プロンプトは、これまで使用してきたものと同じです。
表情が判別しづらく、服装にもプロンプトにない要素が追加されています。
次に、CFG Scal:25.0で設定し、sd-dynamic-thresholding (CFG Scale Fix)を使用して生成した画像です。
正直、前の画像と変化を見分けることは難しい。このままでは、画像として使えません。
それでは、最後に、Sampling stepsの値を変更します。値は50に設定してみましょう。
非常に綺麗な画像が生成されました。髪型についてはこれまでに生成された画像の中で一番イメージに近いです。ただ、ネックレスを身につけているのが気になります。
以上のように、sd-dynamic-thresholding (CFG Scale Fix)を使用する際に、それだけでは効果が十分に発揮されないことも考えられます。その場合、Sampling stepsの値を増やすことで、より高品質な画像の生成が期待できます。
Hires.fix
Hires.fixは、Stable Diffusionの補正機能の中で特に注目されるもので、高解像度のイラストを生成する際に非常に役立ちます。多くのモデルは512×512ピクセルの画像で学習しているため、大きな解像度でのイラスト生成が困難です。Hires.fixの特徴は、まず標準的なサイズでイラストを生成し、その後で高解像度にアップスケールするという流れにあります。これにより、元の構図を維持しつつ高画質なイラストが得られます。
○ 主要な設定項目のポイント
- Upscaler: イラストを高画質にするためのアルゴリズムです。選択により、イラストの品質が変わります。
- Hires steps: 拡大したイラストを描画するステップ数です。初期値は0です。
- Denoising strength: ノイズの除去の強さです。0.6が無難とされています。
- Upscale by: イラストの拡大率です。あまり大きな値は推奨されません。
- Resize width to: 縦横比を調整したい場合の幅の指定です。
これらの設定を適切に調整することで、Hires.fixの機能を最大限に活用できます。
まとめ
いかがでしたでしょうか?
今回はCFG scaleについて、そして生成される画像について解説しました。
今回のポイントをまとめると、以下のようになります。
- プロンプトを忠実に画像に作用させたければ、クオリティは下がるリスクはあるが、CFG scaleの値を大きくする。
- 画像のクオリティを上げたいならば、プロンプトを無視する恐れはあるが、CFG scaleの値を小さくする。
- CFG scaleだけで解決できない場合は、拡張機能や補助機能の使用を検討する。
CFG scaleへの理解を深め、理想の画像を生成しましょう!
CFG scaleだけでは解決できないときは、Stable diffusionに関する他の記事もご用意しています。そちらの記事もぜひともご覧ください。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい