Sygil-Dev / stable-diffusion

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

facexlib version conflict: gfpgan 1.3.4 depends on facexlib>=0.2.5

StephanTLavavej opened this issue · comments

Summary

I've followed the installation instructions carefully, the server successfully starts, and I can use both Stable Diffusion and GFPGAN. However, when I run webui.cmd, I see a conflict message:

The conflict is caused by:
    The user requested facexlib 0.2.4 (from git+https://github.com/hlky/facexlib#egg=facexlib)
    gfpgan 1.3.4 depends on facexlib>=0.2.5

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict


Pip subprocess error:
ERROR: Cannot install -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 23) and facexlib 0.2.4 (from git+https://github.com/hlky/facexlib#egg=facexlib) because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

Analysis

I'm a Python novice, but I think I can see why this is happening. This repo's environment.yaml refers to https://github.com/hlky/facexlib :

https://github.com/hlky/stable-diffusion/blob/fa977b3d6f9d0b264035c949fd70415476f00036/environment.yaml#L33

And https://github.com/hlky/facexlib/blob/master/VERSION currently identifies itself as 0.2.4.

environment.yaml also refers to https://github.com/TencentARC/GFPGAN :

https://github.com/hlky/stable-diffusion/blob/fa977b3d6f9d0b264035c949fd70415476f00036/environment.yaml#L36

But https://github.com/TencentARC/GFPGAN/blob/master/requirements.txt#L2 currently requires facexlib>=0.2.5. This appeared in a commit literally one hour ago as I'm typing this, TencentARC/GFPGAN@3e27784 , so I may be the first person who's seen this.

It appears that TencentARC/GFPGAN is expecting the upstream repo https://github.com/xinntao/facexlib where https://github.com/xinntao/facexlib/blob/master/VERSION currently identifies itself as 0.2.5, due to a commit eight hours ago, xinntao/facexlib@7655b7c .

Possible fixes

My novice guess is that hlky/facexlib should take an update from upstream xinntao/facexlib. Alternatively, perhaps the version of TencentARC/GFPGAN used by this repo needs to be "pinned".

Full webui.cmd output

If it helps, here is the exact text I'm seeing:

Click to expand verbatim output from webui.cmd:
D:\GitHub\stable-diffusion>webui
anaconda3/miniconda3 detected in C:\Users\stl\miniconda3

CondaValueError: prefix already exists: C:\Users\stl\miniconda3\envs\ldo

Collecting package metadata (repodata.json): done
Solving environment: done
Installing pip dependencies: \ Ran pip subprocess with arguments:
['C:\\Users\\stl\\miniconda3\\envs\\ldo\\python.exe', '-m', 'pip', 'install', '-U', '-r', 'D:\\GitHub\\stable-diffusion\\condaenv.0cqgpxpp.requirements.txt']
Pip subprocess output:
Requirement already satisfied: albumentations==0.4.3 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 1)) (0.4.3)
Requirement already satisfied: opencv-python==4.1.2.30 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 2)) (4.1.2.30)
Requirement already satisfied: opencv-python-headless==4.1.2.30 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 3)) (4.1.2.30)
Requirement already satisfied: pudb==2019.2 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 4)) (2019.2)
Requirement already satisfied: imageio==2.9.0 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 5)) (2.9.0)
Requirement already satisfied: imageio-ffmpeg==0.4.2 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 6)) (0.4.2)
Requirement already satisfied: pytorch-lightning==1.4.2 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 7)) (1.4.2)
Requirement already satisfied: omegaconf==2.1.1 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 8)) (2.1.1)
Requirement already satisfied: test-tube>=0.7.5 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 9)) (0.7.5)
Requirement already satisfied: streamlit>=0.73.1 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 10)) (1.12.2)
Requirement already satisfied: einops==0.3.0 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 11)) (0.3.0)
Requirement already satisfied: torch-fidelity==0.3.0 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 12)) (0.3.0)
Requirement already satisfied: transformers==4.19.2 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 13)) (4.19.2)
Requirement already satisfied: torchmetrics==0.6.0 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 14)) (0.6.0)
Requirement already satisfied: kornia==0.6 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 15)) (0.6.0)
Requirement already satisfied: gradio==3.1.6 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 16)) (3.1.6)
Requirement already satisfied: accelerate==0.12.0 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 17)) (0.12.0)
Requirement already satisfied: pynvml==11.4.1 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 18)) (11.4.1)
Requirement already satisfied: basicsr>=1.3.4.0 in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 19)) (1.4.2)
Obtaining facexlib from git+https://github.com/hlky/facexlib#egg=facexlib (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 20))
  Updating d:\github\stable-diffusion\src\facexlib clone
