AUTOMATIC1111 / stable-diffusion-webui

Stable Diffusion web UI
GNU Affero General Public License v3.0
141.27k stars 26.7k forks source link

[Bug]: 3.10.6 reports ImportError: cannot import name 'Mapping' from 'collections' (Pytorch_lightning compatibility?) #4115

Closed rexroth0619 closed 1 year ago

rexroth0619 commented 1 year ago

Is there an existing issue for this?

What happened?

After latest git pull i noticed a new reported error related to Pytorch_lightning, and after updating it the error becomes ImportError: cannot import name 'Mapping' from 'collections' (/opt/conda/envs/webui/lib/python3.10/collections/init.py). This never appeared before, since I've been running a 3.10.6 webui for over a month in a docker container, within a conda env.

A quick google search says Py 3.10.6 doesn't recognize 'collections', only recognizes 'collections.abc', and this is why it's returning this error.

I used another conda environment with 3.7.13, WebUI loads as normal. Is this possibly a compatibility issue with a new update? Please look into it, thank you.

Steps to reproduce the problem

  1. Use a python 3.10.6 environment
  2. git clone or git pull latest sd-webui version
  3. install pytorch-lightning
  4. Reports ImportError: cannot import name 'Mapping' from 'collections' (/opt/conda/envs/webui/lib/python3.10/collections/init.py).

What should have happened?

My 3.10.6 conda env had been working for over a month until today.

Commit where the problem happens

Commit hash: c28de154b0ffb143019387f9fc169953347a60f4

What platforms do you use to access UI ?

Other/Cloud

What browsers do you use to access the UI ?

Google Chrome

Command Line Arguments

--listen --xformers

Additional information, context and logs

runpod environment, base conda env = 3.7.13, webui env = 3.10.6.

GrennKren commented 1 year ago

Try downgrading pytorch-lightning to 1.7.7 .. Since Pytorch-lightning was recently updated to 1.8.0 about 3 hours ago. pip install pytorch-lightning==1.7.7

o-liverkk commented 1 year ago

Same issue, https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/4115#issuecomment-1298635899 this can fix.

rexroth0619 commented 1 year ago

Can confirm, problem solved by downgrading to 1.7.7. Thanks guys

GlitchedCod commented 1 year ago

Hey I got the same issue and I tried this but it didn't helped...

Try downgrading pytorch-lightning to 1.7.7 .. Since Pytorch-lightning was recently updated to 1.8.0 about 3 hours ago. pip install pytorch-lightning==1.7.7

Someone know if this is still a pytorch-lightning issue ? Thanks !

This is what output I got while launching webui-user.bat as admin and as an user :


Python 3.10.6 (tags/v3.10.6:9c7b4bd, Aug  1 2022, 21:53:49) [MSC v.1932 64 bit (AMD64)]
Version: v1.5.2
Commit hash: c9c8485bc1e8720aba70f029d25cba1c4abf2b5c
Launching Web UI with arguments:
Traceback (most recent call last):
  File "U:\StableDiffusionAI\stable-diffusion-webui\launch.py", line 39, in <module>
    main()
  File "U:\StableDiffusionAI\stable-diffusion-webui\launch.py", line 35, in main
    start()
  File "U:\StableDiffusionAI\stable-diffusion-webui\modules\launch_utils.py", line 390, in start
    import webui
  File "U:\StableDiffusionAI\stable-diffusion-webui\webui.py", line 39, in <module>
    import pytorch_lightning   # noqa: F401 # pytorch_lightning should be imported after torch, but it re-enables warnings on import so import once to disable them
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\__init__.py", line 35, in <module>
    from pytorch_lightning.callbacks import Callback  # noqa: E402
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\callbacks\__init__.py", line 14, in <module>
    from pytorch_lightning.callbacks.batch_size_finder import BatchSizeFinder
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\callbacks\batch_size_finder.py", line 24, in <module>
    from pytorch_lightning.callbacks.callback import Callback
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\callbacks\callback.py", line 25, in <module>
    from pytorch_lightning.utilities.types import STEP_OUTPUT
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\pytorch_lightning\utilities\types.py", line 27, in <module>
    from torchmetrics import Metric
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchmetrics\__init__.py", line 14, in <module>
    from torchmetrics import functional  # noqa: E402
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchmetrics\functional\__init__.py", line 50, in <module>
    from torchmetrics.functional.image._deprecated import (
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchmetrics\functional\image\__init__.py", line 17, in <module>
    from torchmetrics.functional.image.lpips import learned_perceptual_image_patch_similarity
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchmetrics\functional\image\lpips.py", line 45, in <module>
    from torchvision import models as tv
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchvision\__init__.py", line 6, in <module>
    from torchvision import datasets, io, models, ops, transforms, utils
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchvision\datasets\__init__.py", line 1, in <module>
    from ._optical_flow import FlyingChairs, FlyingThings3D, HD1K, KittiFlow, Sintel
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchvision\datasets\_optical_flow.py", line 13, in <module>
    from .utils import _read_pfm, verify_str_arg
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\torchvision\datasets\utils.py", line 22, in <module>
    import requests
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\requests\__init__.py", line 43, in <module>
    import urllib3
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\__init__.py", line 8, in <module>
    from .connectionpool import (
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\connectionpool.py", line 29, in <module>
    from .connection import (
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\connection.py", line 39, in <module>
    from .util.ssl_ import (
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\util\__init__.py", line 3, in <module>
    from .connection import is_connection_dropped
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\util\connection.py", line 3, in <module>
    from .wait import wait_for_read
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\util\wait.py", line 1, in <module>
    from .selectors import (
  File "U:\StableDiffusionAI\stable-diffusion-webui\venv\lib\site-packages\urllib3\util\selectors.py", line 14, in <module>
    from collections import namedtuple, Mapping
ImportError: cannot import name 'Mapping' from 'collections' (C:\Program Files\Python310\lib\collections\__init__.py)```
GlitchedCod commented 1 year ago

Fixed : python.exe -m pip install --upgrade urllib3===1.26.16