はじめに
CFGスケールはディフュージョン系画像生成における「プロンプト忠実度」と「自然さ」を調整する主要パラメータです。
本稿は式の意味、実務のチューニング手順、失敗パターンと対処、他パラメータとの相互作用までを再現性重視で整理します。想定読者は Stable Diffusion/SDXL の運用者およびプロンプト設計者です。
1. 基礎:CFGスケールの位置づけ
- CFGは「Classifier-Free Guidance」の略で、分類器なしに条件付き生成を強める手法
- 同一時刻の「無条件」と「条件付き」出力差分を増幅して誘導を強化
代表的な表式(概念)
# x_uncond: 無条件出力, x_cond: 条件付き出力, s: CFGスケール
x_guided = x_uncond + s * (x_cond - x_uncond)
- s を上げるほどプロンプト方向の誘導が強まり忠実度が上昇
- s を下げると自然さや多様性は増す一方で意図が薄まる
2. 効果とトレードオフ:スケールで何が変わるか
| CFGスケール目安 | 画の傾向 | 典型的な利点 | 典型的なリスク |
|---|---|---|---|
| 0~3 | 自然・多様・やや指示弱め | 雰囲気重視、創発的バリエーション | 意図が伝わらずテーマ逸脱 |
| 4~7 | バランス域 | 意図が通りやすく破綻が少ない | テクスチャが弱いことがある |
| 8~12 | 忠実度強 | 構図や小物の一致率が向上 | コントラスト過多、色飽和、ディテールの張り付き |
| 13~ | 過剰誘導域 | 特定モチーフの強制力 | 二重化、歪み、ノイズ増大、モード崩壊傾向 |
モデル別の経験的レンジ(一般論)
- Stable Diffusion v1.5:7~12
- SDXL 系:4~7
- アニメ系チューニングモデル:6~8
- 学習データや LoRA の併用で最適点は変動
3. 実装とチューニング手順(再現性重視)
固定条件下でグリッド探索→近傍微調整→軽い摂動確認の順で最小コスト最適化を行う
- 固定するもの
- seed/sampler/steps/解像度
- プロンプト/ネガティブプロンプト
- LoRA の有無と重み
- CFGグリッド探索
- 例:s=3, 5, 7, 9, 11 の一括生成
- 評価観点:被写体整合、構図安定、手指や文字の破綻、色飽和、二重像
- 微調整
- 最有力 s 近傍で ±1~2 を追加採取
- 確認用の軽い摂動
- seed を 1~2 個だけ変更して頑健性確認
チェックリスト
- 指示語への一致率(色・枚数・小物・場面)
- 破綻の有無(手指、テキスト、二重化、幾何)
- 階調の健全性(ハイライト飽和、黒潰れ)
- テクスチャの張り付き感の有無
最小実装の概念疑似コード
# inputs: x_uncond, x_cond, s
x_guided = x_uncond + s * (x_cond - x_uncond)
# 以降は選択したスケジューラで逆拡散を進行
4. よくある失敗と対処
- コントラストが不自然・色がビビッド過多:CFGを 1~3 下げる、ネガティブに oversaturated/high contrast を追加
- 手指や細部が歪む・二重像が出る:CFGを下げる、steps を増やすか sampler を変更
- 意図が弱く背景に流れる:CFGを上げる、重要語に重み付け(例:word:1.2)
- 文字が読めない:CFGを下げる+文字特化モデルや専用工程を検討
- LoRA 強度を上げると破綻:まずCFGを下げ、その後に LoRA 強度を微調整
5. 相互作用と運用プリセット
相互作用の要点
- steps:低すぎると高CFGで粗が出やすく、最適 s は steps に依存
- sampler:Euler a はCFGの影響が出やすく、DPM++ 系は安定寄り
- 解像度:高解像ほど破綻が検出されやすく、適正 s が下がる場合がある
- ネガティブプロンプト:高CFGではネガティブも強く効くため過剰抑制に注意
- 動的スケジュール:序盤 s_high で構図を固め、中盤以降 s_low で自然さを確保
- モデル差:分布が濃い領域では低めの s でも忠実、稀な概念はやや高めが有利
参考プリセット(出発点)
- ポートレート系:steps=30、sampler=DPM++、CFG=6~8
- 風景・質感重視:steps=28、sampler=DDIM、CFG=5~7
- 構図厳守案件:steps=32、sampler=Euler a、CFG=8~10
- 案件・モデルで最適値は変動するため起点値として利用
リスクと代替案
- リスク:高CFGでの破綻、低CFGでの意図逸脱、モデル依存性の誤解
- 代替案:動的CFGスケジュール、重み付けプロンプト、LoRA 強度の再配分、サンプラー切替
5 Whys:出力が「なんとなく不自然」になる理由
- なぜ:CFGが高すぎて条件差分を過剰増幅しているから
- なぜ過剰か:無条件出力との距離が広がり学習分布外へ誘導されるから
- なぜ分布外が不自然か:未見の組合せを強制され幾何や質感の整合性が崩れるから
- なぜ破綻が目立つか:コントラスト飽和や二重像など強いアーティファクトが出やすいから
- ではどうする:CFGを段階的に下げ、ネガティブや steps/sampler を併用調整して分布内へ戻す
おわりに
CFGスケールは忠実度と自然さのフェーダーです。固定条件でのグリッド探索と軽い再検証を回せば再現性高く最適域へ到達できるため、まずはバランス域から開始し破綻指標を見ながら一段ずつ調整していきましょう。