На предыдущем уроке мы с вами создали, сохранили и улучшили наше первое изображение из запроса «smiling cyberpunk cat in purple bowler hat with blue cyber eye sitting in cafe drinking coffee, photorealistic, perfect composition, cinematic shot, intricate details, hyper detail, cool color palette, muted colors, very detailed, sharp focus». При этом мы с вами не рассматривали функциональное назначение и не использовали другие параметры генерации изображения, которые находятся слева на закладке Txt2img/Generation пользовательского интерфейса, как показано на рисунке ниже:

Пришло время нам разобраться с большим перечнем различных параметров, которые мы можем настроить для нашего нового изображения.
Рассмотрим их назначение более подробно (сверху вниз и слева направо):
· Sampling method – метод обработки входного шума. В Stable Diffusion WebUI Forge можно использовать один из двадцати семи методов. Для создания своих изображений я использовал метод по умолчанию – «Euler». Получаются вполне естественные картинки. Если вы хотите получить наиболее реалистичный вариант изображения, попробуйте «[Forge] Flux Realistic» или «[Forge] Flux Realistic (Slow)». Времени на создание изображения уйдет больше, но качество будет выше.

· Schedule type – это методы добавления и удаления шума для получения окончательного изображения. Для создания изображений я тестировал метод по умолчанию – «Simple». Он вполне сочетается со следующими Sampling method: «Euler», «[Forge] Flux Realistic» или «[Forge] Flux Realistic (Slow)», которые совместно дают хороший результат.
В интернете некоторые специалисты рекомендуют выбирать Sampling method: DPM ++ 2M и Schedule type: Karras или любой из вариантов DPM с Karras. Должен отметить, данное сочетание совместно с FLUX.1 мне совсем не понравилось.

· Sampling steps – количество шагов, которое определяет итоговое изображение. Обычно достаточно 20 шагов. Для модели FLUX.1 дальнейшее увеличение числа шагов, как правило, не приводит к более качественному результату.
· Hires.fix – функция улучшения изображения, которой мы с вами воспользовались на прошлом уроке (пиктограмма со звездочками и подписью: «Create an upscaled version of the current image using hires fix settings»). Ее можно не использовать при создании изображения, а потом улучшить его. Или сразу включить ее и получить более реалистичное изображение в большем разрешении. Нужно отметить, что включение этой функции влияет на время генерации картинки (оно увеличивается).

Основная задача функции Hires.fix – не увеличение разрешения изображения, а улучшение качества мелких деталей финального изображения без изменения композиции.
Лучше всего Hires.fix использовать после того, как вы из нескольких вариантов быстро сгенерированных изображений в низком разрешении (например, 512× 512) определили, какое изображение хотите значительно улучшить и сделать его в более высоком разрешении (например, 1024 × 1024).
Для этого нужно будет настроить следующие параметры:
· Upscaler – один из семнадцати методов масштабирования изображения. Каждый из методов может быть полезен для определенного стиля изображения. В качестве базового варианта можно использовать «Latent».
К сожалению, практика показала, что некоторые из них плохо работают или не работают совсем. Это может быть связано с конкретной версией программы.
· Hires steps – число шагов улучшения. Значение «0» соответствует значению Sampling steps. Двадцати шагов будет вполне достаточно, если вы увеличиваете разрешение в два раза и более.
· Denoising strength – шумоподавление. Это очень важный параметр при генерации изображения. Значение по умолчанию «0,75» дает вполне близкую картинку к ее описанию. Если вы увеличиваете значение этого параметра, например до «0,85», то система искусственного интеллекта проявит больше «творчества» и создаст что-то, сильно отличающееся от вашего запроса.
· Upscale by – параметр (множитель) определяет, будет ли увеличено разрешение исходного изображения. Цифра «2» означает, что разрешение будет увеличено в два раза. В качестве альтернативы этой опции можно позже воспользоваться закладкой «Extras» и сделать нужное разрешение из меньшего (об этом мы поговорим далее), но эта опция не улучшит качество мелких деталей.
· Resize width to. Не меняем.
· Resize height to. Не меняем.
· Hires Distilled CFG Scale. Не меняем. Оставляем значение по умолчанию «3,5».
· Hires CFG Scale. Параметр определяет, насколько точно итоговое изображение будет соответствовать вашему исходному запросу. Оставляем значение по умолчанию «1», потому что изменение параметра может сильно изменить итоговое изображение, и не в лучшую сторону.
· Refiner. Опция в текущей версии программы отключена и не работает. Тем не менее разработчик ее отобразил в интерфейсе.

