【WebUI高速化】Negative Guidance minimum sigmaを設定して生成速度を上げる方法!【Stable Diffusion】

こんにちは!悠です!

 

バージョン1.3.0で、「Stable Diffusion WebUI」のSettingsに新しくOptimizationsの項目が追加されました。

【WebUI】v1.3.0で追加されたOptimizations設定の各高速化手法を比較していく!【Stable Diffusion】
「Stable Diffusion WebUI」のVer1.3.0で、Settingsタブに追加された各Optimizationsの比較をまとめた記事です。

 

今回はこの項目の中にある「Negative Guidance minimum sigma」を実際に設定して、画像生成速度にどの程度影響があるのか比較していきたいと思います。

結論から言うと、画像生成速度を1~2割高速化できます。Token merging ratio(ToMe)と違って構図への影響もほぼありません!

 

アイキャッチ画像はモデルに「BreakDomainAnime」、LoRAに「flat2」を使用しています。
スポンサーリンク
スポンサーリンク

「Negative Guidance minimum sigma」とは?

「Negative Guidance minimum sigma」は、バージョン1.3.0以降のWebUIで利用できる最適化オプションの1つです。(WebUIのアップデート方法はこちら

Settings → Optimizationsの項目から選ぶことができます。

 

これは処理工程のうち、画像の大枠ができた後のプロセス(後半のステップ)でのみ、ネガティブプロンプトをスキップすることで、生成結果にほぼ影響を与えることなく生成速度を向上させる技術です。

Sampling stepsが20なら、10ステップ目あたりから効き始めます。

 

初期値は0で、数値を増やすほど効果が大きく(画像生成速度が速く)なります。

 

【参考記事】

(Optimization) Option to remove negative conditioning at low sigma values by devNegative-asm · Pull Request #9177 · AUTOMATIC1111/stable-diffusion-webui
Describe what this pull request is trying to achieve. Give users the option to change a new setting "Negative Guidance minimum sigma" where higher values give b...

 

画像生成速度の比較

では早速、「Negative Guidance minimum sigma」を設定した際の画像生成速度の比較を行っていきます。

GPUにはGTX1660Tiを使用し、txt2imgで画像を1枚生成した場合と、img2imgでMultiDiffusionによるアップスケールを行った際の生成速度を比べます。

この比較はあくまで簡易的なものなので、参考程度にお考え下さい。

 

txt2imgでの画像生成による比較

下記の設定で画像を1枚生成した際にかかった時間(Time Taken)を比較します。なお、adetailerによる顔の補正を入れています。

  • Sampling method: DPM++ 2M Karras
  • Sampling steps: 20
  • Width, Height: 768, 512
  • CFG Scale: 7

 

モデルはBreakDomainAnime、LoRAにはflat2を使用し、下記のプロンプトを使って画像を生成しています。

【Positive】
masterpiece, best quality, highres, upper body, cowboy shot, Vector Art, [forest|garden], landscape of a Mature Paranoid 1girl from inside of a Castle, at Blue hour, ultrafine detailed, Surprising, Tinkercore, 35mm, Cathode tube, <lyco:flat2:-0.5>
【Negative】
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), nude, bad anatomy, EasyNegative, text, logo, watermark, (simple background, white background)

 

結果は次の通りです。

 

【Negative Guidance minimum sigma: 0(無効化)】Time Taken: 35.46s

 

【Negative Guidance minimum sigma: 1】Time Taken: 31.34s

 

【Negative Guidance minimum sigma: 2】Time Taken: 30.67s

 

【Negative Guidance minimum sigma: 3】Time Taken: 29.99s

 

Negative Guidance minimum sigmaを有効化し、設定値を1にすると約12%、2にすると約14%、3にすると約16%程度速度が向上しています。

有効化すると女の子の指の形が多少崩れているような印象を受けますが、顔・服装・構図・ディテールにはほとんど差を感じません。

指はパッと見でわかる程度には変化があるので、この機能を使う際はarms behind back等のプロンプトを併用した方が良いかも?

 

設定値1~3の間の違いは、正直完全に誤差の範囲だと思います。



img2imgでのアップスケールによる比較

txt2imgで最も顕著に効果が出た、Negative Guidance minimum sigma = 1を使って、img2imgにおけるアップスケールに必要な時間を比較します。

MultiDiffusionによるアップスケールを行っており、設定値は次の通りです。画像サイズを2倍に拡大しています。

  • Upscale factor: 2
  • method: Mixture of Diffusers
  • Upscaler: 4x_UltraSharp
  • Denoising strength: 0.3

 

モデルにはBreakDomainAnime、LoRAにはflat2を使用しています。

 

【素材画像】

 

【Negative Guidance minimum sigma: 0(無効化)】Time Taken: 1分32.28秒

 

【Negative Guidance minimum sigma: 1】Time Taken: 1分17.01秒

 

画像生成速度は約17%向上しており、有効化した状態と無効化した状態の出力結果に違いはほぼありません。

 

まとめ

以上が、後半のステップでのみネガティブプロンプトをスキップすることでWebUIを高速化させる、「Negative Guidance minimum sigma」の使い方の紹介でした。

Token merging ratio(ToMe)と比べても、構図の変化が最小限に抑えられた最適化機能ですので、ぜひ皆さんも試してみて下さいね!

 

では、ここまで読んでいただきありがとうございました。

コメント