2024年6月現在、筆者は以下のエラーによりStableDiffusion WebUI Docker は起動ができなくなり、Docker版ではないWebUIを利用しています。
No device found
または
Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 500: named symbol not found: str
前提
以前以下のサイトをもとに Stable Diffusion WebUI を Docker でローカル環境に導入していた。WebUI(AUTOMATIC1111)のバージョンは1.3だった。導入時に参考にしたのは以下のサイト。
https://zenn.dev/isi00141/articles/2fc745b11e8796
Stable Diffusion の新しいモデルSDXLを使ってみたい。Stable Diffusion WebUI でも使えるが、バージョン1.5に上げる必要があるとのこと。そこで、バージョンアップすることにした。
Stable Diffusion WebUI Docker のバージョンでいうと、5.0.3 -> 8.1.0 へのバージョンアップとなる。
今から新規にインストールすると最新版になるはずなので、以下の記事は不要です。
環境
・Windows11Pro
・GPU NVIDIA GeForce RTX 3060 12G
・CPU Intel(R)Core(TM) i7-13700 2.10GHz
・RAM 32GB
HowTo
WebUIが起動中であれば、終了させておく。
インストール済みの設定ファイル等を変更していない場合
stable-diffusion-webui-docker をgit pull で最新化し、dockerを再度読み込み
\stable-diffusion-webui-docker>git pull
\stable-diffusion-webui-docker>docker compose --profile auto up --build
これでOKらしい
インストール済みの設定ファイル等を変更している場合
git pull で上書きできないので、ブランチに変更を逃がして後でマージするには例えば次のようにする。
(docker-compose.ymlを変更していて、myconfigブランチを作る例)
\stable-diffusion-webui-docker>git branch myconfig
\stable-diffusion-webui-docker>git checkout myconfig
\stable-diffusion-webui-docker>git add docker-compose.yml
\stable-diffusion-webui-docker>git commit -m"起動設定変更:ほかの端末から接続できるようにする"
\stable-diffusion-webui-docker>git checkout master
\stable-diffusion-webui-docker>git pull
\stable-diffusion-webui-docker>git merge myconfig
\stable-diffusion-webui-docker>docker compose --profile auto up --build
これでWeb UI に反映した。
フォルダの配置
WebUI Docker はAUTOMATIC111だけではなく、ComfyUIやInvokeAIもパッケージに含んでいて、モデルを共有しているため、それぞれのUIの説明とはフォルダ構成が異なっている。以下にメモしておく。今回のバージョンアップでフォルダ構成が変更となっている。
- stable-diffusion-webui-docker インストールフォルダ以下の配置フォルダ
項目 | 1.3 | 1.5 |
---|---|---|
CheckPoint | \data\StableDiffusion | \data\models\Stable-diffusion |
Lora | \data\Lora | \data\models\Lora |
VAE | \data\VAE | \data\models\VAE |
Model for ControlNet | \data\ControlNet\models | \data\models\ControlNet |