how install stable diffusion on mac with m or m2 chip

Перевод с небольшими дополнениями этой статьи

Stable Diffusion - open source проект, который позволит вам генерировать изображения по текстовому описанию, вроде того, что делают DALLE от Open AI или Midjourney. Ключевое отличие в том, что в данном случае все происходит на вашей машинке и бесплатно. Так что если заинтересовал, добро пожаловать под кат.

Кстати, картинку для этого поста я сгенерировал с помощью Stable Diffusion.

На данный момент тут вы найдете инструкцию по установке на Mac с чипом m1 или m2, но если у вас есть устройство с видеокартой, то скорее всего вы сможете завести stable diffusion без особых проблем, но нужно погуглить.

Требования

  • Mac с чипом M1 или M2.
  • 16 ГБ оперативной памяти или более. 8 ГБ оперативной памяти работает, но медленно.
  • macOS 12.3 или выше.

Устанавливаем python3

Необходимая версия >= 3.10, проверить текущую установленную версию можно так

python3 -V

Если в выводе команды вы видите версию >= 3.10 , то можно пропустить следующий шаг

Установка/Обновление python3

brew update
brew install python

Клонируем репозиторий и устанавливаем зависимости

git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git
cd stable-diffusion
mkdir -p models/ldm/stable-diffusion-v1/

Настраиваем virtualenv чтобы установить зависимости

python3 -m pip install virtualenv
python3 -m virtualenv venv

# Активируем virtualenv, нужно выполнять эту команду перед каждым использованием stable diffusion
source venv/bin/activate

# Устанавливаем зависимости
pip install -r requirements.txt

В первый раз, когда я запустил установку pip install -r requirements.txt у меня возникла проблема на шаге Building wheel for tokenizers.

На этом моменте установка попросту зависла, после чего я прервал выполнение и выполнил pip install --upgrade pip (Не гарантирую, что это именно это помогло 😁).

На второй раз установка прошла минут за 5, первый раз я ждал около 25 минут (у меня mac на m1 pro).

Если вы видите такие ошибки, как Failed building wheel for onnx, вам может потребоваться установить эти пакеты: `brew install Cmake protobuf rust

Скачиваем модель

Переходим в репозиторий  Hugging Face , читаем лицензию и если согласны с условиями - скачиваем sd-v1-4.ckpt (☝️4.2Gb) в models/ldm/stable-diffusion-v1/model.ckpt

Проверяем

python scripts/txt2img.py \
  --prompt "a red juicy apple floating in outer space, like a planet" \
  --n_samples 1 --n_iter 1 --plms

При первом запуске ☝️ скрипта все происходит, последующие запуски генерации на моем устройстве занимали около минуты. Все получившиеся изображения находятся в директории outputs/txt2img-samples/

Полный список доступных скриптов лежит в директории scripts, а чтобы посмотреть доступные для скрипта команды, нужно запустить его с флагом --help, например python scripts/txt2img.py --help

Вместо заключения

После проверки случайно наткнулся на репозиторий с веб интерфейсом, но мне уже было лень с ним возиться 😁