Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Stable Diffusion - генеративная deep learning модель для создания изображений путём ввода текстовых описаний желаемого результата (prompts) созданная стартапом Stability AI. Я покажу вам пошаговый путь установки SD на ваш компьютер / ноутбук и расскажу о плюсах и минусах данной модели. Инструкция подходит для Windows (вот так, да, несправедливо, но для MacOS тоже есть решение). Поехали(?)!

1. Интро

Это одна из моделей существующих на рынке. По сравнению с другими моделями у SD есть свои преимущества и недостатки. Обозначу в двух словах плюсы и минусы.

Плюсы

  • Бесплатность: локальная версия SD позволяет вам бесплатно генерировать изображения в любом количестве. Лицензия Creative ML OpenRAIL-M license: The user owns the rights to their generated output images, and is free to use them commercially.
  • Конфигурируемость: SD создан в парадигме open source, поэтому и предобученные модели и сам движок генерации изображений могут быть модифицированы пользователем в любом объеме. Т.е. количество плагинов, модификаций движка, моделей будет расти вместе с ростом популярности SD. Если вы достаточно nerd - вы можете сами внести любое изменение в код и получить функционал который вам нужен.
  • Гибкость: в одном только web-ui (интерфейс для генерации, конфигурации, ввода промтов) параметров сотни!, соответственно вы можете сконфигурировать систему для генерации изображений в вашем стиле и для ваших потребностей, а так же для оптимизации работы на слабом железе.
  • Отрицательные промпты: позволяют неограниченно уточнять ваш запрос на генерацию изображения путем указания системе нежелательных элементов/методов создания изображения.
  • Низкие системные требования: достаточно более менее современного ПК/ноутбука с discreet GPU (4GB Vram минимум).
  • Скорость: при "стандартных" настройках генерации, даже на самом слабом железе, вы будете получать одно изображение за 15-30 секунд.
  • Отсутствие ограничений на контент который вы генерируете: NSFW, controversal content, racial - всё что угодно. Никаких ограничений.
  • Работа с пользовательскими предобученными моделями: вы можете предобучить вашу собственную модель из ваших исходных изображений и создавать собственные потреты (или потреты вашего кота) в любых стилистиках и визуальных композициях.
  • Использование в серверной конфигурации локальной сети офиса: вы можете поднять сервер на GPU ферме и сделать webui доступным для всех сотрудников используя две строчки в скрипте запуска.
  • Возможность зарабатывать прямо сейчас: Вы можете поднять сервер SD на хосте вашего веб сайта, сделать редизайн интерфейса и продавать доступ к генерации на основе вашего набора предобученных моделей и расширения промтов с помощью ChatGPT аналогов (как это делают сейчас уже очень многие небольшие и жадные компании).

Минусы

  • Гибкость: из-за огромного количества параметров доступных для изменения конечному пользователю - получение качественных изображений "сходу" - нетривиальная задача. Вам нужно будет научиться создавать качественные изображения с помощью SD.
  • Скорость: в случае создания батча из 10+ изображений, каждое из которых с апскейлом до 8K, с 50 итерациями уточнения - время генерации может составить до нескольких часов (зависит от вашего железа). Но при правильном подходе к генерации - вы сможете избежать подобных сложностей (например итеративное повышение сложности, использование последнего seed для finetune изображения и т.д.)

По правде говоря данный список можно продолжать невероятно долго. Каждый пользователь, скорее всего, найдет для себя лично многие другие плюсы и минусы, я постарался описать ключевые преимущества и недостатки системы. Давайте теперь установим SD и вы уже сами сделаете выводы о том насколько данная модель полезна и интересна лично вам.

2. Установка

2.1 Репозитории, необходимй софт, нужные аккаунты

Сначала создадим нужные аккаунты на очень полезных для разработчика (особенно ML) сайтах: Github, Hugging face.

Идём на hugging face и входим в свой аккаунт. Если у вас нет аккаунта - регистрация бесплатная и занимает пару кликов.

Log In если у вас есть аккаунт, Sign Up если у вас нет аккаунта.
Log In если у вас есть аккаунт, Sign Up если у вас нет аккаунта.

Так как предобученная модель - это самый "тяжелый" файл который будет использоваться нами - имеет смысл сразу поставить его в очередь загрузки, перед тем как мы перейдём к следующим шагам.

После регистрации / логина, в поле search мы вводим stable diffusion

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

и выберем в целях данного туториала модель CompVis/stable-diffusion-v1-4-original

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

на этой странице мы хотим выбрать файлы моделей для загрузки в разделе Download the weights, а точнее - sd-v1-4.ckpt

NOTE Другие модели которые появляются в списке результатов поиска мы можем (и нам следует) использовать тоже, 1.5, 2.1 и т.д. Но это выходит за рамки данного туториала, думаю вы сами разберетсь если захотите поэкспериментировать. Для некоторых моделей нужно менять параметры запуска SD чтобы избежать ошибок, но решения гуглятся за пару минут. В крайнем случае приходите в комментарии - я скорее всего смогу ответить.

Пока этот файл (4GB) загружается, мы займемся клонированием депозиториев и подготовкой файловой структуры для запуска самого движка SD.

GitHub

Идём на github и создаём / входим в аккаунт там. Бесплатно, несколько кликов.

Sign In для входа в аккаунт (надеюсь вы это знаете без меня). Sign Up для регистрации.
Sign In для входа в аккаунт (надеюсь вы это знаете без меня). Sign Up для регистрации.

