Ультимативный гайд по Stable Diffusion + немного ComfyUI

Всем привет! В интернете я все еще не нашел гайда, который бы нормально объяснял всего по-немногу, чтобы со свистом залететь в генерацию картинок, кроме моего. Это ремейк! Ошибки исправлены, статья дополнена. !!! *И здесь она еще дополнена после Enthub* !!!

Ультимативный гайд по Stable Diffusion + немного ComfyUI

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

Рассматривать будем интерфейсы Stable Diffusion Forge и совсем чуть-чуть ComfyUI. Первый на 30%-40% быстрее того же от Automatic1111, а второй по сравнению с Forge - линуха. Вход может показаться трудноватым, но там можно вытворять такие вещи, какие и не снились ни Автоматику, ни Forge.

Содержание

Установка SD Forge

Собственно, все просто! Заходите по этой ссылке, качай, разархивируй на диск, где есть от 50 Гб, и запускаете update.bat.

И кстати, системные требования простые: любая видеокарта NVIDIA от тысячной серии. Чем мощнее - чем быстрее генерация. На AMD не пробовал, но по идее тоже работает.

Есть поверие, что можно еще увеличить производительность SD. Заходите в папку webui, открывайте в блокноте файлик webui-user.bat, и к строке set COMMANDLINE_ARGS= нужно приписать вот это:

--no-half-vae --opt-channelslast --opt-sdp-no-mem-attention --update-check

На моей системе я не заметил особой разницы, но у конкретно тебя возможно прокнет. Проверяй.

Модели

Их тысячи. Что-то для аниме, что-то для реализма, что-то для п#рнухи, и так далее. Вот модели, которыми пользуюсь я:

RevAnimated - умеет во все рисованное. И классический рисунок, и аниме, и все такое. Как раз пару дней назад вышло обновление.

ChilloutMix - что-то среднее между рисовкой и реализмом. Лица делает преимущественно азиатские.

GhostMix - делает отличные рисованные картинки, на уровне с RevAnimated, но более склонен к аниме.

ToonYou - очень прикольная модель. Стиль американских мультов-сказок, что-то рядом с Disney

Flat-2D Animerge - стиль манга-рисовки

Realistic Vision - Реализм. Европейские лица.

epiCRealism - тоже реализм, тоже европейские лица.

Модели нужно кидать в \webui\models\Stable-diffusion

Все остальное ищи на этом же сайте, ну или на Huffing Face.

XL модели я особо не трогаю, это чуть-чуть другой мир. Там немного по-другому нужно писать промты, там нужно выставлять разрешение от 1024x1024 и всякие такие мелкие детали. Попробуй, мб тебе понравится.

Интерфейс SD Forge

Как модели скачаны, а Forge обновлен, запускай интерфейс с ярлыка run.bat.

Ультимативный гайд по Stable Diffusion + немного ComfyUI

Перед нами прекрасная картину. Давай по порядку:

  • Sampling method — отвечает за первоначальную кашу, из которой будет диффузироваться изображение. DPM++ 2M Karras делает более контрастные и резкие изображения, Euler a делает более "обтекаемые" и как будто немного "маслом". С остальными — экспериментируй.
  • Sampling Steps — количество шагов генерации. Чем выше значение — тем больше итерацией будет произведено. Больше - лучше, но не переусердствуй. Среднее количество шагов — от 23 до 40.
  • Width и Height — ширина и высота. Не рекомендуется больше 800, иначе вместо одного персонажа будет два, или вообще в одной картинке будет две. Модели (не XL) обучаются на 512x512, от этого и исходи. XL модели, насколько я помню, обучались на 1024x1024
  • Batch count и Batch size — количество изображений за одно "нажатие" Generate. В одном Batch count содержится один Batch size. Batch size — до 8 картинок, в Batch count — до 100 Batch size. Вот и умножай.
  • CFG Scale — степень соответствия промту. Чем больше значение, тем больше будет обращать внимание модель на каждое слово, и так сказать "запекать" его. Так что экспериментируй. Стандарт - 7, но если сделать больше (до 12) или меньше (1, например). Можно получать интересные результаты.
  • Seed — рандомное число. Если хочешь много похожих изображений, жми на зеленую кнопочку и Seed "застынет".

Собственно, все относительно просто. Теперь пиши, что хочешь и оно генерирует. Пара фактов:

  • Расположение промтов не сильно влияет, как по мне, но обычно основу пишут сначала, а всякое освещение, позы и стили - в конце. Но поговаривают, что все зависит от модели. Добросовестные авторы обычно указывают, как лучше писать промты для их моделей.
  • Если какому-то промту нужно добавить силы, или наоборот, то пишите (promt:цифра). Больше 1 — промт крепчает, меньше 1, промт слабеет. Пример — (side view:1.5).
  • Можно комбинировать промты. Сначала пример: [blonde | (short pink hair:1.2)]. Оно работает вот так: на первом шагу семплирования картинка будет генерироваться с промтом blonde, на втором шагу — short pink hair, и так по очереди. Особенно хорошо это работает с волосами, делая их как-то покрасивше. Результат этого промта:
