なすのみそしる

サークル「なすのみそしる」の部員たちが超個人的なトピックを並べまくるブログです。

Ubuntu 22.04+RDNA2でサクっとStable Diffusion WebUI [2023/08]

まえがき

DirectML版で以前から動かしてたけど遅かったんで環境をUbuntu 22.04に動かした。そのセットアップメモ。
ちゃんとRadeonでも高速に動きます

免責:このページに書いていることを行って発生したいかなる損害について筆者は責任を負いません。自己責任でお願いします。(テンプレ)

筆者の環境

  • OS: Ubuntu 22.04 Jammy
  • 機械学習系やるならやはりユーザーが多いUbuntuがいいんじゃないでしょうか
  • GPU: RX 6650XT
  • 6000シリーズ以外だと手順とかこのあとの引数とか環境変数とかが違ってくるらしいです

手順

なんか途中でエラーが起きたらググるなりして自分で対処してください

あとタイポ等あったらすいません。気付き次第修正します

https://repo.radeon.com/amdgpu-install/latest/ubuntu/
ここにアクセスして、コードネーム(今回はUbuntu 22.04なのでjammy)を選び、最新のROCmライタイムのインストーラを拾ってきてください
拾ったらターミナルで

sudo dpkg -i インストーラーのファイル名

を実行し、完了したらamdgpu-installが利用可能になっている筈なので、

sudo amdgpu-install --usecase=rocm --no-dkms

を実行してください。アップストリームカーネルに付属しているamdgpuドライバをそのまま利用するため、dkms等は必要ありません。10GBを超えるインストールが走るので、気長に待ちましょう

完了すれば、ROCmランタイムが入ったはずなので、

sudo usermod -aG render <ユーザー名>

を実行し、再起動

再起動後に

rocm-smi

rocminfo

で正常に情報が出てればOKです。

動かないときは、

sudo usermod -aG video <ユーザー名>

をして再起動すれば動くかもしれません。

次に、WebUIを落とします。

sudo apt install git python3 python3-venv

でgit、python3を落とし、 任意のディレクトリで

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

を実行。

cd stable-diffusion-webui

ディレクトリに入り、

python3 -m venv venv

で仮想環境を作成

source venv/bin/activate

で仮想環境をアクティベートして、 https://pytorch.org/get-started/locally/ にアクセスし、stable/linux/pip/python/rocmを選択し、表示されたコマンドを実行。今回では、

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2

を実行し、これでpytorchの導入完了。最後に、

HSA_OVERRIDE_GFX_VERSION=10.3.0 ./webui.sh --upcast-sampling --opt-sub-quad-attention --no-half-vae --medvram

を実行し、ターミナルの動きが落ちついたら、ブラウザでhttp://localhost:7860/にアクセスしてフィニッシュです。

現状のRDNA2用のROCmにおいてコンシュマー向けではRX 6800系(gfx1030)しか正式サポートされてないらしいので環境変数としてHSAなんちゃらをつけてRX 6800に偽装?してます。

また、VRAMが潤沢な環境(羨ましい)では--medvramは不要です。

SDXLを実行時にアップスケールが失敗したので--no-half-vaeをつけてます。

他の引数については自分で調べてください。RX 5000系では引数に--precision full --no-halfがいるらしいです。

引数の追記がめんどくさい人はwebui-user.shを、環境変数は.bashrcとかを適宜書き換えてください

あとがき

この記事が役に立ったと思っていただけたなら、僕にVRAMが8GBより大きいGPUをください(???) 中古でもいいのください!!!!!!!!! 連絡はプロフィール欄から!!!!!!!!!