Логотип
  • Telegram
  • WhatsApp
  • ВК
  • Youtube
  • Artstation
+74992296669
г. Москва Пн - Вс с 10:00 до 19:00
Содержание
Показать содержание
578
0

Как настроить Stable Diffuison под себя и получать крутые работы

Рассказываем, как использовать Stable Diffusion в работе художника — говорим про основные функции и написание запросов.

Окружение и иллюстрация
Как настроить Stable Diffuison под себя и получать крутые работы

Работа выполнена в Stable Diffusion и дорисована в Photoshop. Автор: Vala

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

В этой статье рассмотрим, как эффективно работать со Stable Diffusion — разберем основные функции и методы написания запросов.

Какие есть разделы и настройки в Stable Diffusion — и как их использовать 

Перед тем, как говорить о настройках, стоит проговорить одну вещь. Stable Diffusion существует в двух версиях: онлайновой и десктопной. Онлайновая версия нейросети сильно урезана — там есть буквально несколько важных настроек. Все остальные присутствует только в версии нейросети для ПК.

Об установке этой версии вы можете прочитать здесь.

Разберем все основные разделы нейросети, чтобы понять их назначение. Дополнительные настройки для генерации идентичны для большинства разделов.

Txt2img

В этом разделе можно переводить текстовые запросы в изображение. Для этого вы указываете промпт — его объем не должен превышать 75 знаков. Можно указать негативный промпт, но старайтесь не писать, каких объектов не должно быть на изображении — нейросеть часто его добавляет в противовес требованию.

Txt2img в Stable Diffusion

С правой стороны под кнопкой генерации есть возможность указать стили — впоследствии их можно выбирать для определенных изображений. Стили подразумевают направление, в котором будет идти генерация — например, стиль аниме, поп-арт, живопись и многое другое. Вы даже можете создать свой собственный стиль, если сможете дать его развернутое описание.

Нужно нажать на карандаш, а потом указать название стиля, промпт и негативный промпт для его описания — так вы поясните, что именно должен или не должен включать стиль.

Добавление описания стиля в Stable Diffusion

Указывая стиль вы задаете дополнительный промпт к тому, что уже есть.

Вот пример генерации с одним и тем же промптом, когда применялись два разных стиля — комиксов и аниме-стиль:

Инструменты раздела Txt2img

Generation 

Здесь пользователи задают настройки для самого процесса генерации. Например, могут менять скорость или количество шагов, чтобы получить более качественную картинку.

Настройка включает следующие параметры:

Sampling Method. Любое изображение генерируется на основе шума — модель передается информацию от одной зоне к другой, благодаря чему шум собирается в понятные образы за определенное количество шагов.

Sampling Method помогает обозначить, как именно это шум будет обрабатываться до своего преобразования (схождения). Для этого есть множество методов, — некоторые методы помогают улучшить качество и детализацию картинки. Пользователи оценивают лучше всего «DPM++2M Karras», «Euler» и «Euler a», а также «DDIM».

Sampling method в Stable Diffusion

Sampling Steps. Этот параметр означает количество шагов до подавления шума и момента преобразования в картинку. Если Sampling Method помогает определить, как идет генерация, то Sampling Method помогает указать, сколько будет идти генерация до шумоподавления. Это также улучшает качество картинки. Считается, что чем больше шагов, тем лучше, однако в большинстве случаев достаточно 25.

Sampling steps в Stable Diffusion

Hires. fix. Параметр увеличивает разрешение изображения, причем можно также увеличивать количество шагов (для большей детализации) и убирать шум. Тут важна практика, особенно при выборе варианта Upscaler, поэтому просто попробуйте разные варианты и посмотрите на результат.

Hires. fix в Stable Diffusion

Refiner. Помогает увеличивать сложность и детализацию изображения. Нужно выбрать модель за основную и указать уровень обработки изображения именно в сторону характеристик самой модели. Например, если у вас стоит модель 1,5 как основная, но и есть XL, то ее можно указать здесь.

Refiner в Stable Diffusion

Width и Height. Ширина и высота изображения на выходе.

Width и Height в Stable Diffusion

CFG Scale. Если вы увеличиваете этот показатель, то растет зависимость результата от вашего запроса. При низких показателях алгоритм может игнорировать или только отчасти учитывать вашу подсказку, но с его увеличением алгоритм конкретно выполняет ваш результат.

