Stable Diffusionの「CFG Scale」とは?概要とおすすめ設定を比較しながら解説
WEELメディア事業部リサーチャーのいつきです。
Stable Diffusionで目的にかなう画像を生成するには、重要なパラメータである「CFG Scale(Classifier-Free Guidance Scale)」の理解と活用が欠かせません。
CFG scaleにより、入力したプロンプトや画像の忠実度を手軽に調整できるので便利です。しかし、最適なCFG Scaleの設定が分からないという方もいるのではないでしょうか。
今回は、CFG scaleの基本や設定方法を解説し、数値を変えて画像を比較してみます。おすすめの設定も記載しているため、CFG scaleを駆使して思い通りの画像生成が可能になるでしょう。
ぜひ最後までご覧ください。
CFG Scaleとは
CFG Scaleは、Stable Diffusionにおける重要なパラーメーターの1つです。「入力したプロンプトや画像に対してどれだけ忠実な画像をつくるか」を調整できます。
CFG Scaleの値を高く設定すると、プロンプトや「img2img」でアップロードした画像に沿った画像を生成できます。しかし、値が高過ぎると画像生成の自由度が減るため、画質の悪化やノイズが大きくなるなど悪影響もあります。CFG Scaleの値を低く設定すると創造性やランダム性が増加しますが、低過ぎるとプロンプトの影響が弱まって意図しない画像を生成してしまう可能性があります。
生成したい画像の特徴に合わせて最適なCFG Scaleを採用すれば、目的とする画像に近づくでしょう。。
なお、Stable Diffusionについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
CFG Scaleの仕組み
CFG Scaleは、生成したい画像がどの程度プロンプトに忠実に従うかを制御するパラメータです。CFG Scaleを変化させることでプロンプトの影響力を調整し、モデルの生成自由度のバランスを取ります。特に、複雑で細かい描写が必要な画像を生成する際に重要な役目を果たします。
モデルはプロンプトありの予測とプロンプトなしの予測を行い、その差分を計算します。その後、以下の式を用いて差分をどれだけ強調するかを決定します。
プロンプトなし予測 +(プロンプトあり予測 - プロンプトなし予測)x CFG Scale
プロンプトなし予測とは、何も指示を与えず自由に生成する予測です。
CFG Scaleのメリット
CFG Scaleを調整することにより「プロンプトへの忠実度の調整」「創造性の強化」「画像品質の向上」の3つのメリットが期待できます。
目的とする画像を生成するには、プロンプトへの忠実度と創造性のバランスを取る必要があります。細部まで細かく指示して精度の高い画像を生成したい場合は、CFG Scaleを高くしてプロンプトへの忠実度を上げると効果的です。
CFG Scaleを低く設定すると、プロンプトの影響力が低下してモデルはより自由な解釈ができるようになり、創造性を引き出します。意図しないユニークな画像が生成される可能性があり、アートなど創造性の高い領域で効果を発揮するでしょう。
数値を極端に設定すると、意図しない画像や不自然な画像が生成されやすくなります。中程度のCFG Scaleを設定すれば、魅力的な内容で品質の高い画像生成が可能です。
Stable DiffusionでのCFG Scale変更方法
Stable DiffusionでCFG Scaleを変更する際は、上記画像の赤枠部分に注目します。パラメーターが数字で表示されており、数字横の上下の矢印をクリックする、もしくは数字を直接入力すればパラメーターを変更できます。
CFG Scaleを設定したら「Prompt」に生成したい画像の特徴を入力して「Generate」をクリックしましょう。画像生成に時間はかかりますが、しばらくすると画像が「Generated images」に表示されます。
CFG Scaleの変化を検証
今回は、CFG Scaleのパラメーターを変更して画像にどのような変化が起きるのか比較しました。
CFG Scaleは1から30で設定し、以下3つのパターンで検証しています。
- CFG Scale1~10
- CFG Scale11~20
- CFG Scale21~30
早速、CFG Scaleの設定が画像に与える変化をみていきましょう!
検証に使用するモデル
今回の検証では「Stable Diffusion WebUI」を使用しています。モデルは「Stable Diffusion XL」です。
プロンプトに一貫性を持たせるため、以下のようにすべて同じプロンプトを入力しています。
Red sports car on the highway
DeepLの翻訳
どのCFG Scaleでもプロンプトが反映されやすいよう簡単なプロンプトを設定し、CFG Scaleの数値のみを変更して画像を生成しました。下図は、CFG Scaleを1〜10の間で設定して生成した画像です。
CFG Scale1~10
画像を比較してみると、1〜4までのCFG Scaleが低い画像はスポーツカーのリアルさに欠けていることが分かります。数値が高くなるにつれてスポーツカーのリアルさや臨場感が増していますね!
特に、CFG Scaleを10に設定した画像は画質も綺麗で、スポーツカーにも迫力が感じられます。
CFG Scale11~20
上記は、CFG Scaleを11〜20に設定して生成した画像です。所々でブレている画像があるものの、全体的には赤いスポーツカーがリアルに表現されていてクオリティが高いといえます。
特に、CFG Scaleを18にして生成した画像は、道路標識のようなものも写っているので高速道路らしさも表れていますね!
今回生成した画像の中では、CFG Scale18が最もプロンプトの条件を満たしているといえそうです。
CFG Scale21~30
最後に、CFG Scaleを21〜30の間で設定した生成画像を紹介します。CFG Scaleが21を超えてくると、画像がブレていたり、暗くなったりしています。
唯一、CFG Scale27の画像だけは鮮明に表現されていますが、それ以外の画像では色の使い方が微妙でした。したがって、基本的にCFG Scaleの設定は20以下にするのがよさそうです。
CFG Scaleのおすすめ設定
CFG Scaleはどの設定がちょうどよいのか、気になっている方は多いでしょう。CFG Scaleを1〜30で設定した画像を見比べてみましたが、筆者の体感ではCFG Scale18が1番おすすめです。
プロンプトの条件を満たしているのはもちろん、スポーツカーの見た目がくっきりと写っており、かなりリアルに再現されていました。ただ、ほかのプロンプトでも同様にハイクオリティな画像を生成できるか気になるため、確認してみましょう。
まずは、以下のプロンプトで試してみました。
Girl in white dress crossing the crosswalk
DeepL翻訳
生成された画像が以下のとおりです。
確かに「横断歩道」「白いワンピースを着た少女」というプロンプトはクリアしていますが、肝心の画質は微妙ですね。CFG Scaleの数値が高い分プロンプトに沿った画像を出力できていますが、画質を重視するならもう少しCFG Scaleを下げる必要がありそうです。
次に試したのは以下のプロンプトです。
A tanned Japanese woman is making a peace while looking at us.
DeepL翻訳
生成されたのが以下の画像です。
上記の画像に関しては、「日焼けした日本人女性」という要素は満たしていますが、ピースはしていないですね。ポーズまでは反映されなかったようです。
このように、ちょうどよいCFG Scaleの設定値はプロンプトの内容や複雑さによって変動するものと思われます。明確にどの数値が1番よいかは決めにくいですが、およそ10〜20の間で設定するとよさそうです。
CFG Scaleを変更しても精度が悪い時の対処法
CFG Scaleを変更しても精度が悪いときは、ほかに原因がある可能性があります。
そのような場合は以下3つの対処法を試してみてください。
- プロンプトの順番を変える
- プロンプトを変更する
- Sampling stepsを確認
以下でそれぞれみていきましょう!
プロンプトの順番を変える
画像の精度を向上させるのに有効なのが、「プロンプトの順番を変える」という方法です。例えば、今回の記事では「高速道路を走る赤いスポーツカー」と入力していますが、これを「赤いスポーツカーが高速道路を走っている」と入力してみましょう。
確実に精度が向上するとはいえませんが、生成AIは最初と最後に入力した情報を重視して出力結果に反映する傾向があるので、生成画像の精度が向上する可能性は十分にあります。
特に、長くて複雑なプロンプトを入力しているときほど高い効果が期待できるので、ぜひ一度試してみてください。
プロンプトを変更する
プロンプトの内容がうまく画像に反映されない場合は、プロンプトの内容を見直すのも1つの手です。複雑で分かりにくい内容になっていると、生成AIがプロンプトの意図を正確に読み取れません。できる限りシンプルで分かりやすいプロンプトに変更しましょう。
プロンプトがシンプルすぎる場合は、もっと詳しく記載したほうが良いケースもあります。人物であれば着用している服の色を指定したり、動きや表情を指定するとよりリアルな画像を生成できます。
Sampling stepsを確認
Sampling stepsとは、Stable DiffusionにおいてCFG Scaleの上に配置されているパラメーターのことです。ノイズを除去する回数のことを示しており、上記の画像の場合だとノイズを20回も除去することを意味しています。
CFG Scaleを調整しても満足のいく画像を生成できないなら、Sampling stepsの数値を少し上げてみましょう。ノイズを多く繰り返すほど綺麗な画像を生成しやすくなるので、試してみる価値は十分にあります。
ただし、Sampling stepsの数値が高すぎると画像を生成するまでに多くの時間がかかるので、作業時間も考慮しながらバランスを意識して調整しましょう。
拡張機能の追加
Stable Diffusionには、数多くの拡張機能が存在します。
なかでも、筆者のおすすめは以下4つの拡張機能です。
- SD WebUI Tag Autocomplete : プロンプトの入力支援
- Multi Diffusion:画像の高精度化
- ControlNet: ほかの画像の構図を真似する
- Adetailer : イラストの顔や手を自動認識して補正する
特に、画質の低さで悩んでいるなら「Multi Diffusion」がおすすめです。一方、指定したポーズが反映されなくて困っている方は「ControlNet」を使用してみましょう。
それぞれ生成画像に大きな変化を加えられるので、生成画像の精度で悩んだら一度試してみてください。
なお、Stable Diffusionで使えるさまざまなモデルをダウンロードできるCivitaiについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
CFG Scaleを調整して高精度な画像を生成しよう!
CFG ScaleはStable Diffusionのパラメーターの1つで、生成画像の精度やプロンプトへの忠実度を調整する手段として有効です。数値を高く設定すればプロンプトへの忠実度が増し、低く設定すれば画質が安定しやすくなります。
ただ、CFG Scaleの数値は高くても低くても画像の精度が落ちるため、ちょうどよい塩梅を見つけましょう。設定方法は簡単で、CFG Scaleの横にある数字を手入力で任意の値に設定するだけです。
なお、筆者が1〜30の間で実際にCFG Scaleを設定して画像を生成したところ、18が最もバランスのよい画像に仕上がりました。
プロンプトの内容や複雑さによってCFG Scaleの最適値は変動するので、色々試しながら画像を生成してみてください。
生成系AIの業務活用なら!
・生成系AIを活用したPoC開発
・生成系AIのコンサルティング
・システム間API連携
最後に
いかがだったでしょうか?
弊社では
・マーケティングやエンジニアリングなどの専門知識を学習させたAI社員の開発
・要件定義・業務フロー作成を80%自動化できる自律型AIエージェントの開発
・生成AIとRPAを組み合わせた業務自動化ツールの開発
・社内人事業務を99%自動化できるAIツールの開発
・ハルシネーション対策AIツールの開発
・自社専用のAIチャットボットの開発
などの開発実績がございます。
まずは、「無料相談」にてご相談を承っておりますので、ご興味がある方はぜひご連絡ください。
➡︎生成AIを使った業務効率化、生成AIツールの開発について相談をしてみる。
「生成AIを社内で活用したい」「生成AIの事業をやっていきたい」という方に向けて、生成AI社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、弊社紹介資料もご用意しておりますので、併せてご確認ください。