Difference between revisions of "Porting/PyTorch"
JeremyRand (talk | contribs) (→Conda: Stable Diffusion WebUI) |
JeremyRand (talk | contribs) (→Debian: Stable Diffusion WebUI) |
||
Line 20: | Line 20: | ||
pip3 install --user --break-system-packages . | pip3 install --user --break-system-packages . | ||
# Real-ESRGAN is now installed. | # Real-ESRGAN is now installed. | ||
+ | |||
+ | Stable Diffusion WebUI mostly works fine with Debian's packaged PyTorch and Python, subject to the following caveats: | ||
+ | |||
+ | * You need an older version of Lightning; checking out [https://github.com/AUTOMATIC1111/stable-diffusion-webui/commit/009bc9f534a4f6d19ece5b5dafe3421421085fb1 this commit] works fine. | ||
+ | * You need to patch <code>repositories/CodeFormer/facelib/detection/yolov5face/face_detector.py</code> as follows: | ||
+ | |||
+ | -IS_HIGH_VERSION = tuple(map(int, torch.__version__.split('+')[0].split('.'))) >= (1, 9, 0) | ||
+ | +IS_HIGH_VERSION = tuple(map(int, torch.__version__.split('+')[0].split('a')[0].split('.'))) >= (1, 9, 0) | ||
+ | |||
+ | Once you've done this, the following script will launch the WebUI: | ||
+ | |||
+ | export TORCH_COMMAND=true | ||
+ | export COMMANDLINE_ARGS='--skip-version-check --skip-torch-cuda-test --no-half' | ||
+ | export PIP_USER=1 | ||
+ | export PIP_BREAK_SYSTEM_PACKAGES=1 | ||
+ | python3 launch.py | ||
== Conda == | == Conda == |
Revision as of 17:29, 20 May 2023
Contents
Binaries
Debian
PyTorch is packaged in Debian Bookworm and works fine, except for one bug. Debian uses PyTorch 1.13 and Python 3.11; these are not mutually compatible. To patch Debian's PyTorch to work properly with Python 3.11, apply this patch to /usr/lib/python3/dist-packages/torch/distributed/_shard/sharded_tensor/metadata.py
:
- tensor_properties: TensorProperties = field(default=TensorProperties()) + tensor_properties: TensorProperties = field(default_factory=TensorProperties)
The above patch is derived from this Lightning comment , with a bugfix applied. The code affected by the patch may or may not be triggered depending on which application you're running; Real-ESRGAN doesn't need the patch while Stable Diffusion WebUI does.
Example workflow to install PyTorch and Real-ESRGAN on Debian Bookworm ppc64le:
sudo apt install python3-torch python3-torchvision python3-opencv python3-llvmlite python3-grpcio python3-pip python3-skimage python3-numba GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true pip3 install --user --break-system-packages basicsr facexlib gfpgan # Log in and log out again to update $PATH to include ~/.local/bin git clone https://github.com/xinntao/Real-ESRGAN.git cd Real-ESRGAN pip3 install --user --break-system-packages -r requirements.txt pip3 install --user --break-system-packages . # Real-ESRGAN is now installed.
Stable Diffusion WebUI mostly works fine with Debian's packaged PyTorch and Python, subject to the following caveats:
- You need an older version of Lightning; checking out this commit works fine.
- You need to patch
repositories/CodeFormer/facelib/detection/yolov5face/face_detector.py
as follows:
-IS_HIGH_VERSION = tuple(map(int, torch.__version__.split('+')[0].split('.'))) >= (1, 9, 0) +IS_HIGH_VERSION = tuple(map(int, torch.__version__.split('+')[0].split('a')[0].split('.'))) >= (1, 9, 0)
Once you've done this, the following script will launch the WebUI:
export TORCH_COMMAND=true export COMMANDLINE_ARGS='--skip-version-check --skip-torch-cuda-test --no-half' export PIP_USER=1 export PIP_BREAK_SYSTEM_PACKAGES=1 python3 launch.py
Conda
Open Cognitive Environment (Open-CE) provides distro-independent ppc64le binaries of PyTorch and related packages. Example workflow to install PyTorch and Real-ESRGAN on Fedora 38 ppc64le:
sudo dnf install python3.10 sudo dnf install conda conda create --name pytorch python=3.10 # Close and re-open terminal conda activate pytorch conda install -c https://ftp.osuosl.org/pub/open-ce/current/ pytorch-cpu torchvision-cpu py-opencv conda install -c numba llvmlite conda install -c conda-forge grpcio conda install -c conda-forge libstdcxx-ng conda install pip GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=true pip install basicsr facexlib gfpgan git clone https://github.com/xinntao/Real-ESRGAN.git cd Real-ESRGAN pip install -r requirements.txt python setup.py develop # Real-ESRGAN is now installed.
Example script to run Stable Diffusion WebUI (assuming you've cloned from Git) on Fedora 38 using the above installed PyTorch:
export TORCH_COMMAND=true export COMMANDLINE_ARGS='--skip-version-check --skip-torch-cuda-test --no-half' python launch.py