search
  1. CFG|プロンプトにどれだけ従わせるかの度合い

CFG|プロンプトにどれだけ従わせるかの度合い

編集部 読了 約5分

  • CFG スケールって何?
  • CFG の数を変えたら絵が変わったが、理由が分からない
  • CFG を上げると画像がどうなるのかを知りたい

CFG スケールは、値を上げるほどプロンプトに沿った画像になる設定です。しかし、上げすぎると質が落ちることがあり、値を変えたときに絵の何が変わるのかは、使う人から見えにくいものです。

この記事では、CFG の意味と、2つの予測の差を強める仕組みを解説します。CFG だけを変えた作例で、値によって画像がどう変わるかも分かります。

CFG は、画像生成AIがプロンプトにどれだけ従うかを、値で決める設定です。

CFGとは

CFG を1と7にして作った住宅の2枚。7 ではプロンプトに書いた2階建ての家と木のデッキがはっきり出ている
CFG のほかは同じ設定。1 ではプロンプトに書いた2階建ての形がはっきりせず、7 では書いた家になった

CFG(classifier-free guidance)とは、プロンプトありとなしの予測の差を強めて、プロンプトへの従い方を決める度合いのことです。

2022年に論文で公開された方法で、解説の記事では CFG Scale(CFG スケール)とも呼ばれます。

設定の名前は道具で違い、画像生成AIを動かすソフトの ComfyUI では cfg、Diffusers という道具では guidance_scale です。

ComfyUI 0.37.0 では、cfg の既定の値が 8.0 になっていました。

プロンプトは、画像生成AIに作ってほしい画像を伝えるために入力する言葉です。CFG の値が大きいほど、画像を作る途中でプロンプトが強く効きます。

上の画像は、画像生成AIのモデルの Stable Diffusion 1.5 で、CFG だけを変えた2枚です。

この試しでは、1 では2階建ての形がはっきりせず、7 ではプロンプトに書いた白い壁の2階建ての家になりました。

CFGが2つの予測の差を強める仕組み

プロンプトなしとありの2つの予測の差に CFG の値をかけて強め、取り除くノイズを決める流れの図
ノイズを取り除く1回ごとに、2つの予測の差に CFG の値をかけて強める

Stable Diffusion などの拡散モデルは、ノイズ(でたらめな点のざらつき)だけの状態から、ノイズを予測して取り除くことを何回もくり返して画像を作ります。

予測するのは、今の状態のどこにどんなノイズがあるかです。

CFG を使うと、取り除くたびに、プロンプトありとなしの2つの予測をします。2つの予測の差は、プロンプトを入れたことで変わった分にあたります。

CFG は、この差に CFG の値をかけて強め、プロンプトなしの予測に足す仕組みです。足した結果で、その回に取り除くノイズが決まります。

値が大きいほど、プロンプトで変わった分が大きく画像に表れるわけです。

ComfyUI では、プロンプトなしの側に、ネガティブプロンプト(入れたくない物を書く入力)の文を入れて予測します(ComfyUI 0.37.0)。

そのため差は、ネガティブプロンプトからプロンプトへ向かう分になります。

CFGの値で変わること

CFG だけを1・3・7・12・20・30に変えて作った住宅の6枚
シードなどをそろえ、CFG だけを変えた。12 から上は色が濃くなり、値を変えるたびに家の形と配置も変わった

CFG の値を変えると、プロンプトへの沿い方と画像の自然さが変わります。上の画像は、プロンプトとシード(初めのノイズを決める数)などをそろえ、CFG だけを変えた6枚です。

この試しでは、値を変えるたびに家の形と配置も変わりました。取り除くノイズが値で変わると、その後の予測も変わっていくためです。

値による変わり方は、次の3つです。

  • 上げるとプロンプトに沿う
  • 上げすぎると不自然になり多様さが減る
  • 1 にすると CFG を使わない

上げるとプロンプトに沿う

CFG を上げると、画像はプロンプトに、より沿うようになります。ComfyUI の KSampler の説明にも、値が高いほどプロンプトに合った画像になると書かれています。

この試しでは、1 ではプロンプトに書いた2階建ての家がはっきりせず、3 から上ではどの値も白い壁の2階建ての家になりました。

上げすぎると不自然になり多様さが減る

CFG を上げすぎると、画像に不自然な所が出ることがあり、質が落ちます。シードを変えて作ったときの画像どうしの違い(多様さ)も、減るとされています。

この試しでは、12・20・30 と上げるほど色が濃くなり、30 では空の青と芝の緑が強く、白い壁が明るく飛んでいました。

1 にすると CFG を使わない

CFG の値を 1 にすると、CFG をかけないのと同じになります。なしの予測に差をそのまま足すと、プロンプトありの予測だけになるためです。

Hugging Face の解説では、CFG はプロンプトへの従い方とともに、画像全体の質も高める方法とされています。

この試しの 1 は、色が薄くコントラストが弱く、ヤシのような木の葉が建物にかぶりました。

なお、ComfyUI 0.37.0 では、値が 1 のときは、プロンプトなしの側の予測を計算しません。

CFGの値を変えてプロンプトへの従い方を見比べよう

CFG を上げたとき・上げすぎたとき・1にしたときの画像の変わり方を並べた表
CFG の値を上げたとき・上げすぎたとき・1 にしたときの変わり方

CFG は、プロンプトありとなしの予測の差を強めて、プロンプトへの従い方を決める度合いです。この記事で解説した値の効き方は、次の3つです。

  • 上げるとプロンプトに沿う
  • 上げすぎると不自然になり多様さが減る
  • 1 にすると CFG を使わない

ほかの設定をそろえたまま CFG だけを何段か変えて、プロンプトに書いた物の出方と画像の自然さを見比べてみてください。

あわせて読みたい

  • 「AI建築パースのプロンプトの書き方|建物・素材・光・視点とテキストエンコーダの仕組み」(準備中) — CFG で強める、プロンプトの書き方を知りたいとき
  • 「サンプラーとステップ数|ノイズの取り方と回数」(準備中) — CFG がかかる、ノイズを取り除くくり返しの設定を知りたいとき
  • 「シード|同じ画像をもう一度作るための数」(準備中) — 値を比べるときにそろえる、初めのノイズの数を知りたいとき

会員登録(無料)

記事やテーマのお気に入り・学習履歴・フォローが使えます。

この記事について

PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。