🦊CFG
🏠/🦊雑に学ぶComfyUI
前/🦊latent diffuison modelsとVAE
次/ComfyUI Manager
参考
https://arxiv.org/abs/2207.12598Classifier-Free Diffusion Guidance
サンプリングする際、どれくらいプロンプトに従わせるか?というパラメータです
ただし、CFGを8から12に変えたところでプロンプトに従うようになるかというとよくわかりません
CFGを2や3といった極端に低い値にするとプロンプトに縛られることなくモデルがのびのびと画像生成を行うので面白い絵がでることはあります
計算式を見れば分かりますが、CFG 0のとき、Negative PromptがPositive Promptとして動きます
https://note.com/gcem156/n/n8b7c0c1a6ad9Stable Diffusionの生成設定まとめ
ネガティブプロンプトの予測×(1 - CFG scale) + プロンプトの予測×CFG scale
それよりもサンプラーとstep数とCFGの関係でうまく画像を生成できない組み合わせがあるので、そこに注意しましょう
🦊SamplerCustomノードと🦊SplitSigmasノードを活用して多重にSamplerを重ねればステップ単位でCFG(どころかSamplerそのものすら)変えることも可能…ですが少々ややこしいので説明は割愛。
😭うまくいかない組み合わせ
CFG#640be2dee2dacc000040916eにある表の黄色や赤になっている組み合わせは使わないほうが良いでしょう
🦊ComfyUIでやってみる
DPM++ 2M Karrasでstep数20だとcfg25を超えてくると赤信号です
https://gyazo.com/2726d797e03185230ce53475d48d707b
$ DPM++ 2M Karras / Step数 20 / CFG 8
https://gyazo.com/262e228b7207b827b105bfad833d3ac5
$ DPM++ 2M Karras / Step数 20 / CFG 30
https://gyazo.com/375e367784f6446fcc1e4a0a93fbc0cb
CFG以外の原因でも、このように彩度が上がりすぎた画像が生成されることがありますが、このような画像をover-saturated colorsやburn outと表現することがあります
あまりこだわるパラメータではないので今後は基本的に
table:KSample
steps 20
cfg 8
sampler_name dpmpp_2m ppが++のことです
scheduler karras
LCM
LCMは特殊でstep数3 ~ 8、CFGが1 ~ 1.5でうまく生成できます
CFGを1丁度にすると、ネガティブプロンプトが無視されるらしいので、注意
参考元→https://github.com/comfyanonymous/ComfyUI/discussions/2081
蒸留モデル
Flux.1-devやHiDream-I1-Devがそうですが(上のLCMもそう)、ベースモデルに蒸留ということをして高速・軽量に動作するようにしたモデルがあります
蒸留前のモデルは条件付き(positive)+非条件付き(negative)を別々に計算しますが、蒸留によって一回の計算で済むようになります
蒸留モデルではCFGを1にして生成するのですが、CFGを1にしたとき上手く生成できる、というよりは従来のCFGをオフ(つまりCFG=1)にして、代わりに蒸留時に組み込まれたDistilled CFG Scale(ComfyUIでは例えばFluxGuidanceノード)を使うという感じです