sd-dynamic-thresholding (CFG Scale Fix) をインストールする - Stable Diffusion

sd-dynamic-thresholding (CFG Scale Fix) をインストールする手順を紹介します。

概要

次のプロンプトで、CFG Scaleを変更して画像を作成します。
Prompt
dramatic light, facing viewer, 1girl,pleated skirt,wide_landscape, upper body
Negative prompt
low quality, worst quality
Settings
Width:512, Height:768, Seed:1738398046
CFG Scale 1.0
CFG Scale 1.0

CFG Scale 3.0
CFG Scale 3.0

CFG Scale 5.0
CFG Scale 5.0

CFG Scale 7.0
CFG Scale 7.0

CFG Scale 12.0
CFG Scale 12.0

CFG Scale 16.0
CFG Scale 16.0

CFG Scale 24.0
CFG Scale 24.0

CFG Scale 30.0
CFG Scale 30.0


Web UIでは CFG Scale 7.0 がデフォルトです。
CFG Scaleが下がると、抽象的な画像になり、全体がぼやけた出力になります。一方CFG Scaleが上がると、鮮明感は増しますが、色味が変わったり、形状が崩れたり、ノイズが入ります。
CFG Scaleを上げた状態で、形状の崩れやノイズが無ければ、鮮明感の増した画像が出力できるはずです。このアイディアを実現するためのモジュールが sd-dynamic-thresholding (CFG Scale Fix) になります。

インストール手順

Web UIを表示し、[Extensions]タブをクリックします。 Extensionsタブ内の[Available]タブをクリックして選択します。下図の画面に切り替わります。


[Load from]ボタンをクリックします。利用できるExtensionsの一覧が下部に表示されます。


[Search]のボックスに、"threshold"を入力して検索します。"Dynamic Thresholding manipulations" の項目が表示されます。 項目の右側の[Install]ボタンをクリックします。


インストールが始まります。


インストールが完了すると下図の画面となります。


[Installed]タブをクリックします。インストールされたExtensionsの一覧に "sd dynamic thresholding"の項目が追加されていることが確認できます。
[Apply and restart UI]ボタンをクリックして、UIを再起動します。


再起動後[txt2img]の画面で下にスクロールし、[Enable Dynamic Thresholding (CFG Scale Fix)]のチェックボックスが表示されていることを確認します。


[Enable Dynamic Thresholding (CFG Scale Fix)]のチェックボックスをクリックしてチェックをすると、下部に設定項目が表示されます。


[Dynamic Thresholding Advanced Options]のパネルをクリックすると詳細な設定項目が表示されます。

動作確認

同じプロンプトで、[Enable Dynamic Thresholding (CFG Scale Fix)]のチェックボックスを有効にして画像を生成します。
CFG Scaleは30とします。


下図の画像が生成されます。色の変化や形状の崩れは減っていますが、塗り部分にノイズが残っています。 おそらく、Sampling stepsが足りていない可能性があります。


Sampling stepsの値を増やします。50で生成した状態が下図です。塗り部分のノイズが無くなりました。


Sampling stepsのを80で生成した結果です。CFG scale 7.0の場合と比較すると彩度は落ちてしまいますが、細かい描画ができていることが確認できます。

パラメーター変化時の比較 1

Sampling stepの値とCFG Scaleの値を変化させたときの出力イメージを確認します。
sd-dynamic-thresholdingを利用しない場合は、CFG Scaleの値が上がると、色味に大きな変化が出ます。 このプロンプトの場合は、緑色がかる傾向です。一方で、CFG Scaleが高いほうが細かい書き込みが増えシャープ感が増しています。
sd-dynamic-thresholding なし
sd-dynamic-thresholding なし


sd-dynamic-thresholdingを有効にした状態です。CFG Scaleが高くSampling stepが少ない出力では、塗り部分にノイズが残る画像になります。 一方で、彩度は低下しますが色味の変化は少なくなります。Samplig stepが多いとノイズは無くなります。
sd-dynamic-thresholding 有効
sd-dynamic-thresholding 有効


Advanced SettingsでMimic Scale Schedulerで "Cosine Up"を設定した場合の結果が下図です。