CFG Scale в Stable Diffusion

Batch count. Число изображений, которое будет генерироваться подряд.

Batch size. Число картинок, которые будут генерироваться параллельно.

Batch count и Batch size в Stable Diffusion

Seed. Здесь можно настроить зерно генерации. Если стоит -1, то алгоритм использует за изначальное значение случайное изображение. Однако можно поступить иначе.

Допустим, вы сгенерировали изображение с девушкой, но захотели добавить к ней определенные детали — например, поменять платье. Тогда вы берете значение Seed, которое отображается у всех сгенерированных изображений внизу, копируете его и вставляете в поле Seed в последующей генерации. 

Остается написать новую подсказку и начать генерацию — алгоритм за основу возьмет ваше изображение, а не случайное.

Seed в Stable Diffusion

Сам seed можно найти здесь:

Значение Seed в Stable Diffusion

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

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

Например, промпт «девушка с серыми глазами в цветочном платье» — на первой картинке будет девушка в цветочном платье, на второй с серыми глазами и в цветочном платье, на третьей — просто девушка с серыми глазами, а на 4 — только девушка. 

Вот пример, как выглядит результат генерации при применении матрицы:

Script в Stable Diffusion

Или есть скрипт X/Y/Z plot — он создает целую таблицу с изображениями 4 картинки на 3, если настроены все три оси. Для каждой оси указывается количество шагов для генерации и разнообразные настройки — например, CFG scale с тремя вариантами значений. 

В итоге получится 12 изображений, которые нейросеть сгенерировала с разным числом шагов и с разным отношением к вашей подсказке (точное соблюдение или игнорирование). 

Это просто пример — вы можете указать разные настройки и посмотреть, что сгенерирует нейросеть — так не нужно генерировать одно и то же с разными настройками по несколько раз. Пользователь экономит время и понимает, как отдельные настройки влияют на его генерацию.

Варианты Script в Stable Diffusion

Вот как выглядит результат генерации по скрипту X/Y/Z plot:

X/Y/Z plot в Stable Diffusion
Взгляните на результаты — модель выдала разные вариации одного и того же промпта — с разными количествами шагов и и разной степенью CFG Scale. Источник

Textual Inversion 

Текстовая инверсия — это метод обучения нейросети, который позволяет получить желаемые результаты генерации за счет схожих изображений. Процесс выстраивается кропотливо — пользователю нужно установить определенные настройки, чтобы создать полноценный скрипт для программы. Порядок действий можно посмотреть на сайте HuggingFace.

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

Embeddings в Stable Diffusion
В разделе указывается путь папки, куда можно добавить вариации текстовых инверсий

Таким методом можно заставить заучить внешность определенного персонажа, который генерировался до этого, и впоследствии использовать текстовую инверсию для генерации одного и того же персонажа в разных позах или с разных ракурсов. 

Работает это по такой логике: пользователь создает текстовую модель (настройки, картиночки и наборы данных) и задает промпт и настройки. Впоследствии, при применении такого промпта, нейросеть за основу будет брать данные указанных изображений. 

Вот пример — автор обучил нейросеть при помощи текстовой инверсии генерировать аниме-девочку в определенной стилистике.

В набор он добавил такие изображения:

Датасет для текстовой инверсии в Stable Diffusion
Источник

И получил такой результат:

Результат генерации при текстовой инверсии в Stable Diffusion
Источник

Hypernetworks 

В этом разделе можно настроить гиперсети, которые влияют на стиль генерируемого изображения. Гиперсети представляет собой отдельную нейронную сеть, которая прикрепляется к Stable Diffusion методом внутренней настройки — о нем подробно рассказывается на сайте Stable Diffusion. Основное преимущество гиперсетей в их маленьком объеме и скорости применения — ее вес всего 200 МБ. 

Гиперсети в Stable Diffusion
Здесь указывается папка, куда добавляются гиперсети

Гиперсети скачиваются обычно со сторонних ресурсов — например на сайте 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, например) — они все обучались при помощи разных изображений, и их база в чем-то отличается, что либо дает больше свободы, либо больше ограничений в контексте генерации.

Чекпоинты в Stable Diffusion
Тут указывается модель — в нашем случая она одна, 1-5.

Вот разница между результатами моделей разных версий:

Генерация с разными чекпоинтами в Stable Diffusion
Источник

Lora  

Lora — это дополнительные модели Stable Diffusion. По весу они небольшие, как и гиперсети, причем они также влияют на стилистику изображения. Однако есть ключевое различие — это метод работы модели. Гиперсети накладываются на саму модель (чекпоинт), а вот Lora вносит уже изменения в алгоритм работы чекпоинта.

Lora обычно используются при обучении модели Stable Diffusion, чтобы создавать более управляемый результат. Такое решение гораздо удобнее — например, если пользователь использует разные чекпоинты для генерации, то пространство его устройства заполняется в мгновение, стоит установить несколько моделей. С Lora такой проблемы нет — можно добавить множество моделей и они не займут много места.

Lora в Stable Diffusion
Папки для добавления Lora.

Принцип работы Lora — это изменение наиболее важной части чекпоинта (та самая часть алгоритма, где встречается подсказка и изображение). Найти модели можно также на разных ресурсах — например, на Civitai. После загрузки файлы помещаются в соответствующую папку и теперь пользователь командой в строке может активировать Lora. Подробно процесс рассматривается здесь.

Вот результат применения Lora, которая либо уменьшает, либо увеличивает детализацию изображения:

Результат генерации с разными Lora
Источник

Img2img

Если в разделе Txt2img мы генерировали арт по текстовому запросу, то в разделе Img2img мы делаем тоже самое, но на основе другого загруженного изображения. Мы как бы перерисовываем уже существующий арт, подсказывая нейросети, что именно нужно перерисовать. 

Параметры в этом разделе идентичные предыдущему. Однако есть отличия — появляется поле, куда можно вставить само изображение, а также разделы с вариантами исходных изображений.

Img2img в Stable Diffusion

Инструменты раздела Img2img

Img2img

На основе изображения можно создать новое изображение по текстовому описанию (инструмент называется идентично самому разделу).

Sketch 

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

Scetch в Stable Diffusion
Например, пользователь нарисовал собаку на черном фоне, добавил запрос и получил на выходе собаку-робота. Источник

Inpaint 

В этом разделе можно корректировать детали исходного изображения. Например, у вас есть результат предыдущей генерации, где нарисована девочка без челки, а вы хотите дорисовать эту челку. Добавляете рисунок в этот раздел, закрашиваете часть лба, пишите запрос, и модель генерирует челку;

Inpaint в Stable Diffusion
Источник

Inpaint sketch 

С помощью этого инструмента вы можете сами дорисовать элементы на исходное изображение. В итоге модель сгенерирует этот элемент, наложив его туда, где вы его нарисовали;

Inpaint sketch в Stable Diffusion
На исходник дорисовали щупальца и добавили текстовую подсказку, где обозначили, какой именно элемент должен быть. Источник

Inpaint upload 

Этот инструмент позволяет накладывать маску на изображение. Маской выступает изображение, которое вы добавляете в качестве основы, но в черно-белом режиме. 

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

Впоследствии вы загружаете в Stable Diffusion сначала основное изображение, потом подготовленную маску, после чего пишите промпт, в котором объясняте, что именно должно отображаться в белой области вместо того, что там сейчас. 

Нейросеть считает белый цвет непрозрачным, поэтому будет восстанавливать картинку, которую он перекрыл. Черный считывается прозрачным, поэтому нейросеть без проблем видит то, что под ним, и никак не трогает эту часть. Промптом вы определите, в каком направлении модели идти при восстановлении белой части.

Вот входное изображение и маска — белая область впоследствии должна корректироваться при помощи восстановления:

Inpaint upload в Stable Diffusion

А вто результат — модель заменила лицо девушки.

Результат применения Inpaint upload в Stable Diffusion

Batch 

Этот инструмент позволяет произвести пакетную загрузку изображений и «слепить» из них видео. 

Вот результат работы с этим инструментом:

Batch в Stable Diffusion
На основе референсных изображений из первого ролика автору удалось создать схожую анимацию со сгенерированной по промпту девушкой. Источник

Настройки всех этих инструментов идентичны инструментам из раздела Txt2img, однако тут дополнительно можно указать, как будет меняться размер изображения в ходе генерации.

