Как настроить Stable Diffuison под себя и получать крутые работы
Рассказываем, как использовать Stable Diffusion в работе художника — говорим про основные функции и написание запросов.
Работа выполнена в Stable Diffusion и дорисована в Photoshop. Автор: Vala
Чтобы эффективно использовать Stable Diffusion, важно изучить ключевые возможности программы, а также научиться писать хорошие запросы. Без этого будет достаточно сложно получить осмысленный результат.
В этой статье рассмотрим, как эффективно работать со Stable Diffusion — разберем основные функции и методы написания запросов.
Какие есть разделы и настройки в Stable Diffusion — и как их использовать
Перед тем, как говорить о настройках, стоит проговорить одну вещь. Stable Diffusion существует в двух версиях: онлайновой и десктопной. Онлайновая версия нейросети сильно урезана — там есть буквально несколько важных настроек. Все остальные присутствует только в версии нейросети для ПК.
Об установке этой версии вы можете прочитать здесь.
Разберем все основные разделы нейросети, чтобы понять их назначение. Дополнительные настройки для генерации идентичны для большинства разделов.
Txt2img
В этом разделе можно переводить текстовые запросы в изображение. Для этого вы указываете промпт — его объем не должен превышать 75 знаков. Можно указать негативный промпт, но старайтесь не писать, каких объектов не должно быть на изображении — нейросеть часто его добавляет в противовес требованию.
С правой стороны под кнопкой генерации есть возможность указать стили — впоследствии их можно выбирать для определенных изображений. Стили подразумевают направление, в котором будет идти генерация — например, стиль аниме, поп-арт, живопись и многое другое. Вы даже можете создать свой собственный стиль, если сможете дать его развернутое описание.
Нужно нажать на карандаш, а потом указать название стиля, промпт и негативный промпт для его описания — так вы поясните, что именно должен или не должен включать стиль.
Указывая стиль вы задаете дополнительный промпт к тому, что уже есть.
Вот пример генерации с одним и тем же промптом, когда применялись два разных стиля — комиксов и аниме-стиль:
Инструменты раздела Txt2img
Generation
Здесь пользователи задают настройки для самого процесса генерации. Например, могут менять скорость или количество шагов, чтобы получить более качественную картинку.
Настройка включает следующие параметры:
Sampling Method. Любое изображение генерируется на основе шума — модель передается информацию от одной зоне к другой, благодаря чему шум собирается в понятные образы за определенное количество шагов.
Sampling Method помогает обозначить, как именно это шум будет обрабатываться до своего преобразования (схождения). Для этого есть множество методов, — некоторые методы помогают улучшить качество и детализацию картинки. Пользователи оценивают лучше всего «DPM++2M Karras», «Euler» и «Euler a», а также «DDIM».
Sampling Steps. Этот параметр означает количество шагов до подавления шума и момента преобразования в картинку. Если Sampling Method помогает определить, как идет генерация, то Sampling Method помогает указать, сколько будет идти генерация до шумоподавления. Это также улучшает качество картинки. Считается, что чем больше шагов, тем лучше, однако в большинстве случаев достаточно 25.
Hires. fix. Параметр увеличивает разрешение изображения, причем можно также увеличивать количество шагов (для большей детализации) и убирать шум. Тут важна практика, особенно при выборе варианта Upscaler, поэтому просто попробуйте разные варианты и посмотрите на результат.
Refiner. Помогает увеличивать сложность и детализацию изображения. Нужно выбрать модель за основную и указать уровень обработки изображения именно в сторону характеристик самой модели. Например, если у вас стоит модель 1,5 как основная, но и есть XL, то ее можно указать здесь.
Width и Height. Ширина и высота изображения на выходе.
CFG Scale. Если вы увеличиваете этот показатель, то растет зависимость результата от вашего запроса. При низких показателях алгоритм может игнорировать или только отчасти учитывать вашу подсказку, но с его увеличением алгоритм конкретно выполняет ваш результат.
Batch count. Число изображений, которое будет генерироваться подряд.
Batch size. Число картинок, которые будут генерироваться параллельно.
Seed. Здесь можно настроить зерно генерации. Если стоит -1, то алгоритм использует за изначальное значение случайное изображение. Однако можно поступить иначе.
Допустим, вы сгенерировали изображение с девушкой, но захотели добавить к ней определенные детали — например, поменять платье. Тогда вы берете значение Seed, которое отображается у всех сгенерированных изображений внизу, копируете его и вставляете в поле Seed в последующей генерации.
Остается написать новую подсказку и начать генерацию — алгоритм за основу возьмет ваше изображение, а не случайное.
Сам seed можно найти здесь:
Script. Последняя настройка, которая позволяет более детально настроить генерацию и рассмотреть разные варианты. Вы выбираете определенный скрипт, указываете настройки, и нейросеть генерирует разные варианты по одному и тому же запросу с учетом настроек.
Каждый скрипт отличается. Например, Promt matrix дает возможность сгенерировать четыре картинки — алгоритм в каждой из них будет соблюдать разные части промпта.
Например, промпт «девушка с серыми глазами в цветочном платье» — на первой картинке будет девушка в цветочном платье, на второй с серыми глазами и в цветочном платье, на третьей — просто девушка с серыми глазами, а на 4 — только девушка.
Вот пример, как выглядит результат генерации при применении матрицы:
Или есть скрипт X/Y/Z plot — он создает целую таблицу с изображениями 4 картинки на 3, если настроены все три оси. Для каждой оси указывается количество шагов для генерации и разнообразные настройки — например, CFG scale с тремя вариантами значений.
В итоге получится 12 изображений, которые нейросеть сгенерировала с разным числом шагов и с разным отношением к вашей подсказке (точное соблюдение или игнорирование).
Это просто пример — вы можете указать разные настройки и посмотреть, что сгенерирует нейросеть — так не нужно генерировать одно и то же с разными настройками по несколько раз. Пользователь экономит время и понимает, как отдельные настройки влияют на его генерацию.
Вот как выглядит результат генерации по скрипту X/Y/Z plot:
Textual Inversion
Текстовая инверсия — это метод обучения нейросети, который позволяет получить желаемые результаты генерации за счет схожих изображений. Процесс выстраивается кропотливо — пользователю нужно установить определенные настройки, чтобы создать полноценный скрипт для программы. Порядок действий можно посмотреть на сайте HuggingFace.
Впоследствии пользователь подготавливает набор данных, которые содержат изображения — наборы можно скачивать готовыми, либо же собирать самостоятельно. После этого остается запустить генерацию, и модель будет генерировать результаты на основе данных или изображений, которые вы загрузили.
Таким методом можно заставить заучить внешность определенного персонажа, который генерировался до этого, и впоследствии использовать текстовую инверсию для генерации одного и того же персонажа в разных позах или с разных ракурсов.
Работает это по такой логике: пользователь создает текстовую модель (настройки, картиночки и наборы данных) и задает промпт и настройки. Впоследствии, при применении такого промпта, нейросеть за основу будет брать данные указанных изображений.
Вот пример — автор обучил нейросеть при помощи текстовой инверсии генерировать аниме-девочку в определенной стилистике.
В набор он добавил такие изображения:
И получил такой результат:
Hypernetworks
В этом разделе можно настроить гиперсети, которые влияют на стиль генерируемого изображения. Гиперсети представляет собой отдельную нейронную сеть, которая прикрепляется к Stable Diffusion методом внутренней настройки — о нем подробно рассказывается на сайте Stable Diffusion. Основное преимущество гиперсетей в их маленьком объеме и скорости применения — ее вес всего 200 МБ.
Гиперсети скачиваются обычно со сторонних ресурсов — например на сайте civitai.com представлено много разных вариантов с интересными стилями. После установки гиперсити достаточно в запрос ввести ее название и начать генерацию.
Например, вот результат генерации по запросу — drawing male leather jacket cyberpunk 2077 on a city street by WoD1 <hypernet:gothicRPGArtstyle_v1:1>:
Checkpoints
Checkpoints — это модели Stable Diffusion, которые вы используете за основу. Они специально обучены для генерации определенного стиля изображений.
Пример — вы выбираете определенную модель, и выясняется, что для ее обучения никогда не использовали изображения птиц. Это значит, что вы никогда не сможете сгенерировать с ее помощью птицу.
В этом основное отличие разных моделей Stable Diffusion (1,4; 1,5 или XL, например) — они все обучались при помощи разных изображений, и их база в чем-то отличается, что либо дает больше свободы, либо больше ограничений в контексте генерации.
Вот разница между результатами моделей разных версий:
Lora
Lora — это дополнительные модели Stable Diffusion. По весу они небольшие, как и гиперсети, причем они также влияют на стилистику изображения. Однако есть ключевое различие — это метод работы модели. Гиперсети накладываются на саму модель (чекпоинт), а вот Lora вносит уже изменения в алгоритм работы чекпоинта.
Lora обычно используются при обучении модели Stable Diffusion, чтобы создавать более управляемый результат. Такое решение гораздо удобнее — например, если пользователь использует разные чекпоинты для генерации, то пространство его устройства заполняется в мгновение, стоит установить несколько моделей. С Lora такой проблемы нет — можно добавить множество моделей и они не займут много места.
Принцип работы Lora — это изменение наиболее важной части чекпоинта (та самая часть алгоритма, где встречается подсказка и изображение). Найти модели можно также на разных ресурсах — например, на Civitai. После загрузки файлы помещаются в соответствующую папку и теперь пользователь командой в строке может активировать Lora. Подробно процесс рассматривается здесь.
Вот результат применения Lora, которая либо уменьшает, либо увеличивает детализацию изображения:
Img2img
Если в разделе Txt2img мы генерировали арт по текстовому запросу, то в разделе Img2img мы делаем тоже самое, но на основе другого загруженного изображения. Мы как бы перерисовываем уже существующий арт, подсказывая нейросети, что именно нужно перерисовать.
Параметры в этом разделе идентичные предыдущему. Однако есть отличия — появляется поле, куда можно вставить само изображение, а также разделы с вариантами исходных изображений.
Инструменты раздела Img2img
Img2img
На основе изображения можно создать новое изображение по текстовому описанию (инструмент называется идентично самому разделу).
Sketch
Вы загружаете исходное изображение, дорисовываете вручную на нем определенные детали и добавляете текстовый запрос. В итоге нейросеть добавляет те детали, которые вы дорисовали на изображении.
Inpaint
В этом разделе можно корректировать детали исходного изображения. Например, у вас есть результат предыдущей генерации, где нарисована девочка без челки, а вы хотите дорисовать эту челку. Добавляете рисунок в этот раздел, закрашиваете часть лба, пишите запрос, и модель генерирует челку;
Inpaint sketch
С помощью этого инструмента вы можете сами дорисовать элементы на исходное изображение. В итоге модель сгенерирует этот элемент, наложив его туда, где вы его нарисовали;
Inpaint upload
Этот инструмент позволяет накладывать маску на изображение. Маской выступает изображение, которое вы добавляете в качестве основы, но в черно-белом режиме.
Сначала вам придется создать такую вариация картинки — можно просто грубыми мазками поверх изображения нарисовать черными и белыми красками, причем белым цветом выделяйте те зоны, которые хотите изменить на изображении, а черным — те, которые хотите сохранить.
Впоследствии вы загружаете в Stable Diffusion сначала основное изображение, потом подготовленную маску, после чего пишите промпт, в котором объясняте, что именно должно отображаться в белой области вместо того, что там сейчас.
Нейросеть считает белый цвет непрозрачным, поэтому будет восстанавливать картинку, которую он перекрыл. Черный считывается прозрачным, поэтому нейросеть без проблем видит то, что под ним, и никак не трогает эту часть. Промптом вы определите, в каком направлении модели идти при восстановлении белой части.
Вот входное изображение и маска — белая область впоследствии должна корректироваться при помощи восстановления:
А вто результат — модель заменила лицо девушки.
Batch
Этот инструмент позволяет произвести пакетную загрузку изображений и «слепить» из них видео.
Вот результат работы с этим инструментом:
Настройки всех этих инструментов идентичны инструментам из раздела Txt2img, однако тут дополнительно можно указать, как будет меняться размер изображения в ходе генерации.
Extras
Этот раздел дает возможность увеличивать качество своего изображения, которое вы сгенерировали ранее.
Например, модель сгенерировала не очень детализированный арт, и вы хотите увеличить детализацию. В таком случае, когда модель выдала вам первый результат, нажмите на надпись «Send to extras» под картинкой, которая и направит вас в этот раздел.
Инструменты раздела Extras
Теперь нам нам остается указать настройки и улучшить качество своего арта.
Среди настроек вы увидите:
- Resize. Это то, насколько увеличится ваше изображение. Например, нередко Stable Diffusion выдает изорбражения с маленьким разрешением, и это можно исправить, увеличив его с помощью Resize.
- Upscaler1. Первый алгоритм для изменения масштаба картинки. Настройка отвечает за то, как именно будет масштабировоться изображение и как появившиеся пустоты будут заполняться. Какие-то алгоритмы дадут большую детализацию, а какие-то меньшую.
- Upscaler2. Второй алгоритм для изменения масштаба картинки. Работает он таким же способом, что и первый, однако позволяет дополнительно улучшить деатлизацию и само качество изображения за счет повторной обработки всех появившихся пустот на изображении.
- Видимость Upscaler 2. Тут вы настраиваете степень применения второго алгоритма. Можно вовсе опустить до нуля, чтобы применялся только первый — таким образом вы отключаете применение второго апскейла.
- Видимость GPGAN. Степень использования алгоритма, который позволяет восстановить лицо (сделать детализированнее), что удобно в случае с реалистичными изображениями. Чем выше значение, тем более детализированно нейросеть будет прорисовывать лицо героя.
- CodeFormer видимость. Степень использования алгоритма CodeFormer, который дорисовывает лицо персонажа на изображении. Это значит, что лица не просто детализируются за счет обработки пустот, а на изображении появляются новые детали, которых не хватало. Например, у героя скосились глаза из-за проблем в генерации, и этот интсрумент позволяет перерисовать этот дефект и поправить лицо.
- Вес CodeFormer. Значимость алгоритма CodeFormer. При повышении эффект будет сильнее и наоборот. Если выставлять 0 и при этом активировать сам алгоритм, то лицо никак не изменится. С повышением веса обработка дефектов на лице будет более весомой.
Вот пример выставленных настроек для изображения с девушкой:
А вот результат действия Extras:
PNG Info
В этом разделе можно сохранять метаданные изображения — например, вы вставили фото в Stable Diffusion и сохранили его сюда. Тогда его данные (промпт в его основе, который считывает нейросеть) сохранятся здесь. По необходимости можно использовать эти данные при генерации, чтобы не добавлять нужное изображение снова.
Checkpoints Merger
Раздел, в котором можно объединять контрольные точки. Это означает, что вы можете использовать модели Lora и основную модель нейросети, чтобы соединить их друг с другом и впоследствии использовать этот режим для генерации.
Например, Lora дает возможность генерировать изображения в определенной цветовой гамме, и если ее привязать к нейросети, то она будет генерировать все изображения в заданном направлении.
Вот пример соединения двух моделей:
Подобным образом можете экспериментировать и вы в поисках нужной стилистики для генерации — ищите разные модели и применяйте их совместно с основной. Но не забывайте отслеживать, как это влияет на ваш результат. Это поможет создавать изображения в необходимом вам стиле.
Settings
Этот раздел включает все настройки пользователей, а также хранит ваши данные, которые вы использовали для обучения или генерации. Также тут можно настроить, куда будут сохраняться файлы, модель или VAE — модель, которая преобразует изображения в процессе генерации.
Функций тут очень много, поэтому стоит изучить их детальнее — они помогут сделать работу более эффективной и комфортной. Некоторые из ключевых настроек рассматриваются в этом материале в самом низу страницы, а здесь можно узнать как с помощью настроек оптимизировать скорость генерации.
Комментарии