· Width – ширина нового изображения в пикселях.
· Height – высота нового изображения в пикселях.
Для увеличения скорости работы и получения изображения, которое вы потом улучшите, ставьте минимальные значения. Например, для обложки моей книги нужно разрешение 3328 × 4992. Поэтому базовые картинки я делаю с разрешением в четыре раза меньше, то есть 832 × 1248.
· Batch count – параметр определяет, сколько изображений создать системе за один цикл работы. Не меняем. Оставляем значение по умолчанию «1». Если вам нужно несколько, укажите точное число. Чем больше, тем дольше работает система.
· Batch size – параметр определяет, сколько версий изображений создать системе из числа определенных параметром Batch count. Не меняем. Оставляем значение по умолчанию «1».
· Distilled CFG Scale. Не меняем. Оставляем значение по умолчанию «3,5».
· CFG Scale. Оставляем значение по умолчанию «1», потому что изменение параметра может сильно изменить финальное изображение, и не в лучшую сторону.
· Seed – уникальный номер изображения. По умолчанию стоит значение «-1». Это означает, что каждый раз, когда вы нажимаете кнопку Generate, будет создаваться новое изображение со своим уникальным идентификатором. Seed созданной картинки находится сразу под ней вместе с другой информацией. Чтобы определить Seed старого изображения, воспользуйтесь закладкой PNG Info. Знание Seed полезно при использовании закладки Img2img, на которой вы будете создавать изображение из изображения и нового описания.

· ControlNet Integrated – набор дополнительных моделей, которые позволяют взять под контроль процесс генерации изображений и получить более качественные результаты. Например, нам с вами нужно придать некоторую позу нашему коту. Для этого, конечно, напишем нужный запрос, но с помощью ControlNet мы можем указать нашей программе Stable Diffusion WebUI Forge другое изображение, которое станет примером для понимания, чего мы от нее хотим получить в результате.

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

· DynamicThresholding (CFG-Fix) Integrated – дополнительная функция приложения, которая позволяет регулировать различные параметры динамического порогового значения или границы ожидаемого диапазона данных. Другими словами, все параметры нужны для того, чтобы модель выдавала изображения, близкие к тем, на которых ее обучали. Для создания изображений данную опцию мы использовать не будем, так как она нужна скорее для профессиональной оценки работы модели, нежели для целей получения качественных изображений широким кругом пользователей Stable Diffusion WebUI Forge.
· FreeU Integrated (SD 1.x, SD 2.x, SDXL) – функция приложения, которая использует четыре основных параметра (B1, B2, S1 и S2) дополнительной сверточной нейросети UNet для повышения качества генерации изображений без дополнительного обучения или тонкой настройки[ii]. Параметры Start step и End step не меняем. Дополнительно к параметрам есть несколько предустановок, которые работают хорошо на разных моделях. Рекомендую для модели FLUX.1 использовать данную функцию для улучшения изображения с предустановкой (preset): Forge default.
При включенных опциях Hires.fix и FreeU Integrated получается уже более качественное фотореалистичное изображение нашего кота:

· SelfAttention Guidance Integrated – это дополнительная функция управления диффузией, которая улучшает производительность модели[iii], а также детализацию изображения, сохраняя его общую композицию. В приложении указывается на улучшение работы моделей SD 1.x, SD 2.x, SDXL, но нет точного указания на FLUX.1. Тем не менее функция работает и может быть полезна в работе.
· PerturbedAttentionGuidance Integrated – это еще одна дополнительная функция ускоренного улучшения качества изображений, которая управляет качеством выборки диффузии и улучшает ее. Данную опцию рекомендуется использовать совместно с ControlNet[iv], [v].
· Kohya HRFix Integrated – дополнительная функция улучшения изображений с большим разрешением. В том случае если вы хотите сразу создать изображение с высоким разрешением, то имеет смыл активировать эту функцию и для начала использовать параметры по умолчанию. С помощью нее вы сможете избежать появления ненужных артефактов, искаженных и сдвоенных изображений. Вообще говоря, она полезна для работы моделей SD 1.x, SD 2.x, SDXL. Если вы изначально создаете изображение в небольшом разрешении, а потом его увеличиваете при помощи Hires.fix, то необходимости в этой функции нет.
· LatentModifier Integrated – группа параметров для управления диффузией с целью достижения оптимального качества изображения. Параметры позволяют изменять резкость, тон, масштаб, контрастность и многие другие параметры создаваемого изображения[vi].
· MultiDiffusion Integrated – функция нужна, если вы планируете создавать изображения в высоком разрешении (например, более 2К) на видеокартах с небольшим объемом видеопамяти (например, 6 Гбайт).
· StyleAlign Integrated – опция отвечает за согласование одного и того же стиля при генерации из запроса одной или нескольких картинок (например, тогда, когда вы используете опцию Batch count > 1). Другими словами, если в нашем запросе мы оставим все как есть в ключевых словах, отвечающих за стиль, а изменим кота на медведя, то получим изображение в том же самом стиле, что и изображение кота. Если это необходимо, то параметр Strength ставим на «1».

