Комплексное руководство по Stable Diffusion — от нуба до эксперта
Я заинтересовался использованием SD для создания изображений для военных приложений. Большая часть ресурсов взята с досок NSFW 4chan, поскольку аноны используют SD для создания хентая. Интересно, что канонический SD WebUI имеет встроенную функциональность с досками изображений аниме/хентая... Одним из первых случаев использования SD сразу после DALL-E было создание аниме-девушек, поэтому переход к хентаю неудивителен.
В любом случае, методы этих чудаков применимы к множеству приложений, особенно к LoRA, которые подобны устройствам точной настройки моделей. Идея состоит в том, чтобы работать с конкретными LoRA (например, с военными транспортными средствами, самолетами, оружием и т. д.) для создания синтетических данных изображений для обучения моделей машинного зрения. Также представляет интерес обучение новым полезным LoRA. Более поздние вещи могут включать в себя рисование для пертурбации.
Отказ от ответственности и источники
Every link here may contain NSFW content, as most of the cutting-edge work on SD and LoRAs is with porn or hentai. So, please be wary when you are working with these resources. ALSO, Rentry.org pages are the main resources linked to in this guide. If any of the rentry pages do not work, change the .org to .co and the link should work. Otherwise, use the Wayback machine.
-ТП
Играйте с этим!
Что на самом деле можно сделать с SD? Huggingface и некоторые другие имеют для вас несколько приложений в браузере. Поиграйте с ними, чтобы увидеть силу! В этом руководстве мы создадим полный расширяемый веб-интерфейс, позволяющий нам делать все, что захотим.
- Huggingface Текст в изображение SD Playground
- Приложение Dreamstudio Text to Image SD
- Приложение Dezgo Text to Image SD
- Изображение Huggingface в изображение SD Playground
- Детская площадка для рисования Huggface
Оглавление
- Основы веб-интерфейса
- Настройка использования локального графического процессора
- Настройка Linux
- Идем глубже
- Подсказка
- Новая модель искусственного интеллекта
- ЛоРА
- Игра с моделями
- VAE
- Соберите все это вместе
- Общий процесс SD
- Сохранение подсказок
- Настройки txt2img
- Восстановление ранее созданного изображения
- Устранение ошибок
- Как чувствовать себя комфортно
- Тестирование
- Веб-интерфейс расширенный
- Быстрое редактирование
- Иксформеры
- Img2Img
- живопись
- Дополнительно
- Контрольные сети
- Создание новых вещей (WIP)
- Слияние контрольно-пропускных пунктов
- Обучение LoRA
- Обучение новых моделей
- Настройка Google Colab (НЗП)
- Середина пути
- Параметры МДж
- Расширенные подсказки MJ
- ДримСтудио (НЗП)
- Стабильная Орда (НЗП)
- Бут Мечты (НЗП)
- Распространение видео (WIP)
Основы веб-интерфейса
Вникать в это несколько сложно... но 4channers проделали хорошую работу, сделав это доступным. Ниже приведены шаги, которые я предпринял, в самых простых терминах. Ваша цель — запустить веб-интерфейс Stable Diffusion (созданный с помощью Gradio) локально, чтобы вы могли начать запрашивать запросы и создавать изображения.
Настройка использования локального графического процессора
Позже мы выполним настройку Google Colab Pro, чтобы мы могли запускать SD на любом устройстве в любом месте; но для начала давайте настроим WebUI на ПК. Вам потребуется 16 ГБ ОЗУ, графический процессор с 2 ГБ видеопамяти, Windows 7+ и 20 ГБ дискового пространства.
- Завершить руководство по начальной настройке
- Я проследил за этим до шага 7, после чего дело доходит до хентая.
- Шаг 3 занимает 15–45 минут при средней скорости Интернета, поскольку модели имеют объём 5 ГБ каждая.
- Шаг 7 может занять более получаса и может показаться, что он «застрял» в CLI.
- На шаге 3 я загрузил SD1.5, а не версии 2.x, поскольку версия 1.5 дает гораздо лучшие результаты.
- В CivitAI есть все модели SD; это как HuggingFace, но специально для SD
- Убедитесь, что веб-интерфейс работает
- Скопируйте URL-адрес, который выводит CLI после завершения, например,
127.0.0.1:7860
( НЕ используйте Ctrl + C, поскольку эта команда может закрыть CLI) - Вставьте в браузер и вуаля; попробуй подсказку, и ты отправишься на скачки
- Изображения будут сохраняться автоматически при создании в
stable-diffusion-webuioutputstxt2img-images
- Помните: для обновления просто откройте CLI в папке стабильной-диффузии-webui и введите команду
git pull
Настройка Linux
Полностью игнорируйте это, если у вас Windows. Мне удалось запустить его и в Linux, хотя это немного сложнее. Я начал с этого руководства, но оно написано довольно плохо, поэтому ниже приведены шаги, которые я предпринял, чтобы запустить его в Linux. Я использовал Linux Mint 20, который является дистрибутивом Ubuntu 20.
- Начните с клонирования репозитория WebUI:
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
- Получите модель SD (например, SD 1.5, как в предыдущем разделе).
- Поместите файл ckpt модели в
stable-diffusion-webui/models/Stable-diffusion
- Загрузите Python (если он у вас еще не установлен):
sudo apt install python3 python3-pip python3-virtualenv wget git
- А WebUI очень специфичен, поэтому нам нужно установить Conda, менеджер виртуальной среды, для работы внутри:
wget https://repo.anaconda.com/miniconda/Minconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
- Теперь создайте среду:
conda create --name sdwebui python=3.10.6
- Активируйте среду:
conda activate sdwebui
- Перейдите в папку WebUI и введите
./webui.sh
- Он должен выполняться некоторое время, пока вы не получите сообщение об ошибке невозможности доступа к CUDA/вашему графическому процессору... это нормально, потому что это наш следующий шаг.
- Начните с удаления всех существующих драйверов Nvidia:
sudo apt update
sudo apt purge *nvidia*
- Теперь, следуя некоторым пунктам из этого руководства, выясните, какой графический процессор установлен на вашем компьютере с Linux (самый простой способ сделать это — открыть приложение Driver Manager, и ваш графический процессор будет указан в списке; но есть дюжина способов, просто погуглите).
- Перейдите на эту страницу и нажмите «Последняя новая ветка функций» в Linux x86_64 (у меня это был 530.xx.xx).
- Перейдите на вкладку «Поддерживаемые продукты» и нажмите Ctrl + F, чтобы найти свой графический процессор; если он есть в списке, продолжайте, в противном случае отступите и попробуйте «Последнюю версию производственной ветки»; обратите внимание на число, например, 530
- В терминале введите:
sudo add-apt-repository ppa:graphics-drivers/ppa
- Обновление с помощью
sudo apt-get update
- Запустите приложение «Диспетчер драйверов», и вы увидите их список; НЕ выбирайте рекомендованный (например, nvidia-driver-530-open), выберите точный из предыдущих (например, nvidia-driver-530) и примените изменения; ИЛИ установите его в терминал с помощью
sudo apt-get install nvidia-driver-530
- НА ЭТОМ МОМЕНТе в интерфейсе командной строки должно появиться всплывающее окно о безопасной загрузке с просьбой ввести 8-значный пароль: установите его и запишите.
- Перезагрузите компьютер, и перед шифрованием/входом в систему вы должны увидеть экран, похожий на BIOS (я пишу это по памяти) с возможностью ввода ключа MOK; щелкните по нему и введите свой пароль, затем отправьте его и загрузитесь; некоторая информация здесь
- Войдите в систему, как обычно, и введите команду
nvidia-smi
; в случае успеха он должен напечатать таблицу; в противном случае будет написано что-то вроде «Не удалось подключиться к графическому процессору; убедитесь, что установлена самая последняя версия драйвера». - Теперь установите CUDA (последняя команда должна вывести некоторую информацию о вашей новой установке CUDA); из этого руководства:
sudo apt update
sudo apt install apt-transport-https ca-certificates gnupg
sudo apt install nvidia-cuda-toolkit
nvcc-version
- Теперь вернитесь и выполните шаги 7–9; если вы получаете это «ОШИБКА: невозможно активировать Python venv, прерывание...», перейдите к следующему шагу (в противном случае вы отправитесь в гонку и скопируете IP-адрес из CLI, как обычно, и сможете начать играть с SD)
- В этой проблеме на Github есть некоторые способы устранения этой проблемы с venv... для меня то, что сработало, - это работа
python3 -c 'import venv'
python3 -m venv venv/
А затем заходим в папку /stable-diffusion-webui
и запускаем:
rm -rf venv/
python3 -m venv venv/
После этого у меня это сработало.
Идем глубже
- Прочтите о методах подсказки, потому что нужно знать много вещей (например, положительная подсказка или отрицательная подсказка, этапы отбора проб, метод отбора проб и т. д.).
- Руководство по книге подсказок OpenArt
- Полное руководство по подсказкам SD
- Краткая инструкция-подсказка
- Советы по подсказкам 4chan (NSFW)
- Сборник подсказок и изображений
- Пошаговое руководство для девочек-аниме
- Прочтите о знаниях SD в целом:
- Основополагающая публикация о стабильной диффузии
- CompVis/Stability AI Github (дом оригинальных моделей SD)
- Справочник по стабильной диффузии (хороший внешний ресурс)
- Стабильный хаб Diffusion Links (невероятный ресурс 4chan)
- Стабильная диффузионная золотая жила
- Упрощенная золотая жила SD
- Случайный/Разное. SD-ссылки
- Часто задаваемые вопросы (НСФВ)
- Еще один часто задаваемый вопрос
- Присоединяйтесь к Stable Diffusion Discord
- Будьте в курсе новостей Stable Diffsion
- Знаете ли вы, что с марта 2023 года доступна модель диффузии текста в видео с параметрами 1,7 млрд?
- Повозитесь в WebUI, поиграйтесь с разными моделями, настройками и т.д.
Подсказка
Порядок слов в подсказке имеет значение: более ранние слова имеют приоритет. Общая структура хорошего приглашения отсюда:
Еще одно хорошее руководство говорит, что подсказка должна иметь следующую структуру: