事の起こり
docker版のStablediffusionが起動しなくなった。
きっかけはCUDAのバージョンを12.2から12.6に変更したことかと予想されるが不明。
出ていたエラーコードは以下の通り。
Installing extension dependencies (if any) Installing sd-webui-controlnet requirement: changing opencv-python version from 4.10.0.84 to 4.8.0 ControlNet init warning: Unable to install insightface automatically. Please try run `pip install insightface` manually. A module that was compiled using NumPy 1.x cannot be run in NumPy 2.1.0 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "/stable-diffusion-webui/webui.py", line 13, in <module> initialize.imports() File "/stable-diffusion-webui/modules/initialize.py", line 14, in imports import torch # noqa: F401 File "/opt/conda/lib/python3.10/site-packages/torch/__init__.py", line 1382, in <module> from .functional import * # noqa: F403 File "/opt/conda/lib/python3.10/site-packages/torch/functional.py", line 7, in <module> import torch.nn.functional as F File "/opt/conda/lib/python3.10/site-packages/torch/nn/__init__.py", line 1, in <module> from .modules import * # noqa: F403 File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/__init__.py", line 35, in <module> from .transformer import TransformerEncoder, TransformerDecoder, \ File "/opt/conda/lib/python3.10/site-packages/torch/nn/modules/transformer.py", line 20, in <module> device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'), /opt/conda/lib/python3.10/site-packages/torch/nn/modules/transformer.py:20: UserWarning: Failed to initialize NumPy: _ARRAY_API not found (Triggered internally at /opt/conda/conda-bld/pytorch_1702400410390/work/torch/csrc/utils/tensor_numpy.cpp:84.) device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'), Traceback (most recent call last): File "/stable-diffusion-webui/webui.py", line 13, in <module> initialize.imports() File "/stable-diffusion-webui/modules/initialize.py", line 37, in imports from modules import processing, gradio_extensons, ui # noqa: F401 File "/stable-diffusion-webui/modules/processing.py", line 15, in <module> from skimage import exposure File "/opt/conda/lib/python3.10/site-packages/skimage/__init__.py", line 122, in <module> from ._shared import geometry File "geometry.pyx", line 1, in init skimage._shared.geometry ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
どうすれば動く?
どんなエラーか?
エラーとしてはnumpyのバージョンが2系列であるがゆえに起きているエラー(と書いてあるのでそうでしょう)。
どこで起きているか?
sd-webui-controlnetのインストール中に発生している。
何を編集したか?
\stable-diffusion-webui-docker\data\config\auto\extensions\sd-webui-controlnet\requirements.txt
に
insightface pybind11>=2.12 numpy==1.26.4
を追記した
[未検証]ほかの解決法は?
「sd-webui-controlnetのバージョンアップしちゃいけないんすか?」
正直これが一番正解な気がする。controlnetくらいならさすがにnumpy2.0対応はしてるでしょ。
余談:試しても的外れだったこと
StableDiffusion WebUIのDockefileを弄る
そこではなかった。
CUDAのバージョンを弄る
あくまでもきっかけに過ぎず、そこでもなかった