4.5 KiB
title | tags | image | publish | |||||
---|---|---|---|---|---|---|---|---|
SD-WebuiをArchLinux+Radeon環境で動かす |
|
/uploads/error.png | public |
Stable Diffusion WebuiをRadeonGPUのArch Linuxに導入する備忘録 基本は公式のwikiに従いますが、ここではエラーの発生原因と回避策の解説も合わせて書きます。 公式の最新の方法をまずはチェックしてみてください。 install-on-amd-and-arch-linux
今回検証に使った環境は以下のとおりです。 dist: ArchLinux desktop: Wayland(hyprland) cpu: Ryzen 7900X3D gpu: Radeon 7900GRE
依存関係
yayで入れます。
yay -S wget git python python-pip pyenv
導入準備:Python
2024-06-03時点で、Python3.10が推奨のようです。 最も新しいマイナーバージョンである3.10.14で動かしますが、パッケージマネージャーで入るpythonは最新を保ちたいので、pyenvを用いてバージョンを下げて実行できるようにします。
pyenv install 3.10.14
pyenv local 3.10.14
インストールされるパッケージも、3.10.14用のものが既存の環境とは別にインストールされます。 WebUIのドキュメントでは、バージョンは合ってる前提でvenvだけを利用していますが、venvはパッケージが独立した環境を作るものなので、同時に利用することになります。
pytorch&torchvision
これらはpipのパッケージとしてインストールできるようです。
Arch Linuxの通常のPython環境では、pip install
を使わずにyay等からpython-xxxで導入することが推奨されますが、pyenv環境なのでpipで導入して問題なさそうです。
ちゃんとパッケージの所在を切り分けたい場合は、venv環境に入ってからinstallしましょう。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm6.0
ちなみに、rocm6.1もありますが安定版ではありません。 コマンドはpytorch.orgで教えてくれるやつです。
Stable Diffusion WebUI ダウンロード
gitからクローンするだけです。任意のディレクトリで、クローンし、その中に移動します。
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui
venvセットアップ
venvを作成・環境に入り、依存パッケージを導入します。
前の項でインストールしたtorchは、venv外に入っていますが、--system-site-packages
でアクセスできるようになるみたいです。
python -m venv venv --system-site-packages
source venv/bin/activate
pip install -r requirements.txt
WebUI起動
pyenvに入りvenvをactivateします。
pyenv local 3.10.14
source venv/bin/activate
その後、webui.shを実行します。
AMDGPUでは、--precision full --no-half
又は--upcast-sampling
をつけるとパフォーマンスが向上するとか。
./webui.sh --upcast-sampling
ちなみに、他の設定諸々と合わせてwebui-user.sh
に書いておくと楽です。
おわりに
利用方法の解説は他所に任せます。 ここに至るまで、torchvisionを自分でビルドしたり、いろいろ迷走しましたが、その過程もちょっとおいておきます。
torchの最適化が使えない
yayでpython-pytorch-opt-rocm
を入れたいわけですが、opt付きのパッケージはパフォーマンス最適化が入ってますが、arch向けの調整(?)なのでpipでは利用できず…
torchvision自分でビルドしなくていいんですか
公式は自分でビルドするか、バイナリをarcheduから入れろと言ってますが、pip経由で入りますよね…
CUDAが見つからないらしい
WebUI起動時、CUDAが見つかんねえよと言われました。これはそもそもrocm用torch(vision)が入ってなかったことが原因で、pacmanを使ってパッケージを入れてたのが原因です。pyenvに入ったら元のバージョンのパッケージを扱えないのは当たり前かもしれない… python310というパッケージで3.10が導入できるみたいですが、