【WebUI】v1.3.0で追加されたOptimizations設定の各高速化手法を比較していく!【Stable Diffusion】

こんにちは!悠です!

 

2023年5月28日にリリースされた「Stable Diffusion WebUI」のVer1.3.0で、SettingsタブにOptimizationsの設定が追加されました。

 

そこで今回は、このOptimizationsの設定で追加された高速化の手法を全て試して、どれが一番早いのか比較してみたいと思います。

GPUにはGTX-1660Tiを使用しています。使っているGPUの種類によって最適な設定は変わってくるので、あくまで参考程度にして下さい。
アイキャッチ画像は「Yuzu」で生成しています!
スポンサーリンク
スポンサーリンク

Optimizationsの種類

v1.3.0で追加されたOptimizationsの種類は次の8個です。

  • Automatic
  • xformers
  • sdp-no-mem
  • sdp
  • Doggettx
  • sub-quadratic
  • V1 – original v1
  • InvokeAI

 

Automaticを選択すると、webui-user.batのCommandline Agesに設定したオプションが使われるようです。

sdpとsdp-no-memに関しては下の記事で紹介しているものですね。RTX30XX以上ではxformersより高速化できるといわれています。

【Stable Diffusion】opt-sdp-attentionオプションを使ってAIイラストの生成速度を高速化する方法を紹介!
Pytorch2.0系の「Stable Diffusion」で、AIイラストの生成速度の高速化を行うことができるopt-sdp-attentionオプションの使い方を紹介した記事です。

 

Doggettx以下に関しては、詳細は正直よくわかりません。

InvokeAIは、AUTOMATIC1111と同じく画像生成をUIで行うことができるソフトウェアのようなので、そういった技術を使ったものなのかな?と想像しています。

 

下のOptimizationsのページにこれらの説明がちょっとだけ載っています。

Optimizations
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.

 

Optimizationsの比較

txt2imgタブで画像を1枚生成するのにかかった時間(Time Taken)で、各Optimizationを適用した際の生成速度を簡単に比較していきます。

あくまで「簡単な」比較です。正確に行おうと思ったら複数枚生成して平均値をとったりする必要があると思いますが、それは面倒なので行いません。

 

モデルには「Yuzu」を使用し、下記のプロンプト(MajinAIを参考にさせていただきました)で画像を生成します。

【Positive】
masterpiece, best quality, absurdres, highres, 1girl, solo, cowboy shot, himecut, traditional japanese clothes, praying, red eyes, standing, cartoon style, joe fenton, a black and white photo of deadpan, camping, unbecoming, gnawling, envy, Ghast (Lovecraftian),calm, soft smile,
【Negative】
(worst quality, low quality:1.4), (monochrome, greyscale:1.4), nude, bad anatomy, logo, EasyNegative, text, watermark, bad_prompt_version2

 

生成される画像の例

 

Seed値を固定した場合、全てのOptimizationでほぼ同じ画像が生成されました。

 

全7種のOptimizationsによるTime Takenの比較は次の通りです。なお、Batch sizeは1です。

  • xformers(Time Taken: 22.60s
  • sdp-no-mem(CUDA out of memory)
  • sdp(Time Taken: 24.48s
  • Doggettx(Time Taken: 30.05s
  • sub-quadratic(Time Taken: 27.80s
  • V1 – original v1(Time Taken: 31.03s
  • InvokeAI(Time Taken: 25.31s

 

私の環境ではxformersの圧勝でした。やっぱりロースペックGPUはxformers一択のようですね。

 

Token merging ratioについて

Optimizationsの項目では、Token merging ratioという機能も追加されています。

 

前々から要望があったようで、下の記事で紹介した「ToMe」という拡張機能がついにWebUI本家にマージされたようです。

【Stable Diffusion】拡張機能「ToMe」を導入して画像の生成速度を速くするやり方!【WebUI高速化】
「Stable Diffusion WebUI」で、多少のディテールと引き換えに画像の生成速度を格段に速くできる拡張機能「ToMe(a1111-sd-webui-tome)」について紹介した記事です。

 

詳しくは上の記事を参考にしていただきたいんですが、無駄なトークンを統合して生成時間を高速化する技術です。xformersとも併用ができます。

ただ本家の拡張機能と違い、WebUIに内蔵されたものは0.3程度でも結構画像の雰囲気が変わってしまう印象を受けました。

これはモデルやプロンプトの影響も大きそうなので、一概には言えませんけどね。

 

以下xformersとToken merging ratioを併用した際の参考画像です。

 

【Token merging ratio: 0

 

【Token merging ratio: 0.3

 

【Token merging ratio: 0.5



まとめ

以上が「Stable Diffusion WebUI」のVer1.3.0で、Settingsタブに追加された各Optimizationsの比較でした。

ちなみに1.2.1から1.3.0にアップデートしても、私の環境では特に拡張機能等の不具合は生じませんでした。

結構安定したバージョンだと思います!

 

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

コメント

  1. ふれんどりっちく より:

    Stable Diffusionを新規で作るとCross attention optimizationのリストにxformersが無いんですが
    xformers使いたかったら今まで通りCommandline Agesに追加して一度インストールしないといけないということですかね

    • 悠 より:

      こんばんはです!

      そのチェックはしていませんでした!確かに初回起動時に、Commandline Agesに–xformersを設定していないと、xformers自体がインストールされない可能性がありますね!
      複数回SDの新規作成を行っているんですが、毎回webui-user.batに–xformersを記載してから起動していたため完全に盲点でした!