[blonde | (short pink hair:1.2)]
[blonde | (short pink hair:1.2)]

Если сделать картинку с только short pink hair:

short pink hair
short pink hair

Используй негативные промты! Они нужны, чтобы нейросеть вещи, которые ты опишешь в Negative Promt — не делала, очевидно. Вот шаблон:

deformed, bad anatomy, disfigured, poorly drawn face, mutation, mutated, extra limb, ugly, disgusting, poorly drawn hands, missing limb, floating limbs, disconnected limbs, malformed hands, blurry, ((((mutated hands and fingers)))) , watermark, watermarked, oversaturated, censored, distorted hands, amputation, missing hands, obese, doubled face, double hands

Также есть такая прикольная штука, как Textual Inversion — это файлики, в которых собраны какие-либо промты. Их нужно кидать в \embeddings. Вот такой файлик для плохих рук, и вот такой вместо негативного промта выше. Ищи их во вкладке Textual Inversion и кидай в Negative Promts.

Усредненная структура промта:

  • Тема (фото, рисунок, портрет)
  • Объект (кто или что во главе картинки)
  • Стиль (аниме, реализм, мультфильм)
  • Стиль2 (автор, режиссер, модель фотоаппарата (canon eos, polaroid))
  • Разрешение (hdr, high resolution, 4k, 8k)
  • Цветовая гамма (главенствующий цвет композиции)
  • Освещение (moonshine, sunny, soft lightning)
  • Угол камеры и поза

Ловите ультимативный гайд по углам камеры!

Может помочь улучшить изображение такая конструкция в самом начале промта: (masterpiece:1.3), (best quality:1.3), если требуется.

Кстати, после генерации все картинки попадают в \outputs\txt2img-images.

Промт можно писать просто перечислением всего, что хочется увидеть. Пример:

pixel-art elderly man, solo, cherry blossoms, hanami, pink flower, white flower, spring season, wisteria, petals, flower, plum blossoms, outdoors, falling petals, white hair, black eyes . low-res, blocky, pixel art style, 8-bit graphics
Ультимативный гайд по Stable Diffusion + немного ComfyUI

Но можно писать и более человеческим языком:

pixel-art elderly man in сherry blossoms parkland with pink flowers and white flower, hanami, spring season, wisteria, petals,plum blossoms, outdoors, falling petals, white hair, black eyes . low-res, blocky, pixel art style, 8-bit graphics
Как по мне, первый способ лучше
Ультимативный гайд по Stable Diffusion + немного ComfyUI

Стили

Скачай файлик со стилями и кидай его в корень папки с SD. Они очень помогут в стилизации картинки. Находится под вкладкой Generate:

Их можно комбинировать!
Их можно комбинировать!

Немного про Dynamic Promts

Устал придумывать промт? Хочется красивые картиночки по какой-нибудь теме? Не беда, ведь можно зарандомить заранее подготовленные промты!

Установка простая. Нужно зайди во вкладку Extensions, зайди в Avaliable, и нажать Load From. Далее находите там Dynamic Promts и справа нажимаете install. Далее нужно зайти в Installed и нажать Apply and restart UI

На Civitai это фильтр Wildcards. Вот самая популярная подборка оттуда. Качай архив и все текстовые файлы кидай в webui\extensions\sd-dynamic-prompts\wildcards

В SD заходи во вкладку Wildcards Manager, и там тебя будет ждать куча "тем", которые ты можешь добавить к своему промту.

Ультимативный гайд по Stable Diffusion + немного ComfyUI

В свой промт нужно вписывать название, как в Wildcards file, например: __background_horror_place__. Это работает так, что при каждой генерации из списка берется рандомная строчка и подставляется в промт.

Немного про IP-Adapter

Это просто какая-то ультимативная херня. Она аналзирует загруженную тобой картинку, и копирует ее стиль и вид пирсонажей (если они есть)

Вот модель, подходящая для стиля, а вот модель для лиц. Желательно скачай обе и кидай в webui\models\ControlNet.

Затем открывай папку с ControlNet, выбирай IP-Adapter, выбирай модель, закидывай картинку с нужным стилем. Не забудь включить ControlNet!

Ультимативный гайд по Stable Diffusion + немного ComfyUI

Вот картинка без него:

Ультимативный гайд по Stable Diffusion + немного ComfyUI

А вот с IP-Adapter!

Ультимативный гайд по Stable Diffusion + немного ComfyUI

LoRa

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

Маленькая заметка. Лоры могут быть либо для SD 1.5 (никак не помечаются), либо для SD XL (они помечаются, обычно *название лоры* XL). Они не подходят друг к другу!

Заходя на страницу с LoRa на Civitai, стоит обратить внимание на пару вещей

Ультимативный гайд по Stable Diffusion + немного ComfyUI

Использование лоры состоит из двух вещей - веса и триггер-слов. Вес автор чаще всего указывает внизу в описании )в нашем случае 0.6-0.8, а триггер-слова справа (отмечены фиолетовым). Это две обязательные вещи. Также автор может указать вспомогательные промты в описании. Тогда вообще цены ему нет, и надо обязательно поставить лайк этой лоре!

Ну погнали делать, чо

