Apple Silicon MacBook ProにインストールしたStability Matrixがエラーで起動しない

使用環境

M3 Max MacBook Pro
Stability Matrix

状況

  • 過去にStable Diffusion WebUIをインストールして作業してた
  • でもバージョンアップとかめんどくさくて徐々にバージョンが古くなってく
  • 色々なツールいれるたびにモデルコピーしたりするのがめんどくさい
  • 色々一元管理できそうなStability Matrixをインストールした
  • エラーで起動しない

エラー

ImportError: cannot import name 'packaging' from 'pkg_resources’

↓エラー全文

Python 3.10.11 (main, May  7 2023, 17:32:05) [Clang 16.0.3 ]
Version: v1.9.0
Commit hash: adadb4e3c7382bf3e4f7519126cd6c70f4f8557b
Launching Web UI with arguments: --api --skip-torch-cuda-test --skip-python-version-check --no-half --gradio-allowed-path /Applications/Data/Images
no module 'xformers'. Processing without...
no module 'xformers'. Processing without...
No module 'xformers'. Proceeding without it.
Warning: caught exception 'Torch not compiled with CUDA enabled', memory monitor disabled
Traceback (most recent call last):
  File "/Applications/Data/Packages/Stable Diffusion WebUI/launch.py", line 48, in <module>
    main()
  File "/Applications/Data/Packages/Stable Diffusion WebUI/launch.py", line 44, in main
    start()
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/launch_utils.py", line 465, in start
    import webui
  File "/Applications/Data/Packages/Stable Diffusion WebUI/webui.py", line 13, in <module>
    initialize.imports()
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/initialize.py", line 39, in imports
    from modules import processing, gradio_extensons, ui  # noqa: F401
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/processing.py", line 18, in <module>
    import modules.sd_hijack
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/sd_hijack.py", line 5, in <module>
    from modules import devices, sd_hijack_optimizations, shared, script_callbacks, errors, sd_unet, patches
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/sd_hijack_optimizations.py", line 13, in <module>
    from modules.hypernetworks import hypernetwork
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/hypernetworks/hypernetwork.py", line 8, in <module>
    import modules.textual_inversion.dataset
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/textual_inversion/dataset.py", line 12, in <module>
    from modules import devices, shared, images
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/images.py", line 20, in <module>
    from modules import sd_samplers, shared, script_callbacks, errors
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/sd_samplers.py", line 5, in <module>
    from modules import sd_samplers_kdiffusion, sd_samplers_timesteps, sd_samplers_lcm, shared, sd_samplers_common, sd_schedulers
  File "/Applications/Data/Packages/Stable Diffusion WebUI/modules/sd_samplers_kdiffusion.py", line 3, in <module>
    import k_diffusion.sampling
  File "/Applications/Data/Packages/Stable Diffusion WebUI/repositories/k-diffusion/k_diffusion/__init__.py", line 1, in <module>
    from . import augmentation, config, evaluation, external, gns, layers, models, sampling, utils
  File "/Applications/Data/Packages/Stable Diffusion WebUI/repositories/k-diffusion/k_diffusion/evaluation.py", line 6, in <module>
    import clip
  File "/Applications/Data/Packages/Stable Diffusion WebUI/venv/lib/python3.10/site-packages/clip/__init__.py", line 1, in <module>
    from .clip import *
  File "/Applications/Data/Packages/Stable Diffusion WebUI/venv/lib/python3.10/site-packages/clip/clip.py", line 6, in <module>
    from pkg_resources import packaging
ImportError: cannot import name 'packaging' from 'pkg_resources' (/Applications/Data/Packages/Stable Diffusion WebUI/venv/lib/python3.10/site-packages/pkg_resources/__init__.py)

何が原因?

「setuptools バージョン 68 以降で pkg_resources API が廃止されたため」らしい
https://github.com/aws-neuron/aws-neuron-sdk/issues/893

解決法

setuptoolsのバージョンを70より前のバージョンにダウングレードしてあげる
pip install setuptools==69.5.1

ここでハマりポイント
Stability Matrixのvenvを使ってるからTerminal開いて上記コマンド叩くだけだと意味がない。
なのでvenvで使用してるPython環境を有効にしてpip installしてあげる必要がある

venvのbinディレクトリまで移動
cd /Applications/Data/Packages/stable-diffusion-webui/venv/bin/python3.10

venvで使ってるPythonを起動
source activate

Pythonが起動したらsetuptoolsをダウングレード
pip install setuptools==69.5.1

多分これで起動するようになる。
複数のStable Diffusionをインストールしてる場合は各環境で上記ダウングレードを実行しないと動かないので注意。
ローカルにインストールしてた1.9.1と1.9.3が合ったけど、ダウングレードした1.9.3の方しか起動しない(当たり前)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です