CFGスケール(Classifier Free Guidance Scale)は、近年話題のStable Diffusionという画像生成モデルにおいて重要な概念です。このスケールは、生成される画像がどの程度入力されたプロンプトや画像に忠実になるかを決定するパラメータです。しかし、このCFGスケールをどのように理解し、最適に使用するかは初心者にとって少々難しいかもしれません。本記事では、CFGスケールの基本的な役割とそれを最適に調整する方法について、初心者でも理解しやすいように丁寧に解説していきます。
CFGスケールとは何か?
CFGスケールは、Stable Diffusionモデルで使用される重要な設定の一つです。このスケールは、生成される画像がどれだけ入力されたプロンプトや画像に似ているか、すなわち忠実度を調節する役割を持っています。CFGスケールの値が高ければ高いほど、出力画像はプロンプトに近いものになりますが、それに伴って歪みが生じることがあります。逆に、CFGスケールの値が低いと、プロンプトから離れる可能性が高まりますが、画質は向上する傾向にあります。
CFGスケールの重要性と使うタイミング
CFGスケールは、プロンプトや入力画像に対する生成画像の忠実度を調整するためのパラメータで、出力される画像の品質と忠実度を制御することができます。
値を大きくすると、プロンプトや入力画像に忠実な画像が生成されますが、歪みが生じる可能性があります。
値を小さくすると、プロンプトや入力画像から離れた画像が生成されますが、画質が向上します。
CFGスケールは、画像のクオリティと創造性のバランスを取る上で非常に重要で、特に、複雑なシーンや細部にわたる描写が求められる場合、CFGスケールの適切な調整が必要となります。このスケールを理解し、適切に操作することで、Stable Diffusionを使った画像生成の精度を大きく向上させることができます。
CFGスケールの効果の具体例
CFGスケールの値が1や3の場合、生成される画像はプロンプトにあまり忠実ではありませんが、自然で柔軟な出力が得られます。値が7になると、忠実度が向上しますが、ノイズが目立ち始めることがあります。10以上の値では、画像はプロンプトに非常に近くなりますが、過飽和状態になることがあり、実際の対象物とは異なる結果になることもあります。
次の例は「眼鏡をかけた白いセーターを着た少女」というプロンプトで、CFGスケールを調整して画像生成した結果です。少し分かりづらいのですが、CFG=7付近が最も良くプロンプトを反映しているという結果になっています。
複雑なプロンプトの場合だとCFGを大きくすると画像の崩れが顕著に現われてくるのですが、この例では、それほどはっきりとした崩れにはなりませんでした。
CFGスケールの調整方法
CFGスケールの適切な調整は、Stable Diffusionを使用する上で非常に重要です。
CFGスケールの調整プロセス
- プロンプト入力: 生成したい画像の詳細なプロンプトを入力します。良いプロンプトの作成には独創性と正確性が求められます。
- CFGスケール調整: 画面に表示されるスライダーを使用してCFGスケールの値を調整します。この値は生成される画像に直接影響を与えます。
- 画像生成: 調整したCFGスケールで画像を生成し、結果を確認します。異なるCFGスケールの値で複数の画像を生成し、比較することも有効です。
CFGスケールの最適なポイントの見つけ方
CFGスケールの最適な値は、プロジェクトの目的や好みによって異なります。一般的には、7〜11の間で最良の結果が得られることが多いですが、実際にさまざまな値で試してみることで、自分のニーズに最適な値を見つけることができます。
CFGスケールの最適なポイントを見つけるためには、まず低い値(例えば3または4)から始め、徐々に値を上げていきます。これにより、生成される画像がどのように変化するかを観察することができます。プロンプトに対する画像の忠実度と画質のバランスを見極めながら、最適な値を見つけることが重要です。多くの場合、CFGスケールを7から11の間で調整することで、忠実度と画質の良いバランスが得られます。
実験を重ねることで、あなたのニーズに最適なCFGスケールの値が見つかります。プロジェクトの要件に応じて、CFGスケールの値を微調整することで、より満足のいく結果を得ることが可能です。
次の画像ではLoraを使った複雑なプロンプトでCFGスケールをそれぞれ変化させ画像生成した例を示しています。この例では、CFG=16の時にプロンプトをもっともよく反映している結果になりました。使うheckpointやLoRaファイルなど、条件によって最適なCFG値は異なるので調整はどうしても必要です。