「Stable Diffusionの画像生成を高速化したい」
「WindowsにxFormersをインストールしたい」
このような場合には、この記事の内容が参考になります。
この記事では、WindowsにxFormersをインストールする方法を解説しています。
本記事の内容
- xFormersとは?
- Windows版xFormers
- Windows版xFormersのシステム要件
- Windows版xFormersのインストール
- Windows版xFormersの動作確認
それでは、上記に沿って解説していきます。
xFormersとは?
xFormersとは、PyTorchベースのライブラリです。
このライブラリは、Metaが開発・公開しています。
GitHub – facebookresearch/xformers
https://github.com/facebookresearch/xformers
GitHub上でのページでは、xFormersを次のように説明しています。
Toolbox to Accelerate Research on Transformers (Transformersの研究を加速するツールボックス)
この説明通り、xFormersは研究者向けのライブラリです。
主には、画像認識や自然言語処理の研究が対象となります。
そして、xFormersには最先端の技術が採用されているということです。
そこで実績を積めば、将来的にはPyTorchに採用されるかもしれません。
Transformersについては、次の記事で説明しています。
では、そんなxFormersが一般の利用者にどのように関係するのでしょうか?
最も影響するのは、処理の高速化です。
具体的には、Stable Diffusionにおける画像生成の高速化になります。
Stable Diffusionの知名度が増すにつれて、xFormersの注目度がUPしました。
ただし、そこには大きな課題があります。
その課題とは、xFormersのインストールが大変だということです。
そもそも、xFormersは研究者を対象にしています。
だから、インストールが大変というのは仕方がないところがあります。
以上、xFormersについて説明しました。
次は、xFormersのシステム要件を説明します。
Windows版xFormers
追記 2023年2月10日
PyTorch 1.13.1であれば、次のコマンドでインストールできるようになったようです。
Python 3.9とPython 3.10で実際にインストールできることを確認済み。
現時点(2022年11月末)でのxFormersの最新バージョンは、0.0.13となります。
この最新バージョンは、2022年9月27日にリリースされています。
一部のLinux環境のみ、バイナリが提供されています。
それ以外の環境では、ソースからビルドする必要があります。
そして、Windowsは2022年10月以降からサポート対象になったようです。
その結果として、Windows向けxFormersのバイナリを公開する人が現れています。
Releases · C43H66N12O12S2/stable-diffusion-webui · GitHub
https://github.com/C43H66N12O12S2/stable-diffusion-webui/releases
開発者に感謝して、このバイナリを使わせてもらいましょう。
whlファイルをダウンロードしておきます。
以上、Windows版xFormersを説明しました。
次は、Windows版xFormersのシステム要件を説明します。
Windows版xFormersのシステム要件
Windows版xFormersのシステム要件は、次の2点がポイントになります。
- Pythonバージョン
- GPU版PyTorch
それぞれを以下で説明します。
Pythonバージョン
Python 3.10のみが対象となっています。
ただし、ここはwhlファイルを見て判断するしかありません。
すでにPython 3.11がリリースされています。
そのため、今後はPython 3.11に変更されるかもしれません。
GPU版PyTorch
xFormersは、GPU版PyTorchが前提です。
GPU版PyTorchのインストールは、次の記事で解説しています。
PyTorchのバージョンは、1.13系をインストールしましょう。
「torch13」と記載されており、それに合わせるということです。
CUDAのバージョンについては、特に記載はありません。
基本的には、指定されているPyTorchのバージョンに合わせれば問題ないでしょう。
PyTorch 1.13.0の場合であれば、次のCUDAが対応しています。
- CUDA 11.6
- CUDA 11.7
以上、Windows版xFormersのシステム要件を説明しました。
次は、Windows版xFormersのインストールを説明します。
Windows版xFormersのインストール
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
そして、システム要件としてはGPU版PyTorchをインストール済という状況です。
この状況でのインストール済みパッケージは、以下。
> pip list Package Version ------------------ ------------ certifi 2022.9.24 charset-normalizer 2.1.1 idna 3.4 numpy 1.23.5 Pillow 9.3.0 pip 22.3.1 requests 2.28.1 setuptools 65.6.3 torch 1.13.0+cu116 torchaudio 0.13.0+cu116 torchvision 0.14.0+cu116 typing_extensions 4.4.0 urllib3 1.26.13 wheel 0.37.1
まずは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、xFormersのインストールです。
ダウンロードしたwhlファイルを対象にインストールするだけです。
pip install xformers-0.0.14.dev0-cp310-cp310-win_amd64.whl
xFormersのインストールは、すぐに終わります。
処理が終了したら、どんなパッケージがインストールされたのかを確認します。
> pip list Package Version ------------------ ------------ certifi 2022.9.24 charset-normalizer 2.1.1 idna 3.4 mypy-extensions 0.4.3 numpy 1.23.5 Pillow 9.3.0 pip 22.3.1 pyre-extensions 0.0.23 requests 2.28.1 setuptools 65.6.3 torch 1.13.0+cu116 torchaudio 0.13.0+cu116 torchvision 0.14.0+cu116 typing_extensions 4.4.0 typing-inspect 0.8.0 urllib3 1.26.13 wheel 0.37.1 xformers 0.0.14.dev0
4つほどのパッケージが、インストール前より増えています。
以上、Windows版xFormersのインストールを説明しました。
次は、Windows版xFormersの動作確認を説明します。
Windows版xFormersの動作確認
Windows版xFormersの動作確認は、次のコマンドで実行できます。
python -m xformers.info
上記コマンドを実行すると、xFormersの情報を確認可能です。
> python -m xformers.info WARNING:root:A matching Triton is not available, some optimizations will not be enabled. Error caught was: No module named 'triton' xFormers 0.0.14.dev memory_efficient_attention.flshatt: available - requires GPU with compute capability 7.5+ memory_efficient_attention.cutlass: available memory_efficient_attention.small_k: available is_triton_available: False is_functorch_available: False pytorch.version: 1.13.0+cu116 pytorch.cuda: available gpu.compute_capability: 8.6 gpu.name: NVIDIA GeForce RTX 3090
とりあえず、警告は無視しましょう。
これは、別にWindows版xFormersだからと言うわけではありません。
「memory_efficient_attention」関連が、「available」であることが確認できます。
これで、xFormersが機能していると言えます。
以上、Windows版xFormersの動作確認を説明しました。