bmaltais / kohya_ss

Apache License 2.0
9.69k stars 1.25k forks source link

linux invalid requirement #1874

Closed himerosai closed 6 months ago

himerosai commented 10 months ago

Hi folks, installing for the first time, I am getting this error:

(venv) ubuntu@sd-gpu-test:~/kohya_ss$ pip install -r requirements_linux.txt
ERROR: Invalid requirement: 'torch==2.0.1+cu118 torchvision==0.15.2+cu118' (from line 1 of requirements_linux.txt)
vhly commented 10 months ago

This txt file is invoked with gui.sh in linux. If you want to install dependencies with this file, split this line for each package like this:
` torch==2.0.1+cu118

torchvision==0.15.2+cu118 `

himerosai commented 10 months ago

You are right checking now, somehow it wasn't invoking the install.

himerosai commented 10 months ago

Here you go here's the crux of the matter, it doesn't seem to trigger the pip dependencies. I know that rich is in the requirements.txt.

ubuntu@sd-gpu-test:~/kohya_ss$ ./gui.sh
Warning: LD_LIBRARY_PATH environment variable is not set.
Certain functionalities may not work correctly.
Please ensure that the required libraries are properly configured.

If you use WSL2 you may want to: export LD_LIBRARY_PATH=/usr/lib/wsl/lib/

Traceback (most recent call last):
  File "/home/ubuntu/kohya_ss/setup/validate_requirements.py", line 19, in <module>
    from library.custom_logging import setup_logging
  File "/home/ubuntu/kohya_ss/library/custom_logging.py", line 6, in <module>
    from rich.theme import Theme
ModuleNotFoundError: No module named 'rich'
himerosai commented 10 months ago

Issue seems to be around here, investigating!

# Determine the requirements file based on the system
if [[ "$OSTYPE" == "darwin"* ]]; then
    if [[ "$(uname -m)" == "arm64" ]]; then
        REQUIREMENTS_FILE="$SCRIPT_DIR/requirements_macos_arm64.txt"
    else
        REQUIREMENTS_FILE="$SCRIPT_DIR/requirements_macos_amd64.txt"
    fi
else
    if [ "$RUNPOD" = false ]; then
        if [[ "$@" == *"--use-ipex"* ]]; then
            REQUIREMENTS_FILE="$SCRIPT_DIR/requirements_linux_ipex.txt"
        else
            REQUIREMENTS_FILE="$SCRIPT_DIR/requirements_linux.txt"
        fi
    else
        REQUIREMENTS_FILE="$SCRIPT_DIR/requirements_runpod.txt"
    fi
fi
himerosai commented 10 months ago

Some debug info, it does go until the validation


ubuntu@sd-gpu-test:~/kohya_ss$ ./gui.sh
Warning: LD_LIBRARY_PATH environment variable is not set.
Certain functionalities may not work correctly.
Please ensure that the required libraries are properly configured.

If you use WSL2 you may want to: export LD_LIBRARY_PATH=/usr/lib/wsl/lib/

OS Type linux-gnu
Requirement file /home/ubuntu/kohya_ss/requirements_linux.txt
Time to validate via /home/ubuntu/kohya_ss/setup/validate_requirements.py
himerosai commented 10 months ago

This is a clearly dependency bug because the validation script uses rich to log but that isn't installed yet at validation phase. Also just discovered that the setup script is launched in the setup-runpod.sh which I assumed was just for runpod.io but indeed is for all linux users.

himerosai commented 10 months ago

Argh also noticed needs to be run as root:

Files removed: 695
Configuring accelerate...
mkdir: cannot create directory ‘/root’: Permission denied
cp: cannot stat '/root/.cache/huggingface/accelerate/default_config.yaml': Permission denied
Installation completed... You can start the gui with ./gui.sh --share --headless
Deactivating venv...