CFG-Zero*
https://github.com/WeichenFan/CFG-Zero-starオリジナルの実装
https://weichenfan.github.io/webpage-cfg-zero-star/Project
https://huggingface.co/spaces/weepiess2383/CFG-Zero-StarDemo
https://arxiv.org/abs/2503.18886CFG-Zero*: Improved Classifier-Free Guidance for Flow Matching Models
Diffusion Transformer向けの技術
DiTかどうかよりFlow matchingモデルかどうかが大事?nomadoor.icon
Zero‑Init
flow-matching modelにおいて、学習が不十分だった場合、CFGが誤った方向に誘導することがある
(下手にCFGを使うより)最初の数ステップはCFGが0のほうが真の速度(velocity)に近いため、最初のkステップだけCFGを0にする
Optimized Scale
CFG に用いるガイダンススケール 𝑤 を 固定値 ではなく、無条件速度への射影から導出される 最適スカラー 𝑠∗ に置き換えます。
$ s^* = \frac{v_c^\top v_u}{\|v_u\|^2}.
かなり低コスト(実質的な生成時間増加0で)画質を上げれられる。
CFGの処理を軽くいじって速度を落とさず画質を上げる、という意味ではSkipLayerGuidanceにも近い。
とりあえずComfyUIでは普通に共用できる。
ComfyUI向けには公式に🦊CFGZeroStarとして実装済み。適用範囲は自動で計算してくれる。
ComfyUI-KJNodesでもCFGZeroStarAndInitノードとして実装済み、こちらは適用範囲を手動で設定する。
やはりちょっと公式ノードとは計算結果が違うのか出力は変わる