Stable DiffusionのCFG scaleとは?おすすめの設定値と使い方を徹底解説
WEELメディア事業部リサーチャーのいつきです。
突然ですが、みなさんはStable Diffusionのパラメーターである「CFG scale」についてご存知でしょうか。CFG scaleを活用すれば、入力したプロンプトや画像の忠実度を手軽に調整できるので便利です。
今回は、CFG scaleの概要や設定方法、パラメーターごとの画像の違いについて詳しく解説します。最後まで目を通していただければ、CFG scaleを駆使して、思い通りの画像生成ができるようになるでしょう。
ぜひ最後までご覧ください。
CFG Scaleとは
CFG Scaleは、Stable Diffusionにおける重要なパラーメーターの1つです。一言で説明すると、「入力したプロンプトや画像に対してどれだけ忠実な画像をつくるのか」という要素を調整できます。
なお、CFG Scaleの値を高く設定すると、プロンプトや「img2img」でアップロードした画像に沿った画像を生成できますが、画質を綺麗に保つことができません。逆に、CFG Scaleの値を低く設定すれば、画質が向上する代わりに意図しない画像を生成してしまう可能性があります。
つまり、CFG Scaleは高くすぎず低すぎない値を設定するのがおすすめです。
なお、Stable Diffusionについて詳しく知りたい方は、下記の記事を合わせてご確認ください。
→Stable Diffusionとは?ローカル・ブラウザでの使い方やモデルのインストール方法を解説
Stable DiffusionでのCFG Scale変更方法
Stable DiffusionでCFG Scaleを変更する際は、上記画像の赤枠部分に注目します。パラメーターが数字で表示されているので、数字横の上下の矢印をクリックする、もしくは数字を直接入力すればパラメーターを変更可能です。
CFG Scaleを設定したら、「Prompt」に生成したい画像の特徴を入力して「Generate」をクリックしましょう。画像生成に時間はかかりますが、しばらくすると画像が「Generated images」に表示されます。
CFG Scaleの変化を検証
今回は、CFG Scaleのパラメーターを変更すると、画像にどのような変化が起きるのか試してみました。
おもに、以下3つのパターンで検証しています。
- CFG Scale1~10
- CFG Scale11~20
- CFG Scale21~30
早速、CFG Scaleの設定が画像に与える変化をみていきましょう!
検証に使用するモデル
今回の検証では、「Stable Diffusion WebUI」を使用しています。モデルは「Stable Diffusion XL」です。
プロンプトには一貫性を持たせるため、以下のようにすべて同じプロンプトを入力しています。
Red sports car on the highway
高速道路を走る赤いスポーツカー
わりとどのCFG Scaleでもプロンプトが反映されやすいよう、簡単なプロンプトを設定しています。それでは早速、CFG Scaleの設定が画像にどのような影響を与えるのかみていきましょう。
CFG Scale1~10
Stable Diffusionを使用し、同一プロンプトでCFG Scaleの数値のみを変更して画像を生成してみました。上記は、CFG Scaleを1〜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
横断歩道を渡る白いワンピースを着た少女
生成された画像が以下のとおりです。
確かに「横断歩道」「白いワンピースを着た少女」というプロンプトはクリアしていますが、肝心の画質は微妙ですね。CFG Scaleの数値が高い分プロンプトに沿った画像を出力できていますが、画質を重視するならもう少しCFG Scaleを下げる必要がありそうです。
次に試したのは以下のプロンプトです。
A tanned Japanese woman is making a peace while looking at us.
日焼けした日本人女性がこちらを見ながらピースをしている
生成されたのが以下の画像です。
上記の画像に関しては、「日焼けした日本人女性」という要素は満たしていますが、ピースはしていないですね。ポーズまでは反映されなかったようです。
このように、ちょうどよい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について詳しく知りたい方は、下記の記事を合わせてご確認ください。
→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社内セミナー・勉強会をさせていただいております。
セミナー内容や料金については、ご相談ください。
また、弊社紹介資料もご用意しておりますので、併せてご確認ください。