Obtaining taming-transformers from git+https://github.com/CompVis/taming-transformers#egg=taming-transformers (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 21))
  Updating d:\github\stable-diffusion\src\taming-transformers clone
Obtaining clip from git+https://github.com/openai/CLIP#egg=clip (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 22))
  Updating d:\github\stable-diffusion\src\clip clone
Obtaining GFPGAN from git+https://github.com/TencentARC/GFPGAN#egg=GFPGAN (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 23))
  Updating d:\github\stable-diffusion\src\gfpgan clone
Obtaining realesrgan from git+https://github.com/xinntao/Real-ESRGAN#egg=realesrgan (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 24))
  Updating d:\github\stable-diffusion\src\realesrgan clone
Obtaining k_diffusion from git+https://github.com/hlky/k-diffusion-sd#egg=k_diffusion (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 25))
  Updating d:\github\stable-diffusion\src\k-diffusion clone
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'done'
    Preparing wheel metadata: started
    Preparing wheel metadata: finished with status 'done'
Obtaining file:///D:/GitHub/stable-diffusion (from -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 26))
Requirement already satisfied: ftfy in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from clip->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 22)) (6.1.1)
Requirement already satisfied: regex in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from clip->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 22)) (2022.8.17)
Requirement already satisfied: tqdm in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from clip->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 22)) (4.64.0)
Requirement already satisfied: torch in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from clip->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 22)) (1.11.0)
Requirement already satisfied: torchvision in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from clip->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 22)) (0.12.0)
Requirement already satisfied: filterpy in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from facexlib->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 20)) (1.4.5)
Requirement already satisfied: numba in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from facexlib->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 20)) (0.56.0)
Requirement already satisfied: numpy in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from facexlib->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 20)) (1.19.2)
Requirement already satisfied: Pillow in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from facexlib->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 20)) (9.2.0)
Requirement already satisfied: scipy in c:\users\stl\miniconda3\envs\ldo\lib\site-packages (from facexlib->-r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 20)) (1.9.1)
INFO: pip is looking at multiple versions of facexlib to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of clip to determine which version is compatible with other requirements. This could take a while.

The conflict is caused by:
    The user requested facexlib 0.2.4 (from git+https://github.com/hlky/facexlib#egg=facexlib)
    gfpgan 1.3.4 depends on facexlib>=0.2.5

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict


Pip subprocess error:
ERROR: Cannot install -r D:\GitHub\stable-diffusion\condaenv.0cqgpxpp.requirements.txt (line 23) and facexlib 0.2.4 (from git+https://github.com/hlky/facexlib#egg=facexlib) because these package versions have conflicting dependencies.
ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

failed

CondaEnvException: Pip failed

Relauncher: Launching...
Loaded GFPGAN
Loaded RealESRGAN with model RealESRGAN_x4plus
Loading model from models/ldm/stable-diffusion-v1/model.ckpt
Global Step: 470000
LatentDiffusion: Running in eps-prediction mode
DiffusionWrapper has 859.52 M params.
making attention of type 'vanilla' with 512 in_channels
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
making attention of type 'vanilla' with 512 in_channels
Running on local URL:  http://localhost:7860/

To create a public link, set `share=True` in `launch()`.

Thanks!

(Thanks for your amazing repo! Getting started was very easy, and it runs much faster than other forks I've tried. 😸 Although this version conflict doesn't seem to interfere with usability, I'm reporting it to help improve the experience.)

@AscendedGravity reported this as #168 about five minutes before I finished writing 😹. Feel free to close this as a duplicate.

Yours is so much more detailed though! 🤩

For now: easy fix is to pin the version in the environment.yaml to previous non breaking commit.

    - -e git+https://github.com/TencentARC/GFPGAN.git@2c420ee56535f7a26d7eeb7f5b02a851cb1c1c63#egg=GFPGAN
commented

@davidhennemann don't do this >_>

it's fixed now, gfpgan updated their requirements to facexlib 0.2.5, we forked facexlib to add a fix for gfpgan, I've pulled the changes from facexlib so everything is fine

Ok thats way better :D

commented

You shouldn't need any updates, just run webui.cmd again