Полезные расширения для AUTOMATIC1111 WebUi

/ai/

Must have

SD WebUI Tag Autocomplete

[Github] [Как установить]

Описание

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

Возможности

Автовывод обычных тегов:


Так же работает поиск по extra networks, таким как LoRA:


Кроме того, работает поик по вашему каталогу wildcards (смотри sd-dynamic-promps ниже):

SD Dynamic Prompts

[Github] [Как установить] [Полный список возможностей] [Готовые wildcards на civitai.com]

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

Более подробное описание синтаксиса Dynamic Prompts можно найти в официальной документации. Данный документ покрывает только наиболее востребованную часть синтаксиса.

Inline

{sitting | standing | lying | leaning forward}
С равной долей вероятности будет выбрана одна из четырёх указанных поз.


{5::summer | 1::autumn | 3::winter | 1::spring}
Задание распределения вероятностей - вариант с наибольшим числом в префиксе будет выпадать чаще. Если не указать одно из чисел, это будет интерпретировано как указание единицы в качестве веса.


{2$$Biba | Boba | Ilon Mask}
Выбор двух и более опций из нескольких вариантов, которые будут разделены запятой. Данный пример может вернуть один из следующих промптов (порядок элементов может быть произвольным):

  • Biba, Boba
  • Biba, Ilon Mask
  • Boba, Ilon Mask

{2$$ and $$Biba | Boba | Ilon Mask}
Аналогично вариану выше, но между двойными символами $ мы указываем свою строку для разделения. Данный пример может вернуть один из следующих промптов (порядок элементов может быть произвольным):

  • Biba and Boba
  • Biba and Ilon Mask
  • Boba and Ilon Mask

Wildcards

Вайлдкарды позволяют подставлять значения из заранее описанных вами текстовых файлов в промпт. Для использования вам необходимо создать текстовые файлы с вашими промптами в директории %автоматик%/extensions/sd-dynamic-prompts/wildcards и указать имя файла с вайлдкардами без расширения через двойное подчёркивание __ с каждой стороны, чтобы web-ui использовал описанный вами вайлдкард.

Пример имени файла и соответствующее ему определение вайлдкарда в запросе:
planet-simulator.txt -> __planet-simulator__

Вы можете расфасовать ваши файлы с вайлдкардами по различным директориям в соответствии с вашими предпочтениями, чтобы было удобнее в них ориентироваться. В этом случае используйте слеш / для указания вайлдкардов во вложенных директориях. В примере выше была использована дополнительная директория lora-styles, поэтому полный путь до вайлдкарда __lora-styles/planet-simulator__.

Основной синтаксис и сценарии использования

Описанные в текстовых файлах вайлдкарды могут использоваться для рандомизации запроса. Каждая новая строка считается отдельным вариантом из которых происходит выбор.

pose.txt:

1
2
3
4
sitting
standing
lying
leaning forward

Вызов __pose__ в запросе вернёт одну случайную позу из списка.


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

destroyed-church.txt:

girl explores ruins of church, broken stained glass, deserted spaces, detailed background

Вызов __destroyed-church__ вернёт всю строку целиком.

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

Например:

  • __gacha-splash__ => <lora:gachaSplashLORA_v40:0.8>, [(white background:1.5),::5]
  • __chars/senko__ => <lora:senkoLora_v4:0.8>, sen, blonde hair, 1girl, animal ears, fox ears, blush, animal ear fluff, solo, hair ornament, fox girl, hair flower, hair between eyes, short hair, yellow eyes, fox tail, tail

В целом, может быть хорошей идеей заготавливать вайлдкарды по таким концептам как Персонажи, Стиле-лоры, Сцены и Теги качества.

Для примера, если у вас есть подобный промпт:

Его можно сократить, используя вайлдкарды:

Обратите внимание, что для смены персонажа или сцены (background) вам достаточно будет поменять всего лишь одно слово в вашем промпте, что будет гораздо проще в сравнении с тем, если описывать все теги вручную.

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

Готовые наборы wildcards вы можете найти на цивите.

Дополнительный синтаксис для рулетки

__places/*__

1
2
3
4
5
6
7
8
wildcards
├seasons
└places
 ├indoors.txt
 ├outdoors.txt
 └special
    ├abstract.txt
    └space.txt

В данном примере может быть быть выбран варинт indoors.txt, либо outdoors.txt. Вложенные директории не проверяются.


__characters/**/*__

