Запускаем Stable Diffusion на Windows
Статья рассчитана на людей, умеющих пользоваться консолью и имеющих базовые навыки использования питона, и желающих настраивать пайплайн кодом
Требования
Все инструкции будут написаны из расчета на то что на компьютере установлена windows 10 и nvidia GPU, желательно 30xx-40xx c актуальными драйверами и установленным python >= 3.10
Устанавливаем CUDA
Тут все довольно просто — переходим по ссылке
скачиваем установщик, устанавливаем тулкит
Создаем проект
Я буду использовать PyCharm, но можно использовать любую удобную вам IDE — главное создать отдельный virtualenv для проекта, чтобы все нужные библиотеки не замусорили глобальное окружение питона
создаем файл main. py и пишем там такой код
Данный скрипт использует модель stabilityai/stable-diffusion-xl-base-1.0 для генерации изображения и ожидает на вход файл со списком промптов — по одному промпту на строчку
Теперь нужно установить библиотеки — важно что в консоли нужно активировать venv проекта (pycharm делает это сам, если открыть терминал прямо в нем)
Как понять что venv активен? в терминале будет написано как-то так
(venv) PS C:\Users\…\stable-diffusion>
Далее нужно узнать версию cuda tookit командой
Как видно из аутпута команды — у меня установлена версия 12.3
Теперь идем на сайт pytorch
и выбираем установщик для наиболее подходящей версии, в моем случае это
дожидаемся установки пакета, стоит отметить что все библиотеки могут занять под 20Гб места на диске
Запускаем код
Создаем рядом с кодом файлик queries. txt с промптами
теперь в терминале в venv запускаем команду
И ждем. Ждем скорее всего довольно долго. Если у видеокарты меньше 8Гб памяти — то код может упасть из-за нехватки памяти, в моем случае было занято около 7Гб видеопамяти
Скрипт сначала скачает локально веса модели — это порядка 10Гб, затем начнет работу. При перезапусках скрипта веса модели не будут скачиваться — потому что они уже сохранились на жестком диске.
Если в ходе работы скрипта он падает с ошибкой AssertionError: torch not compiled with cuda enabled то код на видит cuda toolkit, попробуйте его переустановить и переустановить pytorch с сайта
Или можно поставить Автоматик A1111
Извиняюсь, а чем это лучше варианта использовать готовый automatic1111?(ну и вообще других фронтендов)
Там просто куча всяких полезных плюшек вместе с удобный гуи, поддержка лор, удобно сейвить все, батчи, инпейнты
так и тут можно) у тебя есть код - делай что хочешь, какие угодно модели, какие угодно пред\пост обработки
Но в Автоматике есть api..
ну да, но тут статья скорее про то как это все сделать самому из кода
там выше в комментах подали прикольную идею про расписывание как к этому подключить всякие лоры и инпейнты - возможно я ее даже напишу
Я в ахуе. Нейродебилы про автоматик для васянов не знают?
так там дисклеймер что статья не для васянов)