以前StableDiffusionのWebUIをDockerにて環境構築したのですが、久しぶりにアップデートして使用してみようと思ったらエラーが出て立ち上がらなくなっていたのでとりあえずの解決法を共有します。
前提
- 使用環境:AbdBarho / stable-diffusion-webui-docker (6a34739)
- エラー:
TypeError: AsyncConnectionPool.__init__() got an unexpected keyword argument ‘socket_options’
原因
WebUIが使用しているhttpxのバージョンの不整合が原因となります。
- 参考:としあきdiffusion Wiki
- 参考:TypeError: AsyncConnectionPool.init(), new install bug, httpx==0.24.1 #13840
対策
httpxのバージョンを2.5.1からダウングレードすることが必要です。
下記を追記することで解消可能です。
./services/AUTOMATIC1111/Dockerfile
RUN --mount=type=cache,target=/root/.cache/pip \
pip install httpx==0.24.1
今回、挿入位置はrequirements.txt
の直後としました。
RUN --mount=type=cache,target=/root/.cache/pip \
pip install -r ${ROOT}/repositories/CodeFormer/requirements.txt
+ RUN --mount=type=cache,target=/root/.cache/pip \
+ pip install httpx==0.24.1
※WebUIでは修正方法が既に掲示されているので、遠からずこの記事で書いた対処法を行わなくともDockerでも問題なく起動が出来るようになると思います。待てる人はアップデート、待てない人にはこの記事が助けになれば幸いです。