彩度の低下は発生しますが、色味の変化は小さいです。CFG Scaleが大きいい場合は、Sampling stepが小さいとノイズが入ったり、ほとんど色の違いがない状態になってしまいます。
sd-dynamic-thresholding 有効+ Mimic Scale Scheduler:Cosine Up
sd-dynamic-thresholding 有効+ Mimic Scale Scheduler:Cosine Up


Advanced SettingsでMimic Scale SchedulerとCFG Scale Scheduler を "Sawtooth"に設定し、 Minimum value of Mimic Scale Schedulerを15、Minimum value of CFG Scale Scheduler を4、 Scheduler Valueを30にした場合の結果が下図です。この設定は一般的に結果が良好とされる出力パラメータの範囲の値です。


色の変化が比較的少ない状態が確認できます。
Scheduler:Sawtooth
Scheduler:Sawtooth

パラメーター変化時の比較 2

続いて明るいカラーの場合の生成結果を確認します。
次のプロンプトで、Sampling step数とCFG Scaleの値を変化させて画像を生成します。
Prompt
vivid blue sky, flower bed,old town,cobblestone, 1girl,pleated skirt, full body, focused girl
Negative prompt
low quality, worst quality
Settings
Width:512, Height:768, Seed:1129298074, Sampling method:DPM++ SDE Karras

サンプリングステップ数とCFG Scale

sd-dynamic-thresholdingがない場合の結果です。CFGScaleが上がると、カラーが純色に近い色になり、モザイク状の表示結果になります。
sd-dynamic-thresholding なし
sd-dynamic-thresholding なし


sd-dynamic-thresholdingを有効にした場合の出力結果です。色の変化は少なくなりますが、彩度が下がってしまいます。 また、Sampling stepの値が少ないと彩度が落ちて、色がほとんど乗りません。
sd-dynamic-thresholding 有効
sd-dynamic-thresholding 有効


Advanced Optionsで、Mimic Scale SchedulerとSFC Scale Schedulerを"Sawtooth"に設定します。Minumum value of the Mimic Scale Schedulerの値を"30"、 Minumum value of the CFG Scale Scheduler の値を4に設定し、Scheduler Value の値を20に設定します。


上記条件での出力結果が下図になります。色変化がかなり抑えられています。CFG Scaleが高い場合では、Step数が少ないと出力がやや不安定な印象です。
左上に比べて、右下のほうが背景の花壇の花のバリエーションが多く、複雑性が出ていることが確認できます。CFG Scaleが低いと花壇の表現がやや単調です。

Scheduler Value

次に、Scheduler Valueの値を変更してみます。Sampling stepは150固定としています。Mimic Scale SchedulerとSFC Scale Schedulerは"Sawtooth"に設定しています。
Scheduler Valueの値が低いとやや複雑さが減ります。Scheduler Valueの値が大きくなると複雑さが増します。 下図の画像では、ベランダに飾られている花を見ると違いがわかります。Scheduler Valueの値が10ではベランダに花がありませんが、20以上ではベランダに花が配置されています。 また、花壇の花のバリエーションも複雑になっています。とはいえ、20以上ではそれほど大きな違いが無いこともわかります。

Scheduler Value:0
Scheduler Value:0

Scheduler Value:10
Scheduler Value:10

Scheduler Value:20
Scheduler Value:20

Scheduler Value:30
Scheduler Value:30

Scheduler Value:40
Scheduler Value:40

Minimum value of the Mimic Scale Scheduler と Minimum value of the CFG Scale Scheduler

Minimum value of the Mimic Scale Scheduler と Minimum value of the CFG Scale Schedulerを変化させて画像を生成します。
Sampling stepは150固定、Scheduler Valueは30固定としています。Mimic Scale SchedulerとSFC Scale Schedulerは"Sawtooth"に設定しています。

Minimum value of the Mimic Scale Schedulerの値が低いと彩度が落ちてしまうことが確認できます。 また、Minimum value of the CFG Scale Schedulerは値が小さい場合に若干彩度が落ち、 4から5の値で彩度がやや上がり、さらに大きくなると彩度が落ちる傾向にあることがわかります。
元の画像のカラーを維持する場合は、Minimum value of the Mimic Scale Schedulerの値は20以上に設定し、 Minimum value of the CFG Scale Schedulerは3から5程度に設定するのが適切であることが わかります。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2023-07-22
iPentec all rights reserverd.