wildcards
├seasons
└characters
  ├male
  └female
    ├evangelion
    └konosuba
      ├aqua.txt
      ├darkness.txt
      └megumin.txt

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

Нюансы работы рандомайзера

Dynamic Prompts используют генератор псевдослучайных чисел, где функция выбора варианта зависит от текущего сида и расположения частей промпта с синтаксисом Dynamic Prompts относительно друг-друга. Иными словами, при фиксации сида, вы может измененять модель, разрешение и т.п., и выбранные рандомайзером варианты останутся теми же самыми.

При использвании кнопки "Send to img2img/Inpaint" текущий промпт копируется как есть, без учёта выбранных рандомайзером опций. Таким образом, если в txt2img вы использовали конструкцию { sitting | standing | lying | leaning forward }, а затем переслали результат в img2img/Inpaint, то, по умолчанию, будет скопирована вся конструкция { sitting | standing | lying | leaning forward }. Это приведёт к тому, что, при смене сида, рандомайзер выберет другие опции в img2img/Inpaint вкладках. Чтобы избежать такого поведения, вам необходимо вручную скопировать итоговый промпт из метаданных txt2img генерации (в правой панели под сгенерированным изображением).

SD WebUI ControlNet

[Github] [Как установить] [Pruned модели для ControlNet 1.1] [Готовые позы и прочее] [Подробный гайд] [Описание всех моделей]

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

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

Виды моделей

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

Основные настройки UI

Для использования ControlNet вам необходимо осуществить следующие действия:

  1. Выбрать исходное изображение. Стоит отметить, что это не является обязательным в том случае, если вы используете ControlNet в режиме img2img/Inpaint - в данных режимах доступна опция автоматической подстановки исходного изображения
  2. Включить модуль ControlNet
  3. Выбрать тип ControlNet-модели
  4. Выбрать препроцессор и ControlNet-модель. Выберите "none" в качестве препроцессора, если в качестве исходника вы используете изображение, которое уже является результатом работы препроцессора
  5. Дополнительные параметры:
    • Control Weight - сила применения конкретной модели (диапазон: 0-2, по умолчанию: 1). Установление значений ниже 1 приведёт к тому, что SD будет менее строго следовать ограничениям, заданным через ControlNet
    • Starting Control Step - через какой процент итераций включить ControlNet (диапазон: 0-1, по умолчанию: 0)
    • Ending Control Step - через какой процент итераций отключить ControlNet (диапазон: 0-1, по умолчанию: 1). Может быть полезно в случае, если вы хотите задать общую композицию через ControlNet, а затем позволить SD дорисовать детали уже без использования ControlNet.
Исходное изображение Препроцессор canny Итоговое изображение

Кроме того, вы можете использовать несколько ControlNet моделей одновременно, включив данную опцию в настройках (смотри скриншот ниже). Вместо использования одной модели с высоким значением Control Weight, вы можете использовать несколько разных моделей с меньшими значениями, получив интересные эффекты.

Препроцессоры

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

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

Исходное изображение Препроцессор canny Препроцессор depth_midas Препроцессор dw_openpose_full

Каждая ControlNet-модель совместима только с ограниченным набором препроцессоров, который предназначен специально для неё. Depth-модель, к примеру, совместима только с препроцессорами Depth_Midas, Depth_Leres, Depth_Zoe.

После обработки изображения препроцессором вы можете сохранить обработанный вариант изображения и использовать его в дальнейшем без препроцессора. Таким образом, например, распространяется большое количество готовых поз (для модели OpenPose) и жестов (для модели Depth) на civitai.com.

Модели для ControlNet

Для использования любых ControlNet-моделей вам необходимо сперва скачать их и затем поместить в директорию %автоматик%/extensions/sd-webui-controlnet/models.

Ниже дано краткое описание самых часто-используемых моделей. Стоит отметить, что число существующих моделей гораздо больше чем описано в рамках этого документа.

Canny

[Страница загрузки]

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

Исходное изображение Результат работы препроцессора Итоговое изображение
OpenPose

[Страница загрузки] [Плагин для редактирования поз]