Скачивайте файл и кидайте в webui\models\Lora.

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

Собственно, нажимаете на лору и она появляется в положительном промте. Задаем ей рекомендуемый вес, дописываем промт и получаем нашу вайфу!

masterpiece, best quality,  megumin, sitting on a country, medieval times,1girl, young, solo, red eyes, blush, witch hat, red dress, brown hair. Стили: anime, misc-manga
masterpiece, best quality, megumin, sitting on a country, medieval times,1girl, young, solo, red eyes, blush, witch hat, red dress, brown hair. Стили: anime, misc-manga

Inpaint

Ты сделал вайфу, все круто, но какая-то деталь не дает тебе покоя? Вкладка IMG-TO-IMG тебе поможет! В этой вкладке есть подвкладки, и нас интересует Inpaint.

На этой картинке с Зельдой мне не нравятся какие-то крюки на левых домах.

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

Для усиления эффекта лучше написать новый промт. Например убрать все ненужное, и дописать нужное. Украду этот блок с прошлого поста, ибо тут нечего менять, так что будем делать это с Зельдой.

Ультимативный гайд по Stable Diffusion + немного ComfyUI

В настройках в принципе можно ничего не трогать, кроме Denoising strength. В этом стоит поэкспериментировать, и посидев, запомнишь, какие значения для чего нужны. Очень грубо говоря: выше 0.75 ставить не стоит, менее 0.25 - практически ничего не меняется. Для этой картинки я оставил дефолтный 0.75.

Если нужно поменять еще что-то, снова, но уже под этой получившейся картинкой - нажимаем на Палитру и уже меняем новую картинку (нажми на ластик для удаления текущего выделения, и не забудь поменять промт под новые условия!)

Апскейл

Как только картинка получилась, стоит и подтянуть разрешение.

Есть два пути. Либо при генерации воспользоваться HiRez Fix, либо использовать апскейлер. HiRez мне нравится больше. Кодзима на превью как раз сделан через него.

Он находится под выбором сэмплера. Просто нажми галочку, чтобы его включить и выстави настройки. Апскейлер либо оставь, либо выбери, который больше нравится. Steps - желательно от 20. Denoising strength - я ставлю от 0.5 до 0.7.

Ультимативный гайд по Stable Diffusion + немного ComfyUI

А если хочется отдельно повысить разрещение, то нажимай под картинкой на угольник и ты попадешь во вкладку Extras. Хорошие стандартные апскейлеры - R-ESRGAN 4x+ (для реалистичных изображений) и R-ESRGAN 4x+ Anime6B (для аниме). Но лучший для меня - Swin2SR_RealworldSR. Его нужно установить. Качай вот отсюда и кидай в \models\SwinIR. Он не мылит изображение, как R-ESRGAN. Все картинки после апскейла попадают в \outputs\extras-images.

Немного о ComfyUI

Этот интерфейс использует систему нод - отдельных блоков, взаимодействующих между собой.

Ультимативный гайд по Stable Diffusion + немного ComfyUI

Качать отсюда. Модели класть в ComfyUI\models\checkpoints. Помните про апскейлер, который мы качали? Вот его кидайте в ComfyUI\models\upscale_models

Также стоит скачать ComfyUI Manager. Качаете архивом репозиторий и закидываете в ComfyUI/custom_nodes. Он правда нужен. Оттуда вы будете устанавливать кастомные ноды.

Тут все тоже самое, что и в SD Forge, просто с другим интерфейсом. Загружается модель, пишутся промты, оно прогоняется через семплер, декодируется, и попадает в папку ComfyUI\output. Вот мой "воркфлоу". В интернете вы можете найти и другие, более сложные и комплексные. Как скачаете, зайдите в Manager и нажмите Install Missing Custom Nodes, прокликайте все галочки и жмите install.

Мой песдюк
Мой песдюк

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

Много я о нем расписывать не буду, потому что сам еще не разбираюсь в нем достаточно хорошо. Но я точно буду пересаживаться на него. Почему?

Потому что он быстрее, чем SD Forge, и дает НАМНОГО больше контроля над генерацией, что очень приятно.

Совсем чуть-чуть про Stable Video Diffusion

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

В интерфейсе SD Forge для этого есть отдельная вкладка, а для ComfyUI вот вам воркфлоу. Настройки особо не трогайте. Менять есть смысл пока что MOTION_BUCKET_ID, он отвечает за "интенсивность движений".

Заключение

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

Если вам вдруг очень помог этот гайд, не буду против от деняк. Обещаю, что потрачу их на пиво (не для Габедана)

286286
11
139 комментариев

Карасик? Серъёзно? Чо за странный ник

3

Другие ники на ДТФ тебя не смущают?)

17

Карасик - это классика классик. Единственный выбор при дабле/трипле и еже с ними. Такое в почёте у народа.

7

Действительно странный ник. Мне было бы стыдно постить с таким.

Ляяяя... После стольких лет гайд, имба 🚬🥴
Спасибо Карасик

5

Передаю тебе знания и инициативу заполучить нюдсы @Вульфрина
Меня от этой Холо тошнит уже (извини Вульфрина)

3