統合GUI環境「Stable Diffusion web UI(AUTOMATIC1111)」をAMD(RADEON)のUbuntu環境に入れる

統合GUI環境「Stable Diffusion web UI(AUTOMATIC1111)」をAMD(RADEON)のUbuntu環境に入れる

一向にWindows上のAMD – Stable Diffusion(SD)環境きませんね!

自分もいろいろ試しているけれど、dockerにGPUを渡せないわ、Pytorch WinはROCm非対応だわで詰んでます。
もう次RTX4080出たら買い替えようかな・・・

そんな訳で引き続きUbuntu 20.04 LTS上の話。
コマンド型のSDをGUIで操作できるだけでなく、多数のツールと連携できる「AUTOMATIC1111版Stable Diffusion web UI」を導入しました。

Stable Diffusion Web UI

SDの環境はまず下記の手順の通りに作ります。

CUDAなんてない!Ryzen + RADEONのAMD環境でもStable Diffusionをローカルマシンで動かす。

WebUIのAMD導入については公式のガイドを参照しました。

SDと同様にコンテナを起動し、LDM環境に入ったらstable-diffusion-webuiをCloneします。

(base) root@grayhound:/var/lib/jenkins# conda activate ldm
(ldm) root@grayhound:/var/lib/jenkins# cd /dockerx/rocm/
(ldm) root@grayhound:/dockerx/rocm# git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
Cloning into 'stable-diffusion-webui'...
remote: Enumerating objects: 2407, done.
remote: Counting objects: 100% (442/442), done.
remote: Compressing objects: 100% (208/208), done.
remote: Total 2407 (delta 282), reused 345 (delta 231), pack-reused 1965
Receiving objects: 100% (2407/2407), 19.25 MiB | 15.86 MiB/s, done.
Resolving deltas: 100% (1630/1630), done.

仮想環境を設定します。

(ldm) root@grayhound:/dockerx/rocm# cd stable-diffusion-webui
(ldm) root@grayhound:/dockerx/rocm/stable-diffusion-webui# python -m venv venv
(ldm) root@grayhound:/dockerx/rocm/stable-diffusion-webui# source venv/bin/activate
(venv) (ldm) root@grayhound:/dockerx/rocm/stable-diffusion-webui# python -m pip install --upgrade pip wheel

モデルを配置。
stable-diffusion-webui直下にダウンロードしたmodel.ckptを配置します。
自分はSD環境に用意してあるためシンボリックリンクにしました。

# ln -s /dockerx/rocm/stable-diffusion/models/ldm/stable-diffusion-v1/model.ckpt /dockerx/rocm/stable-diffusion-webui/model.ckpt

準備ができたら実行

TORCH_COMMAND='pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.1.1' REQS_FILE='requirements.txt' python launch.py --precision full --no-half

このあと、コンソールに表示される”http://127.0.0.1:7860/”にブラウザでアクセスすれば準備完了。

LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla' with 512 in_channels
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla' with 512 in_channels
Loading weights [7460a6fa] from /dockerx/rocm/stable-diffusion-webui/model.ckpt
Global Step: 470000
Model loaded.
Running on local URL:  http://127.0.0.1:7860

出力解像度も768×768までいけるし、img2imgも使いやすい。
かなり便利になりました。

次回以降

2回目からは下記を実行すればよいそうです。

cd /dockerx/rocm/stable-diffusion-webui
git pull https://github.com/AUTOMATIC1111/stable-diffusion-webui
source venv/bin/activate
TORCH_COMMAND='pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.1.1' REQS_FILE='requirements.txt' python launch.py --precision full --no-half

面倒なのでシェルスクリプトにしておきましょう。

+Waifu Diffusion Model

アニメ特化のモデルを持つWaifu Diffusion。
ここからモデルデータのみを移植し、同じUIで利用できるようにします。

画像生成AI「Stable Diffusion」でイラストを描くのに特化したモデルデータ「Waifu-Diffusion」使い方まとめ – GIGAZINE

Waifu-Diffusionのモデルデータをダウンロードするには以下のページにアクセスします。

waifu-diffusion/README.md at main · harubaru/waifu-diffusion · GitHub
https://github.com/harubaru/waifu-diffusion/blob/main/docs/en/weights/danbooru-7-09-2022/README.md

約7.2GBのモデルファイルをダウンロードし、model.cpktにリネームしてStable Diffusion web UIディレクトリにコピー。
もしくはシンボリックリンクを切り替えれば完了です。

2022/09/30 追記

完了、と書いたけれど実はファイルを単純に置き換えてもモデルが切り替わらない事が判明。

初回起動時のモデル情報をどこかのキャッシュしているみたい。そこだけを消す最短の手順に行き当たっていません。

今のところはモデル入れ替えはcloneからやり直し中。

+GFPGAN

崩れがちな顔のバランスを補正してくれるツール、GFPGANをオプションとして追加できます。

/ GFPGAN

現在はV1.3 modelのみの対応。
ダウンロードしてStable-Diffusion-webuiディレクトリに保存すれば、起動時に有効化されます。

 

コメントを残す

Previous post アニメ絵に特化したWaifu DiffusionもRyzen + RADEONのローカルマシンで動かす。
Next post フロントパネルで映えるステータス用キャラクタLCDを40文字x2列の大型品に拡大する