ГАЙД ПО УСТАНОВКЕ И СБОРКЕ SD C TORCH 2.1.0 И XFORMERS 0.0.18 В LINUX MINT
(к DEBIAN/UBUNTU тоже применимо наверное)

  1. Перед установкой убедитесь, что у вас стоит python версии не ниже 3.10 и пакет python3-venv.
  2. Удаляем установленный проприетарный драйвер NVIDIA, если он у вас есть. В Mint это можно сделать через Driver manager, выбрав свободный драйвер:
    $ sudo apt-get --purge remove nvidia-*
    
  3. Добавляем в блек-лист Nouveau-драйвер и шатаем initramfs:
    1
    2
    3
    $ sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
    $ sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
    $ sudo update-initramfs -u
    
  4. Перезагружаемся и заходим в терминал по ctrl+alt+f1. Вырубаем x-сервер:
    $ sudo telinit 3
    $ sudo service lightdm stop
    
  5. Скачиваем пакет с NVIDIA CUDA Toolkit 11.8 и драйверами. Запускаем установку:

    1
    2
    3
    $ wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
    $ sudo chmod +x cuda_11.8.0_520.61.05_linux.run
    $ sudo sh cuda_11.8.0_520.61.05_linux.run
    

    При запросе вводим буквами accept:

    Выбираем пункты Driver и CUDA Toolkit. CUDA Demo Suite и CUDA Documentation ставить необязательно:

    Ждем окончания установки.

  6. Правим переменные среды. Добавляем в конец файла ~/.bashrc строки (через sudo nano):

    1
    2
    3
    export PATH=/usr/local/cuda-11.8/bin${PATH:+:${PATH}}
    export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
    export CUDA_HOME=/usr/local/cuda
    

    Обязательно перезагружаемся

  7. Если webui уже установлен, то пропускаем этот пункт. Если нет, то скачиваем репозиторий Автоматика и запускаем webui. Ждем пока установятся все зависимости. Если модели не установлены, то webui сам отвалится, если стоят - выходим через ctrl+c.
    1
    2
    3
    $ git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
    $ cd ./stable-diffusion-webui
    $ ./webui.sh
    
  8. Активируем venv:
    $ source ./venv/bin/activate
    
  9. Удаляем пакеты старых версий:
    $ pip uninstall torch torchvision xformers
    
  10. Устанавливаем свежие версии:
    1
    2
    3
    $ pip install https://download.pytorch.org/whl/nightly/pytorch_triton-2.1.0%2B46672772b4-cp310-cp310-linux_x86_64.whl
    $ pip install https://download.pytorch.org/whl/nightly/cu118/torch-2.1.0.dev20230417%2Bcu118-cp310-cp310-linux_x86_64.whl
    $ pip install https://download.pytorch.org/whl/nightly/cu118/torchvision-0.16.0.dev20230417%2Bcu118-cp310-cp310-linux_x86_64.whl
    

Примечание

Пакеты torch-2.1.0dev и torchvision-0.16.0dev обновляются буквально каждый день, поэтому проверяйте актуальные версии. Так же для установки torch-2.1.0dev требуется определённая версия pytorch_triton, поэтому если пакет не установится, то смотрите какую конкретно он требует. Нужную версию можно найти здесь https://download.pytorch.org/whl/nightly/pytorch-triton/

Сборка xformers

  1. Скачиваем репозиторий xformers и устанавливаем все зависимости. Это нужно делать с активированным venv:
    1
    2
    3
    4
    5
    $ cd ./repositories
    $ git clone https://github.com/facebookresearch/xformers
    $ cd ./xformers
    $ git submodule update --init --recursive
    $ pip install -r requirements.txt
    
  2. Ставим ниндзю:
    $ pip install ninja
    
  3. Правим номер сборки:
    $ echo __version__ = \"0.0.18\" > ./xformers/version.py 
    

Примечание

Репозиторий xformers тоже постоянно обновляется, поэтому проверяйте актуальный номер сборки при помощи git describe --tags

  1. Запускаем сборку. На i7-12700KF сборка длится около 2 минут:
    $ python setup.py bdist_wheel
    
  2. Если всё прошло успешно, то устанавливаем собранный пакет:
    $ cd ./dist
    $ pip install ./xformers-0.0.18-cp310-cp310-linux_x86_64.whl
    
  3. Раскомментируем строку с параметрами запуска в webui-user.sh и добавляем в нее параметры --xformers, а так же --skip-install, чтобы при запуске webui не пытался поставить старые версии пакетов:
    export COMMANDLINE_ARGS="--xformers --skip-install"
    

Примечание

В некоторых версиях webui параметр --skip-install почему-то игнорировался, поэтому чтобы не переустанавливать по новой torch и xformers, можно ещё принудительно подправить в файле launch.py переменную skip_install с False на True

  1. ГЕНЕРИРОВАЕМ
    $ ./webui.sh
    
Edit
Pub: 11 Jan 2023 17:12 UTC
Edit: 22 Apr 2023 09:42 UTC
Views: 1221