CFGとサンプラー — 生成AIの「強さ」パラメータの正体
画像生成ツールの「CFG Scale」と「Sampling steps / method」が内部で何をしているのかを、前提知識ゼロから解く。CFGは条件あり/なしの予測の差への外挿、サンプラーはODEの数値解法。忠実さ・多様性・時間の取引が、この2つのつまみでどう決まるか。
Classifier-Free Diffusion Guidance
一次資料 — この記事の根拠
この解説の公開 2026-08-22
Classifier-Free Diffusion GuidancearXiv:2207.12598論文ページ·PDFDenoising Diffusion Implicit ModelsarXiv:2010.02502論文ページ·PDF
Diffusion Models Beat GANs on Image SynthesisarXiv:2105.05233論文ページ·PDF
生成ツールに必ずある2つのつまみ
画像生成のUIには、ほぼ必ず2種類のつまみがあります。CFG Scale(guidance scale)と、Sampling steps / Sampling method(サンプラー)です。前者を上げると絵はプロンプトに忠実になりますが、上げすぎると色が焼け付きます。後者を減らすと速くなりますが、減らしすぎると絵が崩れます。多くの人は経験則で「だいたい7」「だいたい25ステップ」に落ち着かせ、なぜそこなのかは説明できないまま使っています。
この2つの役割はまったく違います。CFGは「条件が効く向きへ予測を余分に押し出す」外挿、サンプラーは「決まった軌道を何歩で歩くか」の解き方です。前者は忠実さと多様性を、後者は品質と時間を取引します。そして両者は独立ではありません。片方を動かすと、もう片方の適正値もずれます。
前提: 生成は「ノイズを当てる」ことの繰り返し
拡散モデルの中身は拡散モデルを1から理解するで扱いました。ここで要る前提は1つだけです。ネットワークは、ノイズまみれの画像を渡されると「この中に混ざっているノイズはこれだ」と予測する。予測したノイズを少し引く、を繰り返すと砂嵐が絵になる。この予測を と書きます。
条件つき生成では、ここにプロンプト が加わります。 は「猫の絵という条件のもとで、この砂嵐に混ざっているノイズ」の予測です。理屈の上ではこれだけで条件つき生成は成立しますし、実際に動きます。ただしプロンプトへの忠実さが足りない。「青い机の上の赤い立方体」と書いても、赤っぽい何かがぼんやり乗った絵になりがちです。学習データの平均に引っぱられるからです。
比喩: 2つの証言の「差」だけを信じる
そこでclassifier-free guidance(CFG)は、同じネットワークに2回聞きます。プロンプトを見せて聞いた答え と、プロンプトを隠して(空文字で)聞いた答え です。
2つの差 は、プロンプトを見たことで変わった分だけを取り出したベクトルです。条件がなくても出てくる分は引き算で消え、条件が効いた向きだけが残る。ならばその向きへ、1倍ぶんと言わず余分に押してやればいい。
要するに「条件なしの答えを出発点として、条件ありの答えの方向へ 倍だけ進む」と言っているだけです。 なら条件を無視、 は展開すると だけが残るので普通の条件つき生成と一致、 で条件つきの答えを追い越して、その先まで外挿する。UIの「CFG Scale 7.5」は、この が7.5という意味です。
なぜ外挿すると忠実になるのか
式(1)がやっているのは、実は分布を尖らせる操作です。予測ノイズは対数確率密度の勾配(スコア)と符号違いで結びついていて、その対応でCFGの合成を書き直すと、次の分布からサンプリングしているのと同じことになります。
言い換えると「素の条件つき分布に、その絵がプロンプトらしく見える度合いを 乗したものを掛けた分布」です。指数が1より大きいと、プロンプトらしい領域は持ち上がり、そうでない領域は押し下げられる。上の図で温度を下げたときと同じで、山が尖り、裾が痩せます。
つまり忠実さが上がることと多様性が落ちることは、副作用ではなく同じ操作の裏表です。「忠実で、かつ多様に」は ひとつでは実現できません。
コメント
コメントにはログインが必要です