Stable Diffusion WebUIで画像を生成する速度が遅いと感じたことはありませんか?
WebUIで画像生成を高速化する方法はいくつかあり、そのうちの一つがxformersの導入です。
しかし、以下のように悩んでいる方が多いでしょう。
- xformersのインストール方法、導入方法が分からない
- 自分のPCにxformersを導入できるか知りたい
- xformersを利用する際の注意点が気になる
結論からいうと、xformersはNVIDIA製のGPUを使っているPCで使える機能で、ファイルを一つ編集するだけで導入できます。
今回は、Stable Diffusionで使える機能xformersの導入方法や注意点について解説します。
WebUIで画像の生成速度を速くしたい方は、ぜひ最後までご覧ください。
xformersとは?4つの特徴
xformersは、Stable Diffusion WebUIで使用できる機能の一つです。
以下では、xformersの特徴を4つ解説します。
- Stable Diffusion WebUIを高速化できる
- GPUメモリの消費を抑えられる
- テキストファイルを編集するだけで導入できる
- NVIDIA製のGPUのみ対応している
1.Stable Diffusion WebUIを高速化できる
xformersを導入することで、Stable Diffusion WebUIの画像生成を高速化できます。
Stable Diffusionの生成速度はGPU(グラフィックボード、グラボ)に左右され、低い性能だと分単位で時間がかかる場合も。
生成速度が遅く感じたら、xformersを導入して高速化を試みてみましょう。
2.GPUメモリの消費を抑えられる
xformersの具体的な処理内容は、GPUが消費するメモリ量の軽減です。
GPUメモリが足りなくなると、生成速度が遅くなったり、そもそも生成できなくなったりします。
そのため、xformersを使用すれば高速化できるだけでなく、画像生成時に発生するエラーを解消できる効果も期待できるでしょう。
3.テキストファイルを編集するだけで導入できる
xformersを導入するには、WebUIを起動する際に使うwebui-user.batファイルのテキストを編集するだけでOKです。
テキストを編集してWebUIを起動すると、xformersが自動的にインストールおよび有効化されます。
新しくファイルをダウンロードする必要はないので、手軽に導入できるでしょう。
引数を書き足すだけですが、書き間違いには注意が必要です。
4.NVIDIA製のGPUのみ対応している
xformersが使えるのは、NVIDIA製のGPUを搭載しているPCのみなので注意してください。
GPUのメーカーがNVIDIA以外だったり、MacのPCだったりすると、xformersは使えません。
対応しているGPU | ・NVIDIAシリーズ |
対応していないGPU | ・AMDシリーズ・Intelシリーズ・Mac系PCのGPU |
xformersの導入自体はできるものの、逆効果となり画像生成の時間が余計にかかってしまうようです。
xformersはデフォルトで無効化されているので、NVIDIA以外のGPUで有効にしないよう気を付けましょう。
xformersの導入方法
xformersをインストールする手順は以下のとおりです。
- Stable Diffusion WebUIをインストールする
- webui-user.batを編集する
- WebUIを起動してバージョンを確認する
- 画像を生成する
Stable Diffusion WebUIをインストールする
まだStable Diffusion WebUIをインストールしていない場合は、先にインストールしましょう。
Stable Diffusionをインストールする手順は以下のとおりです。
- Pythonをインストールする
- Gitをインストールする
- Gitの機能でWebUIを複製する
ここでは必要ありませんが、webui-user.batファイルを実行してインストールを完了させても構いません。
詳しい手順は以下の記事を参考にしてください。
webui-user.batを編集する
Stable Diffusion WebUIを起動する際に実行するwebui-user.batファイルを、メモ帳などのテキストエディタで編集します。
ファイルを右クリックして「メモ帳で編集」を選択してください。
「set COMMANDLINE_ARGS=」と書かれている行があるので、末尾に「–xformers」と追記すればOKです。
余計なスペースを入れたり全角で入力したりすると、あとでエラーになるので注意しましょう。
追記後はCtrl+Sキーを押して保存するのを忘れずに。
バックアップをとるのがおすすめ
編集する前に、webui-user.batファイルをコピーしてバックアップをとることをおすすめします。
なぜなら、今後Stable Diffusion WebUIがバージョンアップすることで思わぬ誤作動が起きる可能性があるからです。
ファイル名は任意ですが、編集後のファイルを「webui-user-xformers.bat」のように改名すると分かりやすいでしょう。
不安な方は、webui-user.batファイルだけでなく、WebUIのフォルダ全体のバックアップを作ってもOKです。
WebUIを起動してバージョンを確認する
編集したwebui-user.batファイルをダブルクリックして、WebUIを起動させます。
ファイルを正しく編集できていれば、WebUIの起動中にxformersをインストールする処理が加わります。
途中でエラーが発生せずに処理が完了すると、通常どおりにWebUIが起動します。
xformersを適用しているときは最下部にバージョンが表示されるので、念のため数値が出ているか確認しておいてください。
torchとxformersのアップデート方法
古いWebUIを使っているなどの理由でtorchのバージョンが古いと、エラーになる場合があります。
エラーになったら、webui-user.batを編集して「set COMMANDLINE_ARGS=」行の末尾に「–reinstall-torch」と書いてください。
「–reinstall-xformers」を追記すればxformersをアップデートすることも可能です。
画像を生成する
xformersのバージョンが表示されているのを確認できたら導入が完了しているので、試しに画像を生成してみましょう。
エラーなく画像を生成できれば成功です。
生成された画像の下にかかった時間が表示されているので、xformersを有効化する前と比較してみてください。
有効化に成功しても生成が速くならないこともあるので注意。
xformersを利用する際の注意点
xformersを利用する際に注意すべき点として、以下4点を解説します。
- GPUによってxformersの効果に違いがある
- 生成する画像によっては遅くなることもある
- 古いバージョンだと生成ごとに結果が変わる
- GPUを買い替えたほうが速くなる
1.GPUによってxformersの効果に違いがある
xformersの効果は、使っているGPUのスペックや種類によって大きく異なります。
GPUのメモリが小さい(6GB程度)とxformersの効果が出やすく、生成時間が半分ほど削減される可能性もあります。
一方、GPUのメモリが大きい(16GB程度)場合、もともとメモリ量に余裕があるため効果はさほどありません。
また、GPUの種類によっては、xformersとの相性の問題で生成時間が余計にかかることも。
xformersを導入できても生成が遅くなる可能性があるため、必ず生成時間は確認しておきましょう。
2.生成する画像によっては遅くなることもある
GPUだけでなく、生成する画像の設定も生成時間に影響します。
画像のサイズを大きくしすぎるなど、処理の負荷がかかる画像を生成しようとすると、xformersを導入する前より遅くなる場合があります。
生成する画像によっては、xformersを無効にしたほうが良いでしょう。
3.古いバージョンだと生成ごとに結果が変わる
xformersのバージョンが0.0.20以下だと、同じプロンプトや設定でも生成結果が変わってしまうバグが発生します。
下の画像は、生成結果が変化した例です。
それほど大きな違いはありませんが、古いバージョンのまま使っているのであればアップデートをおすすめします。
xformersを有効化するときと同様にwebui-user.batを編集し、–xformersの代わりに–reinstall-xformersを追記しましょう。
追記後にWebUIを実行すれば、xformersが再インストールされ新しいバージョンに変わります。
これからWebUIをインストールする場合はxformersをアップデートする必要はありません。
4.GPUを買い替えたほうが速くなる
xformersを導入するよりも、高性能なものに新しく買い替えたほうが生成速度が向上します。
あくまでxformersはメモリ消費を抑えるだけで、GPUの性能を上げるわけではありません。
ひと昔前のGPUから現行機に切り替えれば性能が底上げされるため、段違いに生成速度が向上する可能性が高いのです。
大量の画像を生成する予定があり、資金に余裕があれば、GPUの買い替えも検討すると良いでしょう。
xformersに関するQ&A
xformersに関する、よくある質問と回答を紹介します。
- xfromersを有効化するとエラーになります
- xformersを無効にするには?
- SDXLでも有効ですか?
- NVIDIA以外のGPUで生成を速くする方法はありますか?
- xfromersを有効化するとエラーになります
-
エラーの原因として、以下のような要因が考えられます。
- GPUがxformersに対応していない
- torchやxformersのバージョンが古い、合っていない
- webui-user.batで編集した内容が間違っている
- そもそもWebUI自体が動作しない状態である
それぞれの要因をチェックし、問題を解消できたら再度WebUIを起動して確認してみてください。
どうしても問題が解消できない場合は、xformersを無効にしましょう。
- xformersを無効にするには?
-
webui-user.batに追記した「–xformers」部分を消去すれば、xformersが無効化されます。
WebUIを起動し、最下部のxformersにバージョン数が表示されていないことを確認してください。
再びxformersを有効にしたくなったら、導入するときと同様に「–xformers」を書き加えましょう。
- SDXLでも有効ですか?
-
SDXL(Stable Diffusion XL)モデルを利用する際もxformersは有効です。
GPUメモリ不足でSDXLが使えないPCでも、xformersを有効化すれば動作する可能性があります。
もちろん高速化も見込めるので、ぜひ試してみてください。
なお、使用するGPUメモリの大きさによって、以下のように追記内容を変更するのがおすすめです。
- 12GB以上:–xformers
- 8GB:–medvram-sdxl –xformers
- 4GB:–lowvram –xformers
SDXL(Stable Diffusion XL)とは?旧モデルとの違いや使い方を解説 | meta land SDXL(Stable Diffusion XL)は学習した画像のサイズや生成能力が向上したモデルデータで、Stable Diffusionと同様の方法で使い始められます。本記事では、SDXLの特徴や使… - NVIDIA以外のGPUで生成を速くする方法はありますか?
-
xformersが使えないPCでも、以下の方法で画像生成を高速化できる可能性があります。
- SPAD(scaled dot product attention)を利用する
- Stable Diffusion WebUI Forgeを導入する
SPADを利用する方法は、webui-users.batを編集して「set COMMANDLINE_ARGS=」のあとに「–opt-sdp-attention」を書き足すだけでOKです。
xformersと同時には使えませんが、NVIDIA以外のGPUでも利用できるメリットがあります。
もう一方のStable Diffusion WebUI Forgeは、よく使われているWebUI(AUTOMATIC1111版)の代わりに使えます。
AUTOMATIC1111版とほとんど同じ操作感で、メモリ使用量を削減できるので、GPUのスペックが低い方におすすめです。
まとめ
本記事では、xformersについて解説しました。
最後に、記事の内容をおさらいしておきましょう。
- xformersを有効化するとメモリ消費を軽減し、画像生成を高速化できる可能性がある
- 導入方法はwebui-user.batを編集して「–xformers」を追記するだけ
- NVIDIA製のGPU(グラフィックボード)を使っているPCでのみ有効
- GPUや生成画像によっては、速さがほとんど変わらなかったり逆効果だったりする
xformersは使える環境が限られているものの、画像生成を手軽に高速化する手段としてうってつけです。
NVIDIA製のGPUを使っている方はぜひ試してみてくださいね。