Ускорение и улучшение генераций

Далее мы разберём не только способы ускорения, но и улучшения генераций. В плане ускорения мы затронем темы использования Turbo, lighting и обычных XL модели, а также использование Lora для ускорения. Ключевым моментом является упор на сохранение или даже улучшение качества генерации. Также, помимо Автоматика будет приложена схема ComfyUI с ещё большим ускорением.

Как добиться такого?

Основы

Главным элементом будет являться совокупность из настроек для модели и применение SPO Lora. Настройки будут немного отличаться в зависимости от используемой модели, если нужно максимальное ускорение и ART - пользуемся Lighting моделью, для фотогенераций берём обычную модель. Настройки будут варьироваться в указанных диапазонах, начните со средних значений и регулируйте исходя из примечаний.

XL - Lighting

 

  1. Lightning Модель - важнейшим элементом для ускорения конечно же является модель, в примерах ниже мы будем рассматривать juggernautXL_v9Rdphoto2Lightning. Использование данной модели обусловлено её универсальностью, модель отлично понимает стили Artist, токены камеры или тела, может генерировать как в реалистичном стиле, так и мультяшном, отлично подойдёт для карикатур или зомби ужасов.
  2. Использование SPO Lora - лора вытягивает из картинки максимум насыщенности и детализации. Т.к. мы будем использовать "ускоренные" параметры, нам важно получить больше параметров за шаг, в этом нам поможет Lora для пошаговой оптимизации spo_sdxl_10ep_4k-data_lora_webui. Вес = 1 - 2, при этом чем выше вес Lora - тем больше изображение превращается в эпический арт, чем меньше - тем более реалистичной становится генерация.
  3. Sampling method = DPM++ SDE - это важный параметр подтверждённый тестами. Нам нужно "свести" изображение к конечному результату за указанное количество шагов, этот семплер лучше всего с этим справляется.
  4. Sampling steps = 4 - это немного меньше рекомендуемого (5 шагов) для Lighting модели, но судя по тестам даёт более реалистичные, детализированные изображения и заодно ускоряет генерацию при условии выполнения всех пунктов по настройке.
  5. CFG Scale = 1 - 2 - большее значение рекомендуется для артов и для большей послушности подсказке, меньшее значение делает изображения более реалистичными.
  6. Включаем расширение Kohya Hires.fix (ставится через расширения по поиску sd-webui-kohya-hiresfix) если разрешение превышает рекомендуемое и при этом проявляется эффект даблёбл. Аналогичная нода так же есть для ComfyUI. Применение данного расширения заметно ускоряет генерацию по сравнению с обычными методами Upscaler при увеличении разрешения в пару раз от рекомендуемого.
  7.  Подключаем FreeU - для согласования мелких деталей. Больше актуально для Art генераций, для фото требуется больше позамарачиваться с настройками, поэтому на фото рекомендуется включать только при Особой необходимости.

8. При использовании ComfyUI подключаем ноду wavespeed (далее будет упоминаться как волна). Так же имеются аналоги в виде "чая" и "тритона" - но в данном материале мы их рассматривать не будем, ибо это отдельная тема. Сейчас держим в уме саму перспективу ещё немного ускориться.

Обычная модель XL

  1. Если нужно больше фотореализма - используем обычную модель juggernautXL_v9Rdphoto2, с ней тоже можно ускориться - но поменьше.
  2. Использование SPO Lora - лора вытягивает из картинки максимум насыщенности и детализации. Т.к. мы будем использовать "ускоренные" параметры, нам важно получить больше параметров за шаг, в этом нам поможет Lora для пошаговой оптимизации spo_sdxl_10ep_4k-data_lora_webui. Вес = 1 - 2, при этом чем выше вес Lora - тем больше изображение превращается в эпический арт, чем меньше - тем более реалистичной становится генерация.
  3. Sampling method = DPM++ SDE - это важный параметр подтверждённый тестами. Нам нужно "свести" изображение к конечному результату за указанное количество шагов, этот семплер лучше всего с этим справляется.
  4. Sampling steps = 6-12 (при 20+ рекомендуемых) - чем меньше шагов, тем больше делаем вес Lora.
  5. CFG=1-4 в зависимости от композиции и стиля - большее значение рекомендуется для артов и для большей послушности подсказке, меньшее значение делает изображения более реалистичными
  6. Включаем расширение Kohya Hires.fix (ставится через расширения по поиску sd-webui-kohya-hiresfix) если разрешение превышает рекомендуемое и при этом проявляется эффект даблёбл. Аналогичная нода так же есть для ComfyUI. Применение данного расширения заметно ускоряет генерацию по сравнению с обычными методами Upscaler при увеличении разрешения в пару раз от рекомендуемого.
  7.  Подключаем FreeU - для согласования мелких деталей. Больше актуально для Art генераций, для фото требуется больше позамарачиваться с настройками, поэтому на фото рекомендуется включать только при Особой необходимости.

