何度か挑戦しては失敗しているStable DiffusionとWSL2の組み合わせ。鬼門じゃ~
今回はStable Diffusion WebUI Dockerで試してみました。
参考にしたのはこのページ。
note.com
実行環境は以下の通り。
項目 | スペック |
---|---|
PC | ASUS ROG Zephyrus M16 |
CPU | Core i7-11800H, memory:16GB |
GPU | Nvidia RTX3070 Laptop, memory:8GB |
OS | Windows 11 Home 21H2Ubuntu 20.04 LTS |
参考ページの指示に従って、gitとDockerの環境を整えてから下記コマンドを実行。
$ git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git $ cd stable-diffusion-webui-docker $ docker compose --profile download up --build $ docker compose --profile auto up --build
すると・・・
[+] Running 1/1 ⠿ Container webui-docker-auto-1 Created 0.1s Attaching to webui-docker-auto-1 webui-docker-auto-1 | + /docker/mount.sh webui-docker-auto-1 | Mounted .cache webui-docker-auto-1 | Mounted LDSR webui-docker-auto-1 | Mounted GFPGAN webui-docker-auto-1 | Mounted RealESRGAN webui-docker-auto-1 | Mounted ScuNET webui-docker-auto-1 | Mounted .cache webui-docker-auto-1 | Mounted StableDiffusion webui-docker-auto-1 | Mounted embeddings webui-docker-auto-1 | Mounted ESRGAN webui-docker-auto-1 | Mounted SwinIR webui-docker-auto-1 | Mounted BSRGAN webui-docker-auto-1 | Mounted Codeformer webui-docker-auto-1 | + python3 -u ../../webui.py --listen --port 7860 --hide-ui-dir-config --ckpt-dir /stable-diffusion-webui/models/Stable-diffusion --allow-code --medvram webui-docker-auto-1 | LatentDiffusion: Running in eps-prediction mode webui-docker-auto-1 | DiffusionWrapper has 859.52 M params. webui-docker-auto-1 | making attention of type 'vanilla' with 512 in_channels webui-docker-auto-1 | Working with z of shape (1, 4, 32, 32) = 4096 dimensions. webui-docker-auto-1 | making attention of type 'vanilla' with 512 in_channels Downloading: 100%|██████████| 939k/939k [00:01<00:00, 901kB/s] Downloading: 100%|██████████| 512k/512k [00:00<00:00, 565kB/s] Downloading: 100%|██████████| 389/389 [00:00<00:00, 342kB/s] Downloading: 100%|██████████| 905/905 [00:00<00:00, 743kB/s] Downloading: 100%|██████████| 4.41k/4.41k [00:00<00:00, 4.27MB/s] Downloading: 100%|██████████| 1.59G/1.59G [01:42<00:00, 16.7MB/s] webui-docker-auto-1 exited with code 137
3行目のdocker compose実行中にエラーコード137で落ちました(泣)。
原因を探ってみると、どうやらWSL2のメモリ不足のようです。
参考にしたのはこのページ
初期設定のままだと搭載メモリ(16GB)の半分の8GB が WSL2 に割り当てられるようですが、足りなかったようです。ユーザフォルダ(c:\User\ユーザ名)の直下に「.wslconfig」という名称のテキストファイルを作成して、メモリ割り当て量を12GBに増量しました。
[wsl2] memory=12GB
これで動かしてみると、
中略 webui-docker-download-1 | Status Legend: webui-docker-download-1 | (OK):download completed. webui-docker-download-1 | Checking SHAs... webui-docker-download-1 | /data/LDSR/project.yaml: OK webui-docker-download-1 | /data/RealESRGAN/RealESRGAN_x4plus_anime_6B.pth: OK webui-docker-download-1 | /data/RealESRGAN/RealESRGAN_x4plus.pth: OK webui-docker-download-1 | /data/GFPGAN/GFPGANv1.4.pth: OK webui-docker-download-1 | /data/LDSR/model.ckpt: OK webui-docker-download-1 | /data/StableDiffusion/model.ckpt: OK webui-docker-download-1 exited with code 0 ここまでが3行目の結果 webui-docker-auto-1 | LatentDiffusion: Running in eps-prediction mode webui-docker-auto-1 | DiffusionWrapper has 859.52 M params. webui-docker-auto-1 | making attention of type 'vanilla' with 512 in_channels webui-docker-auto-1 | Working with z of shape (1, 4, 32, 32) = 4096 dimensions. webui-docker-auto-1 | making attention of type 'vanilla' with 512 in_channels webui-docker-auto-1 | Loading weights [7460a6fa] from /stable-diffusion-webui/models/Stable-diffusion/model.ckpt webui-docker-auto-1 | Global Step: 470000 webui-docker-auto-1 | Model loaded. webui-docker-auto-1 | Loaded a total of 0 textual inversion embeddings. webui-docker-auto-1 | Running on local URL: http://0.0.0.0:7860 webui-docker-auto-1 | webui-docker-auto-1 | To create a public link, set `share=True` in `launch()`.
動きました!!
ブラウザで「http://localhost:7860/」を開けば、Stable Diffusion WebUIが表示されます。
私の場合「http://0.0.0.0:7860」ではアクセスできませんでした。
これで、Dockerを使えばWSL2でstable diffusionが動くようになりました。
次はDocker無しでも動かせるようになりたいものです。
では、また