Содержание статьи
- Stable Diffusion WebUI и его производные
- Краткая предыстория
- Установка и начало работы
- Сохранение настроек
- Дополнительные настройки
- Работа со стилями
- Hires.fix: генерируем картинки высокого разрешения
- Где брать модели
- Что рекомендуют на Reddit и почему не стоит слепо доверять рекомендациям
- Для иллюстраций, аниме и изображений в стиле штриховой графики
- Для псевдореалистичных изображений и графики в стиле 2.5D и 3D
- Для фотореалистичных изображений
- Галерея
- Продолжение следует
Ранее мы уже изучили базовые возможности Stable Diffusion и установку нейросети на компьютер, рассмотрели несколько базовых моделей и научились работать с лорами, стилями и рефайнерами в приложении Fooocus.
Fooocus прекрасно подходит для начала работы и позволяет без лишних сложностей получать красивые изображения, но вскоре пользователь упирается в потолок. В Fooocus не выйдет сразу генерировать картинки в высоком разрешении или автоматически исправлять проблемы с руками и лицами; для этого существуют более продвинутые и намного более сложные в использовании варианты, один из которых мы и будем изучать.
Stable Diffusion WebUI и его производные
Stable Diffusion WebUI, разработанный автором AUTOMATIC1111 — один из самых популярных интерфейсов к Stable Diffusion, возможно даже самый популярный. Его конкурент — ComfyUI, предлагающий уникальную, «не для всех», концепцию пользовательского интерфейса. Написать обо всех продуктах в одной статье невозможно; на сей раз остановимся на интерфейсе AUTOMATIC1111, а точнее, на одной из его перспективных производных.
Интерфейс существует в нескольких вариантах. Место WebUI среди различных интерфейсов Stable Diffusion можно описать следующим образом.
- Fooocus — простой продукт для начинающих.
- WebUI Forge — форк AUTOMATIC1111 с более высокой скоростью работы и оптимизированным механизмом работы с видеопамятью, заимствованным из другого продукта, ComfyUI. Его разработчик — автор Fooocus и сети Control Net. На данный момент активная разработка прекращена, а репозиторий переведен в статус «экспериментального»; на нем будут отрабатываться новые технологии.
- WebUI reForge — в свою очередь, свежий и активный форк вышеописанного WebUI Forge, в котором присутствуют как оптимизации Forge, так и новинки, которые появились в AUTOMATIC1111 за время бездействия разработчика Forge.
- AUTOMATIC1111 — собственно, «классический» WebUI, upstream для разнообразных форков. Для работы на видеокартах с 8 Гбайт VRAM и меньше требует доработки напильником и даже после свежих оптимизаций в версии 1.10 все равно работает медленнее WebUI Forge.
- SD.Next — форк AUTOMATIC1111 за авторством vladmandic. Сложен в допиливании и требует от пользователя серьезной подготовки, зато поддерживает новейшие диффузные технологии, которых нет в A1111.
- ComfyUI — очень мощный и отлично оптимизированный продукт с самой широкой совместимостью и поддержкой разных технологий диффузии. Если тебе близок интерфейс в стиле блок‑схем — попробуй, не пожалеешь!
- SwarmUI — на основе Comfy, который все‑таки сложноват в освоении, создан интерфейс SwarmUI. Его автор долгое время работал в Stability AI и покинул компанию после фиаско с выходом модели SD3 Medium. К этому продукту стоит присмотреться; возможно, сделаю это в следующей статье.
Краткая предыстория
Прогресс в системах генеративного ИИ стремителен. Когда я начинал писать эту статью, самым интересным интерфейсом был WebUI Forge, заметно опережавший оригинальный AUTOMATIC1111 по скорости работы, особенно на видеокартах с небольшим объемом памяти. Шли месяцы, и разработчики AUTOMATIC1111 оптимизировали производительность и добавляли новые возможности, а репозиторий WebUI Forge как будто застыл во времени. 8 июня разработчик Forge сделал объявление: в AUTOMATIC1111 все стало как минимум неплохо, поэтому репозиторий Forge становится экспериментальным.
С одной стороны, в AUTOMATIC1111 и в самом деле подтянули скорость. С другой — механизм управления памятью из Forge так и не добавили. В результате даже старый, много месяцев не обновлявшийся WebUI Forge все еще быстрее оригинала. Разработчик Panchovix сделал собственный форк WebUI Forge, в котором внедрены почти все новинки из AUTOMATIC1111. Новый форк работает быстрее и стабильнее оригинального Forge и существенно опережает AUTOMATIC1111. Именно о нем я и хочу рассказать.
Установка и начало работы
Проект reForge — в активной разработке. В ближайшее время ожидается полноценный файл «всё в одном»; пока же придется повозиться с Git.
На странице проекта рекомендуется такая последовательность шагов:
git clone https://github.com/Panchovix/stable-diffusion-webui-forge.git
cd stable-diffusion-webui-forge
git checkout main_upstream_a1111
Можно воспользоваться альтернативной инструкцией. Для начала качаем полный архив WebUI Forge с GitHub, распаковываем и выполняем из каталога webui
следующие команды:
git remote add reForge https://github.com/Panchovix/stable-diffusion-webui-reForge
git branch Panchovix/main_upstream_a1111
git checkout Panchovix/main_upstream_a1111
git fetch reForge
git branch -u reForge/main
git pull
На Reddit есть альтернативный вариант установки, я использовал именно его. Точно так же качаем и распаковываем WebUI Forge, переходим в его папку и выполняем:
git reset --hardgit remote add reForge https://github.com/Panchovix/stable-diffusion-webui-reForge
git fetch reForge
git switch -c main_upstream_a1111 panchovix/main_upstream_a1111
Далее нужно запустить update.
и run.
. Программа автоматически скачает и установит необходимые зависимости; впрочем, их не так много — разработчик оригинала WebUI Forge уже упаковал в архив все необходимое для начала работы, за исключением разве что базовой модели Stable Diffusion — ее ты можешь скачать самостоятельно и положить в папку
\stable-diffusion-webui-forge\webui\models\Stable-diffusion
Здесь stable-diffusion-webui-forge
— корневой каталог, в который установлен WebUI.
При желании путь к моделям можно изменить, отредактировав вот этот файл:
stable-diffusion-webui-forge\webui\webui-user.bat
Для этого нужно раскомментировать и отредактировать строку
##@REM --ckpt-dir %A1111_HOME%/models/Stable-diffusion^
Кстати, в этом же файле можно изменить и другие пути — например, по которым будет храниться кеш некоторых моделей (в основном тех, которые используются расширениями).
set XDG_CACHE_HOME=%CD:\~0,2%\.cache\
set TRANSFORMERS_CACHE=%CD:\~0,2%\.huggingface\
set HF_HOME=%CD:\~0,2%\.cache\huggingface\
set HF_DATASETS_CACHE=%CD:\~0,2%\.cache\huggingface\datasets
После успешного запуска тебя встретит приблизительно такой экран.
Что здесь имеет значение:
- Stable Diffusion checkpoint — тут выбираем базовую модель. Если в списке нет ни одной, ее нужно скачать и положить в соответствующую папку, после чего нажать на голубую иконку «Обновить список».
- SD VAE — это кое‑что новое по сравнению с Fooocus. VAE отвечает за перевод картинки из латентного пространства в пространство пикселей (и наоборот). Ты можешь выбрать автоматическую настройку, и тогда VAE будет использоваться из состава базовой модели (если он в нее вообще включен, что бывает не всегда), либо скачать и положить в папку
stable-diffusion-webui-forge\
внешний VAE. Скачать стандартный VAE можно с Civitai.webui\ models\ VAE - Clip skip — не трогаем. Для моделей SDXL этот параметр в A1111 игнорируется, так что менять его и бессмысленно, и бесполезно. Он был интересен во времена SD1.5.
- Txt2img — собственно, в этой вкладке происходит генерация. Остальные мы пока не рассматриваем; из ряда вкладок нам будут интересны настройки Settings.
- Prompt, negative prompt — здесь хорошо знакомые поля ввода. WebUI Forge унаследовал от A1111 синтаксис запросов; мы обязательно поговорим о них позднее. Важно знать, что все, что работало в Fooocus, будет точно так же работать и здесь, но в A1111 возможности управления запросами заметно шире.
- Generate — начало генерации. Однако не спеши жать эту кнопку, мы еще не закончили с настройкой.
- Enqueue и выбор базовой модели над ней: это кнопки расширения Agent Scheduler (его нужно устанавливать отдельно из вкладки Extensions — сразу после Settings), которое позволяет создавать очереди из запросов. Весьма полезное расширение, поскольку генерация на большинстве видеокарт, увы, далеко не мгновенная.
Сразу под кнопкой Enqueue (или Generate, если у тебя не установлено расширение Agent Scheduler) находится окно выбора стиля. По умолчанию там пусто; предустановленных стилей с WebUI Forge не поставляется. О том, как работать со стилями, — в одном из следующих разделов.
Дальше начинается самое интересное: параметры генерации. Перед тем как приступить к созданию шедевра, обязательно нужно их настроить.
-
Sampling method — выбор семплера и шедулера, которые будут использоваться для создания картинки. Мы обязательно обсудим алгоритмы и их различия; пока же порекомендую семплер DPM++ 3M SDE (очень быстрый и достаточно свежий алгоритм, но требует больше шагов), DPM++ SDE (его противоположность: медленный, но детальный, требует меньше шагов), DPM++ 2M SDE (что‑то среднее между ними), а также уникальный алгоритм Restart (каждые несколько шагов делает «откат», что в теории позволяет избавиться от мелких огрехов). В качестве шедулера порекомендую Align Your Steps, недавнюю разработку Nvidia. Этот шедулер позволяет получить результат за меньшее число шагов по сравнению с классическими методами.
Sampling steps — число шагов для генерации первого прохода. Сильно зависит от выбранного семплера и от параметра CFG (выше CFG — больше шагов). Для DPM++ 3M SDE Karras и CFG от 4 до 8 лучше установить порядка сорока шагов, а DPM++ SDE Karras может обойтись и двадцатью.
На этом месте стоит прерваться и объяснить, почему бесконечное увеличение числа шагов не всегда ведет к улучшению качества изображения. Большинство современных (не «унаследованных», ancestral) семплеров добавляет небольшой промежуточный шум на каждом шаге.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»