8. При использовании ComfyUI подключаем ноду wavespeed (далее будет упоминаться как волна). Так же имеются аналоги в виде "чая" и "тритона" - но в данном материале мы их рассматривать не будем, ибо это отдельная тема. Сейчас держим в уме саму перспективу ещё немного ускориться.

А есть ли ещё фишки?

Плюшки

Применение SPO Lora позволяет в буквальном смысле из какхи делать конфетку, поэтому значительно понижаются требования к Prompt инженерингу. При применении этой волшебной Lora - можно получать потрясные результаты на коротких и даже абстрактных подсказках, вплоть до того, что в подсказке теперь можно писать белиберду и получать шикарные генерации!! Конечно же, чем более внятными будут подсказки - тем более контролируемый будет результат. Если ваша подсказка состоит из произвольных символов то рекомендую использовать Sampler=DPM++SDE. Если подсказка более человеческая, то можно пробовать включить свой любимый семплер.

Эксперименты

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

Примеры являются экспериментальными, для демонстрации возможностей конкретных моделей. В примерах ниже моделям в 1, 2 шага внимание не уделялось - хотя такие модели существуют, но данный материал нацелен не столько и не только на ускорении, сколько на улучшении качества при уменьшении времени генерации на ВАШЕЙ модели.

Протестируем влияние CFG и вес SPO Lora. Как видим увеличение CFG приводит к "пережарености", а уменьшение веса Lora - к уменьшению детализации и "выцветанию".

Среднее значение CFG и веса Lora = 1, далее можно поэкспериментировать в сторону уменьшения или увеличения значения параметров в зависимости от задачи.

Тест CFG vs Вес Lora
Тест2 CFG vs Вес Lora

Протестируем влияние CFG от 1 до 4, вес SPO Lora от 1 до 2 и количество шагов. Как видим, даже на 6 шагах выходят довольно реалистичные результаты, однако для большего следования подсказке необходимо поднять CFG до 2, Steps до 8 и вес Lora до 1,5

При превышении рекомендуемого разрешения для генерации, особо актуально для моделей SD1.5 и SDXL, можно воспользоваться расширением Kohya Hires.fix. Параметры для 2048на1024 приведены ниже. Суть расширения сводится к подготовке заготовки для генерации, для этого предварительно генерируется образ на меньшем (рекомендуемом) разрешении, которое растягивается и накладывается в качестве слоя на новую генерацию.

2048-1024 - пример настроек
juggernautXL_v9Rdphoto2Lightning-StarWarCraft amazing car deep shadows and a mystical-3-Time_20250226103546 juggernautXL_v9Rdphoto2Lightning-StarWarCraft amazing car deep shadows and a mystical-3-Time_20250226103624

Несмотря на специфичность модели, настроек и прочих факторjв, использовать Controlnet можно без ограничений.

Пример настроек Controlnet - Canny
juggernautXL_v9Rdphoto2Lightning-watercolor dark night time underlit detailed medieval rogue-6-Time_20250219104637 juggernautXL_v9Rdphoto2Lightning-art by Sakimichan black green skin a powerful-10-Time_20250225214441

Аналогом SPO является Lora cfg_scale_boost. Тут на вкус и цвет, лично мне больше нравится и удобнее пользоваться SPO. Хотя обе Lora без проблем комбинируются при уменьшении их веса.

Тест Lora

В примере ниже сравнение <lora:cfg_scale_boost:0.28> (слева) и <lora:spo_sdxl_10ep_4k-data_lora_webui:1> (справа). разница в весах.

cfg_scale_boost0 spo_sdxl_10ep_4k-data_lora_webui1

Итого от 20 до 25 секунд на GTX 3060 и это на разрешении 2048 на 1024 в Automatic1111! Параметры описаны вверху статьи, или можете глянуть внутри полноразмерной картинки.

примеры

ТУТ ДОЛЖНА БЫТЬ ВАША ПОДСКАЗКА
<lora:spo_sdxl_10ep_4k-data_lora_webui:1>
Steps: 4, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 1, Seed: 3, Size: 2048x1024, Model hash: c8df560d29, Model: juggernautXL_v9Rdphoto2Lightning, DSHF_s1: 0, DSHF_d1: 4, DSHF_s2: 0.2, DSHF_d2: 8, DSHF_scaler: nearest-exact, DSHF_down: 0.5, DSHF_up: 3, DSHF_smooth: True, DSHF_early: False, DSHF_one: True, Lora hashes: "spo_sdxl_10ep_4k-data_lora_webui: 5256ee0c312f", Version: v1.10.1