Копирование позы на основе ключевых анатомических точек. Полезно, если вы хотите скопировать какую-то нетривиальную позу без извлечения прочих деталей, таких как одежда, фон и причёска.

Исходное изображение Результат работы препроцессора Итоговое изображение

Так же существует плагин OpenPose Editor, хоторый позволяет создавать и редактировать позы для ControlNet. Если вы создаёте позы используя этот плагин, то не забывайте выставлять "None" в качестве OpenPose-препроцессора для ControlNet.

Интерфейс Как работает редактирование
Depth

[Страница загрузки]

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

Исходное изображение Результат работы препроцессора Итоговое изображение
Tile

[Страница загрузки]

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

Исходное изображение Итоговое изображение

Multidiffusion Upscaler For Automatic1111

[Github] [Как установить] [Подробный гайд по использованию]

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

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

Исправления после основного этапа генерации

ADetailer

[Github] [Как установить] [Гайд по использованию]

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

SD WebUI Depth Lib

[Github] [Как установить] [900 готовых рук для Depth Lib] [Четырёхминутный гайд на YouTube]

Выбирайте "none" в опции Depth-препроцессора в ControlNet, когда работаете с этим плагином

Позволяет удобно задавать depth-маски для ControlNet используя редактор, предоставляемый расширением.

Чтобы добавить ваши собственные depth-маски, поместите изображения в директорию %автоматик%/extensions/sd-webui-depth-lib/maps/<категория>, где <категория> это каталог с изображениями, которые вы хотите видеть в виде отдельного таба в редакторе.

Расширения для редакторов

Krita (auto-sd-paint-ext)

[Github] [Как установить и интегрировать с Krita]

Данное расширение интегрирует AUTOMATIC1111 WebUI с Krita. Доступны режимы txt2img, img2img, inpaint и upscale.

Photoshop (Auto-Photoshop-StableDiffusion-Plugin)

[Github] [Как установить и интегрировать с Adobe Photoshop]

Данный плагин позволяет вам использовать возможности AUTOMATIC1111 WebUI напрямую в Adobe Photoshop без переключения между программами.

Прочее

SD WebUI Images Browser

[Github] [Как установить]

Интерфейс для просмотра созданных ранее изображений, с возможностью отправки картинок в txt2img/img2img или ControlNet. Поддерживается фильтрация изображений по PNG-info и сортировка по раличным параметрам. Кроме того, возможно давать оценки изображениям (от 1 до 5) и фильтровать/сортировать их по данному полю. Так же доступна возможность удалять изображения напрямую из веб-интерфейса.

SD WebUI Additional Networks

[Github] [Как установить]

Данное расширение позволяет просматривать метаданные лор/ликорисов и делает процесс подбора оптимальных весов и эпох (если вы обучаете свои лоры) более удобным.

Подбор весов для нескольких лор

Проблемы с производительностью

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

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

Использование в гридах

Данное расширение удобно использовать для построения гридов в двух случаях:

  1. Когда вы определяете оптимальный вес какой-либо лоры (или вес нескольких лор при их совместном использовании)
  2. Когда вы определяете лучшую эпоху лоры после процесса обучения
Строим гриды по весу лоры


Вам необходимо указать тестируемую лору в интерфейсе Additional Networks, а затем выбрать в качестве X/Y/Z координаты грида параметр AddNet Weight порядковый_номер_лоры. В качестве параметра values вы можете указывать числовые значения и их диапазоны. В данном примере значение 0.2-1(+0.2) будет интерпретировано как 0.2, 0.4, 0.6, 0.8, 1.0.

Строим гриды по эпохам (для тестирования лор после обучения)

1. Поместите все эпохи вашей лоры в отдельную директорию:


2. Выберите любую из них в интерфейсе Additional Networks:


3. В настройках грида выберите AddNet Model порядковый_номер_лоры и затем кликните на значок "📒":


Данные манимуляции позволят вам использовать все варианты эпох вашей лоры в гриде.

Просмотр мета-данных

Через дополнительный таб "Additional Networks" вы можете просматривать метаданные лор/ликорисов, такие как использованные при обучении кейвроды и параметры тренировки:

Edit
Pub: 10 Sep 2023 04:41 UTC
Edit: 25 Sep 2023 23:07 UTC
Views: 1424