После входа в свой аккаунт нам нужно найти движок SD вместе с webui (интерфейсом для управления). Для этого в поле поиска вводим AUTOMATIC1111 и переходим в репозиторий AUTOMATIC1111/stable-diffusion-webui

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений
Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Оставим вкладку открытой, теперь нам нужно установить специальный набор утилит для windows для работы с репозиториями - git for Windows. Почему это удобнее чем просто загрузить архив и распаковать? Как минимум потому что работая с репозиторием - вы можете обновлять версию движка одной консольной командой (мы добавим запрос на автоматическое обновление движка в скрипт запуска), вместо ручной загрузки и распаковки архивов с риском все поломать.

Идём на сайт git for windows и нажимаем кнопку Donwload. После загрузки - установите утилиту с default параметрами (для наших задач этого достаточно). В конце установки можно поставить галочку (Launch Git Bash) или запустить bash вручную.

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Следующий шаг - создание файловой структуры для клонирования репозитория в нашу локальную систему. Создайте папку в которой вы хотите хранить все что будет связано со stable diffusion. Для целей нашего туториала давайте создадим папку в корне диска C и назовём её AI.

Возвращаемся к окну интерфейса bash который мы запустили чуть раньше. Вводим команду cd c:/AI

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

данная команда делает активной папку путь к которой мы ввели для дальнейших манипуляций

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

после того как мы перешли в нужную нам папку (которую мы создали для SD) откройте вкладку github в браузере. На странице нужно найти большую зеленую кнопку с названием Code (1), нажать на неё и в раскрывшемся меню скопировать путь к репозиторию для клонирования (2).

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

В окне bash вводим команду git clone и вставляем (ПКМ) путь к git репозиторию (3) который мы скопировали на странице github. После нажатия Enter все произойдет автоматически. В результате в папке c:\AI которую мы создали ранее появится папка stable-diffusion-webui - внутри неё содержится структура движка SD с которой мы будем работать.

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Теперь перенесём модель которую мы поставили в очередь загрузки в самом начале (тот 4GB файл с hugging face) внутрь файловой структуры клонированной нами из репозитория. Все используемые модели находятся в папке stable-diffusion-webui/models/Stable-diffusion (в нашем случае c:/ai/stable-diffusion-webui/models/Stable-diffusion)

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Мы практически готовы к установке и запуску веб-сервера. Последнее что нам необходимо - библиотеки Python. Для загрузки и установки Python нужно открыть веб-сайт Python.org, перейти в раздел Downloads/Windows

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

и выбрать Stable Release (в данный момент 3.10.11) для загрузки

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

на данный момент 3.11.3 не поддерживается скриптом установки и гарантированно приведёт к ошибкам. Если у вас уже установлен Python 3.11.3 - рекомендую удалить его полностью и установить заново версию 3.10.11

Внизу открывшейся страницы загрузки версии 3.10.11 находим Files и загружаем установщик для Windows x64

Запускаем установщик, устанавливаем со стандартными параметрами, в начале установки обязательно включить галочку "Add Python 3.10 to PATH" - эта опция создаст путь для библиотек Python в системные пути Windows.

2.2 Непосредственно установка и запуск

Открываем папку с движком stable diffusion (в нашем случае c:/ai/stable-diffusion-webui/ ) находим файл batch скрипта с названием webui-user.bat, запускаем его и ждем еще около 5-10 минут, пока необходимые библиотеки загрузятся, обновятся и установятся.

В случае отсутствия ошибок - в конце исполнения скрипта вы увидите надпись "Running on local URL: http://127.0.0.1:7860" это путь по которому теперь для нас доступен webui движка stable diffusion.

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

Первый запуск SD (или запуск после добавления новой модели) может занимать несколько минут - это нормально. После перезапуска системы сервер запускается этим-же файлом webui-user.bat, поэтому рекомендую сделать пару ярлыков на рабочем столе - для bat файла и для URL web ui.

3. Готово

Stable Diffusion: установка и настройка локальной версии для бесплатной генерации изображений без ограничений

UPD: туточки инструкция для Apple от дорогого БРАТА

7171
76 комментариев

Нахуй Windows, давай на MacOS.
Тут серьёзные люди.

12
2

Макоёбы должны страдать.

У меня к сожалению достаточно старый MacBook еще на intel (2019 года), и насколько я знаю заведется SD только на M1 и старше. Но я обязательно проверю для наших любимых яблодрочеров ❤️

28

под мак, без всего того дрочева что написано в этой статье, есть опенсурсная https://diffusionbee.com/ которая ставится в пару кликов

7

🤷‍♀️

3

https://diffusionbee.com для мака без ебли, поставил — работает и на Intel, как любят маководы. А не ковыряние с кодом.

3

У меня вопрос.
Зачем?

2

Отсутствие ограничений. NSFW. Собственные модели.

У меня лично несколько целей. Одна из - интегрировать в Unity / UE для создания текстур и mattepaint плейнов для 2.5D графики. Вторая - интегрировать в систему автоматической генерации контента, объединив с локальной текстовой моделью для автоматического SMM, создания видеороликов и т.д.

И вообще хочется лучше изучить «то что под капотом». Планирую получить магистерскую степень в Computer science по ML пока не поздно.

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

Зачем это пользователям? Возможно не нужно 🤷‍♂️

18