統合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のモデルファイルをダウンロードします。
それを任意のファイル名.ckptにリネームして”./stable-diffusion-webui/models/Stable-diffusion”ディレクトリにコピー。もしくはシンボリックリンクを作成します。

これでWebGUIの左上からモデルを選択できるようになります。
StableDiffusionモデルとWaifuDiffusionモデルの切り替えもマウス操作のみ。
ただ起動のためには./stable-diffusion-webui直下に何らかのmodel.ckptが必要そう(シンボリックリンクにしました)

+GFPGAN

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

/ GFPGAN

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

 

コメントを残す