· Never OOM Integrated – активированные опции позволяют решить проблему нехватки памяти (CUDA out of memory error). Параметр нужен для карт с небольшим объемом видеопамяти (например, 6 Гбайт). Чтобы такой проблемы не случилось, всегда оставляйте 30 % незадействованными в параметре GPU Weights (MB). У меня прекрасно отрабатывала модель flux1-schnell-bnb-nf4.safetensors на видеокарте NVIDIA GTX 980 с 4 Гбайтами.
· Script – дополнительные настройки для запросов (prompts) и других параметров.
Подводя итог этому уроку, хочется отметить следующее:
1. Мы продолжаем рассматривать закладку Txt2img / Generation.
2. Существуют группы параметров, которые достаточно сильно влияют на производительность (скорость) работы системы генеративного искусственного интеллекта Stable Diffusion WebUI Forge .
3. Существуют группы параметров, которые очень сильно влияют на качество создаваемого изображения (например, Hires.fix, FreeU Integrated и SelfAttention Guidance Integrated).
4. Ну и, наконец, есть группы, которые отвечают за настройку композиции изображения (например, ControlNet + PerturbedAttentionGuidance Integrated).
Чтобы разобраться с особенностями работы всех групп параметров и с каждым отдельным их них, находящихся на основной закладке Txt2img, вам понадобится достаточно много времени. Я рекомендую вам для начала использовать значения по умолчанию. Нужно отметить, что в Stable Diffusion WebUI Forge разработчики позаботились о нас и настроили работу системы с оптимальными значениями параметров.
Не забудьте, прежде чем изменять параметры, зафиксируйте Seed изображения, которое только что создали (вставьте значение Seed в поле слева). Иначе вы запутаете новую генерацию и не сможете понять, а что, собственно, изменилось в старом изображении.
[i]. Lvmin Zhang, Anyi Rao, Maneesh Agrawala. Adding Conditional Control to Text-to-Image Diffusion Models. [Электронный ресурс] arxiv.org URL: https://arxiv.org/abs/2302.05543 (дата обращения: 22.09.2024).
[ii]. Как улучшить изображения от Stable Diffusion? Тестирую рефайнер FreeU. [Электронный ресурс] tenchat.ru URL: https://tenchat.ru/media/1718272-kak-uluchshit-izobrazheniya-ot-stable-diffusion-testiruyu-refayner-freeu (дата обращения: 22.09.2024).
[iii]. Self-Attention Guidance. [Электронный ресурс] huggingface.co URL: https://huggingface.co/docs/diffusers/api/pipelines/self_attention_guidance (дата обращения: 22.09.2024).
[iv]. Perturbed-Attention Guidance. [Электронный ресурс] huggingface.co URL: https://huggingface.co/docs/diffusers/main/en/api/pipelines/pag (дата обращения: 22.09.2024).
[v]. Donghoon Ahn, Hyoungwon Cho, Jaewon Min, Wooseok Jang, Jungwoo Kim, SeonHwa Kim, Hyun Hee Park, Kyong Hwan Jin, Seungryong Kim. Self-Rectifying Diffusion Sampling with Perturbed-Attention Guidance. [Электронный ресурс] arxiv.org URL: https://arxiv.org/abs/2403.17377 (дата обращения: 22.09.2024).
[vi]. ComfyUI-Latent-Modifiers. [Электронный ресурс] github.com URL: https://github.com/Clybius/ComfyUI-Latent-Modifiers (дата обращения: 23.09.2024).
1. Чесалов А.Ю. Генеративный искусственный интеллект #Forge&flux. Инструкция по установке и настройке / А.Ю. Чесалов. – 1-е изд. – Москва: Ridero, 2024. – 142 с. – URL: https://ridero.ru/books/generativnyi_iskusstvennyi_intellekt_forge_and_flux/ (дата обращения: 25.04.2025). – Текст: электронный.
2. Чесалов А.Ю. Генеративный искусственный интеллект #Forge&flux. Учебное пособие для школьников старших классов и студентов первых курсов вузов / А.Ю. Чесалов. – 1-е изд. – Москва: Ridero, 2024. – 338 с. – URL: https://ridero.ru/books/generativnyi_iskusstvennyi_intellekt_forge_and_flux_1/ (дата обращения: 25.04.2025). – Текст: электронный.