Итого от 9 до 15 секунд на GTX 3060 и это на разрешении 2048 на 1024!

примеры

настройки

Нода Kohya Deep Shrink - нужна при превышении рекомендуемого разрешения, для стандартного размера (см. примечание к своей модели) данную ноду нужно отключить (выбрать Bypass в меню)

Нода кэширования Wavespeed (волна) - с основным параметром является residual_diff_threshold. Чем выше значение - тем выше скорость и хуже  генерация отличающаяся от оригинала. Актуальна на большом количестве шагов, в нашем случае даёт небольшой прирост.

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

В случае применения SPO - можете писать любую чепуху, вплоть до последовательности символов и цифр на разных языках - всё равно что-нибудь интересненькое нарисует. Однако результат будет заметно лучше когда подсказка будет из более человеческих слов.

примеры

Вот пример на модели \juggernautXL_v9Rundiffusionphoto2 (НЕ lighting) - это "обычная" XL универсальная модель, тем не менее применение Lora -  <lora:spo_sdxl_10ep_4k-data_lora_webui:1> позволяет вытянуть картинки приемлемого качества даже на 8 шагах, CFG=4. Итак, попросим универсальную модель сгенерировать красивые обои, для этого в подсказку пропишем: 4k wallpaper, beautiful, masterpiece, <lora:spo_sdxl_10ep_4k-data_lora_webui:1>

Как говорилось ранее, SPO вытягивает из картинки максимум, и чем более понятный Prompt тем больше можно жонглировать параметрами. В примере ниже специально идут 4 последовательных генерации на семлерах DPM++ 2M и DPM++ SDE в сравнении с друг другом.

grid-0010 grid-0011

Небольшой вывод: SPO Lora всё же генерирует более приближённое к оригиналу изображение и является более гибким при настройке параметров.

примеры

Вот пример на модели juggernautXL_v9Rundiffusionphoto2 (НЕ lighting) - это "обычная" XL универсальная модель, тем не менее применение Lora с повышенным весом<lora:spo_sdxl_10ep_4k-data_lora_webui:2> позволяет вытянуть картинки приемлемого качества даже на 4 шагах, CFG=1,5 - для реалистичных генераций и до 4 для Арт.

При малом количестве шагов нам нужно как можно быстрее "свести" изображение к конечному результату, лучше всего с этим справляется Sampler=DPM++ SDE.

В примере ниже попросим универсальную модель сгенерировать реалистичного орка делающего селфи, и крутотачку Бугатти, При этом, на этот раз проверим более развёрнутую подсказку:

{Ваша подсказка}, (epic:1.2), trending on artstation, extremely detailed, great lighting, masterpiece, high score, great score, Professional fashion illustration, ultra detailed, fine texture, crisp detail, crisp edges, raw photo, newest, 4k wallpaper, beautiful, masterpiece, HD photo, highest quality, perfect photo, detailed, Photorealistic, best quality, 8k, HD, DSLR, Fujifilm XT3, award winning, film grain, highres, depth of field, best quality, very aesthetic, absurdres,
<lora:spo_sdxl_10ep_4k-data_lora_webui:2>

1) В случае Орка нам потребуется более реалистичная картинка, поэтому пропишем в подсказку орка: A selfie taken by a happy orc during the Battle of Helms Deep

и выставим следующие настройки: Steps: 4, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 1,

 2) А для крутотачки нам потребуется более артовая картинка, поэтому пропишем в подсказку тачку: Bugatti

и выставим следующие настройки: Steps: 4, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 4,

grid-0027 grid-0032

примеры

Hyper Lora бывают разные на 1, 2, 4, 8 и 12 шагов. Вообще использовать данные lora на обычной модели - это изврат, но мы же экспериментируем, и нас никто за это не укусит, поэтому пробуем. На 4 шагах на обычной модели лучше отработала двух шаговая модель.

Вот пример на модели juggernautXL_v9Rundiffusionphoto2 (НЕ lighting) - это "обычная" XL универсальная модель, тем не менее применение Hyper Lora - <lora:Hyper-SDXL-2steps-lora:1> позволяет вытянуть картинки приемлемого качества даже на 4 шагах, CFG=1 - для реалистичных генераций и до 2 для Арт.

