どんぶらアニマル さんぽ道

CBR250RR(MC22)とNSR80(HCO6)とAPE50(AC16)を中心とした備忘録。

stable diffusionのdockerのビルドエラー

久々にstable diffusionをローカルで動かそうとしたらdockerコンテナのビルドで下記のエラーが発生。

:
webui-docker-auto-1  | Mounted extensions
webui-docker-auto-1  | Installing extension dependencies (if any)
webui-docker-auto-1  | Traceback (most recent call last):
webui-docker-auto-1  |   File "/stable-diffusion-webui/webui.py", line 13, in 
webui-docker-auto-1  |     initialize.imports()
webui-docker-auto-1  |   File "/stable-diffusion-webui/modules/initialize.py", line 23, in imports
webui-docker-auto-1  |     import gradio  # noqa: F401
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/gradio/__init__.py", line 3, in 
webui-docker-auto-1  |     import gradio.components as components
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/gradio/components/__init__.py", line 3, in 
webui-docker-auto-1  |     from gradio.components.bar_plot import BarPlot
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/gradio/components/bar_plot.py", line 7, in 
webui-docker-auto-1  |     import altair as alt
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/__init__.py", line 650, in 
webui-docker-auto-1  |     from altair.vegalite import *
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/vegalite/__init__.py", line 2, in 
webui-docker-auto-1  |     from .v5 import *
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/vegalite/v5/__init__.py", line 2, in 
webui-docker-auto-1  |     from altair.expr.core import datum
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/expr/__init__.py", line 7, in 
webui-docker-auto-1  |     from altair.expr.core import ConstExpression, FunctionExpression
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/expr/core.py", line 6, in 
webui-docker-auto-1  |     from altair.utils import SchemaBase
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/utils/__init__.py", line 14, in 
webui-docker-auto-1  |     from .plugin_registry import PluginRegistry
webui-docker-auto-1  |   File "/opt/conda/lib/python3.10/site-packages/altair/utils/plugin_registry.py", line 6, in 
webui-docker-auto-1  |     from typing_extensions import TypeAliasType, TypeIs, TypeVar
webui-docker-auto-1  | ImportError: cannot import name 'TypeIs' from 'typing_extensions' (/opt/conda/lib/python3.10/site-packages/typing_extensions.py)
webui-docker-auto-1 exited with code 1

 

対処方法

「webui-docker-auto-1  | ImportError: cannot import name 'TypeIs' from 'typing_extensions' (/opt/conda/lib/python3.10/site-packages/typing_extensions.py)」をググってみると下記に外人さんのやり取りを発見。

最後のほうに対処法が書かれてれてたので

./services/AUTOMATIC1111/Dockerfile

を下記のようにオレンジの行を追加。

WORKDIR /
RUN --mount=type=cache,target=/root/.cache/pip \
  git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git && \
  cd stable-diffusion-webui && \
  git reset --hard v1.9.4 && \
  pip install -U typing_extensions && \
  pip install -r requirements_versions.txt

 

これで再度ビルドを実行したら無事成功してWeb UIにアクセスできた。

calfeche13さんのコメントしか読んでなかったから上記のような変更を加えたが、よく見てみるとDockerfileの変更内容も書かれてた。。。試してないけど、どっちでも成功するんじゃないかと思う。

 

備忘録

stable diffusionのコンテナビルドは下記を参考にさせてもらった。

書かれてる通りだけど、実際に実行したコマンドは以下の通り。

環境

OS:ubuntu 22.04
CPU:i9-9900K
GPU:RTX-3060 12GB
RAM:32GB

 

コンテナのビルドと起動

mkdir /work/stableDiffusion
cd /work/stableDiffusion
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker
cd /work/stableDiffusion/stable-diffusion-webui-docker
docker compose --profile download up --build

 

ビルド完了後の起動

cd /work/stableDiffusion/stable-diffusion-webui-docker
docker compose --profile auto up --build

 

コンテナのstable diffusionにアクセス


http://<ホストPCのIPアドレス>:7860

とりあえず、適当に絵を描かせて動作確認。

stable diffusion

めでたし、めでたし。

 

気が向いたら感想をお願いします。(ログイン不要、ボタンを押すだけです)