Настройки Batch в Stable Diffusion

Extras

Этот раздел дает возможность увеличивать качество своего изображения, которое вы сгенерировали ранее. 

Например, модель сгенерировала не очень детализированный арт, и вы хотите увеличить детализацию. В таком случае, когда модель выдала вам первый результат, нажмите на надпись «Send to extras» под картинкой, которая и направит вас в этот раздел.

Extras в Stable Diffusion
Источник

Инструменты раздела Extras

Теперь нам нам остается указать настройки и улучшить качество своего арта. 

Среди настроек вы увидите:

  • Resize. Это то, насколько увеличится ваше изображение. Например, нередко Stable Diffusion выдает изорбражения с маленьким разрешением, и это можно исправить, увеличив его с помощью Resize.
  • Upscaler1. Первый алгоритм для изменения масштаба картинки. Настройка отвечает за то, как именно будет масштабировоться изображение и как появившиеся пустоты будут заполняться. Какие-то алгоритмы дадут большую детализацию, а какие-то меньшую.
  • Upscaler2. Второй алгоритм для изменения масштаба картинки. Работает он таким же способом, что и первый, однако позволяет дополнительно улучшить деатлизацию и само качество изображения за счет повторной обработки всех появившихся пустот на изображении.
  • Видимость Upscaler 2. Тут вы настраиваете степень применения второго алгоритма. Можно вовсе опустить до нуля, чтобы применялся только первый — таким образом вы отключаете применение второго апскейла.
  • Видимость GPGAN. Степень использования алгоритма, который позволяет восстановить лицо (сделать детализированнее), что удобно в случае с реалистичными изображениями. Чем выше значение, тем более детализированно нейросеть будет прорисовывать лицо героя.
  • CodeFormer видимость. Степень использования алгоритма CodeFormer, который дорисовывает лицо персонажа на изображении. Это значит, что лица не просто детализируются за счет обработки пустот, а на изображении появляются новые детали, которых не хватало. Например, у героя скосились глаза из-за проблем в генерации, и этот интсрумент позволяет перерисовать этот дефект и поправить лицо.
  • Вес CodeFormer. Значимость алгоритма CodeFormer. При повышении эффект будет сильнее и наоборот. Если выставлять 0 и при этом активировать сам алгоритм, то лицо никак не изменится. С повышением веса обработка дефектов на лице будет более весомой.

Вот пример выставленных настроек для изображения с девушкой:

Пример настроек Extras в Stable Diffusion
Источник

А вот результат действия Extras:

Результат применения Extras
Действие не так очевидно, но все в ваших руках — пробуйте и смотрите, как изменяется качество изображения на выходе. Источник

PNG Info

В этом разделе можно сохранять метаданные изображения — например, вы вставили фото в Stable Diffusion и сохранили его сюда. Тогда его данные (промпт в его основе, который считывает нейросеть) сохранятся здесь. По необходимости можно использовать эти данные при генерации, чтобы не добавлять нужное изображение снова.

Checkpoints Merger

Раздел, в котором можно объединять контрольные точки. Это означает, что вы можете использовать модели Lora и основную модель нейросети, чтобы соединить их друг с другом и впоследствии использовать этот режим для генерации. 

Например, Lora дает возможность генерировать изображения в определенной цветовой гамме, и если ее привязать к нейросети, то она будет генерировать все изображения в заданном направлении. 

Вот пример соединения двух моделей:

Checkpoints merge в Stable Diffusion
Взгляните на результаты генерации по одному и тому же промпту — общая стилистика и концепция отличается от изображения к изображению. Автор использовал основную модель Stable Diffusion, а потом добавлял к ней другую модель — например, Waifu Diffusion, чтобы получить нужную стилистику. Источник

Подобным образом можете экспериментировать и вы в поисках нужной стилистики для генерации — ищите разные модели и применяйте их совместно с основной. Но не забывайте отслеживать, как это влияет на ваш результат. Это поможет создавать изображения в необходимом вам стиле.

Settings

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

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

Settings в Stable Diffusion
Автор
Анастасия Терентьева
специально для SmirnovSchool
Расскажи коллегам

Комментарии

    СТОИТ ИЗУЧИТЬ ПО ТЕМЕ