При малом количестве шагов нам нужно как можно быстрее "свести" изображение к конечному результату, лучше всего с этим справляется Sampler=DPM++ SDE.

В примере ниже попросим универсальную модель сгенерировать реалистичного орка делающего селфи, и крутотачку Бугатти, Вот подсказка:

{Ваша подсказка}, (epic:1.2), trending on artstation, extremely detailed, great lighting, masterpiece, high score, great score, Professional fashion illustration, ultra detailed, fine texture, crisp detail, crisp edges, raw photo, newest, 4k wallpaper, beautiful, masterpiece, HD photo, highest quality, perfect photo, detailed, Photorealistic, best quality, 8k, HD, DSLR, Fujifilm XT3, award winning, film grain, highres, depth of field, best quality, very aesthetic, absurdres,
<lora:Hyper-SDXL-2steps-lora:1>

1) В случае Орка нам потребуется более реалистичная картинка, поэтому пропишем в подсказку орка: A selfie taken by a happy orc during the Battle of Helms Deep

и выставим следующие настройки: Steps: 4, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 1,

 2) А для крутотачки нам потребуется более Артовая картинка, поэтому пропишем в подсказку тачку: Bugatti

и выставим следующие настройки: Steps: 4, Sampler: DPM++ SDE, Schedule type: Karras, CFG scale: 1,5,

Рассмотрим модель Juggernaut_X_RunDiffusion_Hyper. Для начала, используя рекомендованные настройки Steps=6 и CFG=2 сгенерируем "оригинал", затем на Steps=4 и CFG=2 сгенерируем повторно изображение, что бы понять разницу в качестве и времени генерации. В конце концов подключим SPO Lora и на Steps=4 и CFG=1 Сравним результаты:

Вывод: На меньшем количестве шагов, более фактурным вышел орк с подключённой SPO Lora. Т.е. по факту улучшили качество и уменьшили время. Сюжет с Орком - один из примеров, на других композициях ситуация аналогичная.

Hyper Lora - несработали, поэтому результаты даже приводить не буду.

Рассмотрим модель juggernautXL_v9Rundiffusionphoto и её lighting версию. Для начала подключим только LCM lora, текст подсказки будет выглядеть следующим образом: 4k wallpaper, beautiful, masterpiece, <lora:lcm-lora-sdxl-pytorch_lora_weights:1>

LCM Lora нужна для ускорения генерации изображений в реальном времени по текстовому описанию или наброску - этот фокус актуален для comfyUI когда в одном окне идёт рисование эскиза, а в другом идёт генерация в режиме реального времени, позже я выложу данную схему. Однако сейчас проверим эффект ускорения на автоматике. Она сокращает количество необходимых шагов семплирования — процессов преобразования исходного текста или изображения в более качественное и детализированное изображение.

Слева обычная модель, справа lighting - тестируем семплеры, шаги и CFG с подключённой LMC Lora (без SPO)

juggernautXL_v9Rundiffusionphoto2-4k wallpaper beautiful masterpiece lora lcm lora sdxl-1-Time_20250309201002 juggernautXL_v9Rdphoto2Lightning-4k wallpaper beautiful masterpiece lora lcm lora sdxl-1-Time_20250309200015

Теперь вставим SPO lora в дополнение к LCM. Проверим на других семплерах, включая наш любимый DPM++SDE. Расширим тест шагов, CFG и сравним на разных моделях. Слева обычная модель, справа lighting:

juggernautXL_v9Rundiffusionphoto2-4k wallpaper beautiful masterpiece lora spo sdxl 10ep-1-Time_20250309203027 juggernautXL_v9Rdphoto2Lightning-4k wallpaper beautiful masterpiece lora spo sdxl 10ep-1-Time_20250309195449

Проверим наши выводы:

1) на обычной модели лучше всего всё же отрабатывает SPO с настройками указанными в начале статьи

2) если уж ускоряться, то подключаем LCM и SPO и шагов достаточно 4 на обычной модели!

3) если хочется ускориться, и генерация нужна с оттенком ART, то лучшим решением является lighting модель и 4 шага с одной только SPO

Окончательный вывод:

На lighting моделях шикарно выходят ART на Steps=4 и CFG=1. Для фотореализма берёте соответствующую обычную модель и ставите Steps=10 и CFG=1, регулируя данный параметр до 4 можно перейти от фото к арту. Пример с SPO Lora на модели  juggernautXL_v9Rundiffusionphoto2

juggernautXL_v9Rundiffusionphoto2-10 steps DPM++SDE SPO juggernautXL_v9Rundiffusionphoto2-A selfie taken by a happy orc during-1-Time_20250309234029

Добавить комментарий