stable-diffusion-webui
stable-diffusion-webui copied to clipboard
[Bug]: Uninstallable with fedora 37 / Python 3.11.1
Is there an existing issue for this?
- [X] I have searched the existing issues and checked the recent builds/commits
What happened?
When the install script goes to install pytorch you get the following error:
ERROR: Could not find a version that satisfies the requirement torchvision==0.14.1+cu117 (from versions: 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2.0, 0.2.1, 0.2.2, 0.2.2.post2, 0.2.2.post3) ERROR: No matching distribution found for torchvision==0.14.1+cu117
This is because the version of pytorch being used is not supported in newer versions of Python. Using an older version should work, in theory, but using applications like pyenv to set a supported global version of python doesn't affect the installer. Installing pytorch locally doesn't communicate that dependency to the installation since the installer uses pip.
Basically it's just a pytorch problem. There might be something that the stable-diffusion-webui devs can do, but I ran into deadends trying to just get the installer to see and use my other python versions.
Steps to reproduce the problem
Be on current Fedora or other system with newer versions of python.
What should have happened?
Successful installation of the application.
Commit where the problem happens
Current as of 2/23/2023.
What platforms do you use to access the UI ?
No response
What browsers do you use to access the UI ?
No response
Command Line Arguments
None.
List of extensions
None.
Console logs
None.
Additional information
No response
yeah, as expected it shouldn't work with 3.11
yeah, as expected it shouldn't work with 3.11
Are they expecting to commit support at some point, or a workaround for installations with newer versions of python? I expected the installer to simple grab a supported version of python and use an environment.
- python3.10 -m venv venv
- activate venv enviornment
- check python version.
- python launch.py
- python3.10 -m venv venv
- activate venv enviornment
- check python version.
- python launch.py
I suppose after the installer failing to acknowledge pyenv and pip3 virtual environments I didn't think to try the regular built in option--I'm only an occasional python user through data science.
This does work and probably should be added as a workaround in the installation guide--3.11 isn't exactly niche at this point since we're a third of the way to 3.12.
its a more manual method, but it's listed on AMD installation page. you could always help out, if you see some trouble with the guide I'll post the edits to the wiki
The different guides for different systems are less maintained, because most of us test with Windows+NVIDIA, brkirch tests with mac, and it seems AMD and linux system scripts are not checked as often.
its a more manual method, but it's listed on AMD installation page. you could always help out, if you see some trouble with the guide I'll post the edits to the wiki
The different guides for different systems are less maintained, because most of us test with Windows+NVIDIA, brkirch tests with mac, and it seems AMD and linux system scripts are not checked as often.
Will do. I'll try and submit an update when I have the chance.
i still can't get it to work and it continues to use 3.11.2, fedora linux
i still can't get it to work and it continues to use 3.11.2, fedora linux
Are you successfully entering the virtual environment? To activate the virtual environment do:
source venv/bin/activate
Then you can run the script from that terminal.
i still can't get it to work and it continues to use 3.11.2, fedora linux
Are you successfully entering the virtual environment? To activate the virtual environment do:
source venv/bin/activate
Then you can run the script from that terminal.
I think I tried that but it still didn't work, decided to try this instead.
i still can't get it to work and it continues to use 3.11.2, fedora linux
Are you successfully entering the virtual environment? To activate the virtual environment do:
source venv/bin/activate
Then you can run the script from that terminal.I think I tried that but it still didn't work, decided to try this instead.
I have that, too, but it's not as powerful of a tool. Could you post your terminal outputs, starting from the beginning? We're on the same OS and version so you shouldn't have had an issue.
To temporarily address this issue, I have created a simple script for my personal use, which I have also made available on Github. The script automatically generates a virtual environment and provides some installation assistance in case of any issues. While it is not fully polished and very basic, it may be useful for individuals who only use Python occasionally.
https://github.com/martin-rizzo/FedoraDiffusionLauncher
Just in case anyone stumbles into this:
It is possible to run on python 3.11.2, but requires getting your hands dirty and making non-trivial changes.
- Install the nightly version of torch et. al.
- You have to build sentencepiece from source to use it with 3.11. This isn't too hard on fedora, but is absolute hell on windows.
- Numba does not currently work with python 3.11. Until they get their act together, we have to remove it as a dependency. The only package we need which currently requires numba is facexlib, which uses numba to jit this one "iou" function. You can git clone facexlib, remove the numba import and
@jit
decorator from the file I linked, then remove numba from facexlib's requirements. Once you pip install your modified facexlib, you can install gfpgan and realesrgan as normal. - Build xformers from source.
With all this, my webui will actually launch, but things are a little wonky (buttons and stuff are the wrong size/position) but this may be due to gradio version differences.
Just in case anyone stumbles into this:
It is possible to run on python 3.11.2, but requires getting your hands dirty and making non-trivial changes.
- Install the nightly version of torch et. al.
- You have to build sentencepiece from source to use it with 3.11. This isn't too hard on fedora, but is absolute hell on windows.
- Numba does not currently work with python 3.11. Until they get their act together, we have to remove it as a dependency. The only package we need which currently requires numba is facexlib, which uses numba to jit this one "iou" function. You can git clone facexlib, remove the numba import and
@jit
decorator from the file I linked, then remove numba from facexlib's requirements. Once you pip install your modified facexlib, you can install gfpgan and realesrgan as normal.- Build xformers from source.
With all this, my webui will actually launch, but things are a little wonky (buttons and stuff are the wrong size/position) but this may be due to gradio version differences.
Now wheel for sentencepiece
can be found in action-ci, which includes windows platform.
With pytorch2.0 and opt-sdp, xformers
is not that essential anymore.
Same problem here, can't install on Fedora 37 due to python3.11.
So I created a container with Toolbox and a Fedora 36 image (Python3.10), but now it crashes every time right after finishing downloading Torch, after downloading 1.8GB... It's the 3rd time this morning it happens, it does not resume download or anything, it just crashes again and again every time it reaches 100%.
Has any Fedora user ever managed to get it working ?
I have, see outline above.
Alternatively, and if anybody is interested and willing, the solution that worked for my case is to install python3.10
and set that as default version for python3 using alternatives
command, deleted venv
folder and installation worked fine.
Not a python expert but there were my steps:
-
sudo dnf install python3.10
-
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
-
sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2
-
sudo alternatives --config python3
then select python3.10 - check new default
python3 -V
. It should print 3.10 - delete venv folder if it shows some errors regarding pip or something. I think because it was built for 3.11 from previous run. I could be wrong.
- rerun
./webui.sh
The nice thing is that 3.11 is still there when I need it and can easily switch default version. Hope this helps.
Alternatively, and if anybody is interested and willing, the solution that worked for my case is to install
python3.10
and set that as default version for python3 usingalternatives
command, deletedvenv
folder and installation worked fine.Not a python expert but there were my steps:
1. `sudo dnf install python3.10` 2. `sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1` 3. `sudo alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2` 4. `sudo alternatives --config python3` then select python3.10 5. check new default `python3 -V` . It should print 3.10 6. delete venv folder if it shows some errors regarding pip or something. I think because it was built for 3.11 from previous run. I could be wrong. 7. rerun `./webui.sh`
The nice thing is that 3.11 is still there when I need it and can easily switch default version. Hope this helps.
No need to change alternatives. Just install python3.10 and in webui-user.sh change command for python to python3.10
or something like that. Also, you should remove venv
folder if it was created before with wrong python version.