一向に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ディレクトリに保存すれば、起動時に有効化されます。