xFormersはフェイスブック(現メタ社)の開発者が開発したライブラリで、Transformerに最新のコンポーネントを取り入れることにより、従来より高速でメモリ効率の高い計算を実現します。Stable DiffusionでもxFormersを有効化することにより、画像生成速度やメモリ消費量を抑制することができる可能性があります。ここでは、xFormersの有効性を検証します。
xFormersの使用方法
xFormersを使うには、「webui-users.bat」でオプションの指定します。「webui-users.bat」をメモ帳などで開いて編集し、「set COMMANDLINE_ARGS=」の行に「–xformers」のオプションを追加します。
ここではさらに「–opt-channelslast」も追加しています。opt-channelslastは計算時にチャンネル(特徴マップ)を画像データの後ろに並べることで、メモリを効率的に使うことができるようにするオプションです。
set COMMANDLINE_ARGS= --opt-channelslast --xformers
上記のオプションを追加した状態で、起動することでオプションを適用できます。
オプションの効果
オプションの効果を確認しています。使っているGPUによるそうなので、効果があるかはそれぞれの環境で確認した方がよいかもしれません。私の環境(NVIDIA GeForce RTX3080 10G)では、SD1.5系モデルで800x640pixのアニメ絵、20stepで10枚生成時の例で両方ともONでオプションがない時に比べて、GPUのVRAM使用量が54%削減、画像生成速度は約1.4倍になりました。
xformers | opt-channelslast | GPU VRAM使用量 | 画像生成速度 | |
1 | × | × | 9.8GB | 15.2sec/枚 |
2 | × | 〇 | 8.2GB | 12.0sec/枚 |
3 | 〇 | × | 4.7GB | 11.0sec/枚 |
4 | 〇 | 〇 | 4.5GB | 11.0sec/枚 |
コメント