Запускаем Stable Diffusion у себя на компьютере
hard

Запускаем Stable Diffusion у себя на компьютере

Простое пошаговое руководство

Stable Diffusion — нейросеть, которая рисует картинки по текстовому описанию. Мы уже рассказывали, как запустить Stable Diffusion простым способом на маке, теперь сделаем круче — установим всё вручную и запустим Stable Diffusion на компьютере с Windows. На Маке тоже заработает, кстати. 

Вот коротко то, что будет дальше:

  1. Скачиваем веса и исходники.
  2. Ставим нужные библиотеки и программы.
  3. Разворачиваем рабочее окружение.
  4. Запускаем нейросеть и пишем по-английски, какая картинка нам нужна.
  5. Ждём.
  6. Смотрим на картинку.

На самом деле нет ничего сложного — просто выполняем команды по порядку и получаем результат. Единственное ограничение — нейросеть может плохо работать на компьютерах без поддержки CUDA и видеокарт Nvidia: иногда она падает с ошибкой или работает очень медленно.

Ещё нам понадобится примерно 15–20 гигабайт свободного места на диске. Удаляйте зарубежные фильмы и кровавые игры, мы будем делать всё своё. 

Что умеет Stable Diffusion

Как модель генерации изображений Stable Diffusion в первую очередь умеет создавать изображения на основе текстового описания: вы ей объясняете, что рисовать, а она рисует. Но кроме этого, Stable Diffusion может вносить изменения в уже существующие изображения — также по заданному тексту, например изменить цвет объектов, добавить новые элементы или изменить фон. Таким образом можно как рисовать с нуля, постепенно улучшая черновое изображение, так и стилизовать какие-то готовые картинки.

Скачиваем исходники

Идём на Гитхаб проекта и скачиваем весь исходный код Stable Diffusion. Для этого нажимаем Code → Download ZIP и сохраняем архив:

Запускаем Stable Diffusion у себя на компьютере

Как скачается — распаковываем в отдельную папку, у нас это F:\stablediffusion-main\stablediffusion-main. Этот путь к скриптам нам скоро пригодится, поэтому запоминаем, куда распаковали:

Запускаем Stable Diffusion у себя на компьютере

Качаем модели и веса

Вся сила нейросетей — в их весах. От них зависит, какое решение будет принимать нейросеть на каждом этапе своей работы. Именно правильно подобранными весами отличается тренированная и обученная сеть от необученной.

Скачиваем один из этих файлов и кладём их в ту же папку, что и исходники Stable Diffusion:

v2-1_768-ema-pruned.ckpt ← если нужны картинки 768 на 768 пикселей (потребуется больше видеопамяти)

v2-1_512-ema-pruned.ckpt ← если хватит картинок с размером 512 на 512

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

Conda — это менеджер пакетов, который часто используется для установки Python-библиотек. Он удобнее, чем pip, может сам проверять зависимости при установке и позволяет создавать виртуальные окружения (это нам пригодится). Качаем последнюю версию с официального сайта, устанавливаем и запускаем Anaconda Powershell Prompt:

Запускаем Stable Diffusion у себя на компьютере

❗️ Перед нами появилось окно с командной строкой — дальше всё будем делать в нём.

Переходим в папку с исходниками, которую распаковали до этого

cd f:\stablediffusion-main\stablediffusion-main

Запускаем Stable Diffusion у себя на компьютере

Создаём рабочее окружение и устанавливаем библиотеки

Виртуальное рабочее окружение — это такой способ работать с программами, чтобы настройки одних скриптов не мешали работе других. В исходниках, которые мы скачали на первом шаге, есть файл с настройками рабочего окружения как раз для нашего проекта. Создадим его:

conda env create -f environment.yaml

Запускаем Stable Diffusion у себя на компьютере

Во время установки рабочего окружения скрипт установит много дополнительных файлов и библиотек, это займёт некоторое время.

Теперь запускаем рабочее окружение:

conda activate ldm

Если в компьютере стоит видеокарта Nvidia с поддержкой CUDA, то выполняем такую команду:

conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia

Если нет — то такую:

conda install pytorch torchvision -c pytorch

Ставим библиотеку для невидимых водяных знаков — с их помощью другой алгоритм сможет отличить сгенерированную картинку от нарисованной человеком:

pip install transformers==4.19.2 diffusers invisible-watermark

Устанавливаем CUDA, если у нас есть видеокарта с поддержкой этой технологии

conda install cuda -c nvidia

Ставим библиотеку xformers, чтобы нейросеть работала быстрее:

pip install -U xformers

Теперь, когда все компоненты на месте, устанавливаем Stable Diffusion:

pip install -e .

Точка означает, что команда возьмёт скрипт setup.py, который лежит в этой папке, и будет работать с ним:

Запускаем Stable Diffusion у себя на компьютере
Если мы видим эту строчку — значит, всё установилось правильно

Как пользоваться Stable Diffusion

Чтобы нейросеть сгенерировала нам картинку, нужно написать запрос в командной строке. Допустим, мы хотим получить картинку программиста в стиле игры «Киберпанк 2077». Так как Stable Diffusion понимает только английский язык, наш запрос будет выглядеть так:

python scripts/txt2img.py --prompt "photo of a programmer at a desktop in the style of the game cyberpunk 2077" --ckpt v2-1_512-ema-pruned.ckpt --config configs/stable-diffusion/v2-inference-v.yaml --H 512 --W 512

Кроме текста запроса, здесь есть ещё несколько параметров:

  • --ckpt v2-1_512-ema-pruned.ckpt — указываем, какой нужно использовать файл с весами;
  • --config configs/stable-diffusion/v2-inference-v.yaml — откуда берём остальные настройки нейросети;
  • --H 512 --W 512 — размер картинки в пикселях.

После запуска нейросеть подумает несколько минут, а потом картинка появится в папке outputs\txt2img-samples:

Запускаем Stable Diffusion у себя на компьютере

Вот и всё! Теперь вы можете создавать свои картинки сколько угодно раз с любыми запросами. Если не знаете, как сформулировать запрос на английском, — используйте Яндекс Переводчик.

Запускаем Stable Diffusion у себя на компьютере
Старик делает дом в России
Запускаем Stable Diffusion у себя на компьютере
Девушка-программист думает над сложной задачей, стимпанк
Запускаем Stable Diffusion у себя на компьютере
Железный человек в русской деревне
Запускаем Stable Diffusion у себя на компьютере
Снегопад в ночном пустынном городе

Обложка:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
hard