見出し画像

Neutral prompt: CFG rescaling編:低ステップ数(LCM)との相性が良い?そのあたりも検証

今回の記事はプロンプトに入れるキーワードでは無いのですが、興味深い技術であるCFG rescalingについてです。
タグを開いたところにある最初のやつですね。
私自身は最初はこれを無視していました。

論文を見てみると内容が興味深かったです。
また、低ステップやLCMモデルの使用などで有効ではないかと感じています。

<GPT要約>
この論文では、一般的な拡散ノイズスケジュールが最終タイムステップでゼロの信号対雑音比(SNR)を強制しない問題と、いくつかの拡散サンプラー実装が最後のタイムステップから開始しないことによる訓練と推論の間の不一致を発見しました。このような設計は、モデルが推論時に純粋なガウシアンノイズを与えられる事実を反映していません。この論文は、ノイズスケジュールを再スケールしてゼロ終端SNRを強制し、モデルをv予測で訓練し、サンプラーを常に最後のタイムステップから開始するように変更し、クラスターフリーガイダンスを再スケールすることで過露出を防ぐ、いくつかの単純な修正を提案します。これらの変更により、拡散プロセスが訓練と推論の間で一致し、モデルが元のデータ分布により忠実なサンプルを生成できるようになります。

<用語解説 by GPT>
信号対雑音比(SNR)がゼロになるというのは、信号の強さが雑音の強さと同じになる状態を指します。この状態では、信号は雑音に完全に埋もれてしまい、信号自体を識別することが非常に困難になります。特に、拡散モデルにおいては、このゼロSNRが最終タイムステップで発生すると、モデルが純粋なノイズから元のデータを復元することが期待されますが、これが非常に困難な状態を示しています。この概念の理解と対処は、生成モデルの性能向上に直結する重要なポイントです。

<CFG rescalingに関する部分の要約>
セクション3.4では、端末信号対雑音比(SNR)がゼロに近づくにつれて、CFGが非常に敏感になり、画像が過露出になる可能性があることを指摘しています。この問題は他の研究でも指摘されており、例えばImagenでは、ほぼゼロの端末SNRを持つコサインスケジュールを使用し、過露出問題を解決するために動的しきい値を提案しています。しかし、このアプローチは画像空間モデルにのみ設計されています。これに触発されて、著者たちは画像空間モデルと潜在空間モデルの両方に適用可能なCFGの新しいリスケール方法を提案しています。
具体的には、正と負のプロンプトを使用してモデル出力を得た後、ガイダンスの重みを用いてCFGを適用し、その後で標準偏差を計算してリスケールします。これにより、ガイダンスの重みが大きい場合に発生する画像の過露出問題を解決します。さらに、生成された画像が過度に平凡になる問題を回避するために、リスケールの強度を制御するハイパーパラメータを導入し、その最適な値を実験的に見つけ出しています。
この手法により、CFGの適用後の画像の過露出を防ぎつつ、画像の質を保ちながら、より制御された方法でCFGをリスケールすることが可能になります。

という内容でした。
私自身は専門家ではないので、さっぱりなところですが、この文献ではDDIMでステップ25の場合はCFG7.5で使用する場合はCFG rescalingは0.7が良いとのことでした。

と言うことで検証です。SDXLモデルで行いました。

シード:2536250185
1girl, girl, chibi, with butterflies fluttering around her in a richly blooming spring garden. She appears to be in mid-stride, with a joyful expression on her face, suggesting movement and happiness. The setting is outdoors, likely in a traditional Japanese garden, given the architecture of the building in the background. The colors are pastel and soft, providing a serene and magical atmosphere to the scene. There is a noticeable abundance of spring flowers, such as hydrangeas and cherry blossoms, enhancing the whimsical and lush aspect of the illustration. The girl's attire is a mix of traditional and contemporary, with a cardigan over a dress, and she has a hair accessory that matches the flowers, indicating a harmonious connection with nature.

rescale 0
rescale 0.7

気持ちきれいになったという感じでしょうか。

さて、先ほどの文献の要約に話を戻しますと、「SNRがゼロに近づくにつれてCFGが非常に敏感になり、画像が過露出になる可能性がある」とあります。
SNRがゼロに近づくというのは、ステップが0に近い状態になるということのようで、その場合にCFGの値によって画像が過露出になるみたいな感じかと思います。

と言うことで、低ステップにおける効果を検証してみます。

これはSDXLモデル(非LCM)で、CFG7.5とCFG2での低ステップでのxyzプロットです。

CFG7.5
CFG2

SDXLでの検討はしていなかったのですが、CFG低いと結構いけますね。
それは別として、CFGが高いと低ステップでは画像が変な感じになるのはLCMとか使っていると経験されることかと思います。
これが「SNRがゼロに近づくにつれてCFGが非常に敏感になり、画像が過露出になる可能性がある」に相当すると思われます。

ということで、CFG rescalingを使うとこれが改善する可能性があるか?
という話になります。

CFG7.5  rescaling 0.7

最初のxyzプロットと比較すると、サンプラーによって効果が違うことがわかるかと思います。DDIMとUniPCに関しては、ほぼ変化がありませんでした。
Euler aは劇的に変わり、DPM++2M Karrasは若干人物が改善している感じなっています。

CFG4.5 rescaling 0.7
CDF4.5 rescaling 0

CFGを下げると、その効果で画像が改善しましたが、rescalingの効果はより強くなったりはしてない様です。

さて、もともと低ステップに相性が良いのはEular aとDPM ++SDE Karras、 DPM ++ 2Sa Karras あたりでしたので、それも見てみます。
後ろ2つは生成時間がそれほど短くならないので参考程度ですが。。

CFG8.5 rescaling 0
CFG8.5 rescaling 0.7
CFG7.5 rescaling 0.7

DPM ++ 2Sa Karrasが低ステップで良い感じですね。

モデルを変えて、ブルペンさんのLCMマージモデルでやってみました。

CFG7.5 rescaling 0.7
CFG7.5 rescaling 0
CFG4 rescaling 0
CFG4 rescaling 0.7

生成時間に関しては調べていませんので、ご容赦を。
LCMモデルはそのままの使用の方が、良さそうです。
非LCMモデルでは、CFG rescalingを併用することで、そこそこの画像が普通のCFGでも出来ることがわかりました。

この効果については論文で指摘してないみたいですが、それはLCMが流行る前だったからかなと思ったりします。

この記事が気に入ったらサポートをしてみませんか?