Текст
                    
Дмитрий Коваленко Санкт-Петербург «БХВ-Петербург» 2025
УДК 004.43 ББК 32.973.26-018.1 К56 К56 Коваленко Д. А. Stable Diffusion. 22 урока для начинающих. — СПб.: БХВ-Петербург, 2025. — 352 с.: ил. — (Для начинающих) ISBN 978-5-9775-2061-4 В книге представлено 22 проиллюстрированных урока по работе с нейросетью Stable Diffusion в интерфейсах AUTOMATIC1111 и Forge. Для лучшего усвоения материала разработаны сопровождающие книгу видеоуроки и сделан полный разбор всех моделей и препроцессоров ControlNet, доступный на электронном ресурсе Figma. Рассмотрены расширения ADetailer, Civitai Helper, State, A-person-maskgenerator, Dynamic Prompts, Prompt All-in-One, SD-WebUI-AR-Plus, Photopea, FreeU, Reactor и ControlNet. Описаны основные функции и настройки, приведены примеры применения для генерации изображений. Рассказано, как управлять стилем и композицией через промты, настроить модели и препроцессоры ControlNet, автоматизировать генерации серий изображений с помощью расширений и скриптов, создавать реалистичные лица и другие изображения, использовать продвинутые трюки по ретуши и постобработке, интегрировать WebUI AUTOMATIC1111 и Forge в рабочие проекты. Электронное приложение на сайте издательства содержит дополнительные материалы: цветные изображения и видеоуроки. Для начинающих дизайнеров УДК 004.43 ББК 32.973.26-018.1 Группа подготовки издания: Руководитель проекта Зав. редакцией Редактор Компьютерная верстка Дизайн обложки Евгений Рыбаков Людмила Гауль Григорий Добин Ольги Сергиенко Зои Канторович "БХВ-Петербург", 191036, Санкт-Петербург, Гончарная ул., 20 ISBN 978-5-9775-2061-4 © ООО "БХВ", 2025 © Оформление. ООО "БХВ-Петербург", 2025
Оглавление Предисловие ..................................................................................................................... 8 Структура книги............................................................................................................................... 9 Некоторые обозначения и условности ......................................................................................... 10 ВВЕДЕНИЕ. Что такое нейросети и как они генерируют изображения? .......... 11 ЧАСТЬ I. НЕЙРОСЕТИ. ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ В СМАРТФОНЕ, ОБЛАКЕ И НА ПК ....................................................................... 15 УРОК 1. Нейросети для генерации со смартфона .................................................. 17 Шедеврум ....................................................................................................................................... 17 GenZArt ........................................................................................................................................... 19 PixAI ............................................................................................................................................... 19 Dream by WOMBO......................................................................................................................... 20 Starryai ............................................................................................................................................ 21 УРОК 2. Нейросети в облаке ....................................................................................... 24 Stable Diffusion Web ...................................................................................................................... 24 Kandinsky 3.0 .................................................................................................................................. 27 DALL-E 3 ........................................................................................................................................ 30 Lexica, Playground Ai и Leonardo.Ai ............................................................................................. 30 Artbreeder ........................................................................................................................................ 32 Midjourney ...................................................................................................................................... 40 УРОК 3. Нейросети для установки локально на ПК: Stable Diffusion ............... 42 ЧАСТЬ II. УСТАНОВКА STABLE DIFFUSION ЛОКАЛЬНО И НА GOOGLE COLAB ............................................................................................... 49 УРОК 4. Интерфейсы Stable Diffusion и системные требования к ним ............. 51 Интерфейсы Stable Diffusion ......................................................................................................... 52 AUTOMATIC1111 .................................................................................................................52 Forge ........................................................................................................................................ 53 ComfyUI .................................................................................................................................. 54
4 Оглавление InvokeAI .................................................................................................................................. 56 Fooocus.................................................................................................................................... 57 Системные требования .................................................................................................................. 58 Тесты производительности ........................................................................................................... 61 УРОК 5. Локальная установка ................................................................................... 66 Установка AUTOMATIC1111 ......................................................................................................66 Установка Python 3.10.6 ........................................................................................................ 67 Установка редактора для работы с кодом ........................................................................... 69 Установка Git ......................................................................................................................... 70 Установка интерфейса AUTOMATIC1111 .......................................................................... 73 Загрузка модели и запуск нейросети .................................................................................... 77 Полезные функции и аргументы запуска ............................................................................. 80 Установка интерфейса Forge ........................................................................................................ 84 Установка менеджера пакетов Stability Matrix ............................................................................ 88 УРОК 6. Установка на Google Colab ......................................................................... 97 Блокнот Google Colab .................................................................................................................... 97 Улучшенные генерации............................................................................................................... 104 ЧАСТЬ III. ОБЗОР ВОЗМОЖНОСТЕЙ AUTOMATIC1111 И ГЕНЕРАЦИЯ ПЕРВЫХ КАРТИНОК ................................................................ 111 УРОК 7. Генерация изображения по промту и изображению ............................ 113 Вкладка txt2img: генерация изображения по промту. Клубничный торт ............................... 113 Интерфейс вкладки txt2img ................................................................................................. 113 Первая генерация ................................................................................................................. 114 Настройки Hires. fix ............................................................................................................. 117 Увеличение изображения .................................................................................................... 119 Вкладка img2img: генерация изображения по промту и изображению. Гоночная машина......................................................................................................................... 122 Настройки вкладки img2img ............................................................................................... 122 Правильный состав любого промта ................................................................................... 123 Генерация изображения ...................................................................................................... 124 УРОК 8. Вкладка Extras............................................................................................. 127 Увеличение изображения: параметр Upscale ............................................................................ 127 Восстанавливаем лица: параметры GFPGAN и CodeFormer ................................................... 129 Оптимизация маленькой памяти: параметр Split oversized images .......................................... 129 Автоматическое кадрирование изображения: параметр Auto focal point crop ....................... 131 Кадрирование до указанного размера: параметр Auto-sized crop ............................................ 132 Отражение изображения в одну из сторон: параметр Create flipped copies ............................ 132 Автоматическое создание текстовых описаний изображения: параметр Caption .................. 133 УРОК 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions ..... 135 Вкладка PNG info: извлечение промта из сгенерированного ранее изображения ................. 135 Вкладка Checkpoint merger: слияние разных моделей нейросети............................................ 136 Вкладка Train: тренировка маленьких моделей ........................................................................ 138 Создание текстовой инверсии............................................................................................. 138 Создание гиперсети ............................................................................................................. 140
Оглавление 5 Вкладка Settings: настраиваем нейросеть под себя ................................................................... 140 Вкладка Extensions: обзор способов установки расширений ................................................... 142 ЧАСТЬ IV. ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЙ ПО ПРОМТУ: ВКЛАДКА TXT2IMG ................................................................................................. 147 УРОК 10. Поколения и виды моделей, лицензии их использования................ 149 Поколения моделей нейросети ...................................................................................................149 Виды моделей .............................................................................................................................. 153 Устанавливаем современную модель ........................................................................................ 156 Сайты для загрузки моделей ....................................................................................................... 163 Лицензии использования моделей ............................................................................................. 166 Компания Stability AI........................................................................................................... 166 Компания Fusionbrain.ai ......................................................................................................168 Компания «Яндекс» (Шедеврум) ........................................................................................ 168 Компания OpenAI (DALL-E)............................................................................................... 168 Нейросеть Artbreeder ........................................................................................................... 169 Нейросеть Midjourney..........................................................................................................169 Нейросеть Leonardo.Ai ........................................................................................................170 Нейросеть Playground AI ..................................................................................................... 170 Нейросеть Lexica.................................................................................................................. 170 Нейросеть Dream by Wombo ............................................................................................... 170 Нейросеть Starryai ................................................................................................................ 170 Нейросети GenZart и PixAI ................................................................................................. 171 УРОК 11. Генерируем фотореалистичный город и устанавливаем первое расширение...................................................................................................... 172 Генерируем фотореалистичный город ....................................................................................... 172 Устанавливаем расширение Civitai Helper ................................................................................ 180 Вкладка Civitai Helper.......................................................................................................... 182 Вкладка Civitai Helper Browser ........................................................................................... 188 УРОК 12. Примеры использования нейросети ..................................................... 190 Генерация персонажей из аниме и компьютерных игр ............................................................ 190 Генерация персонажа в стиле аниме .................................................................................. 190 Генерация персонажа в стиле компьютерных игр ............................................................ 194 Генерация логотипов, одежды, архитектуры и графики для 2D-игр....................................... 196 Генерация логотипа компании............................................................................................ 196 Генерация одежды для мужчины ....................................................................................... 200 Генерация архитектуры ....................................................................................................... 203 Генерация графики для 2D-игр ........................................................................................... 205 УРОК 13. Сравнение методов генерации по разным настройкам .................... 211 Выбираем Sampling method: анализ на примере портретной генерации ................................ 211 Улучшаем качество изображения: настройки Schedule type, Hires. fix, Denoising strength, Upscaler ......................................................................................................... 212 Настройка Schedule type ......................................................................................................212 Настройки Hires. fix и Denoising strength ........................................................................... 214 Виды Upscaler и их зависимость от количества шагов Hires ........................................... 215
6 Оглавление УРОК 14. Секреты создания качественных изображений с людьми ............... 218 Дорабатываем лицо и руки: ADetailer и Refiner в действии .................................................... 218 ADetailer ............................................................................................................................... 218 Refiner ................................................................................................................................... 224 Улучшаем изображение: параметр CFG Scale .......................................................................... 226 УРОК 15. Ускорение написания промта ................................................................ 228 Установка расширения Dynamic Prompts .................................................................................. 228 Установка расширения Prompt-all-in-one................................................................................... 236 Генерация золотого кольца с бриллиантом ............................................................................... 242 Создание контента для соцсетей: генерируем 90 изображений цветов одной темы ............. 242 УРОК 16. Скрипты и расширения для ускорения работы ................................. 245 Встроенные скрипты ................................................................................................................... 245 Скрипт Prompt matrix: создание одного изображения в разных стилях (генерируем загородный дом)............................................................................................. 245 Скрипт X/Y/Z plot: создание нескольких сеток изображений с различными параметрами................................................................................................. 247 Скрипт Prompts from file or textbox: создание списка заданий для нейросети ............... 249 Загружаемые расширения для ускорения работы ..................................................................... 251 Расширения для настройки быстрой смены соотношения сторон изображения ........... 251 Sd-webui-ar-plus ........................................................................................................... 251 Aspect Ratio Resolutions selector-xhox ....................................................................... 254 Расширение State: сохраняем настройки предыдущей генерации ................................... 255 Style Selector for SDXL 1.0: настройка стилей .......................................................................... 256 ЧАСТЬ V. ГЕНЕРАЦИЯ ИЗОБРАЖЕНИЯ ПО ПРОМТУ И ИЗОБРАЖЕНИЮ: ВКЛАДКА IMG2IMG ......................................................... 259 УРОК 17. Общие настройки вкладки img2img и автоматическая генерация промта ...................................................................... 261 Общие настройки вкладки img2img ........................................................................................... 261 Параметр Seed Extra: вариации изображения ........................................................................... 265 Параметр Interrogate: автоматическая генерация текста по изображению ............................. 266 УРОК 18. Режимы работы на вкладке img2img .................................................... 267 Вкладка img2img: генерируем интерьер .................................................................................... 267 Режим Sketch вкладки img2img: меняем цвета отдельных частей интерьера ........................ 271 Режим Inpaint вкладки img2img: генерация новых объектов интерьера без изменения всего изображения ....................................................................................................................... 276 Расширение Canvas Zoom ........................................................................................................... 276 Режим Inpaint sketch вкладки img2img ....................................................................................... 279 Режим Inpaint upload вкладки img2img: добавление деталей по маске ................................... 282 Упражнение: режимы Sketch и Inpaint ....................................................................................... 284 Задача .................................................................................................................................... 284 Решение ................................................................................................................................ 284 Настройка Soft inpainting: улучшение качества режима Inpaint .............................................. 287
Оглавление 7 УРОК 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна ................................................................................ 292 Расширение A Person Mask Generator: быстрая замена одежды и частей тела человека .......... 292 Photopea: бесплатная альтернатива Photoshop для нейросетей ............................................... 295 Устанавливаем для интернет-браузера расширение Adblock .......................................... 295 Устанавливаем расширение Photopea ................................................................................ 295 Интерфейс Photopea: панель инструментов, слои и маски, кисти инструментов .......... 297 Расширение PBRemTools: замена (вырезка) фона изображения ............................................. 300 Расширение FreeU: существенное повышение качества генераций........................................ 303 Расширение Color Correction и методы обработки StableSR: цветокоррекция изображения на вкладке Extras ................................................................................................... 305 Расширение Canvas Editor: быстро создаем визитку ................................................................ 307 Расширение ReActor: создаем арты со своим лицом................................................................ 309 Установка расширения ReActor.......................................................................................... 309 Способ применения расширения ReActor и обзор его настроек ..................................... 311 УРОК 20. Оптимизация интерфейса и скрипты вкладки img2img................... 314 Расширение SD Webui Tabs: оптимизируем интерфейс нейросети ........................................ 314 Скрипты вкладки img2img .......................................................................................................... 315 Скрипт img2img alternative test ........................................................................................... 315 Скрипт Loopback .................................................................................................................. 320 Скрипты Outpainting mk2 и Poor man's outpainting: расширение изображения .............. 321 Скрипт Outpainting mk2 .............................................................................................. 321 Скрипт Poor man's outpainting .................................................................................... 323 Скрипты SD upscale, Ultimate SD upscale: масштабирование (увеличение) изображения ......................................................................................................................... 324 Скрипт SD upscale ....................................................................................................... 324 Скрипт Ultimate SD upscale ........................................................................................ 324 Скрипт controlnet m2m.........................................................................................................327 ЧАСТЬ VI. НЕЙРОСЕТЬ ВНУТРИ НЕЙРОСЕТИ: РАСШИРЕНИЕ CONTROLNET .............................................................................. 329 УРОК 21. Установка расширения ControlNet и загрузка моделей ................... 331 Установка расширения ControlNet ............................................................................................. 331 Загрузка моделей расширения ControlNet ................................................................................. 331 Разница между моделями ControlNet в интерфейсах нейросетей ........................................... 340 УРОК 22. Настройки расширения ControlNet и создание нового изображения на основе контуров другого изображения ........................ 343 Настройки расширения ControlNet ............................................................................................ 343 Multi-ControlNet ........................................................................................................................... 345 Работаем с расширением ControlNet: модель Canny ................................................................ 345 ПРИЛОЖЕНИЕ. Описание файлового архива, сопровождающего книгу ...... 351
Предисловие Это издание представляет собой учебное пособие и практическое руководство по нейросети Stable Diffusion и ее интерфейсам: Automatic1111 и Forge. Stable Diffusion — это нейросеть от студии Stability.ai с открытым исходным кодом, которая позволяет генерировать изображения на основе текстового запроса (промта), дорисовывать наброски, генерировать изображения на основе другого изображения, редактировать исходные картинки и генерировать видео. Stable Diffusion — значимый инструмент в мире нейросетей. Разработчики Stable Diffusion продвигают свой проект в открытом доступе. Его первую версию (SD 1.5) выпустили в августе 2022 года, а уже в июле 2023 вышла улучшенная версия Stable Diffusion XL 1.0 (SDXL), которая без сложностей может изначально генерировать изображения с разрешением 1024×1024 пикселов, что позволяет отображать гораздо больше деталей. Модификации нейросети способны генерировать изображения различных стилей. Основа метода — диффузионная модель, удаляющая лишнее с изображения поэтапно и выдающая результат после нескольких итераций. Этот метод также применяется в синтезе речи и трехмерной графике. Цель книги — кратко и понятно объяснить, что такое нейросеть Stable Diffusion, и научить ею пользоваться. Книга ориентирована в первую очередь на начинающего пользователя, который хочет узнать, как генерировать картинки по текстовому описанию, на основе другого изображения и как правильно писать текстовый запрос нейросети. Благодаря этой книге, пользователь также научится создавать фотоарты, делать ретушь, заменять одежду и дорисовывать элементы в сгенерированном изображении или на фотографии. Задачи книги:  показать современные возможности нейросетей и способствовать развитию творческой активности читателей, позволяющей применять полученные знания и сформированные умения в новых условиях;  научить читателей генерировать картинки в определенном стиле по текстовому описанию для создания контента для соцсетей, рекламы, объектов и локаций для 2D-игр и создания текстур для 3D-игр;
Предисловие 9  помочь читателям создавать фотоколлажи, фотоарты с использованием интерес- ных эффектов, в том числе замены лиц людей и объектов на изображении, генерации изображения на основе другого изображения;  описать полезные плагины и скрипты, служащие для ускорения генерации в нейросети. Представленная в книге информация крайне необходима читателю для эффективной организации своего рабочего процесса в нейросети Stable Diffusion и достижения желаемого результата в процессе самообразования. Полагаю, что это издание будет способствовать углублению у его читателей понимания принципов работы в нейросети Stable Diffusion и поможет систематизировать его знания в этой области. Структура книги  Во введении и в части 1 (уроки 1–3) вводится понятие нейросети и алгоритма генерации изображений. Рассказывается о нейросетях для генерации со смартфона, на сайтах и установленных локально.  В части II (уроки 4–6) рассматриваются различные интерфейсы Stable Diffusion: Fooocus V2, AUTOMATIC1111, Forge, ComfyUI, InvokeAI, а также системные требования для установки нейросети. Мы выполним здесь установку Stable Diffusion AUTOMATIC1111, Forge и менеджера пакетов Stability Matrix локально, а в случае, если у вас «слабый» компьютер, — на Google Colab1.  Часть III (уроки 7–9) полностью посвящена знакомству с интерфейсом нейросе- ти Stable Diffusion AUTOMATIC1111. Мы настроим нейросеть под себя, напишем первый промт и сгенерируем в этой нейросети первое изображение.  Часть IV (уроки 10–16) посвящена генерации изображений по промту. В этой части мы будем учиться работать во вкладке txt2img нейросети Stable Diffusion AUTOMATIC1111 и Forge, а также правильно составлять и писать промты. Узнаем о лицензии на использование нейросетей, сайтах для загрузки моделей, видах и поколениях моделей. Познакомимся с параметрами Sampling method, Schedule type, Hires. fix, Denoising strength, Upscaler и CFG Scale и изучим их влияние на генерацию изображения. Установим расширения Civitai Helper, ADetailer, Dynamic Prompts, Prompt-all-in-one, Sd-webui-ar-plus, Aspect Ratio Resolutions selector-xhox, State и Style Selector, облегчающие работу в нейросети и ускоряющие написание промтов. Рассмотрим интегрированные скрипты Prompt matrix, X/Y/Z plot, Prompts from file or textbox. Научимся генерировать персонажи из аниме и компьютерных игр, логотипы, одежду, архитектуру, графику для 2D-игр, а также создавать массовые генерации для отложенного постинга в свои сообщества в социальных сетях. 1 Google Colab — бесплатная среда для разработки и выполнения программного кода в облаке.
10 Предисловие  Часть V (уроки 17–20) посвящена генерации изображений по промту и изо- бражению. Здесь мы также будем работать во вкладке img2img. Научимся генерировать, изменять, перекрашивать изображения и добавлять в них больше деталей на примере интерьера комнаты. Установим дополнение A-person-maskgenerator для упрощения создания «масок». Познакомимся с дополнением Photopea внутри нейросети Stable Diffusion, которое можно использовать как бесплатную альтернативу Adobe Photoshop. Освоим способы расширять изображение в разные стороны. Рассмотрим простые скрипты для настройки быстрой смены соотношения сторон изображения и расширение FreeU, которое существенно улучшает результат генерации. Углубим наши возможности использования режимов Inpaint установкой расширения Canvas Zoom. Узнаем, как использовать расширение ReActor для замены лиц. Изучим работу встроенного полезного расширения Interrogator, служащего для создания словарного описания изображения.  В части VI (уроки 21–22) мы рассмотрим большое и полезное дополнение ControlNet и все его параметры и модели. Ф АЙЛОВЫЙ АРХИВ Книгу сопровождает файловый архив (см. приложение) в составе двух видеоуроков (к урокам 5 и 22), где дополнительно подробно освещены некоторые сложные моменты, возможно, не полностью раскрытые в тексте «бумажной» книги. Кроме того, учитывая, что цветные иллюстрации книги в черно-белом издании утрачивают свою информативность, все иллюстрации книги вместе с подрисуночными подписями вынесены во включенные в этот же архив цветные PDF-файлы, по номерам соответствующие урокам «бумажной» книги. Скачать файловый архив с сервера издательства «БХВ» можно по ссылке https:// zip.bhv.ru/9785977520614.zip, а также со страницы книги на сайте https://bhv.ru. Некоторые обозначения и условности  Все текстовые подсказки, чтобы быть отличимыми от основного текста книги, набраны курсивом.  В рамках книги понятие нейросети = ИИ = AI = искусственный интеллект.  Здесь же: текстовая подсказка: prompt = промпт = промт.  В случае возникновения каких-либо вопросов вы сможете их задать в ТГ-чате по ссылке: https://t.me/photomur. Желаю вам приятной работы с книгой и надеюсь, что она поможет вам в генерации изображений!
ВВЕДЕНИЕ Что такое нейросети и как они генерируют изображения? Нейросеть — это алгоритм, созданный для выполнения поставленных задач, например для поиска определенных картинок, распознавания звуков, рисования портрета, создания текстов и прочего. Нейросеть обучаема, умеет действовать последовательно, запоминает данные, обрабатывает запросы и выдает информацию в ответ. Подобным образом функционируют нейронные связи нашего мозга, вследствие чего нейросети получили название искусственного интеллекта (ИИ). Искусственные нейронные сети полностью контролируются человеком. Будучи моделями машинного обучения, они часто выполняют практические функции, направленные на решение нескольких определенных задач. Основные принципы работы нейросетей начали формироваться в 40–50-х годах прошлого века. Тогда исследователи пытались создать машину, которая могла бы имитировать функции человеческого мозга. В 1943 году Уоррен Мак-Каллок и Уолтер Питтс предложили математическую модель нейрона, а Фрэнк Розенблатт представил перцептрон — первую практическую реализацию нейросети (рис. В.1). Рис. В.1. Схема перцептрона
12 Введение Перцептрон обучается на данных и корректирует ошибки, что позволяет ему классифицировать изображения, — например, на «настольные фишки» и «игральные кубики». В методе обратного распространения ошибки, разработанном в конце XX века, нейросеть сравнивает свои предположения с реальными данными и корректирует собственные «правила» для улучшения точности распознавания. Этот метод значительно улучшил обучение нейросетей и их способность к распознаванию данных. С появлением мощных графических процессоров и больших объемов данных в 2000-х годах стали доступны алгоритмы Deep Learning. Однако по-настоящему популярным термин Deep Learning стал только в 2010-х годах, когда исследования начали демонстрировать высокие результаты в обучении на больших данных. Развитие Deep Learning стимулировало создание новых архитектур и инструментов для обучения нейросетей, что привело к началу распространения практического их применения во многих отраслях. Настоящим прорывом в мире нейросетей стало создание модели GPT-3 (Generative Pretrained Transformer 3) разработки компании OpenAI. Представленная в 2020 году, модель натренирована на большом объеме текстовых данных и успешно выполняет различные языковые задачи. В конце ноября 2022 года в свет выходят нейросеть ChatGPT (тоже от OpenAI), позволяющая генерировать текст, и нейросеть Midjourney, генерирующая изображения в облаке, а затем и нейросеть Stable Diffusion с открытым исходным кодом, позволяющая пользователям генерировать изображения локально на своих ПК. История ChatGPT началась с ее версии 3.5, которая была выпущена в ноябре 2022 года. Она сразу же привлекла внимание широкой аудитории благодаря своему высокому уровню понимания текста, способности генерировать содержательные ответы на разнообразные, в том числе и весьма сложные, запросы и давать более точные ответы, чем ее предшественники. Спустя несколько месяцев, в марте 2023 года, была представлена обновленная версия — ChatGPT 4. Эта версия не только улучшила качество генерируемых текстов, но и стала более гибкой и универсальной. ChatGPT 4 способна воспринимать контекст запросов лучше, чем предыдущие версии, что позволяет ей давать более релевантные и развернутые ответы. Кроме того, эта версия может справляться с весьма сложными задачами — такими как написание кода, создание сложных текстов, проведение анализа данных и даже оказывать помощь в научных исследованиях. Для того чтобы эффективно взаимодействовать с ChatGPT, важно уметь правильно составлять промт (запрос). П РОМТ , ИЛИ ПРОМПТ Запрос, подсказка или инструкция — те вводные данные, которые вы набираете, когда общаетесь с нейросетью. Простой и понятный запрос помогает ChatGPT лучше понять, что именно вам нужно. Например, если вы хотите получить совет по приготовлению блюда, стоит уточнить, какие ингредиенты у вас есть или на какое количество человек вы гото-
Что такое нейросети и как они генерируют изображения? 13 вите. Чем более конкретно и точно вы формулируете запрос, тем более полезный и точный ответ получите. С помощью ChatGPT можно делать множество полезных вещей. Она может помочь с написанием текстов разного уровня сложности — от сочинений и статей до бизнес-презентаций и писем, предложить идеи для креативных проектов, помочь разобраться в сложных научных темах, ответить на вопросы по программированию и даже стать личным наставником в изучении иностранных языков. В отличие от ChatGPT, Midjourney — это нейросеть, специализирующася на создании изображений по текстовым запросам. Основная ее особенность заключается в том, что она позволяет пользователям создавать визуальные образы, просто описывая их словами. Например, можно попросить нарисовать «закат над океаном с парусником на горизонте», и нейросеть постарается воплотить этот запрос в картинку. Однако, несмотря на всю привлекательность Midjourney, есть несколько причин, по которым ее использование может оказаться не самым удобным выбором. Вопервых, Midjourney работает через облачные сервисы, а это означает, что для ее использования вам нужен постоянный доступ к Интернету. Во-вторых, если вы планируете с ней работать, вам придется подписаться на платный тариф. Это может быть неудобно для тех, кто предпочитает работать офлайн или хочет избежать лишних расходов. Стоит отметить и то, что результаты, полученные с помощью Midjourney, не всегда предсказуемы. Нейросеть может создать нечто совершенно неожиданное, и иногда это может быть даже забавно, но если вы работаете над важным проектом, то такой фактор неожиданности может стать серьезным минусом. Кроме того, созданные изображения могут иметь артефакты — визуальные дефекты, которые сложно исправить без помощи графического редактора. Если вы серьезно настроены на работу с нейросетями для создания изображений, то вам стоит обратить внимание на альтернативные решения — такие как Stable Diffusion. В отличие от Midjourney, Stable Diffusion можно установить на свой компьютер и использовать без постоянного подключения к Интернету. Это позволит вам работать в своем темпе, без ограничений по количеству запросов и необходимости платить за подписку. Более того, Stable Diffusion даст вам полный контроль над процессом генерации изображений. Вы сможете настроить параметры модели под свои нужды, что обеспечивает более предсказуемые и качественные результаты. Stable Diffusion не только предоставляет больше возможностей для творчества, но и избавляет вас от необходимости зависеть от внешних сервисов. Вот главные преимущества Stable Diffusion и локальной генерации изображений по сравнению с генерацией в облаке:  быстрая и эффективная генерация изображений — если у вашего компьютера достаточно видеопамяти, скорость генерации с теми же самыми промтами будет намного выше, чем у Midjourney, поскольку в Midjourney все пользователи генерируют изображения, используя одни и те же серверы;  высокая настраиваемость — при наличии определенных знаний, описанных в этой книге, и собственной фантазии можно создать что угодно;
14 Введение  открытый исходный код — в Stable Diffusion, в отличие от модели подписки Midjourney, есть бесплатный тарифный план;  доступность — нейросеть можно использовать из любой точки мира, без огра- ничений по стране проживания;  огромное количество дополнительных расширений и функций абсолютно бес- платно — от генерации видео до создания 3D-моделей по фото и генераций 3D-видео и многого другого. Итак, что же такое Stable Diffusion и как она генерирует изображения? Представьте, что гончар берет кусок глины (чистый шум), а из него получает необходимое изделие: горшок, статуэтку, поделку и т. д. Таким образом кусок глины деноизируется в произведение. Д ЕНОЙЗ Процесс уменьшения шума, посредством придания ему конкретной формы. Модель учится превращать случайный шум в связное изображение, соответствующее предложенномк промту. Тут важно отметить, что нейросеть Stable Diffusion — это сам алгоритм обработки информации. Но любой алгоритм машинного обучения (МО) должен на чем-то обучаться и работать. Stable Diffusion обучается на специальных моделях, в которые загружены многие тысячи изображений с подписями к каждому из них, где написано, что изображено на той или иной картинке в мельчайших деталях. Модели в нейросети Stable Diffusion играют роль учителя или мастера ремесла. Они учатся на изображениях, которые им показывают, чтобы потом самим создавать новые картинки. Например, если им показать много фотографий кошек, они начнут понимать, как выглядит кошка, и смогут нарисовать свою собственную картинку кошки. Так же и с фотографиями людей, природы и прочих объектов. В больших моделях присутствует сразу много изображений на разные темы, чтобы «расширить кругозор» нейросети. Это помогает создавать изображения, которые кажутся настоящими и естественными. Чтобы дать «приказ» нейросети «нарисовать» что-либо, нужно задать ей специальный текстовый запрос — промт. В настоящее время существует много нейросетей для генерации изображений — как на компьютере или в смартфоне, так и в качестве веб-сервисов и сайтов. Далее мы рассмотрим наиболее известные из них. * * * Подробную информацию о перцептроне и развитии нейросетей вы найдете в следующих источниках:  университет ИТМО: нейронные сети, перцептрон: https://clck.ru/3AikyV;  чат-бот с генеративным искусственным интеллектом ChatGPT: https://clck.ru/3GZHVp;  нейросеть GPT-4: https://clck.ru/3GZHXo;  нейросеть Midjourney: https://clck.ru/3GZHYj;  нейросеть Stable Diffusion: https://clck.ru/3GZHZk.
ЧАСТЬ I Нейросети. Генерация изображений в смартфоне, облаке и на ПК Урок 1. Нейросети для генерации со смартфона Урок 2. Нейросети в облаке Урок 3. Нейросети для установки локально на ПК: Stable Diffusion

УРОК 1 Нейросети для генерации со смартфона  Шедеврум  GenZArt  PixAI  Dream Wombo  Starryai Шедеврум Шедеврум — бесплатное приложение для генерации изображений. В его основе лежит искусственный интеллект, который работает на YandexGPT. С помощью Шедеврум можно генерировать свои изображения и тексты, подписываться на других людей и комментировать изображения. После генерации вы сможете выбрать одно из четырех изображений, сохранить его или удалить и поделиться им в одном из мессенджеров. Заявлена поддержка создания видео, но, судя по всему, она присутствует только у людей с большим количеством подписчиков. В приложении нельзя генерировать изображения:  связанные с политикой и религией;  относящиеся к категории «18+»;  касающиеся жестокости и насилия. На рис. 1.1 приведены примеры интерфейса программы (а), стадии написания запроса (б) и этапа генерации (в). На рис. 1.2 мы видим итоговое изображение. Фон сильно размыт, текстура кожи как таковая отсутствует, деталей на изображении очень мало — все эти факторы в совокупности свидетельствуют о слабом качестве генерации в приложении Шедеврум.
18 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК а б в Рис. 1.1. Диалоговые окна Шедеврум: а — интерфейс программы; б — окно написания запроса; в — окно сообщения о ходе генерации программы Рис. 1.2. Результат генерации в Шедеврум
Урок 1. Нейросети для генерации со смартфона 19 GenZArt Приложение-нейросеть GenZArt распостраняется в статусе условно-бесплатного — т. е. при регистрации в нем пользователь может с полной функциональностью сгенерировать два изображения, а следующие — только за плату. В GenZArt предусмотрено больше функций, чем у Шедеврум, но и время генерации в два раза дольше. С помощью GenZArt можно генерировать музыкальные клипы не длиннее 10 секунд без возможности вывода. На рис. 1.3 приведены примеры интерфейса программы (а), окна написания запроса голосом (б) и результата генерации (в) по промту: art beautiful magic girl in magic style. а б в Рис. 1.3. Диалоговые окна GenZArt: а — интерфейс программы; б — окно написания запроса голосом; в — окно сообщения о ходе генерации программы PixAI Приложение PixAI в целом очень похоже на GenZArt с той лишь разницей, что ориентированно больше на генерацию в аниме-стиле, в частности на аниме людей и животных. В приложении присутствует цензура, и даже обычные слова могут вызвать запрет на генерацию. При регистрации PixAI дает возможность сгенерировать 10 изображений.
20 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК а б Рис. 1.4. Диалоговые окна PixAI: а — интерфейс программы; б — окно вывода результата генерации На рис. 1.4 приведены примеры интерфейса программы (а) и вывода результата генерации (б) по промту: art beautiful girl is the captain of a ship, an 18th century ship. Dream by WOMBO Приложение Dream by WOMBO (Dream) при регистрации дает возможность сделать пять генераций. Качество генераций хуже, чем у предыдущих приложений, при этом большая часть сгенерированного контента не отличается разнообразием (в значительной степени это касается людей). Можно делать генерации на основе текста и на основе другого изображения. Приложение «весит» в три раза больше других (Шедеврум, GenZArt, PixAI), что может плохо сказаться на памяти слабых смартфонов (девайсов).
Урок 1. Нейросети для генерации со смартфона 21 Starryai Приложение Starryai — единственное из рассмотренных, которое позволяет генерировать изображения с высокой точностью детализации, имеет внутренний искусственный интеллект, помогающий точнее сформулировать детали желаемого изображения (вставлять стиль подсказки). При регистрации возможно сгенерировать 2–4 изображения (в зависимости от дополнительных настроек). На рис. 1.5 приведены примеры интерфейса программы (а), окна написания запроса (б) и результата генерации (в) по промту: the girl «Jinx» from the TV series Arcane, a girl with blue long hair, dressed in a black corset and purple pants, background rich merchant house of the early 19th century, steampunk style, good lighting, clear image, 4k. Результат генерации показан на рис. 1.6. а б в Рис. 1.5. Диалоговые окна Starryai: а — интерфейс программы; б — окно написания запроса, в — окно сообщения о результате генерации Результат вашей генерации, несмотря на точное повторение слов приведенного ранее промта, может отличаться, т. к. итоговая генерация зависит от:  текстового описания (prompt) — описание, используемое для генерации изобра- жения, должно быть идентичным;  настроек «Сид» (Seed) — задания специального порядка случайных чисел (в приложении Starryai эта настройка отображается только в платной версии);
22 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Рис. 1.6. Результат генерации в Starryai С ИД (S EED ) Настройка, используемая для генерации изображения. Она определяет начальное состояние генератора случайных чисел. Для получения одинаковых изображений необходимо использовать один и тот же сид.  размеров изображения (Image Dimensions) и настройки соотношения сторон — ширина и высота у двух изображений должны совпадать (в приложении Starryai эта настройка отображается только в платной версии);  настроек стиля — в нашем случае выбран стиль Characters и по нему добавлены словосочетания: digital painting of an animation character, character illustration, glen keane, lisa keane, realistic, disney style character, detailed, digital art, 4k, ultra hd;  шагов диффузии (Sampling Steps) — количества шагов, которое алгоритм ис- пользует для генерации изображения (в приложении Starryai эта настройка не отображается);  метода выборки (Sampling Method) — различные методы выборки могут дать разные результаты даже с одинаковым сидом и описанием (в приложении Starryai эта настройка не отображается);  CFG Scale (Classifier-Free Guidance Scale) — этот параметр контролирует баланс между точностью следования описанию и творческой свободой модели (в приложении Starryai эта настройка не отображается);
Урок 1. Нейросети для генерации со смартфона 23  настроек версии выбранной модели и ее «весов», на основе которых будет про- изводиться генерация (в приложении Starryai эти настройки не отображаются). * * * Подробную информацию о нейросетях, доступных для смартфонов, вы найдете в следующих источниках:  нейросеть Шедеврум: https://shedevrum.ai/;  нейросеть GenZArt: https://www.genzart.ai/;  нейросеть PixAI: https://pixai.art/;  нейросеть Dream Wombo: https://dream.ai/;  нейросеть Starryai: https://starryai.com/.
УРОК 2 Нейросети в облаке  Stable Diffusion Web  Kandinsky 3.0  DALL-E 3  Lexica  Leonardo.AI  Playground AI  Artbreeder  Midjourney Здесь мы рассмотрим нейросети, которые доступны не в виде отдельных приложений, а представлены в качестве веб-сервисов. Stable Diffusion Web Если мы перейдем на официальный сайт Stable Diffusion Web и попробуем чтонибудь сгенерировать — нас ожидает ограничение генераций и отсутствие как такового пространства для экспериментов в виде очень малого количества настроек. Однако для первой пробы этого вполне должно хватить. Напишем тот же промт про персонаж «Джинкс» из сериала «Аркейн», что мы приводили ранее в приложении Starryai (см. разд. «Starryai» урока 1). На рис. 2.1 приведен пример интерфейса программы, окно написания запроса и результат генерации по промту: the girl "Jinx" from the TV series Arcane, a girl with blue long hair, dressed in a black corset and purple pants, background rich merchant house of the early 19th century, steampunk style, good lighting, clear image, 4k. Выставим желаемый стиль — у нас он будет кинематографичный. Выставим соотношение сторон, количество одновременно сгенерированных изображений и масштаб направления (CFG Scale) — насколько сильно наш текстовый запрос будет влиять на генерацию по сравнению с креативностью нейросети (рекомендуется от 6 до 9). На сайте действует цензура.
Урок 2. Нейросети в облаке 25 Рис. 2.1. Диалоговое окно Stable Diffusion Web Если нажать на знак вопроса в круге около настройки Масштаб направления, появится пояснение, что эта настройка отвечает за показатель «Насколько сильно ваш запрос учитывается». Если поставить очень высокие или очень низкие значения, то появится дополнительный значок восклицательного знака в желтом треугольнике, где будет написано: «Обратите внимание, что высокий/низкий масштаб направления может привести к нежелательным результатам и деградации изображения. Рекомендованный масштаб направления около 7». На рис. 2.2 приведен Рис. 2.2. Stable Diffusion Web: настройка Масштаб направления
26 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК пример генерации одного и того же изображения с одинаковым промтом, но разными настройками масштаба направления. При масштабе направления, равном 1, нейросеть прислушивается только к отдельным словам заданного промта, опустив слова: the girl "Jinx" from the TV series Arcane, blue long hair, purple pants, background rich merchant house of the early 19th century, good lighting, clear image, 4k. При этом на изображении невооруженным взглядом заметны многочисленные артефакты: 3 стопы ног, 3 кисти рук, 12 пальцев на одной руке и прочее. При масштабе направления, равном 30, нейросеть максимально прислушивается к промту, однако на изображении видны артефакты, связанные с цветом кожи сгенерированного человека. Исходя из этих результатов, не рекомендуется ставить настройку Масштаб направления (CFG Scale) выше 9. Несмотря на одинаковый промт, заданный в приложении Starryai и в Stable Diffusion Web, результаты генерации различаются. Это происходит потому, что на итоговую генерацию оказывают действие сразу несколько факторов: собственно, сам промт, модель, используемая для генерации (отличается по названию — нам неизвестна модель, задействованная в Stable Diffusion Web), поколение модели (бывает 1.5, 2.1, XL и т. д.), стиль (в Stable Diffusion Web мы поставили кинематографичный), количество итераций (семплов, или проходов), совершаемых при генерации изображения: от 1 до 60 — этот параметр нам неизвестен (скрыт от пользователя в обоих нейросетях). На рис. 2.3 можно увидеть результат генерации в Stable Diffusion Web. Рис. 2.3. Результат генерации в Stable Diffusion Web
Урок 2. Нейросети в облаке 27 З АМЕЧАНИЕ Исходя из различий настроек и параметров для генерации изображений, получение абсолютно идентичного изображения в рассмотренных здесь нейросетях и описанных далее в книге не представляется возможным, кроме генерации в локальной нейросети Stable Diffusion и различных ее интерфейсах (при указании всех настроек для генерации). Попробуйте самостоятельно установить другие настройки и вкладки нейросети:  вкладка Изображение в изображение — позволяет загрузить любое изображение и написать любой промт и на их основе получить похожее изображение (углубленно эта функция будет рассмотрена в уроке 5);  вкладка Удаление фона — удаляет фон с загружаемого изображения;  вкладка Волшебный ластик — удалит любой объект на загружаемом изобра- жении в том месте, где вы этим ластиком проведете;  Вкладка Редактировать что угодно — добавит что угодно на выделяемой части изображения с помощью промта;  вкладка Масштабирование изображений (Image Upscaler) — увеличит любое изображение на 400% без потери качества;  вкладка Эскиз в изображение позволяет превратить ваши нарисованные от руки эскизы в высококачественные изображения;  вкладка Замена лица (Face Swap) — позволяет заменить лицо на загружаемом изображении. Kandinsky 3.0 В нейросети Kandinsky 3.0 применяется немного иной подход в интерфейсе пользователя. Здесь нет четкого интерфейса в виде вкладок — есть только квадрат области генерации, размер и разрешение которого мы можем изменять, а внизу предусмотрено место для текстовой подсказки. При этом в Kandinsky можно писать на русском языке — ИИ его прекрасно понимает. Изображение здесь можно расширять и дорисовывать, перемещая область генерации. Можно в Kandinsky генерировать и видео. Для примера попробуем написать промт: былинные древнерусские три богатыря в доспехах, богатыри сидят на конях, на лугу в ясный день, в негативном промте напишем то, что мы НЕ хотим видеть на изображении: размытый, грязный, нечеткий, уродливый, плохая биология, уродливая биология, выберем стиль «Классицизм». Результат генерации можно увидеть на рис. 2.4. Теперь попробуем «дорисовать» изображение, сместив область генерации влево. Сгенерируем лес, для чего допишем в промте: былинные древнерусские три богатыря в доспехах, богатыри сидят на конях, на лугу в ясный день, древнерусский лес позади богатырей. В результате на рис. 2.5 вы видите дорисованный лес. Попробуйте самостоятельно расширить изображение в разные стороны, при этом вы можете придумать и написать что угодно, — например, добавив к промту:
28 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Рис. 2.4. Диалоговое окно интерфейса Kandinsky 3.0 и результат генерации Рис. 2.5. Диалоговое окно интерфейса Kandinsky 3.0 и результат генерации с добавлением леса 3 русских богатыря против ящеров или инопланетная тарелка в небе над богатырями, — вы ограничены только полетом своей фантазии. Впрочем, не желательно «отходить» далеко от изначальной области генерации, т. к. нейросеть может вместо расширения исходного изображения и следования ему по стилю, цвету, краскам
Урок 2. Нейросети в облаке 29 Рис. 2.6. Нежелательный результат генерации в Kandinsky 3.0 и тону сгенерировать нечто, хоть и соответствующее вашему промту, но сильно отличающееся от изначальной генерации (рис. 2.6). Не стесняйтесь использовать инструмент «Ластик» и стирать те части изображения, которые, по вашему мнению, не должны находиться на изображении, а также пользоваться кнопками «Отмена» и «Повторить» (рис. 2.7). Рис. 2.7. Диалоговое окно интерфейса Kandinsky 3.0 и результат использования инструментов «Ластик», «Отмена» и «Повторить»
30 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Примерно через 15 минут генераций у меня получилось создать изображение с летающим кораблем, драконом и другими сказочными персонажами (рис. 2.8). Попробуйте нарисовать свою сказочную картину. Рис. 2.8. Результат генерации в Kandinsky 3.0 DALL-E 3 Еще в декабре 2023 года можно было многими способами воспользоваться нейросетью DALL-E 3 (в браузере Edge, используя поиск или ChatGPT 3.5), однако на момент подготовки этой книги доступен лишь способ с телеграм-ботом: @yes_ai_bot. В нем вы можете попробовать сделать 10 пробных бесплатных генераций. На рис. 2.9 представлен интерфейс телеграм-бота с окном написания текстового запроса: a beautiful big fantastic city. По моему запросу сгенерировалось четыре разных изображения: такое количество заложено в нейросети при генерации по умолчанию — из них можно выбрать наиболее понравившееся или то, которое отвечает заданным целям. На рис. 2.10 и 2.11 показаны два наиболее отличающиеся друг от друга изображения, подходящие по заданному промту. При необходимости можно повторить промт и уточнить детали. Lexica, Playground Ai и Leonardo.Ai Исходя из приведенных ранее примеров нейросетей и показанной работы в них, вы можете попробовать самостоятельно зарегистрироваться на сайтах нейросетей Lexica, Playground Ai и Leonardo.Ai и сгенерировать там изображения по своему вкусу.
Урок 2. Нейросети в облаке Рис. 2.9. Диалоговое окно телеграм-бота YES Ai BOT 31
32 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Рис. 2.10. Результат генерации фантастического города в DALL-E 3 Рис. 2.11. Результат генерации другого фантастического города в DALL-E 3 Artbreeder Нейросеть Artbreeder предоставляет восемь отдельных нейроинструментов (рис. 2.12), каждый из которых имеет различные функции: микширование, комбинирование, коллажирование, смешивание генов изображений, перерисовка или совмещение паттернов изображений, но общий их смысл заключается в смешивании разных
Урок 2. Нейросети в облаке 33 изображений. Используя готовые изображения из галереи сервиса, собственные файлы или текстовые описания, с помощью Artbreeder можно сгенерировать нужную вам картинку. Рис. 2.12. Диалоговое окно Artbreeder с инструментами для создания изображений Отличительная особенность сервиса — возможность совмещать между собой различные изображения и настраивать итоговый результат с помощью ползунков. Имеются в Artbreeder и своеобразные аналоги ChatGPT — это лаборатории (инструменты) Director и Worlds (рис. 2.13). Первый позволяет с помощью чата с ботом определить, какое именно изображение лучше сгенерировать под введенный промт, второй — с помощью любого изображения (загруженного с компьютера или подобранного из внутренней библиотеки нейросети Artbreeder) создать уникальную историю. При этом историю можно настраивать на любом из этапов создания и дополнительно давать задания нейросети генерировать изображения: для главных героев истории, места действия, окружения, происходящих событий и культуры созданного мира. Итоговый текст, как и жанр всей истории, так же можно изменять. Рис. 2.13. Диалоговое окно Artbreeder с инструментами для создания изображений и текста
34 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК На рис. 2.14 вы можете увидеть исходное изображение (а) и пример работы в инструменте Poser (б), который копирует позу с загруженного вами одного изображения и совмещает его с лицом на втором изображении. В итоге получается совмещенное изображение (рис. 2.15). а б Рис. 2.14. Диалоговое окно Artbreeder, нейроинструмент Poser: а — исходное изображение, из которого берется скелет позы; б — интерфейс инструмента Poser Рис. 2.15. Результат генерации совмещенного изображения в инструменте Poser сервиса Artbreeder Точно так же в другом режиме — Splicer — вы можете совместить генные признаки нескольких изображений (до 8), выбрать параметры по типу: возраст, пол, раса, цвет глаз, цвет волос, выражение на лице, контраст, резкость и уровень освещения (рис. 2.16 и 2.17). Интересно и то, что этот инструмент работает не только с портретами людей, но и со зданиями, пейзажами, картинами, обложками альбомов и прочим (рис. 2.18 и 2.19).
Урок 2. Нейросети в облаке Рис. 2.16. Диалоговое окно Artbreeder, нейроинструмент Splicer: выбор изображений и параметров (выбраны четыре исходных портрета и параметры пола, возраста, цвета волос и бровей) Рис. 2.17. Результат генерации совмещенного изображения в инструменте Splicer сервиса Artbreeder 35
36 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Рис. 2.18. Диалоговое окно Artbreeder, нейроинструмент Splicer: выбор изображений и параметров (выбраны пять исходных изображений домов и у них рандомно установлены параметры времени суток и стиля зданий, а также повышены параметры контраста и четкости) Рис. 2.19. Результат генерации совмещенного изображения дома в инструменте Splicer сервиса Artbreeder
Урок 2. Нейросети в облаке 37 Рис. 2.20. Диалоговое окно Artbreeder, нейроинструмент Tuner: слева — настройки, справа вверху — исходное изображение, справа внизу — результат генерации Режим Tuner позволяет создать полностью настраиваемый портрет с помощью более 50 ползунков — остается только самим выбрать желаемое (рис. 2.20). К исходному изображению здесь были добавлены или изменены: очки (добавлены), длина волос (увеличена), цвет волос (поменялся на рыжий) задний фон (сделан ярче), общее освещение (сделано светлее), размер изображения (из квадратного превратился в прямоугольный), изменена верхняя часть тела (рис. 2.21) Инструмент Collager позволяет создавать коллажи из различных объектов — от телефонов до динозавров, из простых фигур и нарисованных от руки форм или кусочков фото. Собрав из всего этого на холсте грубый набросок (рис. 2.22), вы должны придумать текстовый запрос, и нейросеть Artbreeder сгенерирует крутой арт. Рис. 2.21. Результат генерации изображения в инструменте Tuner сервиса Artbreeder Напишем промт: hostile robot, with a gripping hand, the robot is standing in a deep scary forest, 4K quality и выполним генерацию (рис. 2.23).
38 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Рис. 2.22. Диалоговое окно Artbreeder, нейроинструмент Collager: грубый набросок Рис. 2.23. Результат генерации в инструменте Collager сервиса Artbreeder: арт из грубого наброска (см. рис. 2.22) и текстового промта
Урок 2. Нейросети в облаке 39 Инструмент Patterns позволяет совмещать ваши черно-белые узоры (паттерны), изображения (для использования изображений или узоров нужно загрузить выбранную вами картинку в область Pattern по кнопке Upload Image) или текст. В области Pattern напишем текст: Всем привет! Как у вас дела?, а в описание фона (область Description): a landscape valley painting, и нажмем кнопку генерации (рис. 2.24–2.27). З АМЕЧАНИЕ Результаты генераций, полученные на рис. 2.24–2.27, очень похожи на генерации в Stable Diffusion с использованием дополнения ControlNet — их мы изучим на следующих уроках. Рис. 2.24. Диалоговое окно Artbreeder, нейроинструмент Patterns (слева); результат генерации: нейросеть наложила черный текст на генерацию, описанную в промте (справа) а б в г д Рис. 2.25. Диалоговое окно Artbreeder, нейроинструмент Patterns: а–г — настройка вида паттернов для генерации изображения; б — результат генерации: нейросеть наложила черную спираль на сгенерированное изображение, описанное в промте
40 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Рис. 2.26. Диалоговое окно Artbreeder, нейроинструмент Patterns: процесс настройки генерации изображения на основе рисунка и промта (слева); результат генерации: нейросеть наложила рисунок черного квадрата на сгенерированное изображение, описанное в промте (справа) а б в Рис. 2.27. Диалоговое окно Artbreeder, нейроинструмент Patterns: а — исходное изображение, полученное в результате генерации в инструменте Splicer (см. рис. 2.16 и 2.17); б — процесс настройки генерации изображения на основе загруженного изображения и промта; в — результат генерации: нейросеть наложила исходное изображение на сгенерированное изображение, описанное в промте Другие инструменты сервиса: Prompter (генерация изображений по текстовому запросу), Mixer (генерация изображений на основе других изображений — до восьми исходных) и Outpainter (инструмент расширения границ изображения с помощью генерации недостающих частей изображения на основе промта) — мало отличаются от таких же инструментов в других нейросетях. Попробуйте их самостоятельно. Midjourney Чтобы генерировать что-либо в нейросети Midjourney, нужно перейти в официальный дискорд-канал нейросети. Дискорд (Discord) — это бесплатный мессенджер,
Урок 2. Нейросети в облаке 41 который позволяет вам обмениваться голосовыми сообщениями, видео и текстовым чатом с друзьями, игровыми сообществами и разработчиками. В целом функции Discord очень похожи на функции в мессенджере Telegram. Итак, вы регистрируетесь в Discord, затем регистрируетесь в официальном канале Midjourney в Discord, после чего вам объясняются правила канала и способы генерации изображений. Далее для вас станут доступны несколько отдельных «комнат» (чатов) на определенное количество участников, и вы сможете начать генерировать изображения по своему промту. Midjourney — полностью платная нейросеть внутри Discord. Используя ее настройки и функции, вы сможете увеличивать изображение, расширять его в нужную сторону и делать различные вариации исходного изображения. * * * Подробную информацию о нейросетях, доступных в облаке, вы найдете в следующих источниках:  нейросеть Stable Diffusion Web: https://clck.ru/3GvCX3;  нейросеть Kandinsky 3.0: https://clck.ru/3GvChx;  телеграм-бот: YES AI BOT (DALL-E 3): https://t.me/yes_ai_bot;  нейросеть Lexica: https://lexica.art/;  нейросеть Playground Ai: https://playground.com/;  нейросеть Leonardo.Ai: https://leonardo.ai/;  нейросети Playground Ai и Leonardo.Ai (видеоинструкция по использованию): https://clck.ru/3AikzU;  нейросеть Artbreeder: https://clck.ru/3H2Qpz;  нейросеть Midjourney доступная в Discord: https://clck.ru/3GvDAH.
УРОК 3 Нейросети для установки локально на ПК: Stable Diffusion Stable Diffusion (SD) — это модель машинного обучения, разработанная компанией Stability AI. Плюсами этой нейросети по сравнению со многими другими являются ее бесплатность, возможность использования локально — на своем компьютере — и доступность открытого исходного кода под лицензией Creative ML OpenRail-M. То есть вы можете совершенно бесплатно устанавливать и запускать SD на своем компьютере, а не через облако, доступ к которому обычно осуществляется через веб-сайт или API. Первая версия Stable Diffusion не имела привычного интерфейса и запускалась через командную строку с использованием специальных аргументов и настроек. Пример таких настроек для ее запуска в Google Colab показан на рис. 3.1. Со временем компания Stability AI создала сайт Dreamstudio.ai1 для обычных пользователей и разместила модель на платформе HuggingFace, где сообщество работает над моделями и приложениями. К настоящему моменту интерфейс нейросети значительно улучшился, и на его основе разработаны многочисленные форки, — так, на рис. 3.2 можно увидеть пример одного из интерфейсов Stable Diffusion — AUTOMATIC1111. В названии нейросети Stable Diffusion отражены основные технологии и принципы используемой архитектуры ИИ:  стабильность (Stable) — этот термин относится к стабильности генерируемых изображений и процесса их создания и означает, что модель производит последовательные полезные результаты и менее склонна к непредсказуемому поведению;  диффузия (Diffusion) — это ключ к пониманию магии рассматриваемой нейро- сети. Термин «диффузия» происходит от процесса диффузии (растекания, растворения), используемого в архитектуре модели. Модели диффузии учатся генерировать данные, обращая вспять процесс диффузии. Этот учебный процесс обычно начинается с реального изображения, к которому постепенно добавляется случайный шум, пока исходные данные полностью не размываются (diffuse) 1 См. https://dreamstudio.ai/generate.
Урок 3. Нейросети для установки локально на ПК: Stable Diffusion Рис. 3.1. Диалоговое окно Stable Diffusion в Google Collab Рис. 3.2. Диалоговое окно Stable Diffusion AUTOMATIC1111 43
44 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК в нем. Затем модель учится обращать этот процесс, начиная со случайного шума и постепенно формируя оригинальное изображение, соответствующее заданному вводу или запросу. Для примера сгенерируем летний пейзаж: 1. Напишем промт: summer landscape. Зададим стартовую точку: seed = 3711271300798652442 (этот сид является полностью рандомным и создается нейросетью автоматически при генерации изображения. То есть, чтобы сгенерировать изображение, минимально отличающееся от исходного, нужно установить seed равным 3711271300798652442). 2. Выберем модель Juggernaut XL (выбор модели для генерации складывается из наибольшего числа «звездочек», отзывов и скачиваний модели на сайте Civitai). Модель Juggernaut XL (рис. 3.3) способна генерировать как фотореалистичные изображения, так и изображения в виде рисунков в других стилях. При желании можно выбрать другую модель, однако сейчас (на этом уроке) предполагается только вводное знакомство с нейросетью Stable Diffusion и моделями для генерации. Рис. 3.3. Диалоговое окно сайта Civitai с моделью Juggernaut XL: выбрана версия модели с помощью которой производится генерация — Version 6 + RunDiffusion Когда нейросеть Stable Diffusion генерирует изображение, она пользуется картой точек будущего изображения. По точкам определяется, где будут глаза, волосы, горы на фоне, облака и т. д. Seed — здесь стартовая точка, из которой нейросеть
Урок 3. Нейросети для установки локально на ПК: Stable Diffusion 45 затем формирует изображение. Зная точный Seed, промт и название модели, с большой вероятностью можно в нашем случае получить изображение, похожее на представленное на рис. 3.4. Но как это изображение появилось? В самом начале есть только шум (рис. 3.5). Как же превратить этот беспорядок в настоящую картинку? Вот тут на помощь приходят модели диффузии. Рис. 3.4. Результат генерации в Stable Diffusion AUTOMATIC1111 изображения по запросу «летний пейзаж» Рис. 3.5. Шум
46 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК Сделаем вид, что мы рисуем по точкам на листе бумаги. Если нам показать, как должна выглядеть конечная картинка, то мы сможем пошагово приближаться к ней, добавляя или убирая точки. Так и работают модели диффузии: они берут этот «шум» и, зная, как должен выглядеть конечный результат, пытаются сделать его более понятным. Модели диффузии используют реальные изображения и намеренно добавляют к ним шум, чтобы сгенерировать впоследствии нужные картинки. Потом модель учится узнавать, как избавиться от этого шума и сделать изображение чистым. Наглядно этот процесс выглядит так, как показано на рис. 3.6. Рис. 3.6. Процесс генерации изображения Если расписать его по шагам, то весь, показанный на рис. 3.6 процесс генерации выглядит как: 1. Квадрат вверху слева — представляет собой исходное изображение, на которое наложен шум. Шум добавляется при создании стартовой точки для модели диффузии. 2. Модель диффузии — это нейросеть, которая обучена предсказывать и удалять шум из изображения. Она берет зашумленное изображение и пытается определить, каким образом шум влияет на исходное изображение. 3. Модель предсказывает шум, который был добавлен к исходному изображению. Это предсказание показывает, какой именно шум присутствует в изображении. 4. Далее предсказанный шум вычитают из зашумленного изображения, чтобы получить более чистую версию исходного изображения. Этот шаг основан на вычитании матриц: зашумленное изображение минус предсказанный шум. 5. В результате удаления шума получается изображение, которое ближе к исходному. На рис. 3.6 оно представлено в черно-белой версии, но в действительности может быть и цветным.
Урок 3. Нейросети для установки локально на ПК: Stable Diffusion 47 Модель диффузии здесь необходима для эффективного удаления шума из изображения. Она обучена на большом количестве пар изображений и соответствующего шума, что позволяет ей точно предсказывать и удалять шум. В процессе генерации изображения модель диффузии позволяет преобразовать случайное шумное изображение в четкое и детализированное, которое выглядит как реальное. * * * Подробную информацию о локальной нейросети Stable Diffusion вы найдете в следующих источниках:  самая первая модель Stable Diffusion, доступная на GitHub: https://clck.ru/3GhxDH;  модель Stable Diffusion, доступная на Google Colab: https://clck.ru/3GhxEK;  современный интерфейс Stable Diffusion AUTOMATIC1111: https://clck.ru/3GhxHL;  интерфейс Stable Diffusion XL, доступный в Сети: https://clck.ru/3GhxJ9;  статья про Stable Diffusion на ресурсе VC (блог компании ITSALIVE): https://clck.ru/3GhxKN;  статьи на тему Stable Diffusion на ресурсе Habr с объяснением процесса деноизации с помощью формул, кода и графиков: • в блоге компании Raft от автора Igor Novikov (@Squirrelfm): https://clck.ru/3GhxLT; • в переводе оригинала Jay Alammar (https://clck.ru/3GhxPU) от переводчика Vadim Ivshin (@PatientZero): https://clck.ru/3GhxQt.
48 Часть I. Нейросети. Генерация изображений в смартфоне, облаке и на ПК
ЧАСТЬ II Установка Stable Diffusion локально и на Google Colab Урок 4. Интерфейсы Stable Diffusion и системные требования к ним Урок 5. Локальная установка Урок 6. Установка на Google Colab

УРОК 4 Интерфейсы Stable Diffusion и системные требования к ним  Интерфейсы Stable Diffusion • AUTOMATIC1111 • Forge • ComfyUI • InvokeAI • Fooocus  Системные требования  Тесты производительности Если вы слышали ранее о Stable Diffusion, то, скорее всего, представляли себе одну определенную программу-нейросеть, в которой, собственно, и генерируются изображения, однако у каждого человека свой вкус и взгляд на то, как программа должна лучше работать, поэтому многие разработчики создали для работы с обученными моделями нейросети Stable Diffusion свои собственные графические интерфейсы (GUI). Использование этих интерфейсов позволяет работать с нейросетью Stable Diffusion с помощью обычного браузера (например, Firefox или Google Chrome). Любой GUI Stable Diffusion представляет собой Web UI, поскольку выполнен в виде веб-сервера, который можно запустить локально или удаленно (запустить сервер на одном компьютере, а пользоваться им с другого). Но не во всех случаях создание собственного интерфейса было связано с личным вкусом — из прочих причин для этого можно отметить:  создание нового интерфейса как эксперимент — т. е. апробирование разных подходов, дающее возможность понять, что работает лучше всего;  расширение целевой аудитории проекта — ведь добавление различных интерфейсов обеспечивает доступность к нейросети пользователям с разным уровнем технической подготовки или предпочтениями в использовании программного обеспечения;  расширение функциональности — по мере того как проект развивается, разработчики добавляют в систему новые функции и возможности, что требует соз-
52 Часть II. Установка Stable Diffusion локально и на Google Colab дания дополнительных интерфейсов для поддержки новых функций или облегчения доступа к ним. К настоящему моменту у Stable Diffusion насчитывается более 20 различных интерфейсов, но не все продолжают разрабатываться и поддерживаться. На этом уроке мы обзорно познакомимся с пятью самыми популярными из них, хотя далее в книге основное внимание уделим двум Web UI: AUTOMATIC1111 и Forge. Тем не менее про другие интерфейсы вам все равно будет полезно узнать — для дальнейшего изучения нейросетей и работы с ними, поскольку, прочитав эту книгу, вы приобретете достаточно знаний для самостоятельного изучения Fooocus — упрощенного, но эффективного интерфейса, который легко освоить, если вы поймете основы AUTOMATIC1111 и его расширений. А изучив принципы работы с AUTOMATIC1111, вы сможете перейти и к более сложным и продвинутым инструментам — таким как ComfyUI, который предоставляет совершенно новый уровень взаимодействия с нейросетями, и InvokeAI, представляющему собой нечто среднее между простотой и функциональностью, объединяя возможности и функции AUTOMATIC1111 и ComfyUI. Таким образом, в этой книге мы заложим фундамент знаний, который позволит вам свободно ориентироваться в мире нейросетей, чтобы в будущем вы могли легко переходить к более сложным и специализированным инструментам. Интерфейсы Stable Diffusion AUTOMATIC1111 AUTOMATIC1111 (рис. 4.1) — это самый старый и самый обновляемый интерфейс, созданный раньше других, благодаря чему он поддерживает множество функций и Рис. 4.1. Интерфейс AUTOMATIC1111
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним 53 имеет огромное количество дополнений, хотя именно из этого вытекает и его главный минус — код этого интерфейса работает немного медленнее по сравнению с другими интерфейсами. AUTOMATIC1111 — самый первый веб-интерфейс Stable Diffusion, реализованный с использованием библиотеки Gradio. В этом интерфейсе есть всё, что нужно для начала работы с нейросетями, причем дополнительно для расширения его возможностей можно установить различные скрипты и плагины. По желанию вы можете поменять цвет всего интерфейса или отдельных его значков и установить ограничение на потребление видеопамяти. Forge Интерфейс Forge (рис. 4.2) появился позже AUTOMATIC1111, и в нем учтены и переработаны многие его недостатки — так, в зависимости от мощности вашей системы, он обещает ускорение от 5 до 45%, при этом, чем слабее ваш компьютер, тем больший прирост производительности и ускорения вы можете получить. Однако из плюсов Forge вытекает и его минус — пока он не поддерживает все расширения AUTOMATIC1111. Рис. 4.2. Интерфейс Forge В целом Forge — тот же самый AUTOMATIC1111, однако, по словам Львмина Чжана1 — разработчика платформы Forge, он смог оптимизировать код исходного Stable Diffusion WebUI, ускорить вывод и упростить дальнейшую разработку всех 1 Никнейм на Github — lllyasviel.
54 Часть II. Установка Stable Diffusion локально и на Google Colab будущих расширений для этой платформы благодаря использованию технологии Unet Patcher. По сравнению с исходным Web UI AUTOMATIC1111, в зависимости от характеристик вашего компьютера, вы можете рассчитывать на следующие показатели увеличения скорости вывода:  если у вашего компьютера 6 Гбайт видеопамяти (VRAM) — примерно на 60– 75% прироста;  если у вашего компьютера 8 Гбайт VRAM — примерно на 30–45% прироста;  если у вашего компьютера 24 Гбайт VRAM — примерно на 3–6%. Обращаю ваше внимание, что процент прироста указан без учета запуска расширения ControlNet, которое будет подробно рассмотрено далее. Благодаря оптимизированному бэкенду (внутренней части продукта, которая находится на сервере и скрыта от пользователей) стало возможным запускать Forge на компьютерах с 4 Гбайт VRAM (модели SDXL) и 2 Гбайт VRAM (модели SD1.5). И НТЕРЕСНЫЙ ФАКТ Название Forge (Кузница) было вдохновлено Minecraft Forge — весьма популярной библиотекой для игры Minecraft, которая является основой для большинства модов игры. ComfyUI В переводе на русский язык ComfyUI (рис. 4.3) значит «Удобный интерфейс», однако, если вы попробуете познакомиться с этим интерфейсом раньше, чем Рис. 4.3. Интерфейс ComfyUI
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним 55 с AUTOMATIC1111 или Forge, вас будет ждать горькое разочарование, поскольку ComfyUI рассчитан в большинстве своем на профессионалов. ComfyUI работает на нодовой системе (системе узлов), в основе которой лежит управление с помощью графов, узлов и блок-схем. Узел здесь — это одна операция, которая принимает входные данные и возвращает выходные. Несколько узлов могут быть связаны между собой для создания более сложных функций. Каждый узел имеет входы (где подключаются данные из других узлов), выходы (где данные подключаются к другим узлам) и настройки, которые допускается редактировать (рис. 4.4). С помощью узлов можно улучшать возможности ComfyUI и создавать процессы работы, которые подходят именно вам. Рис. 4.4. Интерфейс ComfyUI: узлы показаны увеличенно Главный минус этого интерфейса состоит в том, что если вы не знаете, как работает та или иная функция (блок-схема), то не сможете подсоединить ее в нужной последовательности к другим блок-схемам, чтобы всё это заработало и выдало желаемый результат. Однако у ComfyUI есть и огромный плюс — если вы знаете, что хотите получить, и примерно знаете, как это сделать, то вы сможете примерно в 3–5 раз быстрее выполнять то, что вы делали бы в других интерфейсах. Помогает в этом и более оптимизированный код этого интерфейса по сравнению с AUTOMATIC1111. ComfyUI — это выбор для бизнеса, производственной среды, пакетной обработки больших данных и проектов, специалистов для интеграции AI в процессы, связанные с 3D-графикой в программах типа Blender 3D или анимационной 2D-графикой в программах типа After Effects или Enve и профессиональных программах для ви-
56 Часть II. Установка Stable Diffusion локально и на Google Colab деомонтажа типа Nuke или DaVinci Resolve. В общем, когда вы почувствуете, что уже свободно разбираетесь в интерфейсе AUTOMATIC1111 — можете его удалить и установить ComfyUI. InvokeAI InvokeAI (рис. 4.5) — единственный интерфейс, который использует вместо библиотеки Gradio библиотеку на основе React, что выгодно отличает его от других интерфейсов Stable Diffusion. Любопытно, что, в отличие от многих других интерфейсов, над InvokeAI трудились не один или два, а более 20 разработчиков. Рис. 4.5. Интерфейс InvokeAI. Источник: https://github.com/invoke-ai/InvokeAI Надо также отметить, что InvokeAI может функционировать только на основном процессоре компьютера, не задействуя видеокарту, что представляется большим преимуществом, когда вы работаете за ноутбуком в дороге или полноценным, но слабым компьютером. И хотя генерация в таком случае проходит гораздо медленнее, чем обычно, — примерно в 20 раз, но тем не менее всё работает. Интерфейс InvokeAI имеет систему галерей для удобного хранения и доступа к контенту в рабочие области. В нем также реализовано достаточно интересное рабочее пространство для генераций, представляющее собой гибрид интерфейса Kandinsky 3.0 (Canvas) и интерфейса ComfyUI (Workflows) и позволяющее организовать рабочий процесс на основе узлов (нод). Это дает возможность разрабатывать настраиваемые индивидуально под каждого конвейеры генерации и делиться ими с пользователями, желающими создать конкретные рабочие процессы для поддержки своих сценариев использования. Главный минус InvokeAI — это невозможность установки многих расширений, работающих на AUTOMATIC1111, Forge или ComfyUI, в том числе и отсутствие расширений для генерации видео.
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним 57 Fooocus Интерфейс Fooocus (рис. 4.6) выгодно отличается от других интерфейсов своей простотой — в момент его выхода Fooocus назвали бесплатным Midjourney из-за малого количества настроек и относительно быстрой генерации изображений. Рис. 4.6. Интерфейс Fooocus В Fooocus реализован автономный механизм обработки подсказок на основе GPT-2 и множество улучшений выборки, поэтому результаты его работы всегда стабильные, независимо от того, короткий ли предложен промт (например, blue car) или фраза длиннее 1000 слов. Минимальные требования для работы Fooocus — 4 Гбайт VRAM и только фирмы Nvidia (AMD — не подойдут) и 8 Гбайт оперативной памяти. Положительные и отрицательные стороны Fooocus исходят из его простоты — это готовая версия нейросети «из коробки» с невозможностью установки каких-либо расширений. * * * Из постоянно развивающихся графических интерфейсов Stable Diffusion также можно отметить интерфейсы RuinedFooocus, StableSwarmUI, A8R8 и MochiDiffusion. Последний интерфейс, судя по информации от разработчика, был специально создан для запуска на процессорах M1 и M2 от Apple.
58 Часть II. Установка Stable Diffusion локально и на Google Colab Подробную информацию о интерфейсах Stable Diffusion вы найдете в следующих источниках:  список всех GUI Stable Diffusion: https://clck.ru/3GvGkP;  отдельные страницы загрузки интерфейсов: • • • • • • • • • • • AUTOMATIC1111: https://clck.ru/3GvGqQ; Forge: https://clck.ru/3GvGxQ; ComfyUI: https://clck.ru/3GvH2t; InvokeAI: https://clck.ru/3GvH6z; Fooocus: https://clck.ru/3GvHB5; StableSwarmUI: https://clck.ru/3GvHEa; A8R8 (Alternate Reality): https://clck.ru/3GvHJW; MochiDiffusion: https://clck.ru/3GvHNz; SD.Next: https://clck.ru/3GvHTD; RuinedFooocus: https://clck.ru/3GvHWw; Omost: https://clck.ru/3GvHYd. Системные требования Для того чтобы запустить Stable Diffusion AUTOMATIC1111 или Forge, вам потребуется компьютер с определенными характеристиками. Главная характеристика — это объем видеопамяти. Однако если ваш компьютер не удовлетворяет требуемым характеристикам, переживать все равно не стоит — вы всегда сможете запустить Stable Diffusion в бесплатном облаке Google Colab или его альтернативе — NGROK (но это имеет ряд ограничений от самого Google и NGROK). Разделим системные требования на минимальные, рекомендуемые и профессиональные:  для AUTOMATIC1111: • минимальные:  для Windows 10/11 с видеокартами Nvidia: 4 Гбайт видеопамяти, архитектура Maxwell (от 2014 года выхода или же видеокарты с RTX 20 серии и выше) или новее + 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD — это влияет только на время запуска нейросети и чтение моделей) + процессор, начиная от Intel Core i5 (на самом деле процессор играет наименьшую роль в работе с нейросетями — можно попробовать запустить и на Core i3);  для Windows 10/11 с видеокартами AMD (официально данные видеокарты не поддерживаются, но с ними работает WebUI от lshqqytiger, использующий технологию DirectML): 4–6 Гайт видеопамяти + 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD — это влияет только на время запуска нейросети и чтение моделей) + процессор, начиная от Intel Core i5 (на самом деле процессор
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним 59 играет наименьшую роль в работе с нейросетями — можно попробовать запустить и на Core i3);  для Windows 10/11 с ускорением OpenVINO™ (для процессоров Intel и графических процессоров Intel): 32 Гбайт RAM, графический процессор Intel A380, процессор Core i7-10700K + не менее 20 Гбайт свободного места на диске;  для Linux: 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD — это влияет только на время запуска нейросети и чтение моделей) + процессор, начиная от Intel Core i5 (на самом деле процессор играет наименьшую роль в работе с нейросетями — можно попробовать запустить и на Core i3) + видеокарта Nvidia от 20 серии;  для Apple: процессоры M1 или новее, 16 Гбайт RAM, не менее 20 Гбайт свободного места на диске; • рекомендуемые:  для Windows 10/11 с видеокартами Nvidia: 8 Гбайт видеопамяти, архитектура Maxwell или новее + 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD — это влияет только на время запуска нейросети и чтение моделей) + процессор, начиная от Intel Core i5 (на самом деле процессор играет наименьшую роль в работе с нейросетями — можно попробовать запустить и на Core i3);  для Windows 10/11 с видеокартами AMD (официально данные видеокарты не поддерживаются, но с ними работает WebUI от lshqqytiger, использующий технологию DirectML): 8 Гайт видеопамяти + 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD — это влияет только на время запуска нейросети и чтение моделей) + процессор, начиная от Intel Core i5 (на самом деле процессор играет наименьшую роль в работе с нейросетями — можно попробовать запустить и на Core i3);  для Windows 10/11 с ускорением OpenVINO™ (для процессоров Intel и графических процессоров Intel): 64 Гбайт RAM, графический процессор Intel A380, процессор Core i7-10700K + не менее 20 Гбайт свободного места на диске;  для Linux: 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD — это влияет только на время запуска нейросети и чтение моделей) + процессор, начиная от Intel Core i5 (на самом деле процессор играет наименьшую роль в работе с нейросетями — можно попробовать запустить и на Core i3) + видеокарта Nvidia 8 Гбайт;  для Apple: процессоры M1 или новее, 16 Гбайт RAM, не менее 20 Гбайт свободного места на диске; • профессиональные: от 12 Гбайт видеопамяти (VRAM) и от 32 Гбайт RAM;
60 Часть II. Установка Stable Diffusion локально и на Google Colab  для Forge отличаются только минимальные требования: • для Windows 10/11 с видеокартами Nvidia: 2 Гбайт видеопамяти или более + 16 Гбайт RAM + не менее 20 Гбайт свободного места на диске (лучше использовать SSD, но можно и HDD) + процессор, начиная от Intel Core i3); • для Windows 10/11 с видеокартами AMD — нет данных; • для Windows 10/11 с процессорами Intel и графическими процессорами Intel — нет данных; • для Linux — нет данных; • для Apple: процессоры M1 или новее, 16 Гбайт RAM, не менее 20 Гбайт свободного места на диске. В табл. 4.1 приведены требования от автора Fooocus и Forge. Таблица 4.1. Системные требования для интерфейса Forge Минимальная память графического процессора Минимальная системная память (ОЗУ или RAM) Замена системы (добавлеПримечание ние файлов подкачки) Nvidia RTX 4ХХХ 4 Гбайт 8 Гбайт Необходимо Самый быстрый Windows/ Линукс Nvidia RTX 3ХХХ 4 Гбайт 8 Гбайт Необходимо Обычно быстрее, чем RTX 2XXX Windows/ Линукс Nvidia RTX 2ХХХ 4 Гбайт 8 Гбайт Необходимо Обычно быстрее, чем GTX 1XXX Windows/ Линукс Nvidia GTX 1XXX 8 Гбайт (*6 Гбайт неизвестно) 8 Гбайт Необходимо Лишь немного быстрее, чем процессор Windows/ Линукс Nvidia GTX 9ХХ 8 Гбайт 8 Гбайт Необходимо Быстрее или медленнее, чем процессор Windows/ Линукс Nvidia GTX < 9XX Не поддерживается — Необходимо — Windows AMD GPU 8 Гбайт (обновлено 30 декабря 2023 г.) 8 Гбайт Необходимо Через DirectML (*ROCm приостановлен), примерно в 3 раза медленнее, чем Nvidia RTX 3XXX Линукс AMD GPU 8 Гбайт 8 Гбайт Необходимо Через ROCm, примерно в 1,5 раза медленнее, чем Nvidia RTX 3XXX Мак М1/М2 MPS Общий Общий Общий Windows/ Линукс/ Мак Использовать только процессор 0 Гбайт 32 Гбайт Необходимо Примерно в 17 раз медленнее, чем Nvidia RTX 3XXX Операционная система Графический процессор Windows/ Линукс Примерно в 9 раз медленнее, чем Nvidia RTX 3XXX
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним 61 «Особняком» стоят менеджеры пакетов — наборы программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения по типу Stability Matrix и Pinokio, являющиеся по сути лаунчерами (Launcher) для запуска многих локальных нейросетей серии Stable Diffusion. Такие пакеты загрузок упрощают запуск и использование нейросетей без лишних манипуляций с загрузками и кодом. Системные требования у менеджеров пакетов такие же, как и у тех интерфейсов нейросетей, которые будут устанавливаться внутри этих пакетов. Облачные решения (бесплатные и платные) предусматривают запуск Stable Diffusion WebUI. Из самых распространенных способов генерации на удаленном сервере можно отметить:  Google Colab — чистый интерфейс (бесплатно): https://clck.ru/3GvHcc;  Google Colab — настроенный интерфейс (бесплатно): https://clck.ru/3GvHeh;  Google Colab — настроенный интерфейс (платно), блокнот автора R3gm's Stable Diffusion Interactive Notebook: https://clck.ru/3GvHis и https://clck.ru/3GvHrT;  Ngrok Stable Diffusion (бесплатно —1 час использования и платно — в зависи- мости от времени использования в часах): https://clck.ru/3GvHua;  Stable Diffusion в Kaggle: https://www.kaggle.com/ и https://goo.su/3bRRE;  Paperspace: https://www.paperspace.com/;  RunDiffusion (есть бесплатные тарифы, стоимость платных начинается от 50 руб. в час);  Think Diffusion (есть бесплатные тарифы, стоимость платных начинается от 50 руб. в час);  RunPod (есть бесплатные тарифы, стоимость платных начинается от 50 руб. в час, требуется знание кодирования);  Vast.ai (есть бесплатные тарифы, стоимость платных начинается от 50 руб. в час, требуются знания в области кодирования);  DigitalOcean Paperspace (платно, требуется знание кодирования). О БРАТИТЕ ВНИМАНИЕ При минимальных требованиях считается хорошим результатом, если вы сможете просто запустить интерфейс Stable Diffusion, но при этом генерации будут идти крайне медленно. Тесты производительности Несмотря на приведенные здесь требования, вы можете попробовать запустить Stable Diffusion WebUI на компьютерах с меньшим количеством видеопамяти, т. к. согласно исследованиям и тестам центра SD WebUI Benchmark Data1 отмечались 1 См. https://vladmandic.github.io/sd-extension-system-info/pages/benchmark.html.
62 Часть II. Установка Stable Diffusion локально и на Google Colab успешные запуски на видеокартах Nvidia GeForce GTX серии 10 и ранее типов: 1070 Ti, 1050 Ti, 1650 (4 Гбайт), 1070 (8 Гбайт) и 1060 (3 Гбайт) или GTX 970 (4 Гбайт), а также серии 20 типов: GeForce RTX 2060 (6 Гбайт), 2080, 2080 SUPER, 2080 Ti, RTX 2000 поколения Ada (Гбайт) и т. д. Что же касается детальных тестов полупрофессиональных видеокарт, то согласно статье «The Best Value Graphics Card for Stable Diffusion XL» от компании MSI (занимающейся производством и сборкой видеокарт, ноутбуков и полноразмерных компьютеров) самыми лучшими видеокартами для задач генерации изображений и видео в среднем ценовом сегменте являются RTX 4060 Ti 16 Гбайт, RTX 3080 10 Гбайт и RTX 3060 12 Гбайт (рис. 4.7). 1024 ×1024 Размер видеопамяти (Гб) Скорость (с) RTX 4060 Ти 16G 11,4 16,0 PTX 3080 10G 9,7 65,1 PTX 3060 12G 11,7 27,2 Рис. 4.7. Тесты модели SDXL GPU для видеокарт GeForce среднего ценового сегмента Тест скорости генерации модели SDXL размером 1024×1024 пикселов с использованием дополнительной модели LoRA и моделей ControlNet представлен на рис. 4.8. 1024 ×1024 + LoRA + контрольная сеть Размер видеопамяти (Гб) Скорость (с) RTX 4060 Ти 16G 15,2 48,7 PTX 3080 10G 9,7 51 PTX 3060 12G 11,5 89,2 Рис. 4.8. Тесты модели SDXL: 1024×1024 + LoRA + ControlNet М ОДЕЛЬ C ONTROL N ET Модель ControlNet, как уже было отмечено, будет подробно рассмотрена в уроках 21 и 22, однако, раз мы ее здесь упомянули, кратко ее опишем. Это модель нейронной сети, которая позволяет улучшать и уточнять результаты генерации Stable Diffusion. Используя ее, вы можете дать Stable Diffusion конкретные указания по желаемому дизайну, добавляя дополнительные условия к выходным данным. Это помогает получить более точный результат, соответствующий вашим требованиям (ControlNet будет рассмотрен в уроках 21–22). Время генерации разными видеокартами при условии создания изображения 1024×1024, 1024×1024 + LoRA и 1024×1024 + LoRA + ControlNet можно представить в виде графиков (рис. 4.9). Как можно здесь видеть, генерация изображений при использовании дополнительных моделей, таких как LoRA или ControlNet (за редким исключением — 1024×1024 и 1024×1024 + LoRA на видеокарте 3060), существенно замедляется. По мнению разработчиков интерфейсов нейросети Stable Diffusion, самым лучшим выбором для нее являются видеокарты RTX 3090 и RTX 4090. На рис. 4.10
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним 63 Рис. 4.9. Сравнение SDXL RTX GPU в разных бенчмарках (тестах) Рис. 4.10. Сравнение всех видеокарт между собой по количеству итераций обработки одного изображения за определенное количество секунд приведен график тестов для различных видеокарт по количеству итераций в секунду (ит/с). Когда какое-либо изображение создается с помощью диффузионной модели, оно проходит множество этапов (итераций) — обычно от 20 до 30. Графи-
64 Часть II. Установка Stable Diffusion локально и на Google Colab ческому процессору, способному выполнять 8 итераций в секунду, потребуется примерно 2,5 секунды (20/8 = 2,5) для создания одного изображения размером 512×512 пикселов. К примеру, видеокарта RTX 4090 способна выполнять до 40 итераций в секунду, а это означает, что создание одного изображения занимает примерно 0,5 секунды, но это в идеальных условиях, без использования ControlNet и Upscaling (увеличения изображения). Скажем несколько слов о технике Apple. В версии Stable Diffusion, оптимизированной для Core ML, чип M1 (16 Гбайт) может обрабатывать генерации со скоростью примерно 2–3 итерации в секунду, что медленнее, чем GTX 1650 Super (4 Гбайт) и на уровне 1060 (3 Гбайт). Согласно тестам, приведеным на странице Apple GitHub, оптимально с техникой Apple вы можете задействовать интерфейс MochiDiffusion — поскольку он один из немногих, кто использует преимущества Core ML. Вы также можете попробовать генерировать изображения с помощью Stable Diffusion в мобильном локальном приложении DrawThings для айфонов и айпадов (рис. 4.11) — именно это приложение, установленное на вашем смартфоне, использует для генерации изображений его мощности (а не мощности удаленного сервера — как работают другие приложения типа GenZart, Шедеврум и пр.). Рис. 4.11. Сравнение айфонов и айпадов для генерации изображений в приложении DrawThings Надо также отметить, что компьютеры Mac на базе процессоров от Intel с внешним графическим процессором потенциально могут обеспечить лучшую производительность для Stable Diffusion по сравнению с компьютерами Mac на процессорах M1 или M2. * * * Подробную информацию о системных требованиях и способах запуска Stable Diffusion вы найдете в следующих источниках:  сервисы запуска Stable Diffusion: https://clck.ru/3GvDjK;  форк OpenVINO (поддерживающий видеокарты Intel): https://clck.ru/3GvDny;
Урок 4. Интерфейсы Stable Diffusion и системные требования к ним  Stable Diffusion на видеокартах AMD (видеоинструкция на Reddit): https://goo.su/Onb8TCf;  Stable Diffusion на видеокартах AMD (текстовая инструкция): https://clck.ru/3GvEKz;  системные требования Stable Diffusion к ПК: что нужно для запуска? (англоязычная статья): https://clck.ru/3GvEPR;  System Requirements for Stable Diffusion: Your Complete Guide (системные требования для Stable Diffusion): https://clck.ru/3GvESE;  Sagemaker Lab Studio | Stable diffusion (Sagemaker Lab Studio для запуска нейросети): https://clck.ru/3GvEUU;  оценка количества итераций в секунду для разных видеокарт: https://clck.ru/3GvEXU;  Данные тестирования SD WebUI для разных систем: https://clck.ru/3GvEaH;  сравнение карт полупрофессионального сегмента: https://clck.ru/3GvEgA;  Pinokio (браузер для установки приложений нейросетей): https://pinokio.computer/;  Thinkdiffusion — облачная версия Stable Diffusion (19,99 доллара в месяц)): https://www.thinkdiffusion.com/;  Artgeneration — облачная версия Stable Diffusion AUTOMATIC1111: https://artgeneration.me/. 65
УРОК 5 Локальная установка  Установка AUTOMATIC1111 • Установка Python 3.10.6 • Установка редактора для работы с кодом • Установка Git • Установка интерфейса AUTOMATIC1111 • Загрузка модели и запуск нейросети • Полезные функции и аргументы запуска  Установка интерфейса Forge  Установка менеджера пакетов Stability Matrix На этом уроке мы займемся установкой на локальный компьютер интерфейсов AUTOMATIC1111 и Forge, а также менеджера пакетов Stability Matrix. Установка AUTOMATIC1111 К настоящему моменту существуют полные (стационарные) и портативые (portable) сборки AUTOMATIC1111. Для работы с полными сборками вам понадобится, кроме самого AUTOMATIC1111, установить еще python-3.10.6 и Git, а если вы захотите использовать специализированные расширения типа расширений для замены лиц или работы с 3D-графикой, придется установить еще и Microsoft Visual Studio. Установив стационарную версию, вы сможете быстро обновлять и «откатывать» Stable Diffusion, а также ее расширения. У полной версии есть еще один существенный плюс — в случае возникновения проблем и ошибок их будет гораздо легче исправить, чем на портативной версии.
Урок 5. Локальная установка 67 Установка Python 3.10.6 Сначала необходимо скачать и установить Python версии 3.10.6 с официального сайта Python1 — зайти на сайт, пройти в конец страницы (рис. 5.1) и выбрать в разделе Files нужную версию установщика: Windows installer (64-bit) или macOS 64bit universal2 installer (если у вас компьютер на мacOS). Скачайте установщик (рис. 5.2) и запустите его на выполнение, установив в открывшемся диалоговом окне (рис. 5.3) флажок Add Python 3.10 to Path (обязательно!) и выбрав вариант Customize installation (Настраиваемая установка). Рис. 5.1. Выбор версии установщика Рис. 5.2. Загрузка установщика Python версии 3.10.6 В следующем диалоговом окне (рис. 5.4) оставьте установленными все флажки и нажмите кнопку Next. В следующем диалоговом окне (рис. 5.5) проследите, чтобы обязательно были установлены флажки Add Python to environment variables и Precompile standard library», путь можно оставить уже заданный или назначить любое другое место, главное — его запомнить. Нажмите кнопку Install, дождитесь завершения процесса установки (рис. 5.6), нажмите в открывшемся диалоговом окне (рис. 5.7) кнопку Close и перезагрузите компьютер, чтобы сделанные настройки применились. 1 См. https://www.python.org/downloads/release/python-3106/.
68 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.3. Диалоговое окно установки Python версии 3.10.6 Рис. 5.4. Следующий шаг установки Python версии 3.10.6 Рис. 5.5. Следующий шаг установки Python версии 3.10.6
Урок 5. Локальная установка 69 Рис. 5.6. Процесс установки Python версии 3.10.6 Рис. 5.7. Завершение установки Python версии 3.10.6 Установка редактора для работы с кодом Далее установите на выбор любой редактор для работы с кодом: Notepad++1 (рис. 5.8) или Visual Studio Code2 (рис. 5.9). 1 2 См. https://notepad-plus-plus.org/downloads/. См. https://code.visualstudio.com/.
70 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.8. Страница установки Notepad++ Рис. 5.9. Страница установки Visual Studio Code Установка Git Для установки Git зайдите на сайт https://git-scm.com и в открывшемся диалоговом окне (рис. 5.10) выберите и скачайте версию установщика Standalone Installer 64-bit Git for Windows Setup. Скачав установщик Git, запустите его на выполнение и нажмите в открывшемся диалоговом окне (рис. 5.11) кнопку Next. В следующем диалоговом окне (рис. 5.12) оставьте установленными все флажки и нажмите кнопку Next.
Урок 5. Локальная установка 71 Рис. 5.10. Стартовое диалоговое окно установки Git Рис. 5.11. Диалоговое окно установки Git В открывшемся диалоговом окне (рис. 5.13) вам будет предложено выбрать редактор для взаимодействия с кодом — укажите здесь тот редактор, который вы установили в разд. «Установка редактора для работы с кодом», и нажмите кнопку Next. В следующих диалоговых окнах оставляйте все настройки, установленными по умолчанию, нажимая везде кнопку Next. В завершающем диалоговом окне установки Git (рис. 5.14) снимите все флажки и нажмите кнопку Finish.
72 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.12. Следующее диалоговое окно установки Git Рис. 5.13. Диалоговое окно установки Git: выбор редактора для взаимодействия с кодом
Урок 5. Локальная установка 73 Рис. 5.14. Диалоговое окно завершения установки Git Установка интерфейса AUTOMATIC1111 Теперь мы можем установить сам интерфейс AUTOMATIC1111 — лучше всего это сделать через ранее установленную систему Git, чтобы при выходе новой версии AUTOMATIC1111 было достаточно написать команду git pull, и система сама обновила бы нейросеть (нейросеть может автоматически обновляться, но лучше эту функцию не использовать). Перед установкой интерфейса нужно выбрать место, где будет находиться наша нейросеть. Рекомендуется установка в «корень» SSD-диска — чтобы путь к ней был как можно короче и не включал кириллические символы (рис. 5.15) — допускаются только буквы латинского алфавита (рис. 5.16). Рис. 5.15. Пример неправильного выбора пути установки нейросети Рис. 5.16. Пример правильного выбора пути установки нейросети Итак, перейдите в выбранный вами диск, нажмите на пустом месте внутри нужной папки правую кнопку мыши и выберите в открывшемся контекстном меню (рис. 5.17) опцию Git Bash Here. В открывшемся окне командной строки Git (рис. 5.18) пропишите команду: git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git Ссылку для включения в команду мы можем получить, нажав кнопку Код на странице AUTOMATIC1111 (рис. 5.19).
74 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.17. Установка AUTOMATIC1111 в папку на диске с помощью Git Рис. 5.18. Введенная команда в окне командной строки Находясь в окне командной строки с введенной командой копирования (см. рис. 5.18), нажмите клавишу <Enter> — запустится копирование файлов (рис. 5.20). После завершения копирования можно закрыть окно Git — теперь в папке загрузки появилась вложенная папка stable-diffusion-webui (рис. 5.21). Она, в свою очередь, содержит множество вложенных папок и файлов (рис. 5.22) — это и есть нейросеть и ее интерфейс, но запускать ее еще рано.
Урок 5. Локальная установка Рис. 5.19. Получение ссылки для команды установки интерфейса (см. рис. 5.18) Рис. 5.20. Загрузка и копирование файлов нейросети на компьютер Рис. 5.21. Появление папки stable-diffusion-webui на вашем компьютере 75
76 Часть II. Установка Stable Diffusion локально и на Google Colab а б Рис. 5.22. а — содержимое папки stable-diffusion-webui на вашем компьютере; б — свойства папки stable-diffusion-webui (вес нейросети до дозагрузки моделей и установки зависимостей)
Урок 5. Локальная установка 77 Загрузка модели и запуск нейросети Перед первым запуском нейросети перейдите в папку models (рис. 5.23, а), откройте в ней папку Stable-diffusion (рис. 5.23, б), после чего скачайте и загрузите в нее любую модель (checkpoint) на ваш выбор. Найти модели для нейросети можно на сайте Civitai1 (рис. 5.24) — рекомендую скачать модель epiCRealism от автора epinikion2 (рис. 5.25). Скачанную модель загрузите в папку Stable-diffusion (рис. 5.26). а б Рис. 5.23. Путь к месту установки моделей (checkpoints): а — папка models; б — папка Stable-diffusion Теперь мы готовы к запуску нейросети. Перейдите для этого в корневой каталог нейросети интерфейса AUTOMATIC1111 (см. рис. 5.22, а) и двойным щелчком на файле webui-user.bat запустите нейросеть. В процессе ее запуска будет происходить докачка необходимых моделей, установка зависимостей и функций (рис. 5.27). Время установки зависит от скорости Интернета и мощности вашего компьютера, но обычно через 20–30 минут вся установка должна завершиться. В НИМАНИЕ Во время установки нейросети нельзя никак взаимодействовать с окном установки (командной строкой) — при любом вмешательстве придется начинать установку заново. По завершении установки программа сама запустит WebUI AUTOMATIC1111 (рис. 5.28). 1 2 См. https://civitai.com/models. См. https://civitai.com/models/25694/epicrealism?modelVersionId=143906.
78 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.24. Сайт Civitai Рис. 5.25. Модель epiCRealism (автор epinikion)
Урок 5. Локальная установка Рис. 5.26. Место расположения модели epiCRealism в папке Stable-diffusion Рис. 5.27. Докачка необходимых моделей, установка зависимостей и функций 79
80 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.28. Диалоговое окно WebUI AUTOMATIC1111 Дело сделано: мы установили на компьютер нейросеть Stable Diffusion с интерфейсом AUTOMATIC1111. Полезные функции и аргументы запуска Чтобы придать интерфейсу темную тему, а также ускорить быстродействие Stable Diffusion на слабых ПК с видеокартами Nvidia серии 10, необходимо прописать в файле webui-user.bat определенные аргументы. Для этого откройте его для редактирования, щелкнув на нем в окне, показанном на рис. 5.21, а, правой кнопкой мыши и выбрав в открывшемся диалоговом окне (рис. 5.29) опцию Открыть с помошью Code или Edit with Notepad++ (выбирайте тот редактор, который ранее установили). На рис. 5.30 показано окно редактора Notepad++ с открытым в нем файлом webuiuser.bat. Нам совершенно нет надобности детально разбираться в том, как именно здесь работает код и как устроен редактор, единственное, что нужно сделать, — это прописать в строке set COMMANDLINE_ARGS= аргументы: --autolaunch --theme=dark –xformers чтобы в итоге окно редактора стало выглядеть так, как показано на рис. 5.31. Здесь функция --autolaunch запускает Stable Diffusion AUTOMATIC1111 с вашим локальным URL-адресом в веб-браузере. Если вы не укажете эту функцию, то вам придется каждый раз копировать URL-адрес (командой Running on local URL) из командной строки — в черном окне запуска нейросети (рис. 5.32). Как здесь можно видеть, Stable Diffusion прочитала загруженную ранее модель (чек-пойнт) epiCRealism (команда Loading weight) и версию Python 3.10.6.
Урок 5. Локальная установка 81 Рис. 5.29. Контекстное меню открытия файла для редактирования Рис. 5.30. Диалоговое окно редактора Notepad++ с открытым в нем файлом webui-user.bat Рис. 5.31. Диалоговое окно редактора Notepad++ с прописанными функциями
82 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.32. Командная строка с загрузкой необходимых команд запуска AUTOMATIC1111 Закомментированная (нечитаемая) командной строкой функция @Rem git pull (см. рис. 5.31) не дает нейросети раньше времени обновиться до следующей версии. Это нужно для того, чтобы при выходе следующего обновления, содержащего, по всей вероятности, ошибки, вы не обновили ваш стабильно работающий интерфейс AUTOMATIC1111 до этой версии. Вот когда со времени выхода обновления пройдет какое-то время, за которое разработчики возможные ошибки устранят, вы сможете спокойно обновить интерфейс нейросети, сняв комментарий и оставив только git pull. Функция --theme=dark отвечает за цветовую тему интерфейса, хотя пока еще система поддерживает только две темы: dark (темную) и light (светлую). При указании любых других цветов (blue, yellow и прочих) будет устанавливаться тема по умолчанию — light. При желании тему можно кардинально поменять, сделав интерфейс темно-голубым, серым или синим, но этого удастся достичь только с помощью загружаемых дополнений и скриптов. Функция -–xformers отвечает за ускорение генерации изображений — если у вас видеокарта Nvidia на архитектурах Pascal (серия 10), Turing (серии 16 и 20), Ampere (30XX), Lovelace (40XX) или Hopper(GH100), скорость генерации будет увеличена в 2 раза. Вы также можете использовать следующие функции (табл. 5.1). Таблица 5.1. Функции оптимизации Stable Diffusion --medvram Включить оптимизацию модели Stable Diffusion, чтобы пожертвовать некоторой производительностью ради низкого использования VRAM (может быть полезно при «слабой» видеокарте) --medvram-sdxl Включить оптимизацию -–medvram только для моделей SDXL (может быть полезно при «слабой» видеокарте) --lowvram Включить оптимизацию модели Stable Diffusion, чтобы пожертвовать большой скоростью ради очень низкого использования видеопамяти (может быть полезно при «слабой» видеокарте) --lowram Загрузить «веса» контрольных точек (чек-пойнтов) стабильной диффузии в VRAM вместо оперативной памяти --reinstall-xformers Принудительно переустановить XFormers. Полезно при непредвиденном обновлении и возникших ошибках в результате этого обновления, но удалите эту функцию после обновления, иначе вам придется постоянно переустанавливать XFormers
Урок 5. Локальная установка 83 Таблица 5.1 (окончание) --reinstall-torch Принудительно переустановить Torch. Полезно при непредвиденном обновлении и возникших ошибках в результате этого обновления, но удалите эту функцию после обновления, иначе вам придется постоянно переустанавливать Torch --disable-extra-extensions Отключить запуск всех расширений (может быть полезно при поиске ошибок) Если у вас нет подходящей видеокарты — можете попробовать рендер на процессоре, для чего в файле webui-user.bat нужно прописать следующую функцию (листинг 5.1). Листинг 5.1. Команды выполнения рендера на процессоре set COMMANDLINE_ARGS=--precision full --no-half --use-cpu all --skip-torchcuda-test set CUDA_VISIBLE_DEVICES=-1 П РИМЕЧАНИЕ Нет уверенности, что эта функция еще работает, т. к. последнее упоминание о ней датируется началом 2023 года. Те же самые действия с прописыванием функций вы можете проделать и в редакторе Visual Studio Code (VS Code) — содержимое окна Notepad++, показанное на рис. 5.31, в окне VS Code будет выглядеть так, как показано на рис. 5.33. Рис. 5.33. Диалоговое окно VS Code: команды: --autolaunch --theme=dark –xformers Visual Studio Code разработан компанией Microsoft для Windows, Linux и macOS, и в нем наглядно подсвечен синтаксис языка (но это уже дело вкуса). Независимо от того, в каком редакторе вы работаете, — перед выходом из него и запуском нейросети не забудьте сохранить изменения, выполнив команду Сохранить в меню Файл — и только после этого можно будет закрыть текстовый редактор.
84 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.34. Темный интерфейс AUTOMATIC1111 После всех указанных манипуляций с кодом интерфейс нейросети приобретет вид, показанный на рис. 5.34. Установка интерфейса Forge По такому же сценарию рассмотрим способы установки интерфейса Forge. Способов этих, собственно, всего два: один предполагает, что у вас уже установлен AUTOMATIC1111, вы знаете Git и сможете прописать шесть строк кода, второй предполагает, что у вас нет AUTOMATIC1111, вы незнакомы с Git и никогда не работали с кодом. Рассмотрим оба варианта. Итак, если вы знаете Git, откройте в терминале (в черном окне командной строки) файл /path/to/stable-diffusion-webui и пропишите в нем следующие шесть команд (листинг 5.2). Листинг 5.2. Установка интерфейса Forge через Git (вручную) git git git git git git remote add forge https://github.com/lllyasviel/stable-diffusion-webui-forge branch lllyasviel/main checkout lllyasviel/main fetch forge branch -u forge/main pull Если вы не знаете Git, выполните в своем браузере запрос: Forge diffusion webui и перейдите по первой же ссылке на страницу GitHub для интерфейса Forge1, затем прокрутите страницу вниз до раздела Installing Forge (рис. 5.35) и щелкните там на 1 Это может быть ссылка: https://github.com/lllyasviel/stable-diffusion-webui-forge.
Урок 5. Локальная установка 85 Рис. 5.35. Переход к установке интерфейса Forge ссылке Click Here to Download One-Click Package (Нажмите здесь, чтобы загрузить пакет в один клик). После этого начнется скачивание ZIP-архива весом примерно 1,7 Гбайт. Скачав архив, распакуйте его с помощью программы 7-Zip либо WinRAR в отдельную папку. Для этого нажмите на архиве правой кнопкой мыши, выберите в открывшемся контекстном меню (рис. 5.36) опцию 7-Zip | Распаковать в "webui_forge_ cu121_torch21" и дождитесь завершения процесса распаковки (рис. 5.37). Рис. 5.36. Команда распаковки архива программой 7-Zip
86 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.37. Распаковка архива программой 7-Zip В папке с распакованным архивом будут лежать: три файла с расширением bat и две папки (рис. 5.38). Прежде всего запустите на выполнение файл update.bat — для обновления версии Forge. Это нужно для того, чтобы не задействовать каждый раз при обновлении команду git pull — как мы это делали при обновлении AUTOMATIC1111. Рис. 5.38. Содержимое папки после распаковки архива Forge Команда update.bat запустит командную строку, в которой загрузятся необходимые для работы Forge файлы и зависимости (рис. 5.39). Как можно здесь видеть, по завершении работы команды update.bat будет выведена строка: Для продолжения нажмите любую клавишу... — любую клавишу и нажмите, а затем запустите на выполнение файл run.bat. Несмотря на то что интерфейс Forge лучше оптимизирован по сравнению с AUTOMATIC1111, первый его запуск может занять в два раза больше времени, чем у AUTOMATIC1111. При этом
Урок 5. Локальная установка 87 Рис. 5.39. Загрузка необходимых файлов и зависимостей Рис. 5.40. Установка зависимостей и запуск Forge Forge в автоматическом режиме скачает (загрузит) и переместит в нужную папку актуальную модель (чек-пойнт) realisticVisionV51 от автора SG_161222 (рис. 5.40). В зависимости от характеристик вашего компьютера, Forge автоматически оптимизирует свой интерфейс под его возможности — это очень удобно. Так, поскольку на моем компьютере имеются 12 Гбайт видеопамяти и 64 Гбайт ОЗУ, Forge сам прописал для меня NORMAL_VRAM и другие соответствующие настройки (см. рис. 5.40). После всех указанных манипуляций у вас должен запуститься такой интерфейс (рис. 5.41). Чтобы поменять тему интерфейса, вы можете изменить немного файл run.bat, а можете просто установить нужный скрипт цветовой темы. Полностью готовая к использованию нейросеть с интерфейсом Forge «весит» примерно 8 Гбайт.
88 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.41. Интерфейс Forge, установленный по умолчанию Установка менеджера пакетов Stability Matrix Для установки менеджера пакетов Stability Matrix выполните в своем браузере запрос по его названию: Stability Matrix, перейдите по первой же ссылке на страницу GitHub для этого менеджера пакетов1, затем прокрутите страницу вниз до раздела Stability Matrix (рис. 5.42) и найдите кнопки загрузки менеджера пакетов для разных операционных систем. Выберите здесь свою платформу и скачайте версию программы для нее (рис. 5.43). Распакуйте полученный архив программой 7-Zip, и вы получите папку, в которой лежит один установочный файл — StabilityMatrix.exe. Запустите его на выполнение. При первом запуске в самом начале установки программа предложит выбрать место установки — выберите вариант Portable Mode (рис. 5.44), чтобы все данные установленных нейросетей хранились в той же папке, что и сам менеджер пакетов, и нажмите кнопку Continue (впрочем, при желании вы можете выбрать и другую папку). На следующих шагах вам будет предложено установить один из интерфейсов на ваш выбор — выберите интерфейс Forge, рассмотренный ранее (рис. 5.45), а также выбрать и установить нужную модель (checkpoint) — выберите две самые «залайканные» модели (рис. 5.46) и нажмите кнопку Download. 1 Это может быть ссылка: https://github.com/LykosAI/StabilityMatrix.
Урок 5. Локальная установка Рис. 5.42. Переход к установке менеджера пакетов Stability Matrix Рис. 5.43. Загрузка менеджера пакетов Stability Matrix для Windows 89
90 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.44. Установка менеджера пакетов Stability Matrix Рис. 5.45. Выбор интерфейса Forge в Stability Matrix
Урок 5. Локальная установка 91 Рис. 5.46. Выбор в Stability Matrix моделей для установки: как можно видеть, здесь выбраны модели DreamShaper и Pony Diffusion V6 XL Далее начнется процесс скачивания и установки моделей (рис. 5.47) — при желании мы можем нажать кнопку More details и посмотреть, как выглядит этот процесс в окне командной строки Stability Matrix. И только после установки выбранных моделей начнется скачивание и установка интерфейса Forge (рис. 5.48). По завершении установки Forge запустите интерфейс, нажав в открывшемся окне Stability Matrix (рис. 5.49) кнопку Launch. Программа установки покажет вам процесс запуска (рис. 5.50), по завершении которого откроется окно интерфейса Forge (рис. 5.51), аналогичное тому, которое мы уже наблюдали на рис. 5.41. Чтобы закрыть программу, сначала закрываем окно браузера, а затем нажимаем кнопку Стоп. Можно сгенерировать что-либо и в самом менеджере Stability Matrix, открыв для этого вкладку New Project (рис. 5.52), а на соответствующей вкладке менеджера посмотреть уже установленные модели (рис. 5.52). Вы также можете напрямую скачивать и устанавливать в Stability Matrix модели, не открывая браузер (рис. 5.54).
92 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.47. Установка модели в Stability Matrix Рис. 5.48. Установка выбранного интерфейса в Stability Matrix
Урок 5. Локальная установка Рис. 5.49. Запуск интерфейса Forge в Stability Matrix Рис. 5.50. Процесс запуска интерфейса Forge в Stability Matrix 93
94 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 5.51. Интерфейс Forge в Stability Matrix Рис. 5.52. Интерфейс генерации проектов в Stability Matrix
Урок 5. Локальная установка Рис. 5.53. Владка просмотра установленных моделей интерфейса Stability Matrix Рис. 5.54. Страница сайта CivitAI в интерфейсе Stability Matrix 95
96 Часть II. Установка Stable Diffusion локально и на Google Colab Прочие функции Stability Matrix позволят вам устанавливать рабочее пространство (workflows) или работать с браузером изображений. П РИМЕЧАНИЕ Каким именно интерфейсом вы будете пользоваться в дальнейшем и как именно вы станете его запускать — это полностью ваше решение. Лично мне удобнее запускать Stable Diffusion через установку зависимостей и программ Git и Python, поскольку я больше пользуюсь интерфейсом ComfyUI и его функциями. В ИДЕОУРОК К УРОКУ 5 Напомню, что видеоурок к уроку 5 (файл Урок_5_Установка Stable Diffusion.mp4) расположен в сопровождающем книгу файловом архиве, скачать который с сервера издательства «БХВ» можно по ссылке https://zip.bhv.ru/9785977520614.zip, а также со страницы книги на сайте https://bhv.ru. * * * Подробную информацию о локальной установке Stable Diffusion вы найдете в следующих источниках:  Stability Matrix: https://clck.ru/3GvLCt;  Сайт с Visual Studio Code: https://clck.ru/3GvLJ3;  Аргументы и настройки командной строки: https://clck.ru/3GvLPY.
УРОК 6 Установка на Google Colab  Блокнот Google Colab  Улучшенные генерации Google Colaboratory (Colab) — это среда выполнения, которая позволяет писать и выполнять код Python в браузере. При этом:  не требуется выполнять никаких настроек;  предоставляется бесплатный доступ к графическим процессорам;  предоставляется доступ к совместному редактированию. По заверениям Google, Colab — это отличное решение для студентов, специалистов по обработке данных и исследователей в области искусственного интеллекта. На бесплатном плане Google Colab можно получить 15 Гбайт видеопамяти, 12,7 Гбайт системной оперативной памяти и 78,2 Гбайт дискового пространства. И хотя в настоящий момент Google Colaboratory запретила использование Stable Diffusion WebUI на бесплатном плане, ничего не мешает нам запустить Stable Diffusion только в виде кода. Это будет сделать сложнее, чем выполнить локальную установку, но при этом система не задействует никаких ресурсов, кроме дискового хранилища. Блокнот Google Colab Итак, откроем Google Colab1 — на ее стартовой странице (рис. 6.1) нам предлагают познакомиться с этой средой, посмотреть и попробовать, как происходит анализ и обработка данных. Выполните команду Файл | Создать блокнот — вы увидите окно нового блокнота Colab (рис. 6.2). Поля этого окна называются ячейками — в них мы пишем код 1 См. https://clck.ru/3GaKgB.
98 Часть II. Установка Stable Diffusion локально и на Google Colab Python для выполнения определенного его блока. Написав код, мы можем, используя кнопку запуска и воспроизведения кода, расположенную слева от каждой ячейки, выполнять отдельные программы. Рис. 6.1. Создание нового блокнота Colab Рис. 6.2. Интерфейс блокнота Colab Сначала нужно установить некоторые дополнительные библиотеки и необходимые условия для запуска Stable Diffusion. Для этого: 1. Перейдите на официальную страницу диффузоров (Diffusers) сайта Hugging Face1, нажмите кнопку Installation (Установка), доступную в левой области страницы, прокрутите открывшуюся в правой области часть страницы до надпи1 См. https://clck.ru/3GaKmv.
Урок 6. Установка на Google Colab 99 си Note - PyTorch only supports Python 3.8 - 3.11 on Windows., скопируйте оттуда показанные стрелками на рис. 6.3 три команды (они также приведены в листинге 6.1) и введите их в ячейку блокнота Coogle Colab. Рис. 6.3. Интерфейс сайта Hugging Face: страница Diffusers | Installation Листинг 6.1. Три команды установки !pip install diffusers["torch"] transformers !pip install accelerate !pip install git+https://github.com/huggingface/diffusers П РИМЕЧАНИЕ В Python pip (что означает установочный пакет Python) — это базовая команда, используемая для установки любой библиотеки (предварительные необходимые условия) и для запуска любых функций.
100 Часть II. Установка Stable Diffusion локально и на Google Colab 2. Затем перейдите на страницу Text-to-image сайта Hugging Face (рис. 6.4), скопируйте оттуда имеющийся там код (он приведен в листинге 6.2) и вставьте его в новую ячейку блокнота Colab (рис. 6.5). Рис. 6.4. Интерфейс сайта Hugging Face: страница Text-to-image Рис. 6.5. В блокнот Colab вставлен скопированный код
Урок 6. Установка на Google Colab 101 Листинг 6.2. Код с сайта Hugging Face для копирования в ячейку Colab import torch from diffusers import StableDiffusionPipeline pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusionv1-5", torch_dtype=torch.float16) pipe = pipe.to("cuda") prompt = "a photo of an astronaut riding a horse on mars" image = pipe(prompt).images[0] Ниже введенного кода добавьте слово image — чтобы получить вывод результатов в режиме реального времени. В НИМАНИЕ ! При копировании и вставке кода Python нельзя добавлять дополнительное пространство между вставляемыми блоками, иначе вы получите ошибку доступа. Теперь запускайте блоки кода один за другим, нажимая кнопку воспроизведения (рис. 6.6). После щелчка на первой ячейке немного подождите — пока не увидите зеленую галочку рядом с кнопкой воспроизведения. Это означает, что установка завершена. Рис. 6.6. Запуск первой ячейки кода в блокноте Colab
102 Часть II. Установка Stable Diffusion локально и на Google Colab Далее перейдите на вкладку Среда выполнения (рис. 6.7), выберите опцию Сменить среду выполнения и установите среду выполнения T4 GPU (видеокарту Tesla 4), как показано на рис. 6.8. Рис. 6.7. Вкладка Среда выполнения в блокноте Colab Рис. 6.8. Диалоговое окно Сменить среду выполнения в блокноте Colab: выбрана среда выполнения T4 GPU
Урок 6. Установка на Google Colab 103 Рис. 6.9. Запущенный блокнот Colab Тем самым мы подключились к видеокарте T4 и можем далее рендерить всё на ней (рис. 6.9). На следующем шаге нам надо подключиться к графическому процессору, предоставленному нам Colab, — для чего поочередно запускаем выполнение двух блоков функций (рис. 6.10). Это может занять некоторое время. Рис. 6.10. Запущенный блокнот Colab: выполнение рендера по промту
104 Часть II. Установка Stable Diffusion локально и на Google Colab В итоге мы получили генерацию «Астронавт на коне» (рис. 6.11), потому что именно такой промт был записан в коде: prompt = "a photo of an astronaut riding a horse on mars". Сохраните изображение, щелкнув на нем и выбрав в контекстном меню опцию Сохранить картинку как.... Рис. 6.11. Запущенный блокнот Colab: рендер по промту выполнен Улучшенные генерации Чтобы улучшить генерацию, продолжим настройки и создадим в блокноте третью ячейку — нажмите показанную на рис. 6.12 кнопку кода, чтобы скорректировать промт и получить другое изображение (рис. 6.13). Рис. 6.12. Запущенный блокнот Colab: коррекция кода и промта
Урок 6. Установка на Google Colab 105 Рис. 6.13. Запущенный блокнот Colab: получено другое изображение Для улучшения результата допишем код, добавив в него больше параметров, и получим соответствующее им новое изображение (рис. 6.14):  prompt = input("") — промт;  height= 512 — высота изображения;  weight= 512 — ширина изображения;  steps=25 — количество итераций;  guidance=7.5 — масштаб конфигурации (в пределах 6–8);  neg="" — негативная подсказка;  image = pipe(prompt, height=height, weight=weight, num_inference_steps= steps, guidance_scale=guidance, negative_prompt=neg).images[0] — передача кода интерпретатору;  image — отвечает за вывод изображений в терминале. Продолжим редактирование и поменяем модель. Для этого перейдите на сайте Hugging Face на страницу Libraries (Библиотеки) | Diffusers (Диффузоры) (рис. 6.15), где выберите и скопируйте название модели: digiplay/majicMIX_ realistic_v6 (рис. 6.16), после чего вставьте скопированный идентификатор модели в ячейку блокнота Colab (рис. 6.17) и сгенерируйте изображение, используя новую модель (рис. 6.18).
106 Часть II. Установка Stable Diffusion локально и на Google Colab Рис. 6.14. Запущенный блокнот Colab: новая ячейка кода и улучшенное изображение Рис. 6.15. Интерфейс сайта Hugging Face: страница Libraries | Diffusers
Урок 6. Установка на Google Colab 107 Рис. 6.16. Копирование идентификатора модели Рис. 6.17. Запущенный блокнот Colab: вставка кода новой модели Результат, как можно видеть, получился достаточно неплохим и проработанным (рис. 6.19). Полный код генерации этого изображения в Colab приведен в листинге 6.3. Листинг 6.3 !pip install diffusers["torch"] transformers !pip install accelerate !pip install git+https://github.com/huggingface/diffusers import torch from diffusers import StableDiffusionPipeline
108 Часть II. Установка Stable Diffusion локально и на Google Colab pipe = StableDiffusionPipeline.from_pretrained("digiplay/majicMIX_realistic_v6", torch_dtype=torch.float16) pipe = pipe.to("cuda") prompt = input("portrait of a beautiful girl, sunny day, bright lighting, 4k, high quality, high detail") height= 512 weight= 512 steps=22 guidance=8 neg="bad anatomy, bad quality, bad face, bad eyes, anime" image = pipe(prompt, height=height, weight=weight, num_inference_steps=steps, guidance_scale=guidance, negative_prompt=neg).images[0] image Рис. 6.18. Запущенный блокнот Colab: использование другой модели Не так много времени мы на всё это потратили — как можно видеть в сообщении среды (рис. 6.20), у нас остается еще два часа чистых генераций с какими угодно моделями на бесплатных сеансах. Чтобы отключится от среды выполнения и больше не тратить бесплатные часы, выберите в меню блокнота Среда выполнения (см. рис. 6.7) пункт Отключиться от среды выполнения и удалить ее.
Урок 6. Установка на Google Colab Рис. 6.19. Результат генерации в Colab нового изображения Рис. 6.20. Оставшееся время работы в Colab 109
110 Часть II. Установка Stable Diffusion локально и на Google Colab * * * Подробную информацию об установке Stable Diffusion на Google Colab вы найдете в следующих источниках:  блокнот блоггера Marat_ai: https://clck.ru/3GaJVL;  сервисы запуска Stable Diffusion: https://clck.ru/3GaJdv;  запуск Stable Diffusion в Google Colab бесплатно (без отключений): https://clck.ru/3GaJoA;  модель digiplay/majicMIX_realistic_v6: https://clck.ru/3GaK4C;  Text-to-image пайплайн: https://clck.ru/3GaK7X;  страница диффузоров на сайте Hugging Face: https://clck.ru/3GaKAv.  все модели на сайте HuggingFace: https://clck.ru/3GaKF9;  процесс подключения SDXL: https://clck.ru/3GaKLU;  полезные учебные пособия по Stable Diffusion: https://clck.ru/3GaKSC.
ЧАСТЬ III Обзор возможностей AUTOMATIC1111 и генерация первых картинок Урок 7. Генерация изображения по промту и изображению Урок 8. Вкладка Extras Урок 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions

УРОК 7 Генерация изображения по промту и изображению  Вкладка txt2img: генерация изображения по промту. Клубничный торт • Интерфейс вкладки txt2img • Первая генерация • Настройки Hires. fix  Вкладка img2img: генерация изображения по промту и изображению. Гоночная машина. • Настройки вкладки img2img • Правильный состав любого промта • Генерация изображения Вкладка txt2img: генерация изображения по промту. Клубничный торт Интерфейс вкладки txt2img В левом верхнем углу окна вкладки txt2img, показанной на рис. 7.1, отображается checkpoint модели Stable Diffusion (SD) — модель под названием cyberrealistic_ v12.safetensors. Рядом с названием модели слева направо располагаются кнопки перезагрузки , , экспорта и импорта контрольных точек (checkpoints). Ниже — сброса вкладки с разными режимами работы и настройки. Еще ниже — поля для написания позитивного и негативного промтов. Справа от них — большая кнопка , очистки и Generate (Генерировать), а под ней — три кнопки: для создания стилей (что это такое, мы узнаем позднее). Далее следует блок редактирования с настройками генерации: выбора метода семплирования, шилдера, количества итераций обработки изображений, настройка Hires. Fix (увеличение изображения), выбор Refiner (улучшение качества и детализации изображения). Под ним — блок с настройками соотношения сторон в пикселах по ширине (Width) и высоте
114 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок (Height) генерируемого изображения. Рядом с ним — кнопка смены соотношения сторон и настройки количества генерируемых изображений Batch count (последовательная генерация) и Batch size (генерация нескольких изображений за раз). Ниже — настройка CFG Scale, отвечающая за «креативность генерации» изображения: чем меньше ее величина — тем креативнее изображение и тем меньше нейросеть прислушивается к промту. Еще ниже — настройка Seed (Семя), служащая для генерации точного изображения или повтора уже существующего изображения по предыдущему или чужому промту. Щелчок в поле Extra дает возможность получить дополнительные настройки Seed. Если же оставить Seed = -1 — вы получите рандомизированное изображение. Ниже находится поле None для работы со скриптами — при щелчке на нем вы сможете выбрать желаемые скрипты (они также будут рассмотрены позже). Рис. 7.1. Настройки для первой генерации на вкладке txt2img интерфейса Stable Diffusion В правой части экрана — окно вывода результата генераций. Под ним кнопки, отвечающие за открытие папки с сохраненными изображениями, сохранение изображения, сохранение изображения в виде ZIP-архива, отправку результата генерации на вкладки img2img, inpaint, Extras, отправку результата генерации в окно Hires. fix. Первая генерация Сгенерируем изображение «Клубничный торт» — напишем для этого промт на английском языке (если надо — можно воспользоваться каким-нибудь онлайнпереводчиком).
Урок 7. Генерация изображения по промту и изображению 115 П РИМЕЧАНИЕ Лучше всего сейчас для генерации взять модель juggernautXL_version6Rundiffusion. safetensors, но если мощности вашего компьютера для работы с ней не хватает, можете попробовать установить модель cyberrealistic_v12.safetensors (показана на рис. 7.1), absolutereality_v181.safetensors или dreamshaper_6BakedVae.safetensors — эти модели работают на версии SD 1.5 и, следовательно, используют в два раза меньше ресурсов компьютера. Наберите в поле позитивного промта (см. рис. 7.1) текст Strawberry cake, установите настройки: соотношение сторон Width (Ширина) = 512 и Height (Высота) = 792, количество семплов (итераций или проходов обработки изображения) Sampling steps оставьте равным 20, Sampling method назначьте DPM++ 2M, Schedule type — выберите Karras, значение CFG Scale оставьте равным 7, Hires. fix и Refiner — пока не включайте и нажмите кнопку Генерация. В результате генерации мы получили «тортик» — результат не сильно впечатляющий. В нижней части экрана прописываются те настройки, с которыми мы генерировали изображение, время генерации одного изображения и затраченное количество оперативной и видеопамяти на генерацию (рис. 7.2). Рис. 7.2. Информация о генерации изображения на вкладке txt2img интерфейса Stable Diffusion Если мы возьмем полученную здесь величину Seed (Сид) = 2922633930, вставим ее в поле Seed настроек генерации (рис. 7.3) и снова сгенерируем изображение, не меняя абсолютно ничего в прочих настройках, мы получим почти точно такое же изображение (рис. 7.4). Рис. 7.3. Генерация с Seed = 2922633930 Теперь попробуем немного увеличить точность генерации — чтобы нейросеть понимала, что именно мы от нее хотим. При этом оставим предыдущий Seed и добавим к нашему промту следующий текст: strawberry cake lies on a white plate on
116 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок a circular pink table in the kitchen, good lighting, high detail (клубничный торт лежит на белой тарелке на круглом розовом столе на кухне, хорошее освещение, высокая детализация). Как можно видеть на рис. 7.5, при использовании одного и того же Seed мы получили совершенно другое изображение, хотя его и объединяет с предыдущим то, что они оба содержат клубнику. Рис. 7.4. Результат генерации с Seed = 2922633930 Рис. 7.5. Результат генерации с разным промтом и одним Seed Поставим опять рандомный Seed, нажав расположенную рядом с этим полем кнопку с изображением игрального кубика , и снова нажмем кнопку генерации — изображение стало более «вкусным» (рис. 7.6). Однако ему не хватает фотореализма — добавим для этого в позитивный промт слова: photo, photorealism. А в негативный: Anime, picture, picture, drawing. Обратите внимание, что важно ставить между словами запятые. Полученная в результате генерация стала еще «вкуснее» (рис. 7.7). рядом с игральным кубиОставим предыдущий Seed, нажав на зеленую кнопку ком, а затем попробуем увеличить наше изображение средствами инструмента Hires. fix.
Урок 7. Генерация изображения по промту и изображению Рис. 7.6. Результат генерации с одним промтом и разными Seed 117 Рис. 7.7. Фотореалистичное изображение тортика Настройки Hires. fix Настройки инструмента Hires. fix (рис. 7.8) включают кнопку с выбором Upscaler (увеличителя изображения) и движки Hires steps (задает количество итераций Hires. fix), Upscale by (задает увеличение в указанное количество раз) и Denoising strength (Шумоподавление) — всех их рекомендуется оставить в стандартных значениях. Настройки Resize width to и Resize height to — по умолчанию неактивны, но при желании вы можете поменять значения в полях ширины или высоты изображения, и тогда эти настройки станут активны (рис. 7.9). Оставьте стандартную установку Upscale by = 2 и установите количество итераций Hires steps = 10. Выберите значение Upscaler: 4x_RealisticRescaler_100000_G. А ПСКЕЙЛЕРЫ Если вас не устраивают стандартные апскейлеры, вы можете выбрать свой. Для этого 1 надо зайти на страницу OpenModelDB (рис. 7.10), выбрать там понравившийся апксейлер, скачать его файл (рис. 7.11) и поместить скачанный файл в папку SD по пути: ...stable-diffusion-webui\models\ESRGAN. 1 См. https://openmodeldb.info/.
118 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Рис. 7.8. Стандартные настройки инструмента Hires. fix Рис. 7.9. Настройки инструмента Hires. Fix: настройка Resize width to стала активной Рис. 7.10. Страница сайта OpenModelDB, откуда можно скачивать апскейлеры
Урок 7. Генерация изображения по промту и изображению 119 Рис. 7.11. Скачивание выбранной модели апскейлера с сайта OpenModelDB Увеличение изображения Оставьте без изменения примененный к предыдущему изображению промт: strawberry cake lies on a white plate on a circular pink table in the kitchen, good lighting, high detail, photo, photorealism и нажмите кнопку генерации. Время генерации увеличится примерно в два раза, но зато мы получим увеличенное изображение, причем результат генерации (рис. 7.12) выглядит гораздо «вкуснее» предыдущих. Если исходить из сделанных нами настроек, то после увеличения размер изображения станет равным 1024×1584 пикселов. Увеличим количество итераций апскейла до 20, а размер увеличения — до 3 (рис. 7.13) и нажмем опять кнопку генерации. При этом нужно учитывать время, затрачиваемое на генерацию, и количество потребляемой при генерации видеопамяти (рис. 7.14). Полученное изображение имеет разрешение 1536×2376 пикселов и отличается очень хорошей детализацией (рис. 7.15). П РИМЕЧАНИЕ Напомню, что для создания генераций использовалась система с 64 Гбайт оперативной памяти и 12 Гбайт видеопамяти. Если ваш компьютер не может справиться с такой нагрузкой — не переживайте, изображение можно также увеличить на вкладке Extras. Для компьютеров, успешно работающих с XL-версиями моделей, можно попробовать сгенерировать что-либо, используя настройку Refiner (Рефайнер) — она
120 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Рис. 7.12. Увеличенное фотореалистичное изображение тортика Рис. 7.13. Генерация при помощи инструмента Hires. fix
Урок 7. Генерация изображения по промту и изображению 121 Рис. 7.14. Описание сгенерированного объекта Рис. 7.15. Изображение тортика, увеличенное до 1536×2376 пикселов реализует функцию исправления и детализации изображения. Для рефайнера нужна своя собственная модель, и эта настройка чаще используется для исправления генерации портретов людей. Вы теперь можете самостоятельно поменять настройки нейросети на вкладке txt2img и сгенерировать что-нибудь другое. Надо при этом учитывать, что для разных стилей изображений лучше использовать разные настройки Upscaler и Sampling method.
122 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Вкладка img2img: генерация изображения по промту и изображению. Гоночная машина Настройки вкладки img2img Вкладка img2img (рис. 7.16) аналогична вкладке txt2img, однако она дает возможность использовать в качестве подсказки для генерации не только промт, но и другое изображение. Работая с этой вкладкой, можно применять различные расширения и задействовать больше заготовленных скриптов. Рис. 7.16. Интерфейс вкладки img2img Сгенерируем изображение фотореалистичной гоночной машины на основе другого изображения, задав для горизонтального соотношения сторон настройку Resize to = 1152×896 пикселов. На вкладке img2img появилась настройка Resize mode, дающая возможность изменять загружаемое изображение. Рассмотрим параметры этой настройки на примере изменения с помощью настройки Resize to изображения размером 768×512 до размера 1024×1024. То есть наша задача: увеличить исходное изображение, изменив соотношение его сторон. Настройка Resize mode имеет следующие параметры:
Урок 7. Генерация изображения по промту и изображению 123  параметр Just resize отвечает за изменение размера изображения до целевого разрешения, задаваемого в параметре Resize to. Однако это не то же самое, что можно получить с помощью инструмента Hires. fix, — при использовании параметра Just resize изображение просто заново генерируется и растягивается до нужного разрешения без заботы о соотношении сторон;  параметр Crop and resize сначала обрежет исходное изображение до размера 512×512, а затем смасштабирует его до 1024×1024. Соотношение сторон при этом нарушено не будет, но часть данных слева и справа потеряется;  параметр Resize and fill добавит для генерации новый шум — это увеличит ис- ходное изображение до размера 768×768, и только затем оно будет масштабироваться до 1024×1024, — в ожидании при этом, что img2img преобразует добавленный шум во что-то «разумное»;  параметр Just resize (latent upscale) — аналогичен параметру Just resize, однако здесь используется скрытое масштабирование (latent decoder), которое берет небольшое изображение и просто растягивает его до большего размера, не перегенирировав его заново, как это делает параметр Just resize. Итак, зададим для увеличения (Upscaler) Resize by значение = 2, значение CFG Scale оставим стандартно = 7, настройку Denoising strength тоже оставим стандартную = 0,75. Напишем положительный промт: photo of a formula 1 racing cars, futuristic racing cars, on the race track, realistic photography, sunny day, good lighting, highly detailed photorealistic natural photo, high quality, 4K Ultra HD, masterpiece, и негативный промт: Anime, picture drawing. Правильный состав любого промта Для получения в результате генерации высокодетализированного изображения нужно написать промт, содержащий в себе следующие понятия: 1. В начале промта обязательно указываем описание главного объекта — то, что точно должно находиться на генерации. В нашем случае это: photo of a formula 1 racing cars, futuristic racing cars. 2. Затем указываем место, где этот объект должен находиться: on the race track. 3. Потом пишем описание стиля изображения и окружающего освещения: realistic photography, sunny day, good lighting. 4. И лишь после этого вставляем слова, обозначающие, что мы хотим получить высокодетализированное, четкое и красивое изображение: highly detailed photorealistic natural photo, high quality, 4K Ultra HD, masterpiece. Для нечеткого изображения (предположим, обложки для компьютерной игры в жанре хоррор) — нужно написать слова, которые подходят этой стилистике: уродливый, плохое качество, размытое изображение, монстры. Если не указать конкретные значения генерируемого объекта, есть вероятность (50/50), что Stable Diffusion сгенерирует изображение как по четкому, так и по размытому промту.
124 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Поэтому-то в конце положительного промта обязательно записываются слова, обозначающее качество генерируемого изображения. Генерация изображения Добавим теперь изображение для генерации (рис. 7.17) — вы можете скачать его по ссылке: https://clck.ru/3AimsR. Запустив генерацию, получаем похожее изображение, но при этом отличающееся от оригинального (рис. 7.18). Рис. 7.17. Изображение для генерации Рис. 7.18. Оригинальное изображение (слева) и сгенерированное в img2img (справа)
Урок 7. Генерация изображения по промту и изображению 125 Теперь оставим все те же самые настройки и установим постоянный Seed = 906171060, получившийся при выполненной генерации, нажав на зеленую , расположенную справа от поля Seed (рис. 7.19). Изменим также значекнопку ние Denoising strength на 0,3 и снова нажмем кнопку генерации. Рис. 7.19. Установлен постоянный Seed Как можно видеть на рис. 7.20, мы получили почти идентичное изображение, отличающееся от оригинала только парочкой надписей на машине и немного измененным задним фоном. Рис. 7.20. Результат генерации изображения, показанного на рис. 7.17, после применения настроек Поставим противоположные настройки, изменив значение Denoising strength на 0,9, и снова выполним генерацию: получим изображение двух четырехколесных машин и еще одно дополнительное колесо (рис. 7.21). Рис. 7.21. Результат генерации с измененными настройками
126 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Рассмотрим подробнее, как происходит генерация на вкладке img2img и для чего именно используется параметр Denoising strength. А отвечает он за то, насколько будет преобразовано исходное изображение во что-то новое. Чем выше значение этого параметра, тем более креативное (не похожее) на оригинал изображение мы получим, и наоборот. Наиболее сбалансированное значение получается при его значении 0,70 до 0,75. Для создания изображения на вкладке img2img используются не только текстовые эмбеддинги (зашифрованный текст или промт), но и визуальные эмбеддинги (картинки), плюс учитывается исходник (в нашем случае гоночная машина). То есть нейросеть не просто накладывает поверх изображения шум и что-то добавляет, а полностью с нуля генерирует изображение, предварительно размазывая его с заданной силой. И чем больше значение Denoising strength, тем с большей силой нейросеть может опираться не на исходник, а на внутренние эмбеддинги (зашифрованные в ней текст и картинки). Понижением денойза мы обрубаем эти эмбеддинги и не позволяем нейросети работать с шумом. * * * Подробную информацию о параметре Denoising strength и Stable Diffusion вы найдете в следующих источниках:  математическое объяснение параметра Denoising strength: https://clck.ru/3GcKTH;  объяснение работы Denoising strength в Stable Diffusion. Режимы работы и генерация шума: https://clck.ru/3AinHm;  Stable Diffusion. Курс молодого бойца (от автора JakErdy — специалиста по компьютерной графике и инструментам): https://clck.ru/3GcKXe.
УРОК 8 Вкладка Extras  Увеличение изображения: параметр Upscale  Восстанавливаем лица: параметры GFPGAN и CodeFormer  Оптимизация маленькой памяти: параметр Split oversized images  Автоматическое кадрирование изображения: параметр Auto focal point crop  Кадрирование до указанного размера: параметр Auto-sized crop  Отражение изображения в одну из сторон: параметр Create flipped copies  Автоматическое создание текстовых описаний изображения: параметр Caption Вкладка Extras (рис. 8.1) включает ряд параметров, позволяющих выполнять над изображениями ряд полезных манипуляций. Рассмотрим их в этом уроке подробнее. Увеличение изображения: параметр Upscale Параметр Upscale (рис. 8.2) отвечает за масштабирование и улучшение изображений, полученных в других вкладках, и предусматривает три варианта работы с изображениями для их увеличения:  загрузку одного изображения;  загрузку каталога с несколькими изображениями для вывода их всех в окне генерации;  загрузку каталога с изображениями и их выгрузку в другой указанный вами каталог — как без показа результатов масштабирования, так и с показом этих результатов. Параметр Upscale дает возможность выбрать метод увеличения изображений или смешать два варианта Upscaler (увеличения) вместе для получения лучших результатов. Варианты Upscaler скопированы из параметра Hires. fix вкладки txt2img. Можно установить видимость (силу влияния) второго Upscaler и выбрать один из двух вариантов масштабирования: увеличение «в количество раз» (Scale by)
128 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Рис. 8.1. Вкладка Extras Рис. 8.2. Настройки параметра Upscale
Урок 8. Вкладка Extras 129 и «увеличение на точные размеры» (Scale to), а также задать максимальную длину стороны (Max side length) — если какая-либо из двух сторон изображения окажется больше указанного, масштаб будет уменьшен до нужного размера (0 = нет ограничений). Восстанавливаем лица: параметры GFPGAN и CodeFormer Параметры GFPGAN и CodeFormer (рис. 8.3) отвечают за восстановление лиц на изображениях и добавление деталей (можно включить сразу оба параметра и настроить их в нужном соотношении или выбрать что-нибудь одно на ваше усмотрение):  GFPGAN — делает лица более реалистичными, но при этом полностью убирает текстуру кожи;  CodeFormer — оставляет изначальные очертания лица, при этом добавляя тек- стуру. Рис. 8.3. Настройки параметров GFPGAN и CodeFormer Оптимизация маленькой памяти: параметр Split oversized images Параметр Split oversized images (рис. 8.4) предназначен для работы с изображениями, которые превышают допустимый размер для генерации или редактирования. Иначе говоря, когда изображение слишком велико для обработки из-за ограничений памяти или возможностей модели, настройки этого параметра позволяют разделить его на более мелкие части. Это необходимо для того, чтобы модель могла эффективно работать с каждым отдельным фрагментом без превышения допустимых объемов памяти. После разделения изображения на более мелкие фрагменты
130 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок каждый из них может быть обработан или сгенерирован моделью отдельно, что позволяет обходить ограничения на размер изображения, улучшая гибкость и функциональность работы с большими изображениями. После того как все фрагменты изображения будут обработаны, их можно собрать обратно в одно цельное изображение. Это дает возможность сохранить исходный размер и пропорции изображения после применения к нему различных операций. Рис. 8.4. Настройки параметра Split oversized images Рассмотрим например, ситуацию, когда у вас есть изображение высокого разрешения (предположим, в разрешении 4K), которое вы хотите улучшить или изменить, но оно слишком велико для обработки целиком. Тогда можно использовать настройки параметра Split oversized images — произойдет разделение изображения на части, их обработка и сборка:  настройка Threshold (Порог) — отвечает за определение максимально допусти- мого размера изображения. Если изображение превышает этот порог, оно будет разделено на более мелкие части;  настройка коэффициента перекрытия (Overlap ratio) — применяется для дости- жения плавных переходов между частями изображения. Более высокие значения перекрытия (например, 0.6) помогут избежать видимых швов, но увеличат объем обрабатываемых данных и могут требовать больше памяти. Если вы наблюдаете заметные швы или артефакты, попробуйте увеличить коэффициент перекрытия. Итак, если у вас высокопроизводительная система и много видеопамяти, ставьте значения: Threshold = 0.8 и Overlap ratio = 0.5, а если ресурсы видеопамяти ограниченные, ставьте Threshold = 0.5 и Overlap ratio = 0.7.
Урок 8. Вкладка Extras 131 Автоматическое кадрирование изображения: параметр Auto focal point crop Параметр Auto focal point crop (рис. 8.5) предназначен для автоматического кадрирования изображений с фокусировкой на наиболее значимых областях. Рис. 8.5. Настройки параметра Auto focal point crop Его настройки помогают улучшить визуальную композицию изображений на основе их анализа. При этом определяется наиболее важная область, содержащая ключевые элементы (например, лица, объекты, текстуры). После определения фокальных точек изображение автоматически кадрируется так, чтобы выбранные важные области находились в центре или в наиболее выгодной позиции кадра. Это позволяет избежать случайного обрезания важных частей изображения. Параметр Auto focal point crop имеет следующие настройки:  Focal point face weight — отвечает за важность лиц при определении фокальной точки кадрирования. Значение 0,9 означает, что лица будут иметь высокий приоритет при выборе области для кадрирования. Это полезно для фотографий с людьми, где важно сохранить лица в кадре;  Focal point entropy weight — отвечает за «вес» энтропии (разнообразие текстур и деталей) при выборе фокальной точки и помогает выделить области с высокой детализацией. Значение 0,15 указывает на умеренный приоритет текстур и деталей;  Focal point edges weight — определяет «вес» краев и контуров при выборе фо- кальной точки. Значение 0,5 указывает на средний приоритет для краев и контуров, что сохраняет четкость и структуру изображений с выраженными границами;  Create debug image — отвечает за создание изображения отладки и показывает, какие области были выбраны в качестве фокальных точек.
132 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Кадрирование до указанного размера: параметр Auto-sized crop Параметр Auto-sized crop (рис. 8.6) предназначен для автоматического кадрирования изображений до определенного размера с учетом сохранения их ключевых элементов и композиции. Рис. 8.6. Настройки параметра Auto-sized crop Как это работает? Сначала алгоритм анализирует изображение в заданных нами границах и определяет, какие части изображения являются наиболее важными для сохранения. Чтобы не обрезать ключевые элементы, функция автоматически изменяет размер изображения, стараясь сохранить как можно больше важной информации и основной композиции. Отражение изображения в одну из сторон: параметр Create flipped copies Параметр Create flipped copies (рис. 8.7) предназначен для отражения (переворота) изображения: по горизонтали, вертикали, а также и одновременно по горизонтали и вертикали. На рис. 8.8 приведен пример работы параметра Create flipped copies для горизонтального отражения. Рис. 8.7. Настройки параметра Create flipped copies
Урок 8. Вкладка Extras 133 Рис. 8.8. Пример работы параметра Create flipped copies: отражение по горизонтали Автоматическое создание текстовых описаний изображения: параметр Caption Параметр Caption предназначен для автоматического создания текстовых описаний изображений. Основная цель этой функции — сгенерировать текстовые метаданные, которые описывают содержание изображения.  настройка Deepbooru — это модель, предназначенная для создания описаний и тегов для изображений, часто используемая для изображений в стиле аниме и манга. Она была создана для работы с изображениями, содержащими персонажи, сцены и другие элементы, характерные для аниме и манги.  настройка BLIP — это модель, предназначенная для генерации текстовых описаний изображений на основе их содержимого. Модель обучена на большом количестве изображений и текстов, что позволяет ей генерировать точные и подробные описания для широкого спектра изображений. Таким образом, если нужно создать описание аниме-изображения следует использовать модель Deepbooru, если любое другое изображение (кроме аниме) — модель BLIP. При первом использовании параметра Caption Stable Diffusion будет загружать нужную модель (а модели весят примерно 1 Гбайт каждая), поэтому на первую генерацию с этим параметром потребуется больше времени.
134 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок После генерации рядом с выбранным изображением в папке вывода, расположенной по пути ...stable-diffusion-webui\outputs\extras-images, появится текстовый файл формата TXT, имеющий номер файла того же изображения, к которому он был добавлен и в котором описан промт для этого изображения (рис. 8.9). Рис. 8.9. Пример работы параметра Caption Попробуйте самостоятельно поэкспериментировать с обработкой изображений на вкладке Extras и с ее настройками. * * * Подробную информацию о параметрах GFPGAN и CodeFormer вы найдете в статье про сравнение GFPGAN и CodeFormer на Reddit: https://goo.su/q6CNrw.
УРОК 9 Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions  Вкладка PNG info: извлечение промта из сгенерированного ранее изображения  Вкладка Checkpoint merger: слияние разных моделей нейросети  Вкладка Train: тренировка маленьких моделей • Создание текстовой инверсии • Создание гиперсети  Вкладка Settings: настраиваем нейросеть под себя  Вкладка Extensions: обзор способов установки расширений Вкладка PNG info: извлечение промта из сгенерированного ранее изображения Вкладка PNG Info предназначена для работы с метаданными изображений в формате PNG, которые были сгенерированы или обработаны с использованием модели Stable Diffusion. В файлы PNG, сгенерированные с помощью Stable Diffusion, могут быть встроены метаданные, содержащие информацию о параметрах генерации, использованных моделях, промтах и других настройках. Вкладка PNG Info позволяет извлекать и просматривать эти метаданные. Извлеченные метаданные могут быть использованы для повторной генерации или редактирования изображений с теми же параметрами, что и оригинал. Это позволяет воспроизводить изображения или вносить изменения, сохраняя основные параметры. На рис. 9.1 показан процесс извлечения метаданных из генерации клубничного торта, полученной в результате изучения вкладки txt2img на уроке 7, — кнопки Send to... предназначены для отправки изображения с вкладки PNG Info на вкладки, указанные на кнопках, для продолжения работы с ними.
136 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Рис. 9.1. Вкладка PNG Info Вкладка Checkpoint merger: слияние разных моделей нейросети Вкладка Checkpoint Merger (рис. 9.2) нужна для создания новой модели на основе слияния (объединения) двух или трех различных моделей (checkpoints) в процессе обучения нейронных сетей. Основной моделью — той, к которой станут добавляться параметры и стиль других моделей, здесь выступает модель (А). Модели (В) и (С) будут добавлять свои стили к основной модели. В настройках вкладки можно: добавить название новой модели, установить метод интерполяции, формат контрольной точки (в основном используют формат safetensors), скопировать конфигурацию из разных точек, добавить к новой созданной модели VAE (Variational Autoencoder — вариационный автокодировщик, служащий для улучшения контраста, теней и света на изображении), добавить и сохранить метаданные. Выбирая модели для смешивания, нужно учитывать, что не все авторы моделей дают свое согласие на участие их моделей в таком смешивании. На сайте CivitAI модели, которые нельзя смешивать, обозначаются красным крестиком около пункта Share merges using this model (рис. 9.3).
Урок 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions Рис. 9.2. Вкладка Checkpoint Merger Рис. 9.3. Разрешение на участие этой модели в смешивании на сайте CivitAI присутствует 137
138 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Подробную информацию о слиянии моделей вы можете найти на сайте Imgur1, где она подана в виде комикса. Вкладка Train: тренировка маленьких моделей Вкладка Train (рис. 9.4) отвечает за тренировку с нуля новых моделей — выполнение встраиваний, или текстовых инверсий (embedding), и создание гиперсетей (hypernetwork), с получением своих датасетов изображений для тренировки. Рис. 9.4. Вкладка Train П РИМЕЧАНИЕ AUTOMATIC1111 предупреждает, что эта функция полностью не проработана и ее можно использовать только «на свой страх и риск». Создание текстовой инверсии Текстовая инверсия, как и гиперсеть, представляет собой мини-модель, которая применяется поверх базовой и заставляет ее генерировать какие-либо конкретные концепции (персонаж, стиль, одежду, композицит и др.). Результатом тренировки (обучения) является содержащий встраивание файл *.pt. Сначала текстовой инверсии присваивается имя (его можно в дальнейшем использовать в подсказках при обращении к встраиванию), затем задается текст для ини1 См. https://imgur.com/a/VjFi5uM.
Урок 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions 139 циализации (вида z1234), после чего определяется размер текстовой инверсии. Чем больше это значение, тем больше информации о теме вы сможете поместить во встраивание, но тем больше слов оно отнимет из вашего резерва на подсказки. В Stable Diffusion имеется ограничение на командную строку: 75 токенов. И если вы используете встраивание с 16 векторами в приглашении, у вас остается место только для: 75–16 = 59 векторов. Кроме того, чем больше векторов, тем больше изображений в датасете вам потребуется для получения хороших результатов. По инструкции AUTOMATIC1111 потребуется:  исходный каталог — каталог с изображениями;  каталог вывода — каталог, в который будут записаны результаты;  создание перевернутых копий — для каждого изображения нужно создать его зеркальную копию.  если изображение слишком высокое или широкое — изменить его размер так, чтобы короткая сторона соответствовала желаемому разрешению, и создать из него два возможно пересекающихся изображения;  использовать подпись BLIP в качестве имени файла — задействуйте модель BLIP из опросника, чтобы добавить подпись к каждому изображению в исходном каталоге. После подготовки датасета необходимо переместиться на внутреннюю вкладку Train вкладки Train для тренировки. Этапы тренировки: 1. Выберите в раскрывающемся списке embedding, который хотите обучить. 2. Настройте скорость обучения (Embedding Learning rate). Опасность установки высокого значения для этого параметра заключается в том, что вы можете нарушить встраивание, если установите слишком высокое значение. Если в текстовом поле информации об обучении появляется сообщение Loss: nan — это означает, что вы потерпели неудачу и встраивание не работает. При значении скорости обучения, установленной по умолчанию, этого не происходит. В параметре Embedding Learning rate можно указать несколько скоростей обучения, используя следующий синтаксис: 0.005:100, 1e-3:1000, 1e-5 — это будет обучение с 1e в течение 0.005 первых 100 шагов, затем 1e-3 до 1000 шагов, затем 1e-5 до конца. 3. Настройте каталог набора данных (Dataset directory) — каталог с изображениями для обучения. Все они должны быть квадратными. 4. Настройте каталог журналов (Log directory) — в этот каталог будут записываться образцы изображений и копии частично обученных вложений. 5. Настройте файл шаблона подсказки (Prompt template) — текстовый файл с подсказками по одной в строке для обучения модели. Чтобы узнать, что делать с шаблоном Prompt template, посмотрите файлы в каталоге textual_inversion_ templates: используйте файл style.txt — при обучении стилей и файл subject.txt — при обучении внедрений объектов. В файлах можно задействовать следующие теги:
140 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок • [name] — имя встраивания; • [filewords] — слова из имени файла изображения из набора данных. 6. Настройте размер изображений. 7. Настройте максимальное количество шагов (Max steps) — тренировка прекратится после выполнения указанного количества шагов. Шагом считается ситуация, когда одно изображение отображается в модели и используется для улучшения внедрения. 8. Настройте сохранение изображений с встраиванием в фрагменты PNG (Save images with embedding in PNG chunks) — каждый раз, когда создается изображение, оно объединяется с последним зарегистрированным встраиванием и сохраняется в image_embeddings в формате, который можно использовать как изображение или поместить в папку встраивания и загрузить. 9. Настройте запрос предварительного просмотра (Read parameters (prompt, etc...) from txt2img tab when making previews) — если он не пуст, этот запрос будет использоваться для создания изображений предварительного просмотра. Если пуст — будет использоваться приглашение от обучения. 10. Выполнив все эти действия, можно нажать кнопку Train Embedding. Создание гиперсети Создание гиперсети очень похоже на создание текстовой инверсии. Однако для гиперсетей важно использовать очень низкую скорость обучения — что-то вроде 0,000005 или 0,0000005. * * * Подробную информацию о тренировке моделей вы найдете в следующих источниках:  обучение созданию и тренировке своей текстовой инверсии и гиперсети: https://clck.ru/3GdhmN;  тренировка текстовой инверсии от автора Aitrepreneur: https://clck.ru/3Gdhpa. Вкладка Settings: настраиваем нейросеть под себя На этой вкладке (рис. 9.5) сосредоточены все настройки интерфейса Automatic1111 Stable Diffusion. По умолчанию всё настроено почти идеально. Здесь можно посмотреть путь сохранения файлов при генерации, поменять по своему желанию тему интерфейса, локализацию, определенные вкладки, пункты меню, изменить их порядок следования в области настроек User interface, а также поменять «горячие клавиши» в области Canvas Hotkeys. Поменяем для примера имя изображений при сохранении, вписав в него Seed и название модели (рис. 9.6), для чего следует добавить в параметр [wiki] Images filename pattern области Saving images/grids функцию: [seed] [model_name].
Урок 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions Рис. 9.5. Вкладка Settings Рис. 9.6. Вкладка Settings: область Saving images/grids 141
142 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок По желанию можно поменять отображение смены модели VAE и UNET в области Saving images (рис. 9.7), установив параметр [info] Quicksettings list (setting entries that appear at the top of page rather than in settings tab) (requires Reload UI). После внесения изменений нужно применить настройки, нажав кнопку Apply settings, и перезагрузить интерфейс, нажав кнопку Reload UI (см. рис. 9.5). Рис. 9.7. Параметр Saving images | Quicksettings list (setting entries that appear at the top of page rather than in settings tab) Вкладка Extensions: обзор способов установки расширений Вкладка Extensions нужна для установки в интерфейс AUTOMATIC1111 сторонних расширений. На первой вкладке (Installed) вкладки Extensions (рис. 9.8) показываются уже установленные расширения. Если расширения не только установлены, но и включены, то около значка расширения будет стоять синий флажок. На второй вкладке (Available) вкладки Extensions (рис. 9.9) можно загрузить форму со всеми вышедшими для AUTOMATIC1111 Stable Diffusion расширениями и установить их.
Урок 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions 143 Рис. 9.8. Вкладка Installed вкладки Extensions Рис. 9.9. Вкладка Available вкладки Extensions При необходимости здесь можно отсортировать расширения (рис. 9.10) по виду, исполняемым функциям, времени создания, времени последнего обновления, количеству звезд (лайков) от других пользователей, а также и в алфавитном порядке (на английском языке). На третьей вкладке (Install from URL) вкладки Extensions (рис. 9.11) можно загрузить и установить определенное расширение, зная его точный интернет-адрес (URL).
144 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок Рис. 9.10. Вкладка Available вкладки Extensions: сортировка расширений Рис. 9.11. Вкладка Install from URL вкладки Extensions На четвертой вкладке (Backup/Restore) вкладки Extensions (рис. 9.12) можно создать собственную конфигурацию интерфейса AUTOMATIC1111 Stable Diffusion с уже установленными в него нужными расширениями, скриптами, моделями и стилями для последующего сохранения этой конфигурации и ее быстрого развертывания на другом компьютере без необходимости переустановки всего с нуля. Этой конфигурацией также можно будет делиться с другими пользователями.
Урок 9. Вкладки PNG info, Checkpoint merger, Train, Settings и Extensions Рис. 9.12. Вкладка Backup/Restore вкладки Extensions 145
146 Часть III. Обзор возможностей AUTOMATIC1111 и генерация первых картинок
ЧАСТЬ IV Генерация изображений по промту: вкладка txt2img Урок 10. Поколения и виды моделей, лицензии их использования Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение Урок 12. Примеры использования нейросети Урок 13. Сравнение методов генерации по разным настройкам Урок 14. Секреты создания качественных изображений с людьми Урок 15. Ускорение написания промта Урок 16. Скрипты и расширения для ускорения работы

УРОК 10 Поколения и виды моделей, лицензии их использования  Поколения моделей нейросети  Виды моделей  Устанавливаем современную модель  Сайты для загрузки моделей  Лицензии использования моделей Поколения моделей нейросети На уроке 5 «Локальная установка» нами была установлена модель epiCRealism поколения 1.5 — улучшенная версия первой модели. В ней были учтены ошибки и недостатки, обнаруженные в предыдущих версиях, а также усовершенствована генерация изображений с более высоким качеством и детализацией, стабилизированы результаты. Всего же на текущий момент существуют пять поколений моделей Stable Diffusion, и почти у каждой из них есть несколько версий. Так, поколение моделей 1.0 включает в себя версии 1.1–1.5 и дополнительно версию 1.5-inpainting. Основные модели предназначены для генерации изображений на основе текстовых запросов и могут создавать новые изображения, следуя описанию, предоставленному пользователем. Они обеспечивают:  генерацию новых изображений с нуля;  высокую детализацию и качество изображений;  способность работать с широким спектром текстовых запросов и стилей. Inpainting-модели предназначены для выполнения особых задач, собранных под названием inpainting. I NPAINTING Процесс восстановления или редактирования частей изображения, в которых отсутствует информация или которое нуждается в корректировке.
150 Часть IV. Генерация изображений по промту: вкладка txt2img Задачи inpainting-моделей:  заполнение пропусков — модель может заполнять недостающие части изображения, основываясь на контексте и окружающих деталях;  редактирование изображений — модель позволяет изменять или заменять определенные части изображения, сохраняя при этом целостность и гармоничность сцены;  ретушь и восстановление — модель может использоваться для восстановления поврежденных или старых фотографий, заполняя утраченные фрагменты и улучшая общее качество изображения. Самая первая версия модели во втором поколении, так же как и самая первая версия модели в первом поколении, создавалась с нуля — т. е. взяли большое количество изображений, создали «датасет» и натренировали. Каждая следующая модель является продолжением предыдущей и тренировалась на основе предшествующих версий моделей из своего поколения. Для создания версии 1.2 взяли версию 1.1 и продолжили ее тренировать, в итоге получив новую модель. Чтобы получить версию 2.1 — натренировали версию 2-base. Всего же второе поколение модели включает в себя 7 версий: 2-base, 2-inpainting, 2-depth, 4x-upscaler, 2 (768), 2.1-base, 2.1. П ОЯСНЕНИЕ Число 768, обозначенное в скобках, означает максимальный размер в пикселах (px), обеспечивающий получение гарантированного качественного результата генерации изображения. 2-depth — специализированная версия модели, разработанная для работы с глубинной информацией (depth information). Г ЛУБИННАЯ ИНФОРМАЦИЯ Глубинная информация представляет собой данные о расстоянии до объектов в сцене, которые могут быть представлены в виде глубинных карт (depth maps). D EPTH - МОДЕЛЬ Тип модели, использующий глубинную информацию для улучшения качества генерации изображений. Depth-модель задействует ее для более точного моделирования пространственных отношений между объектами, что позволяет: • сделать перспективы более точными — более реалистично представлять глубины и расстояния между объектами; • улучшить световые эффекты — более точно учитывать свет и тени, основываясь на глубинной информации; • повысить детальность — глубинные карты помогают модели лучше различать и отображать мелкие детали на разных уровнях глубины. U PSCALER - МОДЕЛЬ Тип модели искусственного интеллекта, обученной увеличивать фотографии и дополнять детали, чтобы изображение оставалось четким. Приставка 2х или 4х означает кратность увеличения изображения в результате действия этой модели. Следующим скачком в развитии моделей можно считать появление Stable Diffusion XL (SDXL) и различных ее версий: SDXL 0.9, SDXL 1.0, SDXL Turbo, SDXL
Урок 10. Поколения и виды моделей, лицензии их использования 151 Lightning и SDXL Hyper. SDXL 0.9 являлась базовой моделью и в настоящее время считается устаревшей и не используется. В табл. 10.1 представлены сравнительные характеристики моделей поколения XL. Таблица 10.1. Сравнительная характеристика моделей поколения XL Основное преимущество Скорость генерации Качество изображения Применение SDXL 1.0 Баланс качества и скорости Средняя Высокое Общие задачи генерации SDXL Turbo Увеличенная скорость Высокая Чуть ниже, чем у 1.0 Приложения, требующие быстрой генерации SDXL Lightning Ультрабыстрая генерация Максимальная Среднее Реальное время, ограниченные ресурсы SDXL Hyper Наивысшее качество Низкая Наивысшее Высококачественная генерация, сложные сцены Модель Позже появилась модель Stable Diffusion Cascade — она состоит из трех разных моделей машинного обучения, работающих в одном конвейере. Благодаря этому удается ускорить генерацию и не снижать качество. Cascade примерно в 2,2 раза быстрее по скорости генерации по сравнению с базовой SDXL. Кроме описанных моделей, существуют поколения моделей, разработанные другими компаниями: Pony Diffusion, PixArt A, PixArt E, Playground V2, Flux, Illustrious Xl и др. Все описанные в книге примеры генераций далее будут проводится на основе моделей SD 1.5, SDXL 1.0 и SDXL Lightning, поскольку для SD 1.5 создано больше расширений и моделей, кроме того, модели версии 1.5 позволяют комфортно работать на «слабом» железе — т. е. на компьютерах с комплектующими начального уровня. Модели второго поколения имеют ощутимый недостаток в виде плохой генерации людей. Это происходит вследствие того, что разработчики при тренировке модели поколения 2 собрали датасет с использованием очень малого количества изображений NSFW1 — обнаженной натуры, попросту. Отсутствие у нейросети знаний по части анатомии человека создает множество проблем при генерации изображений как одетых людей, так и людей в принципе. ИИ должен знать, какая часть тела находится под одеждой, чтобы правильно эту одежду отобразить. SD версии 2.0 должна была стать первой успешной коммерческой моделью компании Stability AI, но проблемы при генерации изображений людей и малый объем исходного датасе1 NSFW — аббревиатура английских слов Not Safe For Work, что означает «небезопасно для работы». Это сообщения и изображения, содержащие такие материалы, как обнаженная натура или порнография, и способные создать проблемы тому, кто их станет смотреть в присутствии родных, коллег или посторонних посетителей.
152 Часть IV. Генерация изображений по промту: вкладка txt2img та делают невозможным успешное применение поколения 2 на всем кроме пейзажей и архитектуры. В табл. 10.2 приведено сравнение скорости генерации модели и качество получаемых в результате генерации изображений для различных поколений Stable Diffusion. Таблица 10.2. Сравнение скорости генерации модели и качества получаемых в результате генерации изображений для различных поколений Stable Diffusion Модель Скорость генерации Качество изображений SD 1.4 Низкая Среднее SD 1.5 Средняя Хорошее SD 2.0 Средняя Среднее SD 2.1 Средняя Среднее SDXL 1.0 Средняя Высокое Pony Diffusion Средняя Высокое Illustrious Xl Средняя Высокое SDXL Turbo Высокая Хорошее Очень высокая Среднее Низкая Очень высокое Stable Diffusion Cascade Средняя Высокое Stable Diffusion 3 (SD 3) Средняя Высокое Flux 1-S и Flux 1-dev Низкая Очень высокое Stable Diffusion 3.5 (SD 3.5) Низкая Высокое SDXL Lightning SDXL Hyper Разрешение, на котором обучалась базовая модель, влияет на возникновение крупных артефактов при увеличении разрешения на этапе генерации. Если используется:  модель SD 1.5 — то лучше не задавать в настройках разрешение больше 512×512 пикселов или разрешение, в котором сразу две стороны будут больше 512 (допускается настройка соотношения сторон в виде 512×768, 768×512 или 924×512 и т. д.);  модель SD 2.1 — то лучше не задавать в настройках разрешение больше 768×768 или разрешение, в котором сразу две стороны будут больше 768 (допускается настройка соотношения сторон в виде 1024×768, 768×1220 или 1284×768 и т. д.);  модель SDXL — то лучше не задавать в настройках разрешение больше 1024×1024 или разрешение, в котором сразу две стороны будут больше 1024 (допускается настройка соотношения сторон в виде 1024×768, 1024×1500 или 1784×1024 и т. д.);
Урок 10. Поколения и виды моделей, лицензии их использования 153  модель Cascade — то лучше не задавать в настройках разрешение больше 2048×2048 или разрешение, в котором сразу две стороны будут больше 2048 (допускается настройка соотношения сторон в виде 2048×768, 2048×3000 или 2084×2896 и т. д.);  модель SD 3 — то лучше не задавать в настройках разрешение больше 2048×2048 или разрешение, в котором сразу две стороны будут больше 2048 (допускается настройка соотношения сторон в виде 2048×768, 2048×3100 или 2084×3296 и т. д.). Если сильно отойти от исходного размера, то SD будет повторяться, создавая 2–3– 5 копий одного и того же изображения, и терять композицию. Исходя из этого, нужно генерировать изображения в диапазоне 30–60% от базового и затем применять Upscaler для получившегося результата. Виды моделей Следует различать виды моделей для нейросети Stable Diffusion — эта информация потребуется нам в дальнейшем. Основных видов всего пять:  Checkpoint (чек-пойнт) — основная модель, на которой работает Stable Diffusion, отличается большим размером: 1,5–10 Гбайт;  LoRA — модель для уточнения содержания генерируемого изображения, имеет меньший по сравнению с Checkpoint размер: около 25–800 Мбайт;  Embedding (текстовая инверсия) — метод, позволяющий уточнять промт и незначительно изменять генерируемое изображение, как правило, имеет очень маленький размер: до 2–5 Мбайт;  Hypernetworks (гиперсеть) — модель, подобная LoRA, служит для уточнения содержания генерируемого изображения, обычно меньше LoRA по размеру: примерно 5–25 Мбайт);  VAE (автокодировщик) — модель, которая используется для генерации новых данных на основе существующих. В основном нужна для улучшения качества изображения, его контраста и цветопередачи. Существуют также модели для специализированных задач:  Upscaler — модель для увеличения и добавления деталей;  ControlNet — модели для дополнения, позволяющие управлять процессом гене- рации изображений через дополнительные условия. Могут быть полезны для получения более точных и контролируемых результатов (их мы рассмотрим позже);  Motion — модели для создания motion-графики и анимационной стилизации в дополнениях AnimateDiff и Stable Video Diffusion;  DoRA — улучшенная альтернатива LoRA, работает не со всеми моделями Stable Diffusion;
154 Часть IV. Генерация изображений по промту: вкладка txt2img  LyCORIS — представляет собой объединение трех алгоритмов и моделей: Lora, Locon и Loha — в один скрипт. Иначе говоря LyCORIS является улучшенной версией LoRA, которая включает в себя больше слов для уточнения контекста вводимого промта;  Aesthetic Gradient — модель, которая использует градиентные методы для опти- мизации эстетических характеристик изображений. Иначе говоря, добавляет краски и детали к генерируемому изображению;  Wildcards — это не модель, а метод, позволяющий уточнять вводимый промт путем вставки в него случайных и динамически изменяющихся слов в процессе генерации. В табл. 10.3 представлены виды моделей в сопоставлении, с какими версиями основных моделей они работают. Важно помнить, что версии всех моделей для получения хорошего результата в результате генерации должны соответствовать друг другу — т. е. нельзя запустить генерацию с Checkpoint версией 1.5 и LoRA SDXL. И Checkpoint, и LoRA, и Embedding, и другие модели должны быть при генерации одной версии. Кроме Checkpoint, все остальные модели не являются обязательными для запуска и работы Stable Diffusion. Таблица 10.3. Сопоставление видов и версий моделей Модель/ метод Особенности Применение Поддерживаемые версии моделей DoRA Оптимизация архитектуры исходной LoRA, уточнение контекста генерируемого изображения Улучшение качества генерации 1.5, SDXL 1.0, Pony, Flux, SD 3.5 LoRA Снижение требований к памяти и ресурсам, уточнение контекста генерируемого изображения Эффективное обучение крупных моделей и улучшение качества генерации 1.4, 1.5, 2.0, 2.1, SDXL 1.0, SDXL Turbo, SDXL Lightning, SDXL Hyper, Pony, Stable Diffusion Cascade, SD 3, SD 3.5, Flux 1-dev LyCORIS Глубинное изучение Улучшение качества на уровне слоев, уточнение генерации контекста генерируемого изображения 1.4, 1.5, 2.0, 2.1, SDXL 1.0, Pony, Flux, SD 3.5 Hypernetworks Вспомогательная сеть для генерации весов основной модели Улучшение адаптивности моделей к новым данным и задачам и улучшение качества генерации 1.5, 2.0, 2.1 Checkpoint Сохранение состояний моделей Генерация изображений 1.4, 1.5, 2.0, 2.1, SDXL 1.0, SDXL Turbo, SDXL Lightning, SDXL, Pony, Hyper, Stable Diffusion Cascade, SD 3, Flux 1-dev, SD 3.5 Embedding Упрощает обработку и анализ данных Обработка текстовых данных, изображений 1.4, 1.5, 2.0, 2.1, SDXL 1.0, Pony
Урок 10. Поколения и виды моделей, лицензии их использования 155 Таблица 10.3 (окончание) Модель/ метод Особенности Применение Поддерживаемые версии моделей VAE Автокодировщик для генерации новых данных на основе существующих Генерация новых данных 1.5, SDXL 1.0, SD 3, Flux, SD 3.5 Aesthetic Gradient Оптимизация эстетических характеристик Создание визуально привлекательных изображений 1.5, 2.0 Wildcards Вставка случайных элементов (слов) Уникальные и разнообразные изображения 1.5, 2.0, 2.1, SDXL 1.0, Flux Upscaler Увеличение разрешения изображений Повышение детализации и качества 1.4, 1.5, 2.0, 2.1, SDXL 1.0, SDXL Turbo, Pony ControlNet Управление генерацией через дополнительные условия Управляемая генерация 1.5, 2.0, 2.1, SDXL 1.0, SD 3, изображений Flux 1-dev, SD 3.5 Motion Генерация последовательности изображений с движением Создание анимаций и видео 1.5, 2.0, 2.1, SDXL 1.0, SDXL Turbo, SDXL Hyper, SVD, SVD XT Несмотря на то что VAE является отдельной моделью, встречаются модели Checkpoint уже со встроенным VAE. Это получается благодаря созданию «миксов» (смешиваний) моделей на вкладке Checkpoint Merger нейросети Stable Diffusion AUTOMATIC1111 или Forge. Условно говоря, берут Checkpoint для создания людей и животных, добавляют к нему LoRA для создания только длинных волос светлого оттенка и добавляют к ним VAE для красочности и контрастности. В итоге получается Checkpoint с двумя характеристиками и встроенным VAE. Формат моделей Checkpoint и их размер не влияют на качество генерации изображений. Поэтому не стоит отдавать предпочтение более крупным моделям. При загрузке файлов Checkpoint нужно выбирать файлы разрешением .safetensors, т. к. в это разрешение нельзя встроить вредоносный код — в отличие от разрешения .ckpt. Модели Checkpoint также делятся на:  Trained — обученная с нуля натренированная модель;  Merge — модель, созданная путем слияния (микса) нескольких моделей;  Pruned — уменьшенная модель fp16. П РИМЕЧАНИЕ : fp16/fp32 fp — это floating point (numbers), т. е. число с плавающей точкой. Числа с плавающей точкой — это способ представления чисел, который позволяет работать с очень большими и очень маленькими значениями, а также с дробными числами. При этом модели fp16 весят примерно в два раза меньше, чем fp32, и изображения генерируют быстрее. fp16 и fp32 при генерации изображений, кроме скорости, практически не имеют отличий по качеству. Однако если потребуется натренировать на уже существующей модели другую модель или LoRA, то лучше брать fp32.
156 Часть IV. Генерация изображений по промту: вкладка txt2img Устанавливаем современную модель Попробуем найти, скачать, правильно расположить и настроить нужные модели в нейросети Stable Diffusion AUTOMATIC1111 и Forge. Откройте папку с установленной нейросетью Stable Diffusion AUTOMATIC1111 и перейдите в папку models, как показано на рис. 10.1. Рис. 10.1. Расположение папки с моделями В ней находятся несколько вложенных папок:  папка VAE — для установки моделей VAE;  папка Lora — для установки моделей LoRA;  папка Stable-diffusion — для установки моделей Checkpoint;  папка hypernetworks — для установки моделей гиперсетей;  папки Codeformer и GFPGAN — для моделей восстановления лиц (они самостоятельно загрузятся при включении этих функций в Stable Diffusion);  папка deepbooru — для моделей, предназначенных для создания описаний и тегов для изображений, часто используемых в аниме (загружаются автоматически);  папка karlo — для моделей увеличения изображений для генерации (загружаются автоматически);  папка VAE-approx — загрузится автоматически. П РИМЕЧАНИЕ Важно не запускать нейросеть Stable Diffusion в процессе загрузки и перемещения моделей в нужные папки. Запустите любой интернет-браузер, установленный на компьютере, и зайдите на сайт Civitai1, где хранятся почти все необходимые модели (рис. 10.2). 1 См. https://civitai.com/.
Урок 10. Поколения и виды моделей, лицензии их использования 157 Рис. 10.2. Окно браузера с сайтом Civitai в поисковой строке На рис. 10.3 показана домашняя (главная) страница Home сайта Civitai, где расположены самые лучшие, по мнению сообщества Civitai, сгенерированные изображения (с никами их авторов). Рис. 10.3. Сайт Civitai Не задерживаясь на странице Home, перейдите на страницу Models (рис. 10.4), откройте опцию Filters, настройте фильтры на поиск и дальнейшую загрузку моделей версии SDXL 1.0 и SDXL Lightning типа Checkpoint и LoRA и скачайте, нажав на
158 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 10.4. Сайт Civitai, страница Models кнопку Download, модели Checkpoint RealVisXL V4.01 версии SDXL Lightning (рис. 10.5). При загрузке можно сразу увидеть данные о загружаемой модели: ее тип, версию, статистику загрузок, время публикации, статистику обучения, размер модели, файла, точность модели и лицензию использования. Рядом с деталями модели показываются несколько изображений, какие можно получить, используя ее. Ниже располагается описание и рекомендации к применению. Так, автор модели RealVisXL V4.0 SG_161222 рекомендует использовать ее с Sampling Method (семплером) DPM++ SDE Karras / DPM++ SDE на 4–6 шагах, CFG Scale, равным 1–2, Sampling Steps, равным 15–30+. В негативном промте рекомендуется написать слова: worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch, open mouth. А при использовании Hires. fix поставить параметры, равные 4x-UltraSharp upscaler, Denoising strength: 0.1–0.5 и Upscale by: 1.1–1.5. 1 См. https://clck.ru/3GezSd.
Урок 10. Поколения и виды моделей, лицензии их использования 159 Рис. 10.5. Сайт Civitai, страница загрузки модели RealVisXL V4.0 О БРАЩАЙТЕ ВНИМАНИЕ НА ЛИЦЕНЗИЮ ИСПОЛЬЗОВАНИЯ МОДЕЛЕЙ ! 1 У некоторых из них — к примеру, у DreamShaper XL Turbo-версии (рис. 10.6), внизу дана информация, что модель распространяется под лицензией: Stability AI NonCommercial Research Community License, согласно которой «Turbo в настоящее время не может быть использован в коммерческих целях, если не будет получено разрешение от StabilityAI». Затем найдите и загрузите, также нажав на кнопку Download, модели LoRA Latex (SDXL)2 для SDXL Lightning, которые добавят понятие «Латекс» для одежды человека (рис. 10.7). Разработчик этой LoRA-модели (под ником wumoe) — не предоставил рекомендаций по ее применению. Далее загрузите модель Juggernaut XL3 для SDXL 1.0 Checkpoint (рис. 10.8), в которую уже встроена модель VAE, придающая изображению контрастность и детализацию. KandooAI, автор модели Juggernaut XL, рекомендует использовать ее с Sampling Method (семплером) DPM++ 2M Karras, CFG Scale, равным 3–7 (чем меньше — тем более реалистично) и Sampling Steps, равным 30–40. В негативном промте рекомендуется ничего не писать. А при использовании Hires. fix поставить 1 См. https://clck.ru/3GezeK. См. https://clck.ru/3Gf24y. 3 См. https://clck.ru/3Gf2fF. 2
160 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 10.6. Сайт Civitai, страница загрузки модели DreamShaper XL Рис. 10.7. Сайт Civitai, страница загрузки модели Latex XL
Урок 10. Поколения и виды моделей, лицензии их использования 161 Рис. 10.8. Сайт Civitai, страница загрузки модели Juggernaut XL параметры, равные 4xNMKD-Siax_200k, на 15 шагов, Denoising strength: 0,3 и Upscale by: 1.5. Аналогичным образом найдите и загрузите модель Logo.Redmond XL1 для LoRA SDXL 1.0 (рис. 10.9) — она позволяет генерировать логотипы на разные темы. В деталях модели даны триггерные слова logo и logoredmaf, при написании которых нейросеть поймет, что нужно использовать эту LoRA. artificialguybr, автор модели Logo.Redmond XL рекомендует использовать разрешение 1024×1024. Точно таким же способом найдите и загрузите модели Checkpoint и LoRA для SD 1.5 и также — дополнительно — модели Embedding и Hypernetwork. В итоге у вас должны быть загружены файлы следующих моделей:  SD 1.5: Checkpoint epiCRealism (мы скачали его на уроке 5, автор epinikion), модели LoRA Arcane Style (для создания персонажей в стиле сериала Arcane, автор Lykon) и 2D Pixel Toolkit (для генерации персонажей для 2D-игр, автор SYK006), KIDS ILLUSTRATION (для создания иллюстраций к детским книгам, автор Clumsy_Trainer), XSarchitectural-8japanwabisabi (для визуализации интерьеров, автор XSarchitectural), модель Embedding Empire Style (для генерации изображений в стиле Ампир, автор theally) и модель Hypernetwork Water Elemental (для создания людей и объектов из воды, автор drderp);  SDXL 1.0: Checkpoint Juggernaut XL (мы использовали его на уроке 3) и LoRA Logo.Redmond;  SDXL Lightning: Checkpoint RealVisXL V4.0 и LoRA Latex (SDXL). 1 См. https://clck.ru/3Gf3G3.
162 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 10.9. Сайт Civitai, страница загрузки модели Logo.Redmond XL Чтобы установить Embedding, нужно перейти в корневую папку stable-diffusion-webui и переместить текстовые инверсии в папку embeddings (рис. 10.10). Чтобы в дальнейшем не путаться в моделях и запускать нужное поколение Checkpoint с нужной LoRA, рекомендуется в папке Stable-diffusion и в папке Lora создать подпапки для каждого поколения моделей (рис. 10.11). Рис. 10.10. Расположение папок для моделей Embedding
Урок 10. Поколения и виды моделей, лицензии их использования 163 Рис. 10.11. Расположение папок для моделей Checkpoint (слева) и LoRA (справа) Сайты для загрузки моделей Кроме сайта Civitai1, модели также можно загружать и с других сайтов:  Hugging Face2 (рис. 10.12) — для загрузки моделей с этого сайта регистрация не обязательна; Рис. 10.12. Сайт Hugging Face, страница загрузки моделей 1 2 См. https://civitai.com/models. См. https://huggingface.co/stabilityai.
164 Часть IV. Генерация изображений по промту: вкладка txt2img  Tensor Art1 (рис. 10.13) — для загрузки моделей и использования этих моделей в онлайн-генерации регистрация на сайте обязательна. Так же как и на Civitai, на Tensor Art можно публиковать посты на различные темы, связанные с нейросетями, писать большие статьи и участвовать в ежемесячных соревнованиях в борьбе за приз. Использование некоторых моделей будет стоить денег (это указано на страницах их загрузки); Рис. 10.13. Сайт Tensor Art, страница загрузки моделей  Github2 (рис. 10.14) — здесь можно загрузить определенные модели, регистра- ция не обязательна. 3  LiblibAI (рис. 10.15) — это китайский сайт, и его интерфейс использует китайские иероглифы. Для загрузки моделей, онлайн-генерации, публикации работ и создания постов обязательна регистрация с китайским номером телефона. 4  Shakker.ai (рис. 10.16) — англоязычное «зеркало» китайского сайта LiblibAi. 1 См. https://tensor.art/models. См. https://clck.ru/3Gf5gh. 3 См. https://www.liblib.art/. 4 См. https://www.shakker.ai/. 2
Урок 10. Поколения и виды моделей, лицензии их использования Рис. 10.14. Сайт Github, страница загрузки моделей Рис. 10.15. Сайт LiblibAI, страница загрузки моделей 165
166 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 10.16. Сайт Shakker.ai, главная страница сайта Лицензии использования моделей Компания Stability AI  Лицензия Stability AI Non-Commercial Research Community License1 — дает вам возможность некоммерческого использования модели с указанием авторства в формате: «Эта модель Stability AI лицензирована в соответствии с лицензией некоммерческого исследовательского сообщества Stability AI, авторские права (C) Stability AI Ltd. Все права защищены».  Лицензия CreativeML Open RAIL++-M Addendum2 — дает вам возможность не- коммерческого и коммерческого использования модели с указанием авторства. Согласно обновлению лицензии по части условий использования моделей компании Stability AI от 05.07.24 года3 (рис. 10.17), теперь лицензия Community бесплатна для исследовательского, некоммерческого и коммерческого использования, если ваш годовой доход или доход вашей компании превышает 1 млн долларов США и вы используете модели Stability AI в коммерческих продуктах или услугах. Лицензия Community распространяется на модели: Stable Diffusion 3 Medium, Stable Diffusion XL ("SDXL") Turbo, Stable Diffusion Turbo, Stable Video Diffusion 14-frame version, Stable Video Diffusion 25-frame version, Stable Video Diffusion 1.1, Stable Zero123C, Stable Video 3D, Stable Audio Open 1.0 и др. (рис. 10.18). Насчет моделей, не вошедших в этот список, нужно придерживаться тех лицензий, которые даны 1 См. https://clck.ru/3Gf6fV. См. https://clck.ru/3Gf6rR. 3 См. https://clck.ru/3Gf73j. 2
Урок 10. Поколения и виды моделей, лицензии их использования 167 Рис. 10.17. Обновление лицензии на использование моделей компании Stability AI Рис. 10.18. Список моделей, на которые распространяется лицензия Community компании Stability AI
168 Часть IV. Генерация изображений по промту: вкладка txt2img к описаниям этих моделей на специализированных сайтах, откуда их можно загрузить. Для получения дополнительной информации компания Stability AI рекомендует посмотреть их страницы на ресурсах Hugging Face1 и GitHub2. Компания Fusionbrain.ai Продажа изображений, созданных в сервисе Kandinsky 3.0 (от компании Fusionbrain.ai), разрешена. Согласно их лицензии права на сгенерированный контент принадлежат пользователю3 (рис. 10.19). Рис. 10.19. Фрагмент лицензии на использование контента, созданного в нейросети компании Fusionbrain.ai Компания «Яндекс» (Шедеврум) Согласно лицензии компании «Яндекс»4 (рис. 10.20) пользователь имеет право на некоммерческое использование изображений, созданных в принадлежащем ей сервисе Шедеврум. Компания OpenAI (DALL-E) Согласно лицензии компании OpenAI (DALL-E)1 (рис. 10.21) пользователь имеет право на некоммерческое использование изображений, созданных в принадлежащих ей сервисах. 1 См. https://huggingface.co/stabilityai. См. https://github.com/Stability-AI. 3 См. https://clck.ru/3Gf7wX. 4 См. https://clck.ru/3GfPC3. 2
Урок 10. Поколения и виды моделей, лицензии их использования 169 Рис. 10.20. Фрагмент лицензии на использование контента, созданного в нейросети компании «Яндекс» (сервис Шедеврум) Рис. 10.21. Фрагмент лицензии на использование контента, созданного в нейросети компании OpenAI (DALL-E) Нейросеть Artbreeder Права на сгенерированный в нейросети Artbreeder контент принадлежат пользователю2. Нейросеть Midjourney Права на сгенерированный в нейросети Midjourney контент принадлежат пользователю, если он использует платную подписку3. 1 См. https://clck.ru/3GfPXs. См. https://clck.ru/3GfPpv. 3 См. https://clck.ru/3GfPwG. 2
170 Часть IV. Генерация изображений по промту: вкладка txt2img Нейросеть Leonardo.Ai Права на сгенерированный в нейросети Leonardo.Ai контент принадлежат пользователю, если он использует платную подписку1. Нейросеть Playground AI Пользователь может использовать созданные в нейросети Playground AI изображения любым способом, в том числе в коммерческих целях. При этом исключительные права на рисунки не предоставляются — т. е. любой другой пользователь имеет право использовать вашу картинку по своему усмотрению2. Нейросеть Lexica Права на сгенерированный в нейросети Lexica контент принадлежат пользователю, если он использует платную подписку3 (рис. 10.22). Рис. 10.22. Фрагмент лицензии на использование контента, созданного в нейросети Lexica Нейросеть Dream by Wombo Права на сгенерированный в нейросети Dream by Wombo контент принадлежат пользователю4. Нейросеть Starryai Права на сгенерированный в нейросети Starryai контент принадлежат пользователю1. 1 См. https://clck.ru/3GfQ7a. См. https://clck.ru/3GfQKf. 3 См. https://clck.ru/3GfQUe. 4 См. https://clck.ru/3GfR49. 2
Урок 10. Поколения и виды моделей, лицензии их использования 171 Нейросети GenZart и PixAI Для нейросетей GenZart и PixAI отсутствует общедоступная информация об условиях использования и распространения лицензии на сгенерированный в них пользователем контент. * * * Подробную информацию о поколениях и видах моделей и лицензиях их использования вы найдете в следующих источниках:  статья «Как работает стабильная диффузия»: https://clck.ru/3GfRih;  статья от Naomi Clarkson на тему «Textual inversion в Stable Diffusion»: https://clck.ru/3GfRpY;  статья от автора Replicart на тему «Textual inversion — это не то, что ты думаешь»: https://clck.ru/3GfRtp.  DoRA — высокопроизводительная альтернатива LoRA для тонкой настройки: https://clck.ru/3GfRyV;  Lycoris Stable Diffusion: подробное руководство для разработчиков: https://clck.ru/3GfS4n;  Stable Diffusion with Aesthetic Gradients: https://clck.ru/3GfS8p;  Все, что нужно знать про модели Stable Diffusion. Часть 1: https://clck.ru/3GfSFp;  Все, что нужно знать про модели Stable Diffusion. Часть 2: https://clck.ru/3GfSPU;  приложение Streamlit, объединяющее генерацию текста в изображение: https://clck.ru/3GfSS2;  страница модели Lumina-T2X для преобразования текста в изображение: https://clck.ru/3GfSUY;  описание возможностей модели PixArt-alpha: https://clck.ru/3GfSYF;  страница с моделью PIXART-Σ: https://clck.ru/3GfSdD;  страница с моделью Pixart-α: https://clck.ru/3GfSeN;  страница загрузки модели RealVisXL V4.0: https://clck.ru/3GfShu;  страница с моделями на сайте Civitai: https://civitai.com/models;  страница с моделями на сайте LibLib: https://www.liblib.art/;  страница с моделями на сайте Shakker.ai: https://clck.ru/3GfSpf;  лицензия использования моделей SDXL1.0 и SDXL-Turbo: https://clck.ru/3GfSro;  лицензия использования модели Stable Cascade: https://clck.ru/3GfSuY;  пользовательское соглашение сайта fusionbrain.ai: https://goo.su/8GxCGh;  условия использования сервиса Шедеврум: https://clck.ru/3GfT3K;  коммерческое использование и условия обслуживания: https://clck.ru/3GfT6v;  License Update SD (обновление условий использования моделей Stable Diffusion): https://clck.ru/3GfTDp. 1 См. https://clck.ru/3GfRBr.
УРОК 11 Генерируем фотореалистичный город и устанавливаем первое расширение  Генерируем фотореалистичный город  Устанавливаем расширение Civitai Helper • Вкладка Civitai Helper • Вкладка Civitai Helper Browser Генерируем фотореалистичный город Запустим нейросеть Stable Diffusion с WebUI AUTOMATIC1111 любым удобным способом, как мы делали это на уроках 5 и 6. Сначала сгенерируем город в поколении модели 1.5 — выберем для этого Checkpoint epiCRealism и напишем в положительном промте: a beautiful, photorealistic city, Moscow, а в негативном: ugly, poor quality (рис. 11.1). Согласно рекомендациям автора модели epinikion для достижения самых лучших результатов нужно использовать простые положительные и негативные промты, а также настройки: Steps: >20, CFG Scale: 5, Sampler: один из предложенных: SDE или DPM-Sampler, а также разрешение либо 512×768, либо 768×512. Для Hires задействовать upscaler 4x_NMKD-Superscale-SP_178000_G с Denoising: 0.35, Upscale: 2x. Установим указанные настройки. Поскольку в параметрах отсутствует нужный upscaler, перейдите на сайт OpenModelDB1, введите в поле поиска модель: upscaler = 4x_NMKD-Superscale-SP_178000_G и нужная нам модель будет найдена первой (рис. 11.2). Нажмите кнопку Download — откроется страница с выбором нужной версии upscaler от автора NMKD, выберите папку NMKD Superscale и нажмите на значок загрузки , расположенный в левом верхнем углу страницы (рис. 11.3). 1 См. https://clck.ru/3GgBib.
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение Рис. 11.1. WebUI AUTOMATIC1111: генерация фотореалистичного города Рис. 11.2. Сайт OpenModelDB: upscaler 4x_NMKD-Superscale найден 173
174 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 11.3. Загрузка NMKD Superscale По завершении загрузка ZIP-архива icedrive-dl-4k7e9b.zip распакуйте его программой 7zip — вы получите папку NMKD Superscale, содержащую четыре вложенных каталога (рис. 11.4, а), в каждом из которых будут находиться файлы с расширением pth (один из них показан на рис. 11.4, б) — перенесите всех их каталог ESRGAN (рис. 11.5), предварительно создав его внутри каталога models. Перезагрузите полностью Stable Diffusion, закрыв сначала веб-интерфейс, а затем и консоль, и запустите на выполнение файл webui-user.bat (см. рис. 5.22, а). а б Рис. 11.4. а — содержимое каталога NMKD Superscale; б — содержимое вложенного каталога Superscale 4x
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение 175 Рис. 11.5. Файлы NMKD Superscale перенесены в каталог ESRGAN Пропишите заново те же самые настройки: положительный промт: a beautiful, photorealistic city, Moscow, негативный промт: ugly, poor quality, Steps: 22, CFG Scale: 5, Sampler: DPM++ SDE, разрешение 768×512, для Hires: upscaler 4x_NMKDSuperscale-SP_178000_G, Denoising: 0.35, Upscale: 2x, Hires steps = 2 — и запустите генерацию, получив в результате изображение, показанное на рис. 11.6. Сразу после генерации сохраните Seed = 2187532769, нажав соответствующую кнопку (рис. 11.7). Рис. 11.6. Результат генерации по промту a beautiful, photorealistic city, Moscow
176 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 11.7. Сохранение Seed Для следующей генерации оставьте этот Seed и все прочие настройки, но измените Checkpoint на поколение SDXL 1.0 ранее загруженной нами модели Juggernaut XL и опять нажмите на кнопку генерации. Как можно видеть на рис. 11.8, результат получился хуже, чем на предыдущем поколении моделей, — это произошло в первую очередь из-за нестыковок размеров изображения для генерации. Отсюда следует, что не стоит ставить размер изображений генерации для поколений моделей ниже заявленного в описании. Перегенерируйте изображение, увеличив соотношение сторон до 1400×928. Получилось уже лучше (рис. 11.9), но качество всё еще не дотягивает до уровня изображений версии XL 1.0. Рис. 11.8. Неудачный результат генерации по промту: a beautiful, photorealistic city, Moscow Теперь измените upscaler, который мы используем в Hires, с 4x_NMKD-SuperscaleSP_178000_G на 4xNMKD-Siax_200k, указанный в рекомендациях использования модели от ее автора KandooAI. Для этого зайдите снова на сайт OpenModelDB, скачайте архив нужного NMKD-upscaler’а, как делали это для предыдущего, распакуйте его и поместите содержимое в соответствующую папку.
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение 177 Рис. 11.9. Улучшенный результат генерации по промту: a beautiful, photorealistic city, Moscow Все остальные настройки оставьте те же самые и запустите генерацию. Как можно видеть (рис. 11.10), изменилось несколько деталей, но в целом изображение осталось практически тем же самым. Рис. 11.10. Генерация изображения с upscaler 4xNMKD-Siax_200k
178 Часть IV. Генерация изображений по промту: вкладка txt2img Поменяйте настройки генерации согласно рекомендациям автора модели на следующие: 1024×1024, Sampling steps = 30, Sampling method = DPM++ 3M SDE, CFG Scale = 3 и Seed = 2187532769 — получилась же самая трасса по центру изображения (рис. 11.11). Рис. 11.11. Настройки генерации с upscaler 4xNMKD-Siax_200k Снова поменяем настройки (рис. 11.12): Seed — на 1154844913, Sampling steps = 25, Sampling method = DPM++ 2M, CFG Scale = 6, Schedule type = Karras, соотношение сторон = 1312×816, изменим положительный промт на: a beautiful, photorealistic city, Moscow, high detail, а негативный на: ugly, poor quality, (worst quality, low quality, illustration, 3d, 2d, painting, cartoons, sketch), open mouth — и получим фотореалистичное изображение города (рис. 11.13). На следующем шаге можно с помощью соответствующей кнопки, расположенной ниже окна генерации, отправить получившееся изображение в Extras (рис. 11.14). В режиме Extras установите первый Upscaler на 4x_RealisticRescaler_100000_G, а второй — на 4x-UniScaleV2_Soft, значение Resize задайте равным 4. Изображение после увеличения выглядит так, как показано на рис. 11.15. Попробуйте самостоятельно поэкспериментировать с моделями и их настройками, чтобы добиться других результатов.
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение Рис. 11.12. Настройки генерации фотореалистичного города Рис. 11.13. Результат генерации — фотореалистичный город 179
180 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 11.14. Отправка изображения в Extras Рис. 11.15. Вывод увеличенного изображения фотореалистичного города Устанавливаем расширение Civitai Helper Расширение Civitai Helper позволяет узнать, что за модель мы установили, задать обложку модели и определить триггерное слово, которое нужно использовать для запуска. Как выглядит интерфейс нейросети до установки расширения Civitai Helper, показано на рис. 11.16. Установим его и посмотрим, что изменится. Запустите нейросеть Stable Diffusion с WebUI AUTOMATIC1111, отправив на выполнение файл webui-user.bat (см. рис. 5.22, а). Откройте вкладку Extensions | Available, нажмите кнопку Load from:, пропишите в поле поиска название дополнения Civitai Helper, нажмите кнопку Install (рис. 11.17), чтобы загрузить дополнение, и перезагрузите интерфейс, чтобы расширение установилось (рис. 11.18). После установки расширения в Stable Diffusion AUTOMATIC1111 появятся две новые вкладки настроек меню (Civitai Helper и Civitai Helper Browser) и новые параметры настроек на обложках установленных моделей (рис. 11.19).
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение Рис. 11.16. Интерфейс нейросети до установки расширения Civitai Helper Рис. 11.17. Установка расширения Civitai Helper 181
182 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 11.18. Расширение Civitai Helper установлено Рис. 11.19. Расширение Civitai Helper и его настройки Вкладка Civitai Helper На вкладке Civitai Helper можно просканировать папки Stable Diffusion AUTOMATIC1111 на наличие разных моделей и на поиск их дубликатов (рис. 11.20), обновить существующие модели, скачать и загрузить информацию
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение 183 Рис. 11.20. Сканирование установленных моделей и сопоставление информации о них на сайте Civitai Рис. 11.21. Поиск информации о модели по ее URL-адресу на сайте Civitai о них (рис. 11.21), получить описание модели и ее деталей, а также рекомендации по ее использованию (рис. 11.22). Расширение Civitai Helper позволяет не проводить всю процедуру загрузки модели, описанную в предыдущем разделе, когда, кроме собственно загрузки модели, ее еще надо правильно разместить в нужном каталоге. С помощью расширения можно указать все ссылки на загружаемые модели разом, добавить параметр — например, Subfolder=style, — в конце ссылки через знак «::»: https://civitai.com/models/133005/juggernaut-xl?modelVersionId= 456194::Subfolder=style и загрузить все интересующие модели в требуемый каталог (в рассматриваемом случае — в подкаталог models/Lora/style) (рис. 11.23). При желании информацию в текстовом поле можно отредактировать, а обложку модели — поменять и затем сохранить. Чтобы попасть в окно изменения информации о модели, следует нажать на значок инструментов Edit metadata, появляющийся при наведении курсора на нужную обложку модели (рис. 11.24). По щелчку на находящемся рядом со значком Edit metadata значке восклицательбудет выведена информация о формате модели и способе ного знака в кружке ее создания (рис. 11.25).
184 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 11.22. Описание, детали и триггерные слова использования модели на вкладке Civitai Helper Рис. 11.23. Загрузка нескольких моделей разом
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение Рис. 11.24. Значок Edit metadata — изменение информации о модели Рис. 11.25. Полная справочная информация о модели 185
186 Часть IV. Генерация изображений по промту: вкладка txt2img В окне описания модели LoRA (рис. 11.26), кроме деталей и рекомендаций применения, можно увидеть теги, на которых тренировалась модель, теги активации применения модели, которые будут добавлены в промт при нажатии на название модели, теги случайной подсказки, отрицательной подсказки и примечания. Все текстовые поля с информацией можно редактировать, добавлять свои слова, удалять существующие (не рекомендуется) и сохранять полученный результат. Рис. 11.26. Изменение информации о модели LoRA
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение 187 Если в системе установлено очень много моделей, то можно воспользоваться поиском или сортировкой: по имени, дате создания, дате редактирования, возрастанию, а также включить отображение древовидной структуры с учетом видимости папок, в которые установлены модели (рис. 11.27). Рис. 11.27. Поиск и сортировка моделей Разберемся с остальными значками, появляющимися на модели при наведении на нее курсора (рис. 11.28). Рис. 11.28. Значки обложки модели Слева направо:  ᇜ — заменить обложку окна предварительного просмотра;  ౞ — открыть ссылку Civitai этой модели в новой вкладке;  ࣣ — добавить триггерные слова этой модели в подсказку;  ቙ — использовать подсказку изображения этой модели;  ✏ — переименовать модель;  ❌ — удалить/удалить модель.
188 Часть IV. Генерация изображений по промту: вкладка txt2img Вкладка Civitai Helper Browser Вторая вкладка расширения — Civitai Helper Browser — позволяет открыть сайт Civitai внутри интерфейса Stable Diffusion AUTOMATIC1111 и загрузить понравившуюся модель. Загрузим для примера модель LoRA 1.5 Victorian Anime Art. По щелчку на понравившейся модели в окне вкладки Civitai Helper Browser (рис. 11.29) эта модель попадет в окно настроек Download Model | Single (рис. 11.30). Нажмите здесь кнопку Download Model и поместите загруженную модель в папку \15, где хранятся LoRA-модели для версии 1.5. Рис. 11.29. Страница сайта Civitai открыта в окне вкладки Civitai Helper Browser Если теперь перейти в папку загрузки этой модели, то окажется, что скрипт загрузил четыре файла (рис. 11.31):  PNG-файл обложки модели;  саму модель вида *.safetensors;  исполняемый JSON-файл;  файл справочной документации *.info. Загружаемый комплект файлов модели почти всегда будет состоять из этих четырех файлов. Впрочем, иногда может отсутствовать обложка модели, а иногда может скачиваться архив с «датасетом», на котором обучалась модель.
Урок 11. Генерируем фотореалистичный город и устанавливаем первое расширение 189 Рис. 11.30. Загрузка модели Victorian Anime Art Рис. 11.31. Четыре загруженных файла модели * * * Подробную информацию о расширении Civitai Helper вы найдете в следующих источниках:  Civitai Helper: https://clck.ru/3Cm7rb;  Github, инструкция к использованию расширения Civitai Helper (версия 2): https://clck.ru/3Cm7ud.
УРОК 12 Примеры использования нейросети  Генерация персонажей из аниме и компьютерных игр • Генерация персонажа в стиле аниме • Генерация персонажа в стиле компьютерных игр  Генерация логотипов, одежды, архитектуры и графики для 2D-игр • Генерация логотипа компании • Генерация одежды для мужчины • Генерация архитектуры • Генерация графики для 2D-игр Генерация персонажей из аниме и компьютерных игр Генерация персонажа в стиле аниме Откройте окно, содержащее модели LoRA, и нажмите на обложку модели Victorian Anime Art, загруженную на уроке 11. Сразу после нажатия в окне положительного промта появится триггер активации этой модели (рис. 12.1). Теперь нейросеть при генерации сразу поймет, что нам требуется аниме в викторианском стиле. Осталось только написать в промте, что именно должно находиться на изображении: главный объект, передний план, задний план и объекты на заднем плане. Напишем такой промт: foreground beautiful anime girl, red hair, in a red dress, black shoes on her feet, background interior of an old castle, living room, fireplace with fire in the background, landscape painting hanging on the wall above the fireplace, anime style, good lighting, day, <lora:Victorian_Anime_Art_v3_r1:1> Victorian, Renaissance, Monet. Для негативного промта скачаем и установим Negative Embedding с сайта Civitai: negative_hand от автора Nerfgun3, Deep Negative V1.x от автора lenML и veryBadImageNegative от автора yunleme. Вначале попробуем сгенерировать изображение с простым негативным промтом: style-empire-neg, photo, real, painting.
Урок 12. Примеры использования нейросети 191 Рис. 12.1. Генерация аниме-изображения с LoRA в викторианском стиле Зададим настройки: Sampling method = DPM++ 2M, Schedule type = Karras, Sampling steps = 20, Width = 512, Height = 768, в настройках Hires. fix установим Upscaler = Latent (он хорошо работает с мультяшной графикой и аниме), Denoising strength = 0,7, Upscale by = 1,9, Hires steps = 0, CFG Scale =7. Batch count зададим равным 20, чтобы сгенерировать сразу несколько изображений, а потом выбрать лучшее из них. Если системные требования вашего компьютера, позволяют можете поставить и больше: 25–50 (рис. 12.2). При этом надо понимать, что для получения задуманного идеального изображения какого-либо универсального метода не существует. То есть, даже написав точно выверенный промт, можно не попасть с методом семплирования, или с методом увеличения, или с количеством семплов генерации, или другими настройками. Для получения желаемого изображения нужно как можно больше экспериментировать: писать промт, в котором будут присутствовать все детали задуманного изображения, писать подробный негативный промт и ставить Batch count не на одно-два изображения, а сразу на 10–30, чтобы потом выбрать из них самое лучшее и уже дорабатывать только его в режиме img2img (это будет рассмотрено на уроках части VI). Здесь вы являетесь художником, который методом проб, ошибок и экспериментов ищет идеальный стиль (свое идеальное изображение). В целом у нас получилось неплохое изображение в стиле аниме. Добавим загруженные негативные промты в поле для негативной подсказки таким же способом, как добавили триггерную фразу для LoRA. Найдем подраздел настроек Textual Inversion, найдем нужный Embedding и нажмем на него, находясь курсором в поле негативной подсказки (рис. 12.3).
192 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.2. Генерация с использованием заданных промта и настроек с Batch count = 20 Рис. 12.3. Добавление негативного Embedding в поле отрицательного промта
Урок 12. Примеры использования нейросети 193 Для придания определенным словам в подсказке большего «веса» — т. е. чтобы сделать их для нейросети более важными, в промте можно выделить нужное словосочетание и нажать комбинацию клавиш <Сtrl+<↑>. Так, например, для словосочетания: foreground beautiful anime girl — «вес» до его изменения равен единице, а после выделения и нажатия указанной комбинации клавиш уже будет равен 1.1: foreground beautiful anime girl:1.1. Нажимая несколько раз клавишу <↑>, можно увеличить «вес» словосочетания вплоть до 1.6. Далее его лучше не поднимать, поскольку возрастет процент появления артефактов. Итоговая версия положительного промта выглядит теперь так: (foreground beautiful anime girl:1.3), (red hair, in a red dress:1.3), black shoes on her feet, background interior of an old castle, living room, (fireplace with fire in the background:1.1), landscape painting hanging on the wall above the fireplace, (anime style:1.1), good lighting, day <lora:Victorian_Anime_Art_v3_r1:1> Victorian, Renaissance, Monet. А негативного так: negative_hand-neg, ng_deepnegative_v1_75t (рис. 12.4). Рис. 12.4. Генерация с использованием увеличенного «веса» отдельных слов промта и негативных Embedding
194 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.5. Результаты генерации аниме-изображения в викторианском стиле Как можно видеть на рис. 12.5, по результатам генерации получилось создать 4– 6 достаточно неплохих изображений, с которыми можно уже дальше работать. Генерация персонажа в стиле компьютерных игр Воспользуемся LoRA для генерации персонажей в стиле Pixel Art и сгенерируем короля, похожего на персонажа компьютерной игры «Yes, Your Grace» (рис. 12.6). Напишем промт: (foreground a medieval king sits on a wooden throne:1.4), (a golden crown on the king's head:1.1),( a brown beard of the king:1.1), curly brown hair on the king's head, (the king is dressed in a green shirt:1.1), a knight's steel chain mail is worn over the shirt, blue trousers of the king, black shoes, the background is the throne room of a medieval castle, good lighting, bright light, day <lora:pixel sprites:1> pixel,(pixel art:1.1),pixelart,xiangsu,xiang su. Часть промта: <lora:pixel sprites:1> pixel,(pixel art:1.1),pixelart,xiangsu,xiang su — это загруженная ранее (см. урок 10) LoRA на
Урок 12. Примеры использования нейросети 195 Рис. 12.6. Генерация короля на троне в стиле Pixel Art Рис. 12.7. Результат генерации короля в стиле Pixel Art
196 Часть IV. Генерация изображений по промту: вкладка txt2img Pixel Art. Усиление веса отдельных словосочетаний в промте добавлено для визуализации короля — главного объекта (персонажа) в кадре (рис. 12.7). Генерация логотипов, одежды, архитектуры и графики для 2D-игр Генерация логотипа компании Переключите Checkpoint с версии 1.5 на версию XL, затем перейдите на вкладку Extensions и нажмите кнопку Apply and restart UI. После перезагрузки интерфейса у нас появились LoRA для Checkpoint версии XL. Нажмите нужную LoRA, чтобы появились триггерные слова (рис. 12.8). Рис. 12.8. Выбор LoRA версии XL для генерации логотипов Добавим положительный промт на тему логотипа для ИТ-компании примерно такого вида: detailed (logo for an IT company:1.3), (the development of a futuristic logo with the image of a black spaceship on a silver background:1.2), next to the spaceship Moon and space, <lora:LogoRedmondV2-Logo-LogoRedmAF:1> logo, logoredmaf. Автор этой LoRA рекомендовал поставить разрешение 1024×1024 и пользоваться в промте словами типа: детализированный, минималистичный и красочный, черный объект и белый фон, белый фон и черный главный объект. Batch count сразу поставим на 10, чтобы после генерации выбрать наилучший результат, Sampling
Урок 12. Примеры использования нейросети 197 method, Schedule type и Sampling steps оставляем по умолчанию, т. е. DPM++ 2M, Automatic и 20 соответственно. Настройку Hires. fix использовать не будем, поскольку размера логотипа, равного 1024 на 1024, вполне хватит для дальнейшей работы уже после генерации. CFG Scale оставляем равным 7 и нажимаем кнопку генерации (рис. 12.9). Рис. 12.9. Генерация логотипа для ИТ-компании Для получения более детализированного результата добавим в промт слова: (high detail:1.5), detailing, (studio lighting:1.2). Теперь промт выглядит так: detailed (logo for an IT company:1.3), (the development of a futuristic logo with the image of a black spaceship on a silver background:1.2), next to the spaceship Moon and space, <lora:LogoRedmondV2-Logo-LogoRedmAF:1> logo, logoredmaf, (high detail:1.5), detailing, (studio lighting:1.2). А также сократим подсказку и сделаем ее проще: (detailed logo for an IT company the image of a computer on a silver background:1.3), <lora:LogoRedmondV2-LogoLogoRedmAF:1> logo, logoredmaf, (high detail:1.5), detailing, (studio lighting:1.2). Добавим негативный промт: bad art, ugly, deformed, watermark, duplicated и запустим генерацию (рис. 12.10). В результате генерации по заданному промту нейросеть сгенерировала 10 изображений, на которых видны разные системные блоки компьютеров (рис. 12.11). Полученный результат не совсем подходит под наш запрос, поэтому конкретизируем наш положительный промт: (detailed futuristic logo with the image of a computer:1.3), (a blue computer on a white background:1.3), <lora:LogoRedmondV2-
198 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.10. Генерация логотипа для ИТ-компании (измененный промт) Рис. 12.11. Результат генерации по промту на создание логотипа для ИТ-компании
Урок 12. Примеры использования нейросети 199 Logo-LogoRedmAF:1> logo, logoredmaf, (high detail:1.5), detailing, (studio lighting:1.2). В негативном промте оставим предыдущий текст: bad art, ugly, deformed, watermark, duplicated (рис. 12.12). Рис. 12.12. Генерация логотипа для ИТ-компании (конкретизированный промт) Если после генерации полученные изображения вам все равно нравятся, но хотелось бы увидеть больше вариантов, то можно поставить Batch count на 13–20 генераций. После трех генераций по 10–20 изображений каждая получилось выделить девять неплохих результатов (рис. 12.13), которые при желании можно всячески улучшать и дорабатывать или работать с ними далее в редакторах типа Photoshop, GIMP, Illustrator или Inkscape.
200 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.13. Итоговый результат генерации логотипов Генерация одежды для мужчины Напишем промт для парня: young guy of European nationality, brunette, curly hair, dressed in a white shirt, blue tie, black tuxedo, black trousers, black shoes, studio shot, studio lighting, excellent lighting, bright light, background white background. В негативном промте запишем: bad art, ugly, deformed, watermark, duplicated. Checkpoint поставим SD Juggernaut_XL, Batch count = 15, Width уменьшим до 664, а Height оставим 1024. Hires. fix использовать не станем (рис. 12.14). Получилось несколько неплохих генераций (рис. 12.15), однако в промте было указано сгенерировать черный смокинг (black tuxedo) поверх белой рубашки, но в результате его не оказалось. Скорее всего, нейросеть не знает слова «смокинг» (она еще учится, поэтому всё впереди). Перегенерировать самого парня мы не станем, попробуем сохранить все настройки, в том числе и Seed = 3433132778, но поменяем одежду: young guy of European nationality, brunette, curly hair, dressed in a blue shirt, white tie, black trousers, blue shoes, studio shot, studio lighting, excellent lighting, bright light, background white background, и нажмем кнопку генерации (рис. 12.16). Теперь из-за совпадения всех настроек, кроме отдельных элементов промта, нейросеть сгенерировала очень похожего человека, но в другой одежде (рис. 12.17).
Урок 12. Примеры использования нейросети Рис. 12.14. Генерация мужской одежды Рис. 12.15. Результаты генерации мужской одежды 201
202 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.16. Генерация одежды (голубая рубашка, белый галстук) Рис. 12.17. Результаты генерации парня в одежде (голубая рубашка, белый галстук)
Урок 12. Примеры использования нейросети 203 А как сохранять одну и ту же позу человека, но при разной одежде, — мы узнаем на следующих уроках. Заметим, что в основном checkpoint’ы модели SD Juggernaut_XL обучены большинству понятий одежды, однако для своеобразной одежды придется устанавливать отдельные LoRA (рис. 2.18). Рис. 12.18. LoRA на своеобразную одежду Генерация архитектуры Изменим модель Checkpoint на SD 1.5 epicrealism_naturalSinRC1VAE. Перезагрузим интерфейс SD, чтобы у нас появились LoRA для других поколений моделей, — нажмите для этого кнопку Apply and restart UI в разделе настроек Extensions. П РИМЕЧАНИЕ Тот Checkpoint, на котором вы будете генерировать что-либо, играет достаточно маленькую роль в генерации конкретных объектов, мест и персонажей. Загружайте новые модели и экспериментируйте для достижения лучших результатов. Выберем LoRA xsarchitectural-8japanwabisabi автора XSarchitectural (японский стиль архитектуры), нажмем на нее, находясь курсором в текстовом поле положительного промта, и допишем перед триггерными словами промт: the interior of a rich bedroom, a large double bed in the center of the room, carpet, lamp, flower, vase,
204 Часть IV. Генерация изображений по промту: вкладка txt2img chair, ceiling, plant, window, curtain, sofa, gold, dramatic lighting, soft lighting, interior landscape, reflection. В результате итоговый промт будет выглядеть как: the interior of a rich bedroom, a large double bed in the center of the room, carpet, lamp, flower, vase, chair, ceiling, plant, window, curtain, sofa, gold, dramatic lighting, soft lighting, interior landscape, reflection, <lora:xsarchitectural-8japanwabisabi:1> japanese wabi sabi style, living room, tv, sofa, chair, design table, interior design, global illuminations, bright, fhd, 4k, high resolution, hyper quality, high detail, full details, realistic, hyperrealism, ultra-wide shot, canon 5d, 1fujifilm xt100, sony alpha, interior visualisation, v-ray, quixel megascans render, octane render. В негативном промте оставим запрос, использованный в предыдущем разделе: bad art, ugly, deformed, watermark, duplicated, зададим соотношение сторон: 512×512, Batch count = 20 и воспользуемся параметром Hires. fix: Upscaler = Latent, Schedule type = Automatic, Upscale by = 2 (рис. 12.19). Рис. 12.19. Генерация интерьера спальни Немного изменим теперь промт и напишем: the interior of a rich bedroom, a large double bed in the center of the room, carpet, lamp, flower, window, curtain, soft lighting, interior landscape, reflection, <lora:xsarchitectural-8japanwabisabi:1> living room, TV, sofa, armchair, interior design, global lighting, bright, fhd, 4k, high resolution, high quality, high detail, all details, realistic, hyperrealism, interior visualization, v-ray, quixel megascans rendering, octane rendering.
Урок 12. Примеры использования нейросети 205 Мы получили несколько изображений — вот два наиболее отличающиеся из них (рис. 12.20). Таким же образом можно сгенерировать интерьер ванной, кухни и других зон в квартире или доме. Рис. 12.20. Результаты генерации спальни: два изображения Генерация графики для 2D-игр Попробуем сгенерировать задние фоны в стиле пиксельной графики для 2D-игр без использования специальных LoRA. Чтобы правильно сформулировать нужные слова для промта, можно воспользоваться фотохостингом Pinterest и написать запрос: игровой дизайн локации 2d1 (рис. 12.21). Выберем один из выданных поисковой строкой результатов2 (рис. 12.22), загрузим это изображение, поместим его на вкладку Extras | Single Image, активируем параметр Caption, выберем модель BLIP и нажмем кнопку генерации (рис. 12.23). В результате мы получили текст для промта: a game with a bunch of different items in it and a person standing on the other side of the game, Chris LaBrooy, 2d game art, concept art, sots art — копируем его в окно позитивного промта вкладки txt2img, устанавливаем настройки: Sampling steps = 20, Sampling method = DPM++ 2M, Schedule type = Automatic, Width = 1024, Height = 768, Batch count = 10, CFG Scale = 7, Checkpoint = Juggernaut_XL — и нажимаем кнопку генерации (рис. 12.24). Результат генерации можно дополнительно увеличить, прогнав через режим Extras | Upscale (рис. 12.25), а при желании после этого загрузить полученные 1 2 См. https://goo.su/Ubxj3. См. https://goo.su/gOHmtCx.
206 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.21. Поиск игровой графики для локации 2D-игры на ресурсе Pinterest Рис. 12.22. Изображение, найденное на Pinterest и принятое нами за образец для генерации
Урок 12. Примеры использования нейросети Рис. 12.23. Генерация текста, описывающего изображение с помощью модели BLIP Рис. 12.24. Генерация уровня игры 207
208 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 12.25. Увеличение изображения, показанного на рис. 12.25 Рис. 12.26. Результаты генерации уровня 2D-игры (четыре изображения)
Урок 12. Примеры использования нейросети 209 изображения в любой графический редактор и увеличить для них параметры резкости, четкости и контраста. После увеличения и придания четкости объектам фона, необходимо разделить изображения на задний фон (Canvas) и спрайты земли (объект «платформа»), а затем собрать все спрайты в одну большую платформу (рис. 12.26). Удалить фон можно в большинстве программ для работы с графикой. Процесс создания из сгенерированных изображений уровня игры поэтапно показан на рис. 12.27. Рис. 12.27. Этапы создания графики для уровня 2D-игры
210 Часть IV. Генерация изображений по промту: вкладка txt2img Далее полученную графику можно переносить в игровые движки типа Unity, Construct или GDevelop, превращая графические объекты в спрайты (Sprite) и назначая им физику компонентов 2D-коллайдеров. Для улучшения результатов, полученных на базе основной модели, рассмотренной в этом примере, можно загрузить и добавить специальные LoRA на создание графики для 2D-игр:  Game icon — от автора technomagix для SDXL 1.0;  [Game Assets] Cartoon-style 3D isometric background assets for small games — от автора juaner0211589 для SD 1.5;  BACKTOON - Simple Cartoon Background Maker для SDXL 1.0 — от автора Clumsy_Trainer. * * * Подробную информацию о создании игр вы найдете в следующих источниках:  удаление фона: https://goo.su/Niav;  уроки Unity для школьников: Как сделать 2D-платформер: https://goo.su/XIvbH;  создание 2D-игры в Unity: https://goo.su/QkuR;  создание 2D-платформера в Construct: https://clck.ru/3CgKih;  GDevelop: https://gdevelop.io/ru-ru;  Construct: https://www.construct.net/en.
УРОК 13 Сравнение методов генерации по разным настройкам  Выбираем Sampling method: анализ на примере портретной генерации  Улучшаем качество изображения: настройки Schedule type, Hires. fix, Denoising strength, Upscaler • Настройка Schedule type • Настройка Hires. Fix и Denoising strength • Виды Upscaler и их зависимость от количества шагов Hires Выбираем Sampling method: анализ на примере портретной генерации Рассмотрим изменение результатов генерации на примере настройки Sampling method. Перейдем для этого в режим txt2img и зададим следующие параметры генерации: Schedule type = Automatic, Width = 712, Height = 1032, Batch count = 1, CFG Scale = 7, Hires. fix — не используем, положительный промт: portrait of a beautiful girl, high detail, photo, негативный промт — не используем. Установим Checkpoint = Juggernaut XL, Seed = 3741014956 (табл. 13.1). Таблица 13.1. Сравнение видов Sampling method для 20 и для 9 проходов Sampling method DPM++ 2M Результат генерации Время генерации (в секундах) при Sampling steps = 20 20,5 Результат генерации Время генерации (в секундах) при Sampling steps = 9 7,9
212 Часть IV. Генерация изображений по промту: вкладка txt2img П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Исходя из результатов генераций и времени, затраченного на них, можно сделать следующие выводы:  методы: DPM adaptive, PLMS, DPM fast, Heun — показали наихудшие результа- ты как при 20 «семплах», так и при 9. На изображениях видны пикселы, нарушена цветопередача изображения или анатомия лица;  методы: LMS, DPM++ 3M SDE, DPM++ 2M SDE Heun и DPM++ 2M SDE — можно использовать только при количестве семплов свыще 12 (был проведен еще один тест, который не вошел в приведенную таблицу);  метод LCM — добавляет размытие изображения на любом количестве «семп- лов», поэтому его можно применять лишь для специфических задач, но в большинстве своем к этому методу лучше не прибегать;  результаты без искажений на малом количестве семплов показали методы: DPM++ 2M, DPM++ SDE, DPM++ 2S a, Euler a, Euler, Restart, DDIM и UniPC;  самыми лучшими в соотношении время/качество генерации стали методы: DPM++ 2M, Euler, DDIM и UniPC;  методы: DPM++ SDE и Restart — показали самый резкий, контрастный и прора- ботанный результат при количестве семплов свыше 30;  методы: DPM2 и Restart — показали наилучшее совпадение результатов генера- ции при разном количестве семплов, но одинаковом Seed. Улучшаем качество изображения: настройки Schedule type, Hires. fix, Denoising strength, Upscaler В этом разделе приведены таблицы, в которых сравниваются методы семплирования, тип «шедила» (Schedule) и настройки Hires. fix для изображений с одним сидом. Перейдем в режим txt2img и установим следующие параметры генерации: Sampling steps = 20, Width = 712, Height = 1032, Batch count = 1, CFG Scale = 7, Hires. fix — не используем, положительный промт: portrait of a beautiful woman, a woman in an evening royal dress, the interior of a rich castle in the background, high detail, evening, photography, негативный промт — не используем. Установим Checkpoint = Juggernaut XL, Seed = 3121809985. Настройка Schedule type Сравним тип Schedule и метод Sampling на примере изображения девушки в замке. Под каждым изображением в скобках указано время генерации в секундах (табл. 13.2 и 13.3).
Урок 13. Сравнение методов генерации по разным настройкам 213 Таблица 13.2. Сравнение настройки Schedule type для избранных видов Sampling method (подборка 1) с одним Seed Automatic Uniform Karras (14,0) (13,9) (14,0) DPM++ 2M П РИМЕЧАНИЕ Здесь показано только начало таблицы Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Таблица 13.3. Сравнение настройки Schedule type для избранных видов Sampling method (подборка 2) с одним Seed Exponential Polyexponential SGM Uniform (24.1) (24.0) (24.0) DPM++ SDE П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Какие-то варианты Schedule генерируют дольше, но при этом качественнее, какието быстрее, но хуже. Один тип Schedule интерпретирует генерацию по-своему и добавляет корону, другой — нет. Вариант использования Schedule type подбирается в зависимости от поставленных задач и является вашим выбором.
214 Часть IV. Генерация изображений по промту: вкладка txt2img Настройки Hires. fix и Denoising strength Оставим настройки, сделанные в предыдущем разделе, включив только Hires. fix, и установим Upscale by на 1,9 и Upscaler = Latent (рис. 13.1). Слишком малое значение Denoising strength приведет к нечеткости изображения, а слишком большое — сильно изменит его. Рассмотрим результаты генерации при разном Denoising strength (табл. 13.4). Рис. 13.1. Настройки генерации для разных значений Denoising strength Таблица 13.4. Сравнение генерации при разных значениях Denoising strength Denoising strength 0,05 Результат генерации Denoising strength 0,1 Результат генерации
Урок 13. Сравнение методов генерации по разным настройкам 215 П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Как можно видеть, начиная с Denoising strength = 0,85 и далее, наблюдается серьезное деформирование анатомии тела девушки в районе шеи, лопаток, груди и спины. А до 0,55 — изображение размыто и страдает от артефактов. Поэтому Denoising strength лучше ставить в пределах от 0,55 до 0,80. Виды Upscaler и их зависимость от количества шагов Hires Установим Sampling method = DPM++ 2M, Schedule type = Automatic, Denoising strength = 0,7 и выполним сравнение результатов генераций по видам Upscaler и количеству Hires steps (табл. 13.5). Таблица 13.5. Сравнение Upscaler и количества Hires steps (шагов Hires) Hires steps: 5 Hires upscaler: Latent Hires upscaler: DAT_x2 Hires steps: 20
216 Часть IV. Генерация изображений по промту: вкладка txt2img П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Как можно видеть, при генерации с Upscaler типа DAT возникает ошибка генерации (TypeError: argument of type 'NoneType' is not iterable). Это связано с тем, что этот тип Upscaler не работает с моделью Checkpoint версии XL, а также с ошибкой распаковки несовместимых версий. Однако другие версии Upscaler типа DAT работают с этой моделью, поэтому зайдите на сайт OpenModelDB.info, выберите в фильтрах архитектуру DAT (рис. 13.2), загрузите модели и поместите их по пути stable-diffusion-webui\models\DAT (рис. 13.3). Рис. 13.2. Сайт OpenModelDB: поиск Upscaler DAT Рис. 13.3. Загрузка моделей Upscaler DAT версии _S
Урок 13. Сравнение методов генерации по разным настройкам 217 Попробуем теперь сделать повторную генерацию с Upscaler DAT версии _S (табл. 13.6). Таблица 13.6. Сравнение Upscaler и количества шагов Hires с Upscaler DAT версии _S Hires steps: 5 Hires steps: 20 Hires upscaler: DAT_S_x2 П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Выбор Upscaler зависит от поставленных задач. * * * Подробную информацию о Samplers Stable Diffusion вы найдете в руководстве: https://clck.ru/3GhuXr.
УРОК 14 Секреты создания качественных изображений с людьми  Дорабатываем лицо и руки: ADetailer и Refiner в действии • ADetailer • Refiner  Улучшаем изображение: параметр CFG Scale Дорабатываем лицо и руки: ADetailer и Refiner в действии ADetailer ADetailer — это расширение Stable Diffusion WebUI, предназначенное для детальной обработки изображений. С помощью ADetailer можно серьезно повысить уровень детализации генерируемых изображений частей тела людей. Для ADetailer существуют различные модели, обученные обнаруживать части тела и лица человека (лица, руки, губы, глаза, грудь и пр.), которые нужно дополнительно загрузить. Чтобы установить расширение ADetailer, перейдите на вкладку Extensions | Available, нажмите кнопку Load from:, введите в строке поиска ADetailer и нажмите кнопку Install (рис. 14.1). Завершив установку, для применения настроек перезагрузите Stable Diffusion WebUI, для чего нажмите кнопку Apply and restart UI. После перезагрузки интерфейса нейросети на вкладке txt2img появится вкладка расширения ADetailer. На вкладке ControlNet model можно интегрировать расширение ControlNet с расширением ADetailer, включая «вес» и точку завершения. Для работы с расширением ADetailer загрузите с сайта Hugging Face1 необходимые модели (рис. 14.2) и поместите их по пути stable-diffusion-webui\models\adetailer (рис. 14.3). 1 См. https://clck.ru/3Chort.
Урок 14. Секреты создания качественных изображений с людьми Рис. 14.1. Загрузка расширения ADetailer Рис. 14.2. Загрузка моделей для расширения ADetailer с сайта Hugging Face 219
220 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 14.3. Модели расширения ADetailer (стрелками показаны буквы в именах файлов, означающие размер модели) Буквы s, n и m в именах файлов означают здесь размер модели:  s — Small: более упрощенная версия, фокусирущаяся на ключевых чертах или областях лица. Используется там, где полная детализация лица не требуется;  n — Nano: более маленькая и быстрая версия, чем small-вариант, разработанная для очень ограниченных вычислительных сред. Модель nano отдает приоритет скорости и эффективности в ущерб некоторой точности;  m — Mesh: обеспечивает детальное отображение лица с большим количеством точек. Идеально подходит для требующих детального анализа движений и выражений лица. Рассмотрим подробнее настройки расширения ADetailer на основе настроек и промта, примененных на предыдущем уроке (девушка в замке). Зададим: Sampling steps = 20, Width = 712, Height = 1032, Batch count = 1, CFG Scale = 7, Hires. fix — не используем, положительный промт: portrait of a beautiful woman, a woman in an evening royal dress, the interior of a rich castle in the background, high detail, evening, photography, негативный промт — не используем. Установим Checkpoint Juggernaut XL, Seed = 3121809985. Чтобы расширение заработало, сначала его надо включить, щелчком установив флажок ADetailer. Затем включите вкладки с моделями детализации (по умолчанию их только две, но их количество можно увеличить в настройках Stable Diffusion AUTOMATIC1111). На первой вкладке ADetailer, предоставляющей выбор модели детализации, выберите face_yolov8m.pt — Mesh-модель для детального отображения лица (рис. 14.4), после чего переключитесь на вторую вкладку ADetailer, предоставляющую модель для детализации рук, и выберите hand_ yolov8s.pt. В положительном промте первой вкладки напишите: the face of a beautiful young girl, а в положительном промте второй: the hands of a young girl. В негативном промте и там и там напишите: anime.
Урок 14. Секреты создания качественных изображений с людьми 221 Рис. 14.4. Включение расширения ADetailer и его вкладок На рис. 14.5 показаны подвкладки и параметры вкладок расширения ADetailer:  подвкладка Detection отвечает за обнаружение площадей, на которых нужно заменить и детализировать исходное изображение: • параметр Detection model confidence threshold отвечает за минимальный уровень уверенности модели в обнаружении объекта, при котором будет выполнена детальная обработка. Например, значение 0,3 означает, что будут обрабатываться объекты, обнаруженные с уверенностью выше 30%: • параметр Mask min/max area ratio определяет минимальные и максимальные размеры области, которая будет обрабатываться. Например, значения 0 и 1 означают, что обрабатываться будут все обнаруженные области, независимо от их размера; • параметр Mask only the top k largest (0 to disable) лучше оставить по умолчанию;  подвкладка Mask Preprocessing (Предварительная обработка маски) — включа- ет такие параметры, как смещение маски по осям X и Y, эрозия и расширение маски для точной подгонки области обработки;  подвкладка Inpainting — включает параметры для настройки заливки маски, такие как размытие, сила шумоподавления, ширина и высота области заливки. Например, включение опции Inpaint only masked позволяет заливать только замаскированные области. Здесь также можно поменять такой параметр, как separate steps (количество шагов), поставив отличное от оригинала количество, выбрать другой checkpoint, другую модель VAE, изменить sampler, множитель шума (noise multiplier для режима img2img), восстановить лица после ADetailer. Все настройки на этой вкладке лучше оставить по умолчанию.
222 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 14.5. Вкладки расширения ADetailer Процесс генерации с участием расширения ADetailer производится следующим образом: 1. Сначала выполняется первая генерация — согласно настройкам, но без участия ADetailer; 2. Затем выполняется вторая генерация, где детализируется запрос по первой вкладке расширения, — в нашем случае анализируется лицо (рис. 14.6); Рис. 14.6. Генерация лица в расширении ADetailer
Урок 14. Секреты создания качественных изображений с людьми 223 Рис. 14.7. Генерация рук в расширении ADetailer 3. Затем выполняется третья генерация, где детализируется запрос по второй вкладке расширения, — в нашем случае анализируются руки (рис. 14.7). Выполним сравнение генерации без ADetailer и с ADetailer (табл. 14.1). Под каждым изображением в скобках указано время генерации в секундах. Таблица 14.1. Сравнение результатов генерации без ADetailer и с ADetailer Без ADetailer С ADetailer (19,0) (48,4) В результате работы расширения ADetailer было согласно введенному запросу изменено лицо девушки и улучшена детализация рук. Время генерации увеличилось примерно в 2,5 раза — до 48,4 секунды.
224 Часть IV. Генерация изображений по промту: вкладка txt2img Refiner Refiner — это дополнительная модель, используемая для придания изображению реалистичности и детализированности. Refiner обеспечивает аккуратное следование подсказкам и соответствующее исправление изображения. В отличие от расширения ADetailer, Refiner не создает маски для отдельных частей изображения, а производит общую доработку изображения после основного этапа генерации. Для загрузки модели перейдите на сайт Hugging Face1 или же просто введите в поисковую строку Google запрос: sd_xl_refiner_1.0.safetensors, перейдите по первой же ссылке (рис. 14.8) и скачайте найденную модель (рис. 14.9). Рис. 14.8. Поиск модели Refiner Включите загруженную модель Refiner, щелчком установив ее флажок на вкладке Refiner (рис. 14.10) — на ней практически нет настроек, кроме параметра Switch at, отвечающего за то, когда должно произойти переключение на модель Refiner с основной модели (1 — никогда, 0,5 — в середине генерации). Выполним сравнение изображений на значениях параметра Switch at 0,8 и 0,5 (табл. 14.2). Таблица 14.2. Сравнение генерации с моделью Refiner и без нее Switch at Без модели Refiner 0,8 1 См. https://clck.ru/3Gkj9p. С моделью Refiner
Урок 14. Секреты создания качественных изображений с людьми 225 Таблица 14.2 (окончание) Switch at Без модели Refiner С моделью Refiner 0,5 Иногда Refiner улучшает изображение, а иногда — нет, его использование — это ваш выбор. Рис. 14.9. Загрузка модели Refiner с сайта Hugging Face
226 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 14.10. Установка и запуск модели Refiner Улучшаем изображение: параметр CFG Scale Выполним анализ влияния на генерируемое изображение параметра CFG Scale в диапазоне значений от 1 до 30 с шагом +0,5 (табл. 14.3). Параметры настроек поставим те же самые, что и в предыдущем разделе для генерации изображения девушки в замке. Таблица 14.3. Сравнение генераций изображений в зависимости от значения параметра CFG Scale CFG Scale: 2.5 CFG Scale: 1.0
Урок 14. Секреты создания качественных изображений с людьми 227 П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Как можно видеть, при генерации изображения со значениями CFG Scale до 5,5 наблюдаются большие проблемы в анатомии лица. При CFG Scale свыше 15,5 также наблюдаются большие искажения, но не только в анатомии человека, но и в отображении цвета, света, теней, контраста изображения. Следовательно, лучше всего ставить CFG Scale в диапазоне от 6 до 14,5. * * * Подробную информацию про ADetailer и Refiner вы найдете в следующих источниках:  Adetailer: https://clck.ru/3Gktqd;  ADetailer: https://clck.ru/3GktvV;  статья на ресурсе Reddit, посвященная обзору расширения ADetailer: https://goo.su/06wjY;  Refiner: https://goo.su/PUbF5.
УРОК 15 Ускорение написания промта  Установка расширения Dynamic Prompts  Установка расширения Prompt-all-in-one  Генерация золотого кольца с бриллиантом  Создание контента для соцсетей: генерируем 90 изображений цветов одной темы На этом уроке мы установим два расширения, помогающие в генерации изображений. Установка расширения Dynamic Prompts Использование расширения Dynamic Prompts1 ускоряет и упрощает генерацию изображений. Для установки расширения перейдите на вкладку Extensions | Available (рис. 15.1), нажмите кнопку Load from:, напишите в текстовом поле: Dynamic Prompts и нажмите кнопку Install (при наличии расширения вы увидите сообщение Installed). Завершив установку, перейдите на вкладку Installed и нажмите кнопку Apply and restart UI — для перезагрузки интерфейса, чтобы расширение появилось в Stable Diffusion AUTOMATIC1111. П РИМЕЧАНИЕ Бывает, что перезагрузка интерфейса не всегда срабатывает, поэтому лучше перезагрузить полностью всю программу: закрыть программу и консоль и заново запустить ее. После установки расширения на вкладках txt2img и img2img появится новая вкладка Wildcards Manager и новая вкладка настроек Dynamic Prompts (рис. 15.2). Вкладка Dynamic Prompts состоит из четырех параметров с основными настройками и четырех дополнительных вкладок (рис. 15.3). 1 См. https://clck.ru/3GpQhM.
Урок 15. Ускорение написания промта Рис. 15.1. Установка расширения Dynamic Prompts Рис. 15.2. Новая вкладка Wildcards Manager и вкладка настроек Dynamic Prompts 229
230 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 15.3. Настройки расширения Dynamic Prompts Сначала мы рассмотрим вкладку Dynamic Prompts и ее параметры, а потом приведем примеры ее использования.  Основные параметры вкладки: • Dynamic Prompts enabled — включает расширение; • Combinatorial generation — отвечает за генерации комбинаций; • Max generations — задает количество комбинаций; • Combinatorial batches — не включено.  Дополнительная вкладка Prompt Magic включает в себя несколько настроек: • Magic prompt — способ автоматически добавлять модификаторы к вашим подсказкам (использует нейронную сеть для добавления этих данных на основе контекста). При первом использовании Dynamic Prompts потребуется их загрузить, что может занять некоторое время в зависимости от скорости вашего интернетсоединения. Magic prompt хорошо использовать тогда, когда есть определенная идея, но непонятно, как должно выглядеть финальное изображение; • Max magic prompt length — чем больше число, тем больше слов добавляется к исходному промту; • Magic prompt creativity — чем больше число, тем больше творчества и тем меньше система прислушивается к подсказке-промту; • Magic prompt model — нужно выбрать модель, на которой будет работать Magic prompt (потребуется время для загрузки);
Урок 15. Ускорение написания промта 231 • Magic prompt blocklist regex — что-то вроде негативной подсказки только для Magic prompt; • I'm feeling lucky — это аналог функции Magic prompt, только вместо использования нейронной сети настройка задействует поисковую систему Lexica.art, чтобы найти подсказки, соответствующие вводу. Качество может быть разным, но это «также забавный способ исследовать скрытое пространство»; • Attention grabber — добавление вариаций к вашему изображению путем изменения акцента различных терминов в подсказке. Эта настройка случайным образом назначает акцент существующей подсказке; • Minimum/Maximum attention — минимальное и максимальное внимание; • Don't apply to negative prompts — не использовать негативные подсказки.  Дополнительная вкладка Need help? представляет обычный текст, объясняю- щий, как работает расширение Dynamic Prompts. Вы можете включить автоперевод в браузере и перевести весь текст нейросети Stable Diffusion AUTOMATIC1111 вместе с расширением или скопировать текст и перенести его в любой переводчик по вашему выбору.  Дополнительная вкладка Jinja2 templates включает в себя одну настройку и предоставляет следующий текст, объясняющий, как работает и для чего нужна эта вкладка: «Помощь по шаблонам Jinja2. Шаблоны Jinja2 — это экспериментальная функция для расширенной генерации шаблонов. Она не рекомендуется для общего использования, если вы не умеете писать скрипты....». «Если вы используете эти шаблоны, пожалуйста, дайте мне знать, полезны ли они». Похоже, автор сам не до конца уверен в полезности этой вкладки.  Дополнительная вкладка Advanced options включает в себя настройки: Unlink seed from prompt, Fixed seed и Don't generate images — их лучше оставить без изменений. Предположим, мы хотим сгенерировать определенный товар для рекламы своего ювелирного магазина — кольцо с бриллиантом. Напишем промт: diamond ring on a gold band и установим настройки: Checkpoint = Juggernaut_XL, Sampling method = DPM++ 2M, Schedule type = Automatic, Sampling steps = 20, Width = 1000, Height = 1000, Batch count = 4, CFG Scale = 7, Hires. fix — не работает, Refiner — не работает. В результате мы получили четыре изображения кольца с бриллиантом (рис. 15.4). А что если нам нужно изображение платинового кольца? Мы можем использовать вариант синтаксиса Dynamic Prompts (разумеется, нужно его включить) — например: A diamond ring set on a {gold|platinum} band. Так мы получим два промта:  A diamond ring set on a gold band;  A diamond ring set on a platinum band.
232 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 15.4. Результаты генерации золотого кольца с бриллиантом Еще сильнее разнообразим наш промт, добавив: A diamond ring set on a {{rose| yellow|white} gold|platinum} band. Теперь при генерации создастся одна из следующих подсказок:  A diamond ring set on a rose gold band;  A diamond ring set on a yellow gold band;  A diamond ring set on a white gold band;  A diamond ring set on a platinum band. Добавим еще больше вариаций, для чего напишем следующий промт (листинг 15.1). Листинг 15.1. Создание промта с помощью Dynamic Prompts {A diamond|A ruby|An emerald} ring set on a {classic|thin|thick} { {rose|yellow|white} gold | platinum } band В результате этой генерации постоянными здесь будут фрагменты: ring set on a и band — всё остальное будет варьироваться.
Урок 15. Ускорение написания промта 233 Теперь плавно перейдем к вкладке Wildcards Manager и представим, что у нас есть много камней, которые мы хотим использовать в ювелирном изделии. Их можно добавить в качестве вариантов вместе с другими камнями, но при большом количестве вариантов это может стать обременительным. В этом случае лучше использовать так называемый подстановочный знак. Для этого создайте в папке wildcards текстовый файл gems.txt (по умолчанию эта папка находится по пути extensions/ sd-dynamic-prompts/wildcards) и добавьте в него по одному варианту на строку (рис. 15.5). diamond ruby emerald Рис. 15.5. Создание для подстановочного знака уникального текстового файла Изменим наш промт, как показано в листинге 15.2. Листинг 15.2. Измененный промт A __gems__ ring set on a {classic|thin|thick} { {rose|yellow|white} gold
234 Часть IV. Генерация изображений по промту: вкладка txt2img | platinum } band Фрагмент __gems__ является здесь подстановочным знаком и будет действовать как вариант, использующий каждый драгоценный камень из файла gems.txt. Обратите внимание, что имя подстановочного знака совпадает с именем файла — т. е. представляет собой запись gems.txt без .txt в конце с добавленным двойным подчеркиванием __ в начале и в конце подстановочного знака. Файлы подстановочных знаков могут использовать тот же синтаксис, который мы можем использовать в наших подсказках. Чтобы продемонстрировать это, давайте создадим в папке wildcards новый файл с именем precious_metals.txt и запишем в него следующий текст (рис. 15.6): {rose|yellow|white} gold platinum silver Рис. 15.6. Создание в папке wildcards файла подстановочного знака precious_metals.txt Теперь наше приглашение выглядит так: A __gems__ ring set on a {classic|thin|thick} __precious_metals__ band Результаты генерации с ним показаны на рис. 15.7. По умолчанию Dynamic Prompts генерирует случайные подсказки из нашего шаблона — каждая подсказка выберет случайный драгоценный камень, случайную форму кольца и случайный драгоценный металл. Давайте подсчитаем общее количество возможных колец, которые может сгенерировать наш шаблон: Assume we have ten different types of gems in our gems.txt file Three band thicknesses Three metals, although gold has three variants, so we actually have five metals. The total number of potential prompts is 10 * 3 * 5 = 150 different prompts То есть здесь предусмотрено 150 вариантов запросов.
Урок 15. Ускорение написания промта 235 Рис. 15.7. Результаты генерации десяти колец с расширением Dynamic Prompts Предположим, мы хотим сгенерировать все варианты. В этом случае перейдите в комбинаторный режим и задайте параметры, указанные на рис. 15.8. Рис. 15.8. Настройка комбинаторного режима в расширении Dynamic Prompts Вкладка Wildcards Manager представляет собой продуманную коллекцию подстановочных знаков, которую можно использовать для создания подсказок оптом или выбрать файлы, которые вам интересны, «не изобретая велосипед каждый раз». Конечно, вы можете создавать и свои собственные файлы подстановочных знаков и помещать их в папку wildcards. Чтобы открыть конкретные файлы wildcard, достаточно щелкнуть на предметной области в окне вкладки (рис. 15.9).
236 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 15.9. Вкладка Wildcards Manager: коллекции файлов wildcard Вы можете скопировать отсюда любой подстановочный знак и использовать его в своих подсказках — например: __artists/European Art/renaissance/italian_renaissance__. Самые разнообразные и интересные подсказки связаны с искусством и творчеством, использовать их — это отличный способ исследовать разные стили. Установка расширения Prompt-all-in-one Расширение Prompt-all-in-one предназначено для улучшения опыта использования полей ввода положительных/негативных подсказок. Оно позволяет производить автоматический перевод, просмотр истории и избранного. Функции расширения Prompt-all-in-one:  автоматический перевод — автоматически переводит слова положительных/ негативных подсказок, поддерживая несколько языков;
Урок 15. Ускорение написания промта 237  избранное — позволяет быстро и пакетно добавлять в закладки любимые слова- подсказки;  ChatGPT — интеллектуально генерирует слова-подсказки с помощью ChatGPT. Попробуйте установить расширение Prompt-all-in-one самостоятельно — через вкладку Extensions или вручную, используя ссылку: https://goo.su/w10VER. После установки расширения в интерфейсе появятся две вкладки: одна — под текстовым полем положительного промта, другая — под полем негативного промта. Для настройки расширения:  нажмите на значок глобуса и выберите свой язык — русский (рис. 15.10);  нажмите на значок шестеренки, и вам откроются дополнительные настройки (рис. 15.11);  нажмите на значок API , выберите нужный сервис для перевода слов (есть бесплатные и платные сервисы — выбираем бесплатный) и нажмите кнопку Сохранить; Рис. 15.10. Расширение Prompt-all-in-one: настройка языка интерфейса Рис. 15.11. Расширение Prompt-all-in-one: дополнительные настройки расширения
238 Часть IV. Генерация изображений по промту: вкладка txt2img  вернитесь в настройки и установите флажки у параметра «Автоматический перевод новых ключевых слов» подсказки для данной функции» стройка (рис. 15.12). и у параметра «Включить всплывающие — чтобы знать, что обозначает каждая на- Рис. 15.12. Расширение Prompt-all-in-one: параметры автоматического перевода слов и включения всплывающих подсказок Теперь при заполнении текстового поля на русском языке словом, например, собака и нажатии клавиши <Enter> — слово будет переведено на английский язык и вставлено в окно положительного промта, а ниже будет написано слово «собака» на английском и русском языках (рис. 15.13); Рис. 15.13. Расширение Prompt-all-in-one: автоматический перевод слов  мы можем скрыть стандартное поле ввода, выбрав соответствующий пункт на- строек (рис. 15.14); Рис. 15.14. Расширение Prompt-all-in-one: скрытие стандартного поля ввода  при наведении курсора на слово появляются дополнительные настройки введен- ных слов (рис. 15.15): можно увеличить/уменьшить «вес» слова, добавить/убрать круглые скобки, добавить/убрать квадратные скобки, перенести слово на другую строку, принудительно перевести слово (если по каким-либо причинам оно не перевелось автоматически), скопировать слово в буфер обмена, добавить в избранное, добавить в черный список и отключить слово (именно отключить,
Урок 15. Ускорение написания промта 239 Рис. 15.15. Расширение Prompt-all-in-one: дополнительные настройки введенных слов а не удалить, — при необходимости его можно будет опять включить, чтобы попробовать сделать генерацию с этим словом и без него);  можно изменить формат промта (рис. 15.16);  увидеть черный список ключевых слов (рис. 15.17); Рис. 15.16. Настройка изменения формата промта Рис. 15.17. Настройка черного списка ключевых слов  настроить горячие клавиши, стиль расширения плагина и тему всего интерфейса нейросети (рис. 15.18);  а также посмотреть новости и обновления расширения (рис. 15.19); Рис. 15.18. Настройка горячих клавиш, стиля расширения и его темы Рис. 15.19. Настройка обновления расширения
240 Часть IV. Генерация изображений по промту: вкладка txt2img  следующая интересная настройка — история (рис. 15.20). Благодаря этой настройке можно посмотреть историю всех введенных ранее промтов, добавить некоторые из них в избранное, скопировать их, удалить или использовать. Так же можно удалить и всю историю. История промтов делится на четыре вкладки: положительные и отрицательные промты для двух вкладок: txt2img и img2img; Рис. 15.20. Просмотр истории всех введенных ранее промтов  можно посмотреть избранное (избранные промты) (рис. 15.21, а) и его настрой- ки (рис. 15.21, б); а б Рис. 15.21. Параметр Избранное (а) и его настройка (б)  так же можно переводить все слова одним нажатием, копировать ключевые сло- ва и удалять их (рис. 15.22); Рис. 15.22. Работа с ключевыми словами
Урок 15. Ускорение написания промта 241  и использовать для генерации промта ChatGPT (рис. 15.23, а), но для этого вам понадобится API-ключ (рис. 15.23, б);  можно задействовать встроенные теги (слова) для ускорения написания запроса (рис. 15.24). а б Рис. 15.23. Использование ChatGPT для генерации промтов Рис. 15.24. Использование встроенных тегов (слов) для ускорения написания промта
242 Часть IV. Генерация изображений по промту: вкладка txt2img Генерация золотого кольца с бриллиантом Чтобы закрепить знания и умения, полученные в предыдщих разделах, сгенерируем золотое кольцо с бриллиантом. Включите для этого расширения Dynamic Prompts Prompt-all-in-one и напишите промт: кольцо на палец с бриллиантом на {золотой|платиновой} окантовке (рис. 15.25). В результате генерации мы получим четыре изображения (рис. 15.26). Вы можете внести изменения в промт, чтобы улучшить результаты генерации. Рис. 15.25. Генерация золотого кольца с бриллиантом Рис. 15.26. Результат генерации золотого кольца с бриллиантом Создание контента для соцсетей: генерируем 90 изображений цветов одной темы Задайте следующие параметры генерации: Sampling steps = 20, Width = 800, Height = 1040, Batch count = 30, Batch size = 3, CFG Scale = 7, Hires. fix — не используем, положительный промт: beautiful flowers, roses, advertising photo, негативный
Урок 15. Ускорение написания промта Рис. 15.27. Настройка генерации 90 изображений цветов Рис. 15.28. Результат генерации 90 изображений цветов 243
244 Часть IV. Генерация изображений по промту: вкладка txt2img промт — не используем, установите Checkpoint Juggernaut XL, Seed = –1, и нажмите кнопку Генерировать (рис. 15.27). Требуемые 90 изображений после генерации мы получим благодаря настройкам Batch count = 30 и Batch size = 3. Этот подход дает возможность установить нужные настройки, зная только примерно, какой результат желательно получить в итоге, — т. е. поставить на генерацию сразу много изображений, а потом взять из них самые лучшие. Через 34 минуты мы получили 90 изображений цветов роз для наполнения группы цветочного магазина — задача выполнена (рис. 15.28). * * * Подробную информацию про ускорение написания промта вы найдете в следующих источниках:  Dynamic Prompts extension: https://clck.ru/3GqhTH;  Wildcards: https://clck.ru/3Gqhao;  Prompt-all-in-one: https://clck.ru/3Gqhdk.
УРОК 16 Скрипты и расширения для ускорения работы  Встроенные скрипты • Скрипт Prompt matrix: создание одного изображения в разных стилях (генерируем загородный дом) • Скрипт X/Y/Z plot: создание нескольких сеток изображений с различными параметрами • Скрипт Prompts from file or textbox: создание списка заданий для нейросети  Загружаемые расширения для ускорения работы • Расширения для настройки быстрой смены соотношения сторон изображения  Sd-webui-ar-plus  Aspect Ratio Resolutions selector-xhox • Расширение State: сохраняем настройки предыдущей генерации  Style Selector for SDXL 1.0: настройка стилей Встроенные скрипты Скрипт Prompt matrix: создание одного изображения в разных стилях (генерируем загородный дом) Prompt matrix — это функция, позволяющая генерировать изображение при разделении всех ключевых слов-подсказок через символ «|», а не через символ «,», как мы это делаем обычно. В целом Prompt matrix можно представить как маленькую альтернативу Dynamic Prompts, но без такого большого синтаксиса и вариантов выбора. Сгенерируем загородный дом в разных стилях. Задайте для этого следующие настройки: Sampling method = DPM++ 2M, Schedule type = Automatic, Sampling steps = 20, Width = 1200, Height = 800, Batch count = 1, Batch size = 1, CFG Scale = 7, Seed = 2058319142. Откройте вкладку Script, установите скрипт Prompt matrix и напишите в текстовом поле расширения Prompt-all-in-one промт (рис. 16.1): country
246 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 16.1. Ввод промта для генерации загородного дома house | photo art | illustration | anime | cinematic lighting (загородный дом | фотография | иллюстрация | аниме | кинематографическое освещение). Настройки скрипта Prompt matrix представлены пятью параметрами (рис. 16.2):  Put variable parts at start of prompt — перемещает часть промта с вариантами в начало промта;  Use different seed for each picture — устанавливает рандомный Seed для всех генераций со скриптом Prompt matrix; Рис. 16.2. Настройки скрипта Prompt matrix
Урок 16. Скрипты и расширения для ускорения работы 247  Select prompt (positive/negative) — определяет, на основе какого промта (поло- жительного/отрицательного) будет работать скрипт Prompt matrix;  Select joining char (comma/space) — соединяющий символ в виде запятой или пробела;  Grid margins (px) — растояние между изображениями в матрице (в пикселах). Выполнив генерацию, мы получили 16 отдельно сгенерированных изображений в виде матрицы 4×4 (рис. 16.3) — столько вариантов было указано в исходном промте. При этом вертикаль в матрице организована на основе первой части промта: | photo art | illustration, а горизонталь — на основе его второй части | anime | cinematic lighting. Самое первое изображение верху слева — это первое ключевое слово в промте: country house. Девять изображений посередине — это смешения стилей по вертикали и горизонтали. Рис. 16.3. Результат выполнения скрипта Prompt matrix Скрипт X/Y/Z plot: создание нескольких сеток изображений с различными параметрами Скрипт X/Y/Z plot (рис. 16.4) позволяет делать сетки изображений с разными параметрами для сравнения результатов генерации по X/Y и Z и выбирать наилучшие варианты. С помощью именно этого инструмента здесь было произведено сравнение в параметрах Hires: Sampling method, Schedule type, Denoising strength, Upscaler и количестве steps.
248 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 16.4. Настройки скрипта X/Y/Z plot Настройки скрипта X/Y/Z plot представлены следующими параметрами:  Draw legend — добавляет заголовок таблицы с белым фоном и подписями параметров;  Keep -1 for seeds — по умолчанию генерирует один случайный сид для всей сетки (если флажок не установлен). Чтобы для каждой картинки выбирался случайный сид, поставьте флажок (важно, чтобы в основных параметрах также стояло значение –1);  Include sub images — показывает в превью (обложке) сгенерированные кар- тинки;  Include sub grids — показывает в превью сгенерированные сетки (когда исполь- зуются все оси);  Grid margins (px) — добавляет отступы между картинками (например, 22 пик- села);  Swap axes — меняет местами настройки на указанных осях. Если у полей были разные настройки, они могут показаться пустыми, и нужно будет выбрать тот же тип еще раз. Кнопка рядом с полем для значений вставляет все возможные варианты. Например, если вы хотите менять семплер, нажмите кнопку, и все доступные семплеры появятся в поле. Эта кнопка доступна для всех полей с выбором значений или параметров по умолчанию;  ось type — настройка, ось values — значение этой настройки. Изменение букв меняет расположение картинок: для X — горизонтально, для Y — вертикально, для Z — на отдельной сетке (т. к. на 2D-картинке нет третьего измерения). Рас-
Урок 16. Скрипты и расширения для ускорения работы 249 ширения также могут добавлять свои настройки в этот список (Ось type и Ось values). Выбор параметров генерации выполняется следующим образом:  выбор из того, что есть: Sampler, Checkpoint name, Hires upscaler, VAE, Styles;  выбор конкретных значений: Seed (Var. seed и Var. Strength — отвечают за смешивание сидов), Steps и Hires steps, CFG Scale (Negative Guidance minimum sigma, Sigma Churn, Sigma min, Sigma max, Sigma noise, Eta, UniPC Order — для тонкой настройки работы разных семплеров), Clip skip — на сколько слоев раньше закончится обработка текстовой моделью, Denoising, Face restore. На вкладке img2img добавляются еще два параметра: Image CFG Scale (то же самое, что и обычный CFG, только относится к картинке, которую обрабатываем) и Cond. Image Mask Weight — это «вес» маски при инпеинте: чем больше значение — тем больше изменений;  выбор дополнительных скриптов: скрипт Prompt S/R — отвечает за поиск и замену определенного текста в промте на тот, который укажем (скрипт сам при генерации найдет и поменяет одно на другое, причем первым должно идти то, что уже есть в промпте), скрипт Prompt order — находит указанные слова и меняет их местами, что может пригодиться для оттачивания (отбора) стилей. Что делать, если в выборе конкретных значений нужно выбрать CFG, например от 3 до 9? Вместо указания всех чисел можно указать диапазон 3-9. Для меньшего шага пишите 3-9 (+0.5), где +0.5 — это шаг изменения. Скрипт сначала сгенерирует результат с CFG, равным 3, затем — с 3.5 и т. д. Можно сделать наоборот — указать, например, 9-3 (–0.5), чтобы получить тот же диапазон в обратном порядке. Или 3-9 [3] — в таком случае скрипт сам подберет три равных промежутка (3, 6, 9), а для, например, 3-9 [5] — 3, 4.5, 6, 7.5, 9. Скрипт Prompts from file or textbox: создание списка заданий для нейросети С помощью скрипта Prompts from file or textbox можно создать список заданий, которые будут выполняться последовательно. Начало промта вводится через знак двойного тире «--» и выглядит так: --prompt "portrait of a beautiful European girl with red hair in a turquoise dress" --prompt "portrait of a beautiful European girl with red hair in a turquoise dress" --negative_prompt "orange, pink, lake, old woman" --width 808 --height 1204 --sampler_name "DPM++ 2M" --steps 15 --batch_size 2 --cfg_scale 7 --seed 9 --prompt "photo of architecture of the future" --steps 10 --sampler_name "Euler a" --prompt "photo of architecture of the future" --width 1024 Каждая отдельная строка, начинающаяся с --prompt, и означает генерацию следующего изображения (кроме случаев, когда в самом промте указан один из аргументов на большее количество генераций по типу Batch count или Batch size: --batch_size 2 (2 — это количество изображений)).
250 Часть IV. Генерация изображений по промту: вкладка txt2img Если в текстовом окне скрипта Prompts from file or textbox не указано ничего, кроме промта (или не указана конкретная настройка), то значения настроек берутся из основного интерфейса Stable Diffusion AUTOMATIC1111. Кроме прямого написания промта в текстовом поле, можно создать отдельный текстовый файл формата TXT, прописать в нем необходимый список заданий генерации и поместить документ в окне для загрузки документов — в результате вся информация будет извлечена из документа и помещена в текстовое поле выше окна загрузки файла (рис. 16.5). Рис. 16.5. Настройки скрипта Prompts from file or textbox Исходя из приведенного здесь списка заданий, нейросеть должна сгенерировать пять изображений: на трех из них должна быть изображена девушка европейской внешности с рыжими волосами и в бирюзовом платье, а на двух остальных — архитектура будущего (рис. 16.6). Поддерживаются следующие параметры (аргументы) настроек нейросети: sd_model, outpath_samples, outpath_grids, prompt_for_display, prompt, negative_prompt, styles, seed, subseed_strength, subseed, seed_resize_from_h, seed_resize_from_w, sampler_ index, sampler_name, batch_size, n_iter, steps, cfg_scale, width, height, restore_faces, tiling, do_not_save_samples, do_not_save_grid.
Урок 16. Скрипты и расширения для ускорения работы 251 Рис. 16.6. Вывод результатов генерации по скрипту Prompts from file or textbox Загружаемые расширения для ускорения работы Расширения для настройки быстрой смены соотношения сторон изображения Sd-webui-ar-plus Установить расширение можно, выполнив цепочку команд: Extensions | Available | Load from: | sd-webui-ar-plus. Расширение добавляет кнопки выбора соотношения сторон изображения. В расширении есть уже заготовленные пресеты соотношения сторон (определяются в файле resolutions.txt), можно также создать свои пресеты в специальном текстовом файле aspect_ratios.txt, расположив его по пути: stable-diffusion-webui\extensions\--sd-webui-arplus (рис. 16.7). П РЕСЕТЫ Заранее настроенные комбинации инструментов и фильтров, которые могут быть применены к изображению или видео по щелчку. Чтобы применить пресет настроек, нужно нажать его кнопку, рассчитать соотношение сторон, для чего ввести исходные размеры изображения или получить их из
252 Часть IV. Генерация изображений по промту: вкладка txt2img ползунков txt2img/img2img, нажать кнопку Calculate Height или Calculate Width (по выбору) — для расчета недостающего значения и нажать кнопку Apply — чтобы отправить значения в ползунки txt2txt/img2img (рис. 16.8). Рис. 16.7. Настройки разрешений и соотношений сторон в расширении Sd-webui-ar-plus Рис. 16.8. Настройки расширения Sd-webui-ar-plus
Урок 16. Скрипты и расширения для ускорения работы 253 Разберемся с кнопками расширения Sd-webui-ar-plus:  кнопка позволяет рассчитать соотношения сторон высоты и ширины (обычный режим: 1024×1024 и 16:9 = 1820×1024, обратный режим: 1024×1024 и 16:9 = 1024×576);  кнопка  кнопка нужна для раскрытия параметров калькулятора; позволяет получить исходные размеры из ползунков txt2img/ img2img;  кнопка позволяет округлить размеры до ближайшего числа, кратного 4 (1023×101=> 1024×100); Создадим новые пресеты разрешений и соотношения сторон (рис. 16.9 и 16.10): 1. Добавьте в текстовый файл resolutions.txt новое разрешение 1400 — для чего пропишите в файле: 1400, 1400, 1400 # 1400x1400; 2. В файл aspect_ratios.txt добавьте: 16:10, 16/10 #Smartfone; 3. Перезагрузите интерфейс нейросети, нажав кнопку Apply and restart UI (рис. 16.10). П РИМЕЧАНИЕ При вводе настроек соотношений сторон в текстовом файле важно писать все символы (в том числе и знаки препинания: запятые, точки и тире) на латинице. Рис. 16.9. Добавление новых соотношений сторон
254 Часть IV. Генерация изображений по промту: вкладка txt2img Рис. 16.10. Результат добавления новых соотношений сторон: в расширении появились новые кнопки Aspect Ratio Resolutions selector-xhox Это расширение является альтернативой расширения Sd-webui-ar-plus и используется для добавления кнопок выбора разрешений и соотношений сторон изображения. Расширение удобно большим количеством предустановленных пресетов соот- Рис. 16.11. Установка расширения Aspect Ratio Resolutions selector-xhox
Урок 16. Скрипты и расширения для ускорения работы 255 ношения сторон, а также калькулятором расчета соотношения сторон, дающим возможность рассчитать ширину по высоте или высоту по ширине в разных соотношениях. Установить расширение (рис. 16.11) можно через уже знакомый нам путь: Extensions | Available | Load from: | sd-webui-ar_xhox (если не будет найдено расширение по запросу sd-webui-ar_xhox — введите sd webui ar и снова попробуйте найти нужное расширение). После перезагрузки интерфейса расширение появится на вкладках txt2img и img2img и будет выглядеть так, как показано на рис. 16.12. Для применения настроек пресета надо только нажать на соответствующую кнопку нужного соотношения сторон. П РИМЕЧАНИЕ Выбор расширения зависит от поставленных задач — на вкладке Extensions | Available вы можете попробовать найти и другие расширения на тему Aspect Ratio (соотношение сторон). Рис. 16.12. Настройки расширения Aspect Ratio Resolutions selector-xhox Расширение State: сохраняем настройки предыдущей генерации Расширение State существует для единственной цели — оно сохраняет все настройки параметров такими, какими они были при предыдущем использовании. Установите расширение по аналогии с предыдущими установками — через вкладку Extensions | Available.
256 Часть IV. Генерация изображений по промту: вкладка txt2img Чтобы активировать расширение, перейдите на вкладку настроек Settings, найдите в левом столбике настроек — настройку расширения Uncategorized | State и установите флажки у параметров: tabs, prompt, negative_prompt, sampling, sampling_ steps, width, height, cfg_scale — и других по вашему выбору (рис. 16.13). Поставьте также по своему желанию любые настройки сохранения. Выбрав все необходимые параметры, нажмите кнопку Apply settings (Применить) и перезагрузите UI. Теперь после каждой перезагрузки или запуска нейросети заново вам не придется прописывать все настройки сначала. Рис. 16.13. Активация и настройка расширения State Style Selector for SDXL 1.0: настройка стилей Установите расширения для ускорения ввода определенного стиля для генерации: Extensions | Available | Style Selector for SDXL 1.0 и Stylez (рис. 16.14). После их установки на вкладках txt2img и img2img появится новая вкладка параметров стилей SDXL Styles (рис. 16.15). Все настройки здесь просты в применении: Enable Style Selector — включает эту вкладку, Randomize Style — выбирает случайный стиль, Randomize For Each Iteration — этот параметр нужен для генерации сразу нескольких изображений, Generate All Styles In Order — генерирует все стили по порядку. Включите расширение SDXL Styles и задайте следующие настройки: Sampling method = DPM++ 2M, Schedule type = Automatic, Sampling steps = 20, Width и Height = 1024×880 соответственно, CFG Scale = 7, Seed = 447491984, модель = Juggernaut_X_RunDiffusion.safetensors, напишите промт: bedroom interior и запустите генерацию (рис. 16.16). Самостоятельно попробуйте остальные 68 стилей.
Урок 16. Скрипты и расширения для ускорения работы Рис. 16.14. Установка расширения Style Selector for SDXL 1.0 Рис. 16.15. Параметры расширения Style Selector for SDXL 1.0 257
258 Часть IV. Генерация изображений по промту: вкладка txt2img а б в г д е ж з и Рис. 16.16. Результат генерации с помощью расширения Style Selector for SDXL 1.0: а — стиль 3D Model; б — стиль Abstract; в — стиль Advertising; г — стиль Alien; д — стиль Analog Film; е — стиль Anime; ж — стиль Architectural; з — стиль Cinematic; и — стиль Comic Book * * * Подробную информацию про скрипты и расширения вы найдете в следующих источниках:  How to use «Prompt matrix» and «X/Y/Z plot» in Stable Diffusion web UI (AUTOMATIC 1111 version): https://clck.ru/3Gv7Gm;  X/Y/Z plot: https://clck.ru/3Gv7W5;  Aspect Ratio selector: https://clck.ru/3Gv7ds.
ЧАСТЬ V Генерация изображения по промту и изображению: вкладка img2img Урок 17. Общие настройки вкладки img2img и автоматическая генерация промта Урок 18. Режимы работы на вкладке img2img Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна Урок 20. Оптимизация интерфейса и скрипты вкладки img2img

УРОК 17 Общие настройки вкладки img2img и автоматическая генерация промта  Общие настройки вкладки img2img  Параметр Seed Extra: вариации изображения  Параметр Interrogate: автоматическая генерация текста по изображению Общие настройки вкладки img2img На уроке 7 «Генерация изображения по промту и изображению» мы рассмотрели начальные настройки вкладки img2img. Но, кроме режима Resize mode, на вкладке img2img много других настроек, и мы сейчас с ними познакомимся. Вот главные окна (режимы вкладки img2img), в которых мы будем работать и куда загружать исходные изображения:  img2img — отвечает за генерацию изображений на основе загруженных изобра- жений и промта;  Sketch — режим, используемый для зарисовки (закрашивания) заданных зон изображения определенным цветом (выбранным в зависимости от поставленных задач) с последующей перегенерацией всего изображения и, следовательно, с изменением его закрашенных зон на основе исходного промта;  Inpaint — режим, используемый для зарисовки (закрашивания) заданных зон изображения полупрозрачным белым цветом с целью дальнейшей замены этих зон на основе промта, отличного от исходного, и описывающего то, что должно быть изображено на закрашенной области;  Inpaint sketch — режим, используемыый для зарисовки (закрашивания) заданных зон изображения определенным цветом (выбранным в зависимости от поставленных задач) с последующей перегенерацией только закрашенных зон на основе промта, отличного от исходного, и описывающего то, что должно быть изображено на закрашенной области;  Inpaint upload — режим, используемый для одновременной загрузки изображе- ния оригинала и отдельного изображения «маски» (изображения, представляющего собой полностью черный прямоугольник: квадрат, круг и т. п. — в зависи-
262 Часть V. Генерация изображения по промту и изображению: вкладка img2img мости от формы и размера, на котором белым цветом отмечены нужные участки изображения). Этот режим подключается, если изначально вся работа над изображением происходила в любом другом графическом редакторе изображений (например, GIMP, Paint.NET или Adobe Photoshop), где для этих изображений были созданы отдельные «маски», и лишь затем итоговую работу было решено провести в нейросети Stable Diffusion AUTOMATIC1111;  Batch — режим, используемый для пакетной обработки папок с изображениями и масками Inpaint (этим режим Batch похож на режим Inpaint upload). Режим включает несколько настроек: • Input directory — папка, из которой нужно брать изображения; • Output directory — папка, в которую нужно загружать сгенерированные изображения; • Inpaint batch mask directory (required for inpaint batch processing only) — каталог масок пакета Inpaint (требуется только для пакетной обработки inpaint). Здесь нужно указать папку, в которой хранится маска для всей папки Input directory;  PNG info — режим включает: • Append png info to prompts — параметр добавляет к подсказкам информацию в формате PNG; • PNG info directory — указание на нужный каталог; • Parameters to take from png info — параметры, которые нужно взять из PNG info. П ОЯСНЕНИЕ Под определенным цветом — в режимах Sketch и Inpaint sketch — понимается цвет, используемый для замены цвета закрашенных объектов. В режимах: Inpaint, Inpaint sketch и Inpaint upload открываются дополнительные настройки, которые работают одинаково во всех трех режимах:  параметр Mask blur — отвечает за силу размытия краев маски. Чем сильнее раз- мытие и больше число, тем плавнее переход от неизмененного к измененному (большие значения приводят к артефактам — лучше использовать значения от 4 до 16);  параметр Mask mode — включает два параметра: Inpaint masked и Inpaint not masked, которые соответственно отвечают либо за замену всего, что есть под маской, либо того, чего нет под маской (того, что не закрашено);  параметр Masked content — отвечает за то, во что превращается закрашенный участок изображения до его обработки нейросетью, и включает четыре настройки (для наглядности все приведенные далее примеры генерировались при Denoising strength = 0):
Урок 17. Общие настройки вкладки img2img и автоматическая генерация промта 263 • Fill — заполняет закрашенную часть усредненными цветами изображения (рис. 17.1); • Original — оставляет закрашенную область неизменной (рис. 17.2); • latent noise — заполняет маскированный (закрашенный) контент случайным шумом (рис. 17.3); а б Рис. 17.1. Параметр Masked content, настройка Fill: а — до применения; б — после а б Рис. 17.2. Параметр Masked content, настройка Original: а — до применения; б — после а б Рис. 17.3. Параметр Masked content, настройка latent noise: а — до применения; б — после
264 Часть V. Генерация изображения по промту и изображению: вкладка img2img а б Рис. 17.4. Параметр Masked content, настройка latent nothing: а — до применения; б — после • latent nothing — ничем не заполняет маскированный контент, и к нему не применяется размытие (рис. 17.4). Какие настройки параметра Masked content лучше использовать? • Fill — когда нужно избавиться от каких-либо ненужных деталей, заполнив их однородным окружением или заменив объекты с одного на другой, указав это в текстовом запросе; • Original — когда нужно изменить детали, которые не нравятся. Если изменять крупный объект, то он будет оставаться таким же, но при этом станут меняться его форма, ракурс и т. д.; • latent noise и latent nothing — когда нужно полностью заменить объект, чтобы он сильно отличался от первоначального.  параметр Inpaint area — отвечает за ориентацию на референсное изображение или его часть при последующей генерации и включает две настройки: • Whole picture — все изображение используется как референс, что позволяет конечному выводу лучше соответствовать общему изображению. Можно применять для любого режима маскированного (закрашенного) содержимого; • Only masked — в этом режиме закрашенная область рассматривается как референс. Режим работает следующим образом: он вырезает замаскированную область, масштабирует изображение до соответствующего размера, указанного в img2img, запускает img2img для повышения качества, а затем вставляет вырезанную область обратно в конечное изображение. Эта функция позволяет значительно улучшить разрешение изображения без его полного масштабирования. В основном это удобно для получения хорошего качества изображения без необходимости генерации изображения в более высоких разрешениях, таких как 2K или 4K;  параметр Only masked padding, pixels — управляет количеством дополнительных пикселов, которые можно использовать в качестве референса только для режима с маской (Only masked). Увеличение значения снижает качество вывода.
Урок 17. Общие настройки вкладки img2img и автоматическая генерация промта 265 Отдельно для режима Inpaint sketch применяется параметр Mask transparency, который отвечает за прозрачность области закрашивания изображения. Параметр Seed Extra: вариации изображения Если возникает ситуация, когда изображение нравится, но «что-то в нем не устраивает», то можно применить параметр Seed Extra и его настройки: Variation seed, Variation strength, а также Resize seed from width и Resize seed from height — которые регулируют силу вариаций одного и того же изображения (рис. 17.5). Рис. 17.5. Параметр Seed Extra  Настройки Variation seed и Variation strength позволяют указать, насколько силь- но нужно изменить исходное изображение. По умолчанию Variation seed = –1, а Variation strength = 0. При низком значении Variation strength наблюдается тенденция генерировать изображения с небольшими отклонениями от оригинала, но по мере увеличения значения эта настройка вносит в исходное изображение более существенные изменения.  Настройка Seed Extra особенно полезна при тонкой настройке сгенерированных изображений для создания перерисовок без изменения основного объекта. Например, вы сможете использовать ее для генерации похожих изображений. З АМЕЧАНИЕ Не рекомендуется использование высоких значений Variation seed и Variation strength, потому что изменения становятся менее контролируемыми и могут привести к появлению на изображении артефактов.  настройки Resize seed from width и Resize seed from height потеряли практиче- скую ценность, начиная с версии интерфейса 1.4 и далее (актуальная версия 1.9.4), — лучше эти настройки не трогать и оставить равными 0. Подробную информацию о параметре Seed Extra вы найдете в следующих источниках:  про Seed Extra на официальной странице GitHub интерфейса AUTOMATIC1111: https://clck.ru/3Cu2df;  про Seed Extra на сайте Civitai: https://clck.ru/3Cu2ds.
266 Часть V. Генерация изображения по промту и изображению: вкладка img2img Параметр Interrogate: автоматическая генерация текста по изображению На вкладке img2img имеются две кнопки параметра Interrogate (рис. 17.6): первая кнопка — это Interrogate CLIP, вторая — Interrogate DeepBooru. Параметр Interrogate в целом является вариантом настройки Caption вкладки Extras, — при этом настройка Interrogate CLIP представляет собой альтернативу BLIP в Extras. Рис. 17.6. Параметр Interrogate Единственное отличие параметра Interrogate от настройки Caption заключается в том, что он записывает извлеченный из изображения промт не в отдельный текстовый файл, как обстоит дело в Caption, а прописывает его в окно положительного промта.
УРОК 18 Режимы работы на вкладке img2img  Вкладка img2img: генерируем интерьер  Режим Sketch вкладки img2img: меняем цвета отдельных частей интерьера  Режим Inpaint вкладки img2img: генерация новых объектов интерьера без изме- нения всего изображения  Расширение Canvas Zoom  Режим Inpaint sketch вкладки img2img  Режим Inpaint upload вкладки img2img: добавление деталей по маске  Упражнение: режимы Sketch и Inpaint  Настройка Soft inpainting: улучшение качества режима Inpaint Вкладка img2img: генерируем интерьер Перед началом работы на вкладке img2img загрузите специальный Checkpoint SDXL 1.0 на архитектуру от автора Jiangda — Yuanjineng_SDXL_0.1_Arch1. Откройте вкладку img2img — как мы уже знаем, на ней можно создавать изображения не только с помощью промтов, но и с помощью других изображений. Для примера сгенерируем на вкладке txt2img изображение интерьера спальни, а потом переместим результат генерации на вкладку img2img. Предположим, что мы не можем сами нарисовать конечный объект, поэтому найдите любое изображение на тему интерьера на ресурсе Pinterest (рис. 18.1, а), загрузите это изображение и поместите его на вкладку Extras | Caption. Полученный текстовый файл описания сцены подкорректируйте (рис. 18.1, б) и вставьте результат в окно положительного промта вкладки txt2img. Включите расширение SDXL Styles (Architectural), задайте следующие настройки: Sampling method = DPM++ 2M, Schedule type = Automatic, Sampling steps = 20, Width и Height = 1104×808 соответственно, CFG Scale = 7, Seed = 2768037966, мо1 См. https://clck.ru/3Cu2eM.
268 Часть V. Генерация изображения по промту и изображению: вкладка img2img дель = yuanjinengSDXL01Arch_v10.safetensors. Напишите промт: a bedroom with a bed and a wall mural behind it and a window with curtains and a lamp on the side,Alena Enamel,3 d render,a digital rendering, включите генерацию, и вы получите результат, показанный на рис. 18.2. а б Рис. 18.1. а — изображение на ресурсе Pinterest на тему интерьера; б — вкладка Extras | Caption: создание описания сцены
Урок 18. Режимы работы на вкладке img2img 269 Рис. 18.2. Результат генерации Перенесите результат генерации на вкладку img2img, нажав на кнопку отправки результата генерации в эту вкладку, находящуюся под окном вывода результата генерации (рис. 18.3). Рис. 18.3. Перенос результата генерации на вкладку img2img Перенесите туда и наш промт, добавив в него слова: high detail, good lighting — чтобы получилось: a bedroom with a bed and a wall mural behind it and a window with curtains and a lamp on the side,Alena Enamel,3 d render, a digital rendering, high detail, good lighting. Между настройками Refiner и CFG Scale в окне вкладки img2img присутствуют две вкладки параметров: Resize to и Resize by (рис. 18.4):  параметр Resize to отвечает за область изображения, которое будет обрабаты- ваться в окнах (режимах) вкладки img2img.
270 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.4. Параметры Resize to и Resize by на вкладке img2img Кнопка со стрелками меняет местами значения ширины и высоты, а кнопка с треугольной линейкой автоматически подгоняет значения окна Resize to к ширине и высоте изображения, загруженного в окно вкладки img2img. При желании можно самостоятельно настроить обработку нужной части изображения — при изменении показателей сторон изображения та часть изображения, которая «захватывается» в нужную область, подсвечивается полупрозрачной красной маской (рис. 18.5). Рис. 18.5. Подгонка значения окна Resize to к ширине и высоте изображения  параметр Resize by увеличивает размер итогового изображения (рис. 18.6). Итак, перейдите на вкладке img2img на параметр Resize to, нажмите кнопку с треугольной линейкой (рис. 18.7) и запустите генерацию — будет получено похожее изобржение (рис. 18.8). Попробуйте поэкспериментировать с этими настройками самостоятельно и сгенерировать что-либо.
Урок 18. Режимы работы на вкладке img2img 271 Рис. 18.6. Параметр Resize by Рис. 18.7. Параметр Resize to на вкладке img2img Рис. 18.8. Результат генерации после применения параметра Resize to Режим Sketch вкладки img2img: меняем цвета отдельных частей интерьера Переместите наше исходное изображение в окно Sketch с помощью кнопок Copy image to (рис. 18.9 и 18.10).
272 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.9. Кнопки Copy image to Рис. 18.10. Изображение перенесено в окно вкладки Sketch Покрасим левую стену в желтый цвет, выбрав соответствующий цвет в палитре цветов (рис. 18.11). Как можно здесь видеть, в правой верхней области изображения имеется панель с кнопками настроек кисти (рис. 18.12). Настройка кисти в ней аналогична стандарту графических редакторов, слева направо в этой панели расположены: круговая стрелка — отменить последний штрих кистью, ластик — удалить любые штрихи кистью и начать заново, крестик — удалить изображение в окне, кисть — изменить размер кисти (можно изменять размер кисти комбинацией клавиш на клавиатуре <Ctrl>+<колесо мыши>, удерживая курсор мыши на области окна изображения), палитра — изменить цвет (можно изменить цвет, выбрав нужный в палитре цветов, или с помощью пипетки — нажав пипеткой на нужном цвете на самом изображении, или введя код нужного цвета).
Урок 18. Режимы работы на вкладке img2img 273 Рис. 18.11. Выбор желтого цвета Рис. 18.12. Кнопки настроек кисти Итак, выберите желтый цвет — для левой стены, коричневый цвет — для ковра и фиолетовый цвет — для синих прямоугольников на стене (рис. 18.13) и выполните генерацию. Ее результат показан на рис. 18.14 (при одинаковых настройках, но разном Seed) и на рис. 18.15 (при одинаковых настройках и одинаковом Seed). Рис. 18.13. а — выбор желтого, коричневого и фиолетового цветов для редактирования (перекраски) объектов в комнате на изображении; б — изображение в процессе перекраски
274 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.13. б — изображение в процессе перекраски Рис. 18.14. Результат перекраски при одинаковых настройках, но разном Seed Как можно видеть на приведенных примерах генерации, несмотря на замену цвета отдельных зон изображения, произошла перегенерация всего изображения, при этом как при разном, так и при одинаковом Seed.
Урок 18. Режимы работы на вкладке img2img 275 Рис. 18.15. Результат перекраски при одинаковых настройках и одинаковом Seed Изменим показанное на рис. 18.15 изображение: уберем окно на правой стене и вместо него сделаем сплошную стену темно-синего цвета (рис. 18.16). Выполним генерацию (рис. 18.17). Рис. 18.16. Замена окна на темно-синюю стену: выполнена перекраска правой стены
276 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.17. Результат генерации: стена перекрашена в синий цвет Режим Inpaint вкладки img2img: генерация новых объектов интерьера без изменения всего изображения Для дальнейшей обработки переместим исходное изображение, полученное в режиме txt2img, в окно режима Inpaint вкладки img2img. Измените промт, добавив в установленное ранее расширение слова хрустальная люстра: crystal chandelier, high detail, good lighting. Возьмите кисть, проведите ею у потолка, нарисовав полупрозрачным белым цветом что-то наподобие люстры (рис. 18.18), и нажмите кнопку генерации. Не стоит беспокоиться о четкости и детальности картинки — нейросеть сама исправит недостатки полученного изображения и успешно «вставит» новый объект в него. В результате мы получили люстру на потолке комнаты (рис. 18.19) — при этом ни одна какая-либо другая часть изображения не была перегенерирована заново. Расширение Canvas Zoom Для улучшения взаимодействия с кистью и «холстом» (местом, куда загружается изображение), можно пользоваться клавишами (рис. 18.20), о которых информирует подсказка, появляющаяся при наведении курсора на восклицательный знак, расположенный в верхнем левом углу загруженного изображения (см. рис. 18.18). Эти клавиши стали доступны благодаря появлению встроенного расширения Canvaszoom-and-pan в версии AUTOMATIC1111 1.4.
Урок 18. Режимы работы на вкладке img2img Рис. 18.18. Добавление нового объекта в режиме Inpaint Рис. 18.19. Результат генерации — создание люстры 277
278 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.20. Встроенное расширение Canvas-zoom-and-pan Однако получить гораздо больше полезных функций можно, установив стороннее расширение Canvas Zoom, отключив при этом встроенное расширение Canvaszoom-and-pan. Установить новое расширение вы сможете через уже знакомый нам способ с помощью вкладки Extensions | Available — сделайте это самостоятельно и перезагрузите интерфейс. Затем перейдите обратно в Extensions и отключите старое расширение, сняв с него установленный флажок (рис. 18.21). Рис. 18.21. Отключение расширения Canvas-zoom-and-pan Вы сразу увидите, что функций в подсказке стало гораздо больше (рис. 18.22). Особенно полезной здесь являются функции переноса «холста» (нажатием кнопки F) и изменения режима прозрачности (нажатием кнопки C). Рис. 18.22. Новые функции расширения Canvas Zoom
Урок 18. Режимы работы на вкладке img2img 279 С ОВЕТ При необходимости любые расширения можно отключать и включать. Некоторые расширения конфликтуют между собой, так что если они не используются — отключите их. Отключенные расширения во время следующего запуска нейросети не будут загружаться в память вашего компьютера, и из-за этого время загрузки Stable Diffusion сократится. Режим Inpaint sketch вкладки img2img Поместите в окно добавления изображений вкладки Inpaint sketch предыдущее изображение комнаты с люстрой и выберите синий цвет (рис. 18.23). Рис. 18.23. Выбор синего цвета для перекраски объектов Затем, находясь курсором в области окна редактирования изображения, нажмите на панели расширения Canvas Zoom кнопку F, переместите изображение в центр интерфейса программы, с помощью комбинации клавиш <Shift>+<колесо мыши> увеличьте окно редактирования изображения и закрасьте синим цветом правую стену (рис. 18.24). При этом, когда будет очерчена область редактирования, можно взять кисть побольше и закрасить стену полностью (рис. 18.25). Далее выполните действия с окном изображения в обратном порядке — чтобы оно приняло привычный вид (рис. 18.26) и напишите положительный промт: light purple wall. Как можно видеть на сгенерированном изображении (рис. 18.27), произошла перегенерация только той области, которая была закрашена кистью, — правая стена теперь окрашена в светло-фиолетовый цвет.
280 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.24. Закраска синим цветом правой стены изображения Рис. 18.25. Правая стена полностью закрашена синим цветом
Урок 18. Режимы работы на вкладке img2img 281 Рис. 18.26. Перенос изображения в окно редактирования, отмена действий расширения Canvas Zoom Рис. 18.27. Результат генерации в режиме Inpaint sketch: стена окрашена в светло-фиолетовый цвет
282 Часть V. Генерация изображения по промту и изображению: вкладка img2img Режим Inpaint upload вкладки img2img: добавление деталей по маске Режим Inpaint upload (Загрузка Inpaint) позволяет загружать отдельный файл маски вместо ее рисования. Загрузите в любой графический редактор исходное изображение с люстрой (рис. 18.28) и создайте маску расположенной в нем кровати (рис. 18.29). Рис. 18.28. Создание в графическом редакторе маски для изображения кровати Рис. 18.29. Созданная маска кровати изображения
Урок 18. Режимы работы на вкладке img2img Рис. 18.30. Режим Inpaint upload: загрузка отдельного изображения и маски Рис. 18.31. Результат замены объекта по загруженной маске в режиме Inpaint upload 283
284 Часть V. Генерация изображения по промту и изображению: вкладка img2img Выберите режим Inpaint upload, загрузите в интерфейс исходное изображение и маску и напишите промт: An expensive golden-colored bed (рис. 18.30). Для получения лучшего результата можно использовать следующие настройки: Resize mode = Just resize, Mask mode = Inpaint masked, Masked content = fill, Inpaint area = Whole picture (рис. 18.31) — на изображении поменялась только область маски, в роли которой в этом режиме выступает именно белая зона закрашиваемого объекта на черном фоне. Упражнение: режимы Sketch и Inpaint Задача Используя рассмотренные нами ранее режимы Sketch и Inpaint, попробуйте сгенерировать изображение, чтобы на нем, кроме люстры, появилось зеленое растение на правой прикроватной тумбочке, левая прикроватная тумбочка окрасилась в коричневый цвет, а потолок комнаты стал напоминать старинные потолки, расписанные узорами и фресками. Для достижения желаемого результата можно пользоваться любыми расширениями — к примеру, SDXL Styles и Dynamic Prompts. Решение Прежде всего, используя режим Inpaint, создайте зеленое растение. Для автоматизации выборки лучшего результата и ускорения работы лучше задать параметр Batch count = 10 или выше и написать промт: a green plant on the bedside table,high detail (рис. 18.32). Рис. 18.32. Создание зеленого растения на правой прикроватной тумбочке: Batch count = 10
Урок 18. Режимы работы на вкладке img2img 285 Затем перейдите в режим Inpaint sketch (рис. 18.33) и, задав промт: brown wooden bedside table, поменяйте цвет левой прикроватной тумбочки на коричневый (рис. 18.34). Рис. 18.33. Режим Inpaint: замена цвета левой прикроватной тумбочки Рис. 18.34. Результат генерации: цвет левой прикроватной тумбочки заменен на коричневый
286 Часть V. Генерация изображения по промту и изображению: вкладка img2img И, наконец, в завершение упражнения отправьте полученное изображение опять в режим Inpaint, закрасьте только потолок (рис. 18.35), напишите промт: the ceiling is covered with ancient frescoes and drawings и выполните генерацию (рис. 18.36). Рис. 18.35. Закрашивание потолка белым цветом Рис. 18.36. Результат генерации в режиме Inpaint: фреска на потолке
Урок 18. Режимы работы на вкладке img2img 287 Чтобы лучше оценить полученные нами результаты, сравним исходное изображение интерьера в режиме txt2img и его изображение, содержащее произведенные нами изменения в режиме img2img (рис. 18.37). Рис. 18.37. Сравнение изображений в режиме txt2img (слева) и img2img (справа) Для повышения качества изображения можно продолжить его обработку в графических редакторах, а также увеличить разрешение с помощью ранее описанных способов. * * * Подробную информацию про Inpainting вы найдете в следующих источниках:  Basic Inpainting Guide: https://clck.ru/3Cu2fo;  Статья на сайте Civitai «Basic things you might not know: Do you know SD has VARY function just like Midjourney»: https://clck.ru/3Cu2gX;  AUTOMATIC1111, Inpainting: https://clck.ru/3Cu2hd. Настройка Soft inpainting: улучшение качества режима Inpaint Настройка Soft inpainting (рис. 18.38) появилась в AUTOMATIC1111, начиная с версии v1.8.0. Эта настройка позволяет плавно смешивать исходный контент с закрашенным контентом в соответствии с непрозрачностью маски. Для использования Soft inpainting автор встроенного расширения рекомендует ставить высокие значения Mask blur (от 34). Настройка Soft inpainting включает шесть параметров:  Schedule bias — отвечает за сохранение исходного контента на каждом шаге: • чем меньше число (<1), тем большую площадь от закрашиваемой области занимает объект в кадре и тем менее проработанным он получается; • чем больше число (>1), тем более проработанным получается объект на закрашенной области, но тем он меньше. В зависимости от размера закрашиваемой области, лучше задавать значение от 1 до 3;
288 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.38. Параметры настройки Soft inpainting  Preservation strength — управляет количеством сохраненного исходного изо- бражения. Наиболее сбалансированное значение = 1;  Transition contrast boost — отвечает за резкость смешивания исходного и за- крашиваемого содержимого изображения. Проще говоря, эту функцию можно представить в виде градиентного перехода от белого к черному. Этот параметр нужно использовать в зависимости от задач. Низкое значение создает мягкое смешивание и плавный переход к закрашенной области. Высокое значение создает сильный контраст, что позволяет осуществить резкий переход к исходному изображению;
Урок 18. Режимы работы на вкладке img2img 289  Pixel Composite Settings (Настройки пиксельного композитинга): • Mask influence — отвечает за степень влияния маски (в результате тестов не было выявлено существенных различий вне зависимости от выставленных значений); • Difference threshold — отвечает за прозрачность сгенерированного контента на закрашенной области (1 = 100% непрозрачность, 8 = 100% прозрачность сгенерированного объекта). Параметр можно использовать для генерации каких-либо объектов в тумане, в условиях плохой видимости, в полутьме и т. п.; • Difference contrast — настройка полностью аналогична Difference threshold, только работает в обратном порядке, т. е. 0 = 100% прозрачность сгенерированного объекта, а 8 = 100% непрозрачность);  Help — предоставляет описание настройки Soft inpainting и способа использова- ния всех ее функций (это описание можно перевести с помощью любого онлайн переводчика). Теперь вернемся к изображению, созданному в разд. «Режим Inpaint upload вкладки img2img: добавление деталей по маске», загрузим то же самое изображение и маску, напишем тот же самый промт: An expensive golden-colored bed и зададим те же самые основные настройки генерации: Sampling method = DPM++ 2M, Schedule type = Automatic, Sampling steps = 20, Width = 1104, Height = 808, CFG Scale = 7, Denoising strength = 0,75, модель = artUniverse_sdxlV20 и настройки основной маски: Resize mode = Just resize, Mask blur = 40, Mask mode = Inpaint masked, Masked content = fill, Inpaint area = Whole picture. Определим также следующие настройки Soft inpainting: Schedule bias = 1,3, Preservation strength = 1, Transition contrast boost = 5, Mask influence = 0, Difference threshold = 1, Difference contrast = 8 (рис. 18.39). На рис. 18.40 показан результат генерации, в котором гораздо плавнее «вставлена» кровать (надо отметить, что для ускорения дальнейшей выборки был использован Batch count = 5), так что вставку новых объектов гораздо лучше производить с включенной функцией Soft inpainting. Для сравнения на рис. 18.41 приведены результаты генерации, полученные в разд. «Режим Inpaint upload вкладки img2img: добавление деталей по маске» (слева) и сейчас (справа). Как можно видеть на примере увеличенного изображения, при генерации с участием Soft inpainting не возникают артефакты и эффекты размытия окружающих объектов. Попробуйте произвести перегенерацию с участием функции Soft inpainting для изображений из разд. «Упражнение». П РИМЕЧАНИЕ Результаты перегенераций для проверки можете присылать в TG-чат «Фото и дзэн»: https://t.me/photomur или в открытый альбом сообщества «Фото и дзэн» в ВК «Работа в Stable Diffusion»: https://clck.ru/3Cu2ia.
290 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 18.39. Настройка генерации с расширением Soft inpainting Рис. 18.40. Улучшение изображения в режиме Soft inpainting
Урок 18. Режимы работы на вкладке img2img 291 а б Рис. 18.41. Сравнение результатов генерации в разд. «Режим Inpaint upload вкладки img2img: добавление деталей по маске» (слева) и сейчас (справа): а — полноразмерные изображения; б — увеличенные фрагменты кровати * * * Подробную информацию про настройку Soft inpainting вы найдете по ссылке: https://clck.ru/3Cu2jE.
УРОК 19 Расширения для создания быстрых эффектов, ретуши изображений и дизайна  Расширение A Person Mask Generator: быстрая замена одежды и частей тела       человека Photopea: бесплатная альтернатива Photoshop для нейросетей Расширение PBRemTools: замена (вырезка) фона изображения Расширение FreeU: существенное повышение качества генераций Расширение Color Correction и методы обработки StableSR: цветокоррекция изображения на вкладке Extras Расширение Canvas Editor: быстро создаем визитку Расширение ReActor: создаем арты со своим лицом Расширение A Person Mask Generator: быстрая замена одежды и частей тела человека В этом разделе мы рассмотрим работу с автоматическими масками для быстрой замены одежды, головы, рук и ног человека. Переключите основную модель с архитектурного Checkpoint на Juggernaut_X_ RunDiffusion — поскольку мы будем генерировать людей. Перейдите на вкладку txt2img и сгенерируйте девушку в одежде по промту: a beautiful girl of European appearance, a girl with red hair, long red hair, a girl dressed in a blue evening dress, the background is a night city, glowing lights of buildings, the light from a lantern falls on the girl, good lighting,hig h detail. В негативном промте запишите: (sketch:0.9), flat_color, monochrome, halftone, greyscale, chromatic_aberration, Dalle de verre, pixel art, Encaustic painting, (((ink))), ((watercolor)), illustration, ((wash painting)), ((ink s...)), cosplay,lowres (негативная подсказка была создана с помощью расширения Prompt all one). Основные настройки оставьте теми же, изменив лишь ширину Width на 1200. Активируйте расширение SDXL Styles = Photographic, включите расширение Adetailer,
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 293 Рис. 19.1. Генерация изображения девушки на вкладке txt2img установите модель = face_yolov8s.pt и выполните генерацию, задав Batch count = 10 — для облегчения выборки лучшего изображения (рис. 19.1). Выберите из полученных изображений, на ваш взгляд, лучшее и перенесите его на вкладку img2img в режим img2img, нажав соответствующую кнопку в нижней области окна вывода результата генерации. При этом, кроме изображения, перенесутся и положительный, и отрицательный промты. Установите расширение A Person Mask Generator. Обратите внимание, что оно — в отличие от ранее рассмотренных нами расширений — работает только на вкладке img2img. Расширение A Person Mask Generator (рис. 19.2) представляет собой настройку, позволяющую в автоматическом режиме создавать маски для тела, лица, волос, одежды человека и для заднего плана. Маски можно совмещать, а также генерировать их по отдельности. Для активации расширения нажмите кнопку Enable. Настройка Mask dilation, pixels отвечает за размытость маски (значения выбираем самостоятельно — чем
294 Часть V. Генерация изображения по промту и изображению: вкладка img2img меньше, тем точнее маска, можно поставить значения = 2–3). При нажатии на параметр Override mask settings откроются еще четыре дополнительные настройки, отвечающие за то же самое, что и одноименные настройки самой вкладки img2img (поэтому они не будут повторно описаны здесь). Рис. 19.2. Расширение A Person Mask Generator: замена одежды девушки Итак, выберите clothes, напишите положительный промт: green evening dress (стерев промт предыдущей генерации), и нажмите кнопку генерации (рис. 19.3). Рис. 19.3. Работа расширения A Person Mask Generator: результат замены одежды девушки Чтобы лучше оценить полученный нами результат, сравним исходное изображение и результат (рис. 19.4). Таким образом, с помощью расширения A Person Mask Generator можно производить замену одежды, лиц, тела, волос и заднего фона на изображении, а затем перекидывать картинку для доработки в любой графический редактор. Подробную информацию про расширение A Person Mask Generator вы найдете по ссылке: https://clck.ru/3Cu2jy.
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 295 Рис. 19.4. Исходное изображение (слева) и результат применения расширения A Person Mask Generator (справа) Photopea: бесплатная альтернатива Photoshop для нейросетей Доработку изображений можно производить в любом графическом редакторе — в том числе и с помощью расширения Photopea для Stable Diffusion AUTOMATIC1111, которое является бесплатной облачной альтернативой программе Adobe Photoshop. Устанавливаем для интернет-браузера расширение Adblock Прежде всего, рекомендуется установить для своего интернет-браузера расширение Adblock — оно потребуется, чтобы приложение не показывало рекламу внутри рабочего пространства. Для этого (установку расширения рассматриваем на примере браузера Google Chrome) нажмите в правом верхнем углу браузера на кнопку с тремя точками (рис. 19.5, а), выберите из открывшегося меню пункт Расширения, щелкните на ссылке Перейти в интернет-магазин Chrome, введите в поисковой строке магазина Adblock, выберите из результатов поиска расширение Adblock Plus (рис. 19.5, б), нажмите кнопку Установить (рис. 19.5, в) и включите установленное расширение, зайдя в настройку Управление расширениями (рис. 19.5, г). Устанавливаем расширение Photopea Теперь можно привычным путем установить расширение Photopea для Stable Diffusion AUTOMATIC1111 — через вкладку Extensions | Available. Установив расширение, перезагрузите интерфейс нейросети, и в нем появится новая вкладка Photopea (рис. 19.6), а на вкладках txt2img, img2img и Extras под окном, показывающим результат генерации (рис. 19.7), появится кнопка Send to Photopea (Отправить в Photopea).
296 Часть V. Генерация изображения по промту и изображению: вкладка img2img а б в г Рис. 19.5. Установка браузерного расширения Adblock
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 297 Рис. 19.6. Вкладка Photopea интерфейса AUTOMATIC1111 Рис. 19.7. К кнопкам интерфейса AUTOMATIC1111 добавлена кнопка Send to Photopea Интерфейс Photopea: панель инструментов, слои и маски, кисти инструментов Расширение Photopea внутри интерфейса Stable Diffusion AUTOMATIC1111 по сути представляет собой интерфейс программы Adobe Photoshop. В нижней части активного окна Photopea имеются несколько настроек: Active Layer Only — отвечает за сохранение и импорт только активного слоя (активируйте эту настройку), iFrame height — отвечает за размер видимого окна расширения Photopea (можно установить любой), две кнопки: отправки в Extras или в img2img и кнопка выбора Inpaint. Модели ControlNet у нас пока не загружены, поэтому не трогаем настройку ControlNet model index. Откройте здесь наше изображение девушки в зеленом платье (рис. 19.8), загрузите поверх него исходное изображение девушки в голубом платье, создайте на исходном изображении маску и черной кистью (черный цвет уже установлен) проведите в тех местах, где можно оставить части первоначального изображения (рис. 19.9).
298 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 19.8. Интерфейс Photopea: загружено изображение девушки в зеленом платье Рис. 19.9. Правка в Photopea изображения, сгенерированного с помощью расширения A Person Mask Generator Как можно видеть на рис. 19.9, в результате работы с маской имеющийся на изображении дефект исправлен. В Photopea работают «горячие клавиши» — так, клавиша <F> отвечает за полноэкранный режим без интерфейса, комбинация <Alt>+<колесо мыши> — приближает или отдаляет вид на изображение, клавишами <[> и <]> можно увеличивать и уменьшать размер кисти, и т. д. С помощью кнопки Inpaint selection можно выделить часть изображения, а затем отправить ее на вкладку img2img в Inpaint upload (рис. 19.10).
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 299 Рис. 19.10. Взаимодействие функций Photopea и вкладки img2img В Photopea можно применять к изображениям различные корректирующие слои, менять тему интерфейса и применять фильтры (рис. 19.11). Интересную возможность предоставляет настройка, позволяющая устанавливать в Photopea плагины, операции, кисти, градиенты, стили и шаблоны (рис. 19.12). Рис. 19.11. Меню различных настроек расширения Photopea Рис. 19.12. Загрузка дополнительных плагинов в расширение Photopea
300 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 19.13. Панели инструментов и плагинов в расширении Photopea В правой области Photopea сосредоточены панели с различными настройками инструментов и плагинов (рис. 19.13). Самая главная полезность расширения Photopea — это возможность генерации изображения и его последующей профессиональной обработки в едином интерфейсе, без «перекидывания» изображения в другие программы. * * * Подробную информацию о расширении Photopea вы найдете в следующих источниках:  расширение Photopea: https://clck.ru/3Cu2m5;  Auto-Photoshop-StableDiffusion-Plugin (плагин для установки в программу Photoshop и синхронизации ее с установленной на вашем компьютере нейросетью Stable Diffusion): https://clck.ru/3Cu2mj. Расширение PBRemTools: замена (вырезка) фона изображения Установите расширение PBRemTools привычным спрособом — через вкладку Extensions | Available. Установив расширение, перезагрузите интерфейс нейросети, и в нем появится новая вкладка PBRemTools (рис. 19.14), куда можно загрузить изображение, фон которого вы хотите удалить.
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 301 Рис. 19.14. Панель настроек расширения PBRemTools Расширение содержит вкладки Single, Batch и Batch from Dir, позволяющее загружать соответственно одно изображение, несколько или указывать папки входа, выхода и папку с маской. У расширения также есть две свои вкладки настроек, которые, в свою очередь, предусматривают наличие еще несколько параметров (их нужно включить, установив флажки enabled):  вкладка Mask Setting: • поле Model — сюда нужно загрузить специальную модель. Для этого:  откройте страницу репозитория GitHab, посвященную расширению PBRemTools 1;  перейдите на страницу, указанную в ссылке2, имеющейся на этой странице (рис. 19.15); Рис. 19.15. Ссылка для загрузки модели PBRemTools 1 2 См. https://clck.ru/3Cu2mz. См. https://clck.ru/3H8zPq.
302 Часть V. Генерация изображения по промту и изображению: вкладка img2img  открыв указанную страницу, найдите там раздел Model Checkpoints (рис. 19.16) и скачайте модель ViT-H SAM model;  загруженную модель поместите по пути: stable-diffusion-webui/extensions/ PBRemTools/models (рис. 19.17); Рис. 19.16. Страница загрузки Checkpoint модели ViT-H SAM Рис. 19.17. Модель ViT-H SAM загружена  выберите установленную модель в окне расширения PBRemTools (рис. 19.18); Рис. 19.18. Выбор установленной модели в расширении PBRemTools • segmentation prompt — здесь напишите, что именно на изображении нужно оставить (извлечь из изображения); • predicted_iou_threshold, stability_score_threshold (порог оценки) и clip_t hreshold — эти параметры имеют мало отличий, и их лучше оставить по умолчанию;
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 303  вкладка Post Processing включает два параметра: • tile division BG Removers:  horizontal split num — отвечает за количество горизонтальных делений плитки; П ЛИТКА Плитка — это квадратные сектора изображения, на которые оно делится для оптимизации его обработки.  vertical split num — отвечает за количество вертикальных делений плитки;  cluster num — отвечает за количество кластеров на основе цветовой информации;  alpha threshold — отвечает за прозрачность маски, рассматриваемой как передний план;  mask content ratio — отвечает за пороговое значение того, какую маску должен содержать кластер, чтобы считаться передним планом; • cascadePSP:  fast — отвечает за ускоренную обработку изображения (если параметр включен, то тратит больше видеопамяти);  Memory usage — отвечает за потребление памяти (ставьте в зависимости от количества памяти). Расширение FreeU: существенное повышение качества генераций Установите расширение FreeU через вкладку Extensions | Install from URL, указав в соответствующем поле вкладки посвященную ему страницу репозитория GitHab1 (рис. 19.19). После установки вкладка с расширением появится на вкладках txt2img и img2img. Расширение FreeU имеет много настроек, но автор расширения упростил их для нас, установив пресеты использования моделей SD1.5, SD2.1 и SDXL. Так, для SDXL рекомендуется задействовать (по мнению автора расширения) пресеты: b1= 1.3, b2 = 1.4, s1 = 0.9, s2 = 0.2. Рассмотрим настройки расширения (рис. 19.20):  Start At Step — отвечает за начало применения FreeU (когда будет закончена генерация стандартными методами и начнется генерация способом FreeU);  Stop At Step — отвечает за завершение применения FreeU;  Transition Smoothness — отвечает за плавность перехода между Start At Step и Stop At Step; 1 См. https://clck.ru/3HDV7M.
304 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 19.19. Установка расширения FreeU Рис. 19.20. Настройки расширения FreeU  Backbone...Scale, Backbone...Offset и Backbone...Width — лучше не менять и оставить по умолчанию (задать настройки, которые рекомендует автор);  Skip…Scale, Skip…High End Scale и Skip…Cutoff — лучше не менять и оста- вить по умолчанию (задать настройки, которые рекомендует автор).
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 305 Сравним результаты генерации с использованием расширения FreeU и без него, задав общие для всех генераций настройки: Sampling method = DPM++ 2M, Schedule type = Automatic, Sampling steps = 20, Width = 1200, Height = 808, CFG Scale = 7, Seed = 1774948617, Checkpoint = Juggernaut_X_RunDiffusion (табл. 19.1). Таблица 19.1. Сравнение результатов генераций изображений на различные темы без расширения FreeU и с ним Без FreeU С FreeU Промт: a beautiful girl of European appearance, a girl with red hair, long red hair, a girl dressed in a blue evening dress, the background is a night city,glowing lights of buildings, the light from a lantern falls on the girl, good lighting, high detail П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Попробуйте самостоятельно поэкспериментировать с расширением, выбирая способ генерации в зависимости от поставленных задач. Подробную информацию о расширении FreeU вы найдете в следующих источниках:  FreeU: https://clck.ru/3Cu2np;  Sd-webui-freeu: https://clck.ru/3Cu2nL;  видеосравнение генерации без и с FreeU: https://clck.ru/3Cu2nw. Расширение Color Correction и методы обработки StableSR: цветокоррекция изображения на вкладке Extras Установите любым удобным способом расширение Color Correction и методы обработки изображений StableSR, добавляющие встроенную функцию цветокоррекции загружаемого на вкладку Extras изображения (рис. 19.21) и выполните обработку заданных изображений на основе изображения, с которого будет браться цвет (рис. 19.22). В табл. 19.2 на примере изображения девушки из разд. «Расширение A Person Mask Generator: быстрая замена одежды и частей тела человека» приведено сравнение изображений, обработанных с использованием расширения Color Correction и методов StableSR.
306 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 19.21. Расширение Color Correction Рис. 19.22. Изображение, которое помещается в окно расширения Color Correction с тем, чтобы его цвета применялись для обработки загружаемых на вкладку Extras изображений Таблица 19.2. Применение расширения Color Correction и методов обработки StableSR Исходное изображение Method: A1111
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 307 П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Подробную информацию о расширении Color Correction и методах StableSR вы найдете в следующих источниках:  Color Correction: https://clck.ru/3Cu2o9;  StableSR: https://clck.ru/3Cu2oR. Расширение Canvas Editor: быстро создаем визитку Установим расширение Canvas Editor (рис. 19.23) и создадим с его помощью визитку для компании по дизайну интерьера. Рис. 19.23. Расширение Canvas Editor Загрузите на холст изображение интерьера комнаты с кроватью золотого цвета (см., например, разд. «Режим Inpaint upload вкладки img2img: добавление деталей по маске» урока 18), для фона выберите любое изображение из вкладки Background, поменяйте для исходного изображения прозрачность на 25% (рис. 19.24), добавьте размытие на 3, загрузите текст (рис. 19.25), просто перетащив его на холст (поскольку это визитная карточка, не стоит перегружать ее информацией — напишите лишь название студии и контактные данные), поменяйте начертание текста, цвет, размер и вид, по желанию добавьте эффектов (рис. 19.26). Подробную информацию про расширение Canvas Editor вы найдете по ссылке: https://clck.ru/3Cu2op.
308 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 19.24. Настройки расширения Canvas Editor для создания визитки Рис. 19.25. Настройки расширения Canvas Editor для создания визитки Рис. 19.26. Визитка, созданная в расширении Canvas Editor
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 309 Расширение ReActor: создаем арты со своим лицом Расширение ReActor позволяет заменять лица на изображениях, поддерживает замену нескольких лиц одновременно, определяет пол и заменяет лица людей только определенного пола, масштабирует лица и улучшает их качество. Установка расширения ReActor Для установки расширения ReActor потребуется сначала произвести несколько подготовительных шагов: 1. Установите Visual Studio 2022 Community1 (полный «вес» в распакованном состоянии примерно 3 Гбайт) или только VS C++ Build Tools2. При установке в разделе Workloads | Desktop & Mobile выберите Desktop Development with C++. 2. В Stable Diffusion перейдите по пути Extensions | Available | Load from: и введите слово ReActor. 3. Если в консоли терминала (черное окошко) вы увидите сообщение: --- PLEASE, RESTART the Server! ---, остановите сервер (комбинацией клавиш <Ctrl>+<C>) и запустите его снова или просто перейдите на вкладку Установлено и нажмите кнопку Применить и перезапустить пользовательский интерфейс. 4. Если вы увидите сообщение Done! — просто перезагрузите пользовательский интерфейс. После установки расширения на вкладках txt2img, img2img и Extras появятся вкладки с настройками ReActor (рис. 19.27). На этом подготовка завершена, и вы можете пользоваться расширением. В НИМАНИЕ ! Используя расширение ReActor, вы соглашаетесь с отказом от ответственности Пользователи этого программного обеспечения должны применять его ответственно, соблюдая местное законодательство. Если задействуется изображение лица реального человека, пользователям предлагается получить согласие от заинтересованного лица и при размещении контента в Сети четко указать, что это deepfake. Разработчики и участники создания этого программного обеспечения не несут ответственности за действия конечных пользователей. Используя это расширение, вы соглашаетесь не создавать какой-либо контент, который: 1 2 • нарушает какие-либо законы; • причиняет какой-либо вред человеку или людям; • пропагандирует (распространяет) любую информацию (как публичную, так и личную) или изображения (как публичные, так и личные), которые могут быть предназначены для причинения вреда; См. https://clck.ru/3Cu2pD. См. https://clck.ru/3Cu2pL.
310 Часть V. Генерация изображения по промту и изображению: вкладка img2img • • распространяет дезинформацию; нацелен на уязвимые группы населения. Предварительно обученные модели InsightFace доступны только для некоммерческих исследовательских целей. Это включает как автоматически загружаемые модели, так и модели, загружаемые вручную. Пользователи этого программного обеспечения должны строго придерживаться указанных условий использования. Разработчики и сопровождающие этого программного обеспечения не несут ответственности за любое неправильное использование предварительно обученных моделей InsightFace. Обратите внимание: если вы собираетесь использовать это программное обеспечение в коммерческих целях, вам необходимо будет обучить собственные модели или найти модели, которые можно использовать в коммерческих целях. Рис. 19.27. Настройки расширении ReActor
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 311 Способ применения расширения ReActor и обзор его настроек Вот описание простого и быстрого способа: 1. Включите расширение, нажав кнопку Enable. 2. В раскрывающемся меню ReActor импортируйте изображение, содержащее лицо. Для режима txt2img — у нового изображения будет лицо загруженного изображения, для режима img2img и других режимов — у изображения, помещенного в область img2img, лицо будет заменяться на лицо, помещенное в область ReActor. 3. Нажмите кнопку генерации — сгенерированный результат будет иметь выбранное вами лицо. Рассмотрим теперь пять имеющихся настроек расширения ReActor (см. рис. 19.27) подробнее:  Main: • Select Source — источник для замены лица:  Image(s) — одно или несколько лиц;  Face Model — модель конкретного лица;  Folder — папка с исходными лицами; • Single или Multiple; • Save Original (Swap in generated only) — сохранить исходное изображение(я), сделанное перед заменой (лучше активировать); • Face Mask Correction — корректировать маску лица, если заметна пикселизация (активировать в зависимости от качества изображения); • Source Image (above) — отвечает за исходное изображение:  Comma separated face number(s); Example: 0,2,1 — ReActor распознает лица на изображениях в следующем порядке: слева→справа, сверху→ снизу. Индекс первого обнаруженного лица равен 0. Можно задать индексы в нужном порядке — например: 0,1,2 (для источника), 1,0,2 (для входа). Это означает: вторая грань входа (индекс = 1) будет заменена первой гранью источника (индекс = 0) и т. д.;  Gender Detection (Source): No, Female Only, Male Only — определение пола (источника для замены): женщина, мужчина; • Target Image (result) — отвечает за конечный результат генерируемого изображения:  Comma separated face number(s); Example: 1,0,2 — числа лиц;  Gender Detection (Target): No, Female Only, Male Only — определение пола (источника для замены): женщина, мужчина; • Restore Face (None, CodeFormer, GFPGAN) — отвечает за восстановление лица;
312 Часть V. Генерация изображения по промту и изображению: вкладка img2img • Restore Face Visibility — отвечает за восстановление видимости лица; • CodeFormer Weight (Fidelity) — «вес» CodeFormer: 0 = далеко от оригинала (максимальное восстановление), 1 = близко к оригиналу (минимальное восстановление); • Swap:  Swap in source image — поменять лицо на исходном изображении;  Swap in generated image — поменять лицо на сгенерированном изображении;  Detection: • Threshold — чем выше значение, тем чувствительнее обнаружение того, что считается лицом; • Max Faces — максимальное количество лиц для обнаружения; • Clear Source Images Hash (Single), Clear Source Images Hash (Multiple) — очистить хеш исходных изображений (одиночный) или очистить хеш исходных изображений (несколько); • Clear Target Image Hash, Clear All Hash — очистить хеш целевого изображения или очистить весь хеш;  Upscale: • 1. Restore Face -> 2. Upscale (-Uncheck- if you want vice versa) — сначала восстановить лицо, потом увеличить масштаб (снимите флажок, если хотите, чтобы было наоборот); • Force Upscale — в любом случае увеличивать, даже если лицо не найдено; • Upscaler — функция, схожая с Upscaler на вкладке Extras; • Scale by — масштабировать во сколько раз (указать значение); • Upscaler Visibility (if scale = 1) — видимость апскейлера;  Tools (Face Models) — позволяет создавать модели лиц конкретных людей: • Single — загрузка изображения одного человека;  Face Model Name — здесь нужно ввести имя модели; • Blend — смешивание нескольких лиц в одну модель:  Compute (Method Mean, Median, Mode) — метод вычисления: Mean — рекомендуется среднее значение (лучший результат — примечание автора расширения); Median — среднее значение (может быть смешным — примечание автора расширения); Mode — наиболее распространенное значение (может быть пугающим — примечание автора расширения). Mean и Median будут похожи, если загрузить два изображения;  Check -Embedding Shape- on Similarity — отвечает за пропуск лиц, которые слишком сильно отличаются от первого в списке, чтобы предотвратить возможные «несоответствия форм»;  Face Model Name — здесь нужно ввести имя созданной модели;
Урок 19. Расширения для создания быстрых эффектов, ретуши изображений и дизайна 313  Settings (эти настройки лучше оставить по умолчанию): • Execution Provider (CPU, CUDA) — на чем происходит обработка информации (процессор или видеокарта); • Model — используемая модель; • Console Log Level (No log, Minimum, Default) — уровень подробности записи логов; • Source Image Hash Check — рекомендуется оставить включенным; • Target Image Hash Check — влияет на что-либо, если используется вкладка Upscale или img2img только с включенной функцией «Заменить исходное изображение»). При замене лица на вкладке img2img — чтобы исходное изображение (кроме лица) не изменилось — надо задавать Denoising strength = 0. Подробную информацию про расширение ReActor вы найдете по ссылке: https://clck.ru/3Cu2qd.
УРОК 20 Оптимизация интерфейса и скрипты вкладки img2img  Расширение SD Webui Tabs: оптимизируем интерфейс нейросети  Скрипты вкладки img2img • Скрипт img2img alternative test • Скрипт Loopback • Скрипты Outpainting mk2 и Poor man's outpainting: расширение изображения  Скрипты SD upscale, Ultimate SD upscale: масштабирование (увеличение) изображения  Скрипт controlnet m2m Расширение SD Webui Tabs: оптимизируем интерфейс нейросети Расширение SD Webui Tabs оптимизирует работу в нейросети — оно позволяет переходить на вкладки с установленными и открытыми в интерфейсе расширениями и скриптами не прокруткой его вверх/вниз, а простым нажатием соответствующей кнопки. Когда то или иное расширение или скрипт включены, их кнопка подсвечивается зеленым (рис. 20.1). После запуска установленного расширения SD Webui Tabs в папке Extension будет создан файл tab_configs.csv (рис. 20.2, а). Чтобы изменить сторону размещения каждого установленного в интерфейсе расширения или скрипта, этот файл можно редактировать (рис. 20.2, б):  запись left (левая сторона) — относятся к параметрам исходного местоположения;  запись right (правая сторона) — относятся к результатам генерации;  запись tabs управляет размещением кнопок Tab;  запись default определяет, где должно быть размещено каждое новое расширение, не входящее в конфигурацию;  остальные записи управляют размещением всех доступных расширений.
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 315 Рис. 20.1. Внешний вид AUTOMATIC1111 после применения расширения SD Webui Tabs Подробную информацию о расширении SD Webui Tabs вы найдете по ссылке: https://clck.ru/3Cu2qu. Скрипты вкладки img2img Скрипт img2img alternative test Работу скрипта img2img alternative test мы проверим на Checkpoint 1.5: 526mixV145_ v145. Скрипт этот представляет собой некую альтернативу расширению A Person Mask Generator — с той лишь разницей, что не создает маски. С помощью настроек, рекомендуемых автором скрипта, можно получить одно и то же изображение или изменить часть промта, изменяя на изображении только его часть и не генерируя заново всё остальное. Прежде чем перейти к примерам, рассмотрим настройки скрипта (рис. 20.3) и зададим необходимые значения, при которых он будет работать:  скрипт работает на Euler sampling method, поэтому в основном интерфейсе ней- росети необходимо задействовать именно его;  задайте CFG scale = 2 или менее, Sampling steps = 50-60 (оптимальные значения для этого скрипта), Denoising strength = 1, Width и Height должны быть такими же, как и Width и Height исходного изображения, Decode cfg scale = 1, Decode steps должны точно соответствовать количеству Sampling steps исходного изображения, Seed — не имеет значения, можно оставить рандомным;
316 Часть V. Генерация изображения по промту и изображению: вкладка img2img а б Рис. 20.2, б. Настройки расширения SD Webui Tabs
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 317 Рис. 20.3. Настройки скрипта img2img alternative test  сгенерируйте любое изображение в режиме txt2img с любыми настройками (в нашем случае это будет положительный промт: Portrait of a beautiful smiling girl with red hair with a blue dress, high detail, photography и отрицательный промт: sketch, flat_color, monochrome, halftone, greyscale, chromatic_aberration, pixel art, Encaustic ainting, watercolor, illustration,lowres) и поместите положительный промт в поле Original prompt скрипта img2img alternative test, а отрицательный промт — в поле Original negative prompt (рис. 20.4);  настройку Override `prompt` to the same value as `original prompt` (and `negative prompt`) можно включать только при первой генерации — для сравнения оригинала изображения и изображения, сгенерированного с помощью скрипта; Рис. 20.4. Генерация исходного изображения на вкладке txt2img
318 Часть V. Генерация изображения по промту и изображению: вкладка img2img  чтобы при генерации на изображении отсутствовал шум, следует установить флажок: Sigma adjustment for finding noise for image;  все остальные настройки лучше оставить активированными (рис. 20.5). Рис. 20.5. Использование скрипта img2img alternative test: генерация на вкладке img2img изображения на основе другого изображения После «деконструкта» входного изображения с использованием обратного диффузора Euler и исходного входного промта мы получили практически то же самое изображение, имеющее совершенно другой Seed (рис. 20.6). Рис. 20.6. Результат генерации с использованием скрипта img2img alternative test
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 319 Изменим на изображении цвет волос, заменив в исходном положительном промте (не в скрипте img2img alternative test!) только ключевые слова red hair (рыжие волосы) на brown hair (каштановые), и нажмем кнопку генерации. По той же схеме последовательно поменяем лицо девушки со смеющегося на хмурое (frowning), цвет платья с голубого на черное (black) и, наконец, добавим промт: Portrait of a beautiful gloomy (угрюмой) girl with brown hair in a black dress, riding a horse (езда на лошади), high detail, photography (табл. 20.1). Таблица 20.1. Сравнение генерации пяти изображений с использованием скрипта img2img alternative test на основе одного исходного кадра Оригинальный промт Первая генерация Последовательное изменение промта Portrait of a beautiful smiling girl with red hair with a blue dress, high detail, photography Portrait of a beautiful smiling girl with red hair with a blue dress, high detail, photography Portrait of a beautiful smiling girl with brown hair with a blue dress, high detail, photography П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Как можно понять из приведенного примера, скрипт img2img alternative test стабильно работает до тех пор, пока исходный промт не будет сильно изменен и в него не будут добавлены новые ключевые слова. Подробную информацию о скрипте img2img alternative test вы найдете по ссылке: https://clck.ru/3Cu2rU.
320 Часть V. Генерация изображения по промту и изображению: вкладка img2img Скрипт Loopback Скрипт Loopback позволяет автоматически подавать выходное изображение в качестве входного для следующей генерации — аналогично сохранению выходного изображения и замене им входного изображения. При этом вы сами выбираете одно из многих изображений для следующей итерации. Рассмотрим настройки скрипта (рис. 20.7):  Loops — отвечает за количество генерируемых изображений;  Final denoising strength — отвечает за интенсивность шумоподавления;  Denoising strength curve — кривая силы щумоподавления (агрессивная, линей- ная, ленивая);  Append interrogated prompt at each iteration — отвечает за выбор модели оп- ределения (CLIP или DeepBooru). Рис. 20.7. Настройки скрипта Loopback Рис. 20.8. Исходное изображение Подадим на вход для скрипта Loopback оригинальное изображение (рис. 20.8) — на его основе создается новое (первое) изображение для каждого вида кривой силы шумоподавления — и, изменяя настройки к нему, сравним действие кривой силы подавления шума. Первое изображение генерируется на основе исходного изображения, второе создается с опорой на первое, третье — на основе второго и т. д. Получается своеобразный img2img с постоянной заменой первоначального изображения при каждой генерации (табл. 20.2).
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 321 Таблица 20.2. Изменение генерируемого изображения с использованием разных видов кривой силы подавления (генерируем по три изображения) Вид кривой силы шумоподавления Последовательно генерируемые изображения Aggressive 1 2 3 П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). С каждым «лупом» изображение становится лучше, но это происходит не всегда. Тем не менее скрипт Loopback иногда можно использовать как своеобразную альтернативу расширениям ADetailer или Refiner. Скрипты Outpainting mk2 и Poor man's outpainting: расширение изображения Скрипт Outpainting mk2 Рассмотрим настройки скрипта (рис. 20.9):  Pixels to expand — отвечает за количество пикселов для расширения изобра- жения (лучше не ставить больше 144, иначе на изображении могут возникнуть артефакты и деформации объектов);  Mask blur — маска размытия зон на изображении, где происходит расширение пикселов (лучше не ставить больше 14);  Outpainting direction — отвечает за направление расширения изображения (влево, вправо, вверх и вниз);  Fall-off exponent (lower=higher detail) — отвечает за детализацию генерируемо- го расширения изображения (ниже значение → выше детализация);  Color variation — цветовая вариация.
322 Часть V. Генерация изображения по промту и изображению: вкладка img2img Рис. 20.9. Настройки скрипта Outpainting mk2 Расширим исходное изображение (используемое в разд. «Скрипт img2img alternative test» — см. рис. 20.8) одновременно вправо и влево, установив соответствующие флажки в настройках скрипта. Перед началом генерации установим рекомендуемые настройки: Sampling Steps: 80–100 (установим = 85), Sampler: Euler a, Denoising strength: 0.8, и запустим генерацию — скрипт хорошо справился со своей задачей (рис. 20.10). Рис. 20.10. Результат генерации изображения скриптом Outpainting mk2
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 323 Скрипт Poor man's outpainting Скрипт Poor man's outpainting аналогичен скрипту Outpainting mk2 (те же самые настройки: Pixels to expand, Mask blur, Outpainting direction). Дополнительно в нем присутствует настройка Masked content, аналогичная такой же настройке в режиме Inpaint Masked content вкладки img2img. Расширим по аналогии со скриптом из предыдущего раздела изображение влево и вправо. Pixels to expand поставим = 128, Mask blur = 5, Masked content = original. Основные настройки зададим следующие: Sampling method = Euler, Schedule type = Automatic, Sampling steps = 50, CFG Scale = 7, Denoising strength = 0,75, Width = 440, Height = 800, Seed = 3794610728 (рис. 20.11). Как можно видеть (рис. 20.12), скрипт Poor man's outpainting создает более однотонный фон по сравнению со скриптом Outpainting mk2. Самостоятельно поэкспериментируйте с настройками скрипта. Рис. 20.11. Настройки скрипта Poor man's outpainting Рис. 20.12. Результат генерации изображения скриптом Poor man's outpainting
324 Часть V. Генерация изображения по промту и изображению: вкладка img2img Скрипты SD upscale, Ultimate SD upscale: масштабирование (увеличение) изображения Скрипт SD upscale Скрипт SD upscale (рис. 20.13) — не является предпочтительным методом масштабирования, в отличие от Hires. fix и вкладки Extras. Тем не менее его можно использовать для увеличения изображения путем задания выбранного коэффициента масштабирования с помощью ползунков ширины и высоты, определяющих размер плитки (tile). П РИМЕЧАНИЕ По сообщениям автора скрипта: «SD upscale несколько глючный по сравнению со скриптом Ultimate SD upscale». Рис. 20.13. Настройки скрипта SD upscale Подробную информацию о cкрипте SD upscale вы найдете по ссылке: https://clck.ru/3Cu2rr. Скрипт Ultimate SD upscale Поскольку ряд настроек этого скрипта (рис. 20.14) совпадает с настройками, описанными ранее для режимов Hires. fix, img2img и Extras, мы их здесь повторно комментировать не станем и рассмотрим только те, что пока еще нам незнакомы:  настройка Target size type — отвечает за размер итогового изображения, — для нее может быть выбрано одно из трех значений:
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 325 Рис. 20.14. Настройки скрипта Ultimate SD upscale • From img2img2 settings — если выбрать это значение, то ширина и высота возьмутся из настроек img2img по умолчанию; • Custom size — при выборе этого значения появляется возможность настроить величины Custom width и Custom height, вплоть до 8192 пикселов по каждой стороне; • Scale from image size — размер получаемого изображения берется из исходного размера, умноженного на определенный коэффициент масштабирования (нужно указать значение);  Upscaler — эту настройку мы тоже рассматривали ранее, но автор скрипта советует использовать: ESRGAN — для фотореалистичных изображений и R-ESRGAN 4x+ — для других;
326 Часть V. Генерация изображения по промту и изображению: вкладка img2img  Type может быть: • Linear — отвечает за обработку плиток по одной: столбец за столбцом, строка за строкой; • Chess — все плитки будут обработаны в шахматном порядке (это снижает вероятность появления артефактов на швах);      • None — отвечает за отключение перерисовки. Эту настройку можно использовать при запуске генерации без исправления швов; Tile width — ширина каждой плитки. Чем больше плитка, тем меньше артефактов будет на конечном изображении. Для изображения разрешением 2K достаточно 512 px; Tile height — высота плитки. По умолчанию стоит 0 — т. е. высота равна ширине. Чем больше плитка, тем меньше артефактов будет на конечном изображении. Для изображения разрешением 2K достаточно 512 px; Mask blur — размытие маски. Установите значение 12–16 при размере плитки 512–768 пикселов и увеличьте его, если увидите швы. (Установите значение 8–16 на отступе 32 px. Увеличьте, если отступ увеличился», — рекомендует автор скрипта); Padding — указывает, сколько пикселов соседней плитки (сектора изображения) будет учитываться при обработке плитки; Seams fix:/Type — тип исправления швов, включает четыре параметра: • None — исправление швов отключено; • Bands pass — добавляет проходы только по швам (строкам и столбцам) и покрывает небольшую область вокруг них. Требует меньше времени, чем проход со смещением; • Half tile offset pass — создает два прохода: один проход — для строк с вертикальной маской градиента и один проход для столбцов с горизонтальной маской градиента. Этот проход охватывает большую площадь, чем полосы, и в основном дает лучший результат, но требует больше времени; • Half tile offset + intersections pass — выполняется проход смещения половины плитки, а затем выполняется дополнительный проход на пересечениях с маской радиального градиента. В зависимости от того, какой тип исправления включен, добавляется определенная настройка: • Denoise — отвечает за исправление швов; • Width — занимается перерисовкой ширины линии шва (используется только в Band pass); • Padding — определяет, сколько пикселов изображения около шва будет учтено при обработке плитки;  настройку Seams fix нужно включить для улучшенного опыта взаимодействия со скриптом.
Урок 20. Оптимизация интерфейса и скрипты вкладки img2img 327 Подробную информацию о cкрипте Ultimate SD upscale вы найдете на официальной странице этого скрипта в GitHub по ссылке: https://clck.ru/3HLmAW. Скрипт controlnet m2m Этот скрипт устанавливается автоматически после установки расширения ControlNet (его изучению посвящен следующий урок). Чтобы расширение стабильно работало, нужно сначала его настроить — перейдите по пути: вкладка Settings | категория настроек Uncategorized | вкладка ControlNet, активируйте настройку Allow other script to control this extension, установив соответствующий галочку), и нажмите кнопку Apply settings. Основная задача скрипта — это обработка видеофайлов. На вкладку Movie Input любой вкладки ControlNet (рис. 20.15) перетаскивается (загружается) видеофайл, после чего следует выбрать продолжительность видео через настройку Duration (значение указывается в секундах), активировать настройку Save preprocessed, перейти в основное расширение ControlNet и произвести там необходимые настройки. Подробную информацию о cкрипте controlnet m2m вы найдете на официальной странице этого скрипта в GitHub по ссылке: https://clck.ru/3HLoyr. Рис. 20.15. Настройки скрипта controlnet m2m
328 Часть V. Генерация изображения по промту и изображению: вкладка img2img
ЧАСТЬ VI Нейросеть внутри нейросети: расширение ControlNet Урок 21. Установка расширения ControlNet и загрузка моделей Урок 22. Настройки расширения ControlNet и создание нового изображения на основе контуров другого изображения

УРОК 21 Установка расширения ControlNet и загрузка моделей  Установка расширения ControlNet  Загрузка моделей расширения ControlNet  Разница между моделями ControlNet в интерфейсах нейросетей ControlNet — это специальное расширение, представляющее собой дополнительную управляющую сеть внутри нейросети Stable Diffusion, работающую на основе специальных изображений, выступающих в роли трафаретов. С помощью ControlNet можно задавать дополнительные входные условия для изображения — к примеру: позу персонажа, очертания исходной картинки в виде наброска или рисунка акварелью, глубину резкости сегментированного изображения и т. п. ControlNet добавляет больше условий к генерируемому изображению, тем самым обеспечивая больший контроль за генерацией, поэтому дающей наиболее лучший результат. Установка расширения ControlNet Для установки ControlNet по аналогии с установкой других расширений перейдите на вкладку Extensions | Available | Load from:, введите в текстовом поле: ControlNet и загрузите расширение sd-webui-controlnet (рис. 21.1) — у него вы увидите наибольшее число загрузок и «звезд». После установки расширения на вкладках txt2img и img2img появятся вкладки с его настройками (рис. 21.2). Рис. 21.1. Установка расширения ControlNet- Загрузка моделей расширения ControlNet Условно говоря, само расширение ControlNet представляет собой лишь алгоритм работы, и для его применения требуется загрузить с сайта Hugging Face специаль-
332 Часть VI. Нейросеть внутри нейросети: расширение ControlNet Рис. 21.2. Настройки расширения ControlNet ные модели для поколений нейросети 1.5 (модели поколения 1.5 и 2.0 совместимы между собой) и SDXL 1.0. Модели SD 1.5 и SDXL 1.0 невзаимозаменяемы и могут использоваться только вместе с соответствующим поколением моделей Checkpoint. Однако, прежде чем начинать загрузку, следует учесть, что модели, представленные там для закачки, могут иметь весьма значительный «вес». Так, восемь моделей для версий 1.5 или 2.0, закачать которые можно по ссылке https://vk.cc/cA19x0, весят по 5,7 Гбайт каждая, причем вам еще понадобится загрузить с других сайтов ряд дополнительных моделей. Впрочем, по ссылке https://vk.cc/cA19y3 предлагаются к закачке уменьшенные до 1,5 Гбайт версии этих моделей, однако и это тоже в сумме составит значительный объем. Выход из столь затруднительного положения предоставляет возможность загрузить по ссылке https://clck.ru/3HMgsg еще более уменьшенные версии моделей — по
Урок 21. Установка расширения ControlNet и загрузка моделей 333 723 Мбайт каждая (рис. 21.3). Приятно, что при таком значительном уменьшении из них ничего не было вырезано — их уменьшили вдвое путем преобразования в 16-битные варианты. Рис. 21.3. Фрагмент диалогового окна сайта Hugging Face: основные модели SD 1.5 для расширения ControlNet Итак, скачайте все 15 файлов объемом по 723 Мбайт, имеющих в своем имени фрагмент safetensors (файлы с фрагментом yaml загружать не нужно — они извлекутся самостоятельно) и поместите их в папку models по пути \stable-diffusionwebui\extensions\sd-webui-controlnet\models. В НИМАНИЕ ! Нужно загрузить именно версии файлов размером 723 Мбайт. Для версии SD 1.5 существуют также специальные модели, обеспечивающие копирование и создание поз животных (Animal Openpose), — скачайте по ссылке https://clck.ru/3HMmtQ (рис. 21.4) файл такой модели размером 723 Мбайт. Модель IP-Adapter-FaceID, обеспечивающая перенос лица и стиля изображения с лицом на другое изображение (эту модель можно считать альтернативой расширению ReActor), способна генерировать различные обусловленные лицом стили изображений, используя только текстовые подсказки. Скачайте по ссылке https:// clck.ru/3HMoFA (рис. 21.5) два файла модели, имеющие в своем имени фрагмент safetensors, и поместите их в папку по пути stable-diffusion-webui\models\ControlNet, а также два файла модели, имеющие в своем имени фрагмент bin, и поместите их в папку по пути stable-diffusion-webui\models\Lora (рис. 21.6).
334 Часть VI. Нейросеть внутри нейросети: расширение ControlNet Рис. 21.4. Загрузка модели Animal Openpose SD 1.5 для расширения ControlNet Рис. 21.5. Фрагмент диалогового окна сайта Hugging Face: модели IP-Adapter-FaceID SD 1.5 для расширения ControlNet Рис. 21.6. Загрузка моделей IP-Adapter-FaceID SD 1.5 для расширения ControlNet
Урок 21. Установка расширения ControlNet и загрузка моделей 335 Модель IP-Adapter обеспечивает придание стиля генерируемому изображению на основе референса и простого текстового промта (1–10 слов). Скачайте по ссылке https://clck.ru/3HMsQS (рис. 21.7) все файлы модели и поместите их в папку по пути stable-diffusion-webui\models\ControlNet. Фрагмент bin в имени файлов замените на pth. Рис. 21.7. Загрузка моделей IP-Adapter SD 1.5 для расширения ControlNet T2I-Adapter — это нейросеть, являющаяся альтернативой расширению ControlNet и позволяющая генерировать с помощью моделей T2I-Adapter всё то же самое, что и ControlNet. Расширение ControlNet поддерживает модели T2I-Adapter. Скачайте по ссылке https://clck.ru/3HMuX4 (рис. 21.8) 18 моделей и поместите их в папку по пути stable-diffusion-webui\extensions\sd-webui-controlnet\models. Официальных моделей для поколения SDXL еще нет, однако трудами сообщества Stable Diffusion было разработано несколько видов моделей от разных авторов. Все модели SDXL ControlNet загружаются в те же папки, что и модели SD 1.5 ControlNet:  модели от автора Lvmin's расположены по ссылке https://clck.ru/3HMvp4 (рис. 21.9). Всего на этой странице представлено 43 модели, однако загружать их все совершенно не обязательно — больше половины из них выполняют одни и те же функции, поэтому для вашего удобства все модели были протестированы и самые лучшие из них представлены в папке, показанной на рис. 21.10;
336 Часть VI. Нейросеть внутри нейросети: расширение ControlNet Рис. 21.8. Загрузка моделей T2I-Adapter SD 1.5 для расширения ControlNet Рис. 21.9. Основные модели SDXL от автора Lvmin's для расширения ControlNet
Урок 21. Установка расширения ControlNet и загрузка моделей 337 Рис. 21.10. Папка расположения моделей SDXL от автора Lvmin's для расширения ControlNet  из всех моделей SDXL от автора Qinglong's особый интерес для нас представля- ют модели Segment, MLSD, Recolor и Tile realistic. Загрузить их можно по ссылке https://clck.ru/3HMxvD;  модель TTPLanet Tile Realistic, обученная сообществом для SDXL, обеспечивает создание реалистичных изображений на основе аниме. Найти и загрузить эту модель можно на сайте Civitai по ссылке https://clck.ru/3HMyFr. Обратите при этом внимание на лицензию ее использования (рис. 21.11);  модели SDXL от автора 2vXpSwA7, скачать которые можно по ссылке https://clck.ru/3HMzWu (рис. 21.12), обучены для создания любого стиля и стиля «серых» изображений (учтите, что они не были протестированы автором книги);  модели T2I-Adapter для SDXL можно скачать по ссылке https://clck.ru/3HN2sq;  модель IP-Adapter для SDXL можно скачать по ссылке https://clck.ru/3HN3Du (рис. 21.13);  модель IP-Adapter-FaceID для SDXL можно скачать по ссылке https://clck.ru/ 3HN3RM (рис. 21.14);  модель InstantID является улучшенной альтернативой модели IP-Adapter-FaceID. Она использует комбинацию ControlNet и IP-Adapter для управления чертами лица в процессе диффузии, а также поддерживает Hires. fix во время генерации
338 Часть VI. Нейросеть внутри нейросети: расширение ControlNet Рис. 21.11. Загрузка модели TTPLanet Tile Realistic SDXL для расширения ControlNet Рис. 21.12. Загрузка моделей SDXL от автора 2vXpSwA7 для расширения ControlNet
Урок 21. Установка расширения ControlNet и загрузка моделей Рис. 21.13. Загрузка модели IP-Adapter SDXL для расширения ControlNet Рис. 21.14. Загрузка IP-Adapter-FaceID модели SDXL для расширения ControlNet 339
340 Часть VI. Нейросеть внутри нейросети: расширение ControlNet и множественный ввод лиц. Для правильной работы модели необходимо скачать две модели по ссылкам: https://clck.ru/3HN5Ln и https://clck.ru/3HN5T4. После загрузки моделей их следует переименовать в ip-adapter_instant_id_sdxl и control_instant_id_sdxl и поместить в папку по пути stable-diffusion-webui\models\ ControlNet. Инструкция по установке моделей приведена на странице Instant ID по ссылке https://clck.ru/3HN6XV.  у интерфейса Forge есть одна уникальная модель — PhotoMaker для SDXL, которую нельзя установить в интерфейс AUTOMATIC1111, поэтому мы рассмотрим ее на примере WebUI Forge. Эта модель «берет» лицо с исходного изображения, создает на его основе очень похожее лицо и встраивает его в другое изображение. Скачать модель PhotoMaker для SDXL можно по ссылке https:// clck.ru/3HN8QH (рис. 21.15). Подробную информацию об интерфейсе Stable Diffusion WebUI Forge вы найдете по ссылке: https://clck.ru/3HN9Cu. Рис. 21.15. Загрузка PhotoMaker модели SDXL для расширения ControlNet Разница между моделями ControlNet в интерфейсах нейросетей В интерфейсах Forge и AUTOMATIC1111 наблюдается различие в количестве типов моделей ControlNet, а именно: в интерфейсе AUTOMATIC1111 нет моделей Blur, Sketch и PhotoMaker, а в интерфейсе Forge нет модели SparseCtrl (рис. 21.16). Различия же в самих интерфейсах — минимальны (рис. 21.17). Модели расширения ControlNet и результат их генерации мы подробно рассмотрим на следующем уроке.
Урок 21. Установка расширения ControlNet и загрузка моделей 341 С ОВЕТ При использовании расширения ControlNet расходуются дополнительные ресурсы компьютера и увеличивается время генерации изображений, поэтому, в зависимости от своих ресурсов, выбирайте, на какое поколение моделей ControlNet вам имеет смысл ориентироваться, — на 1.5 или на XL. Некоторые примеры далее будут показаны на версии 1.5, а некоторые — на XL. Рис. 21.16. Интерфейс расширения ControlNet: для WebUI AUTOMATIC1111 (слева) и Forge (справа) Рис. 21.17. Интерфейс расширения ControlNet вместе со всеми настройками: для WebUI AUTOMATIC1111 (слева) и Forge (справа)
342 Часть VI. Нейросеть внутри нейросети: расширение ControlNet * * * Подробную информацию о расширении ControlNet вы найдете в следующих источниках:  ссылки на все модели всех версий ControlNet: https://clck.ru/3HNE2F;  расширение ControlNet: https://clck.ru/3HNE67;  модель PhotoMaker Model Card: https://clck.ru/3HNEDm;  методика использования PhotoMaker: https://clck.ru/3HNEGy;  модель Instant ID: https://clck.ru/3HPSxc;  модель IP-Adapter-FaceID: https://clck.ru/3HPT3v;  модель IP-Adapter-FaceID для SDXL 1.0 на ресурсе Civitai: https://clck.ru/3HPT8E;  модель Instant ID SDXL на ресурсе Civitai: https://clck.ru/3HPTAX;  модель Instant ID SDXL на ресурсе Civitai (2 версия): https://clck.ru/3HPTEj;  основные модели для SDXL 1.0: https://clck.ru/3HPTGs.
УРОК 22 Настройки расширения ControlNet и создание нового изображения на основе контуров другого изображения  Настройки расширения ControlNet  Multi-ControlNet  Работаем с расширением ControlNet: модель Canny Настройки расширения ControlNet  Параметр Control Weight (рис. 22.1) отвечает за «вес» (влияние) модели ControlNet на общий параметр генерации в нейросети Stable Diffusion: • 1 — означает влияние, где примерно 50/50 учитывается и текстовый промт, и модель ControlNet; • 2 — учитывается почти на 100% ControlNet; • 0 — учитывается в большей степени промт.  Параметр Starting Control Step определяет, когда модель расширения должна начать действовать: • 0 — означает самый старт начала генерации; • Ending Control Step — отвечает за конец действия модели ControlNet. Рис. 22.1. Параметры настроек расширения ControlNet: Control Weight, Starting Control Step, Low Threshold и High Threshold
344 Часть VI. Нейросеть внутри нейросети: расширение ControlNet  Параметры Low Threshold и High Threshold лучше оставить по умолчанию.  Настройки Control Mode (рис. 22.2) включают четыре параметра: • Balanced — никак не влияет на генерацию (включен по умолчанию); • My prompt is more important — придает при генерации промту более важное значение, чем модели ControlNet; • ControlNet is more important — придает при генерации модели ControlNet более важное значение, чем промту, что дает меньше артефактов и больше возможностей нейросети угадать, чего не хватает в подсказках (добавляет изображению четкости, но в случае генерации людей может изменить черты лица); • Resize Mode — работает так же, как и в img2img, поэтому не будем здесь рассматривать этот параметр заново. Рис. 22.2. Настройки Control Mode в расширении ControlNet  Параметр Batch Option отвечает за перевод блоков в пакетный режим. Здесь нужно указать пакетный каталог для каждого блока или задействовать новое текстовое поле на вкладке пакета img2img в качестве резервного варианта (рис. 22.3). При этом надо учесть, что параметр Batch Options следует использовать совместно со вкладкой Batch расширения ControlNet (рис. 22.4). Рис. 22.3. Параметр Batch Option в расширении ControlNet
Урок 22. Настройки расширения ControlNet и создание нового изображения 345 Рис. 22.4. Параметр Batch в расширении ControlNet Multi-ControlNet Multi-ControlNet — это режим, при котором используется не одна, а одновременно несколько моделей ControlNet, они и определяют количество вкладок ControlNet (рис. 22.5). Рис. 22.5. Режим Multi-ControlNet в расширении ControlNet Большое количество моделей можно применять для архитектурной визуализации. Для увеличения или уменьшения количества задействованных моделей нужно зайти в настройки Settings, найти в разделе Uncategorized пункт ControlNet и изменить параметр Multi-ControlNet: ControlNet unit number (requires Reload UI) (рис. 22.6). Рис. 22.6. Настройка количества вкладок ControlNet в расширении ControlNet Работаем с расширением ControlNet: модель Canny Перейдите в режим «text-to-image» и установите те же самые настройки, что и у исходного изображения в разд. «Расширение A Person Mask Generator: быстрая замена одежды и частей тела человека» урока 19 (рис. 22.7).
346 Часть VI. Нейросеть внутри нейросети: расширение ControlNet Рис. 22.7. Изображение, полученное в разд. «Расширение A Person Mask Generator: быстрая замена одежды и частей тела человека» урока 19 Напишите положительный промт: portrait of a beautiful girl with blonde hair, high detail,photo и отрицательный: sketch, flat_color, monochrome, halftone, greyscale, chromatic_aberration, pixel art, Encaustic painting, watercolor, illustration, lowres. Выберите модель Canny — она используется для извлечения контуров изображения и полезна для сохранения композиции исходного изображения. Затем перейдите в расширение ControlNet (в этой генерации мы задействуем XL версию ControlNet), активируйте его, установив флажок Enable, и активируйте, кроме того, установив соответствующий флажок, параметр Allow Preview — для включения предварительного просмотра, позволяющего знать, что делает препроцессор (рис. 22.8). В режиме text-to-image, кроме текстовой подсказки, действует дополнительное условие для генерации итогового изображения — установленная модель ControlNet (в нашем случае модель Canny). Это значит, что после завершения предварительной обработки исходное изображение удаляется, и далее ControlNet работает только с предварительно обработанным изображением, поскольку это расширение не использует для генерации итогового изображения наше исходное изображение — оно его преобразует с помощью тех моделей, которые были в него загружены и установлены. Препроцессор же показывает, что происходит с изображением перед основной генерацией (выбранная модель ControlNet должна соответствовать препроцессору). Активируйте также параметр Pixel Perfect — он улучшает качество изображения и обеспечивает более плавный перенос изображения для отображения в препроцессоре. Вы можете установить и флажок Low VRAM — если у вашего компьютера менее 8 Гбайт видеопамяти (кстати, на видеокартах с большим объемом значительного ускорения не наблюдалось).
Урок 22. Настройки расширения ControlNet и создание нового изображения 347 Рис. 22.8. Использование модели Canny в расширении ControlNet Можно добавить дополнительную маску для изображения, активировав параметр Effective Region Mask, — он открывает дополнительное окно для загрузки маски (рис. 22.9). Если было загружено много моделей одного типа (в нашем случае Canny), то для генерации можно выбрать любую из них (рис. 22.10). Главные отличия моделей — это качество обработки и генерации итогового изображения:  модель small — считывает наименьшее количество деталей и дает худшую картинку;  модель mid — улучшает качество, но при этом увеличивает время генерации (1,5 минуты против 30 секунд в small);
348 Часть VI. Нейросеть внутри нейросети: расширение ControlNet Рис. 22.9. Дополнительное окно для загрузки маски Рис. 22.10. Препроцессоры и модели расширения ControlNet
Урок 22. Настройки расширения ControlNet и создание нового изображения 349  модель full — считывает наибольшее количество деталей, но и генерация замед- ляется существенно (4 минуты на 1 изображение);  модель 128lora — показывает результат, немного хуже small, при этом генерируя результат за 25 секунд, а модель 256lora — создает сопоставимый результат с моделью mid, лишь немного уступая ей в качестве, но давая ускорение почти в два раза (табл. 22.1). Таблица 22.1. Сравнение моделей по размеру/качеству для расширения ControlNet Модель Mid Модель Full П РИМЕЧАНИЕ Здесь показано только начало таблицы. Полный ее вариант вы найдете в PDF-версии урока, расположенной в файловом архиве (см. приложение). Чтобы активировать препроцессор, нужно нажать на значок «взрыва» текстовым полем препроцессора и текстовым полем модели (рис. 22.11). между Рис. 22.11. Активация препроцессора в расширении ControlNet * * * В ИДЕОУРОК К УРОКУ 22 Напомню, что видеоурок к уроку 22 (файл Урок_22_ControlNET_КНИГА.mp4) расположен в сопровождающем книгу файловом архиве, скачать который с сервера издательства «БХВ» можно по ссылке https://zip.bhv.ru/9785977520614.zip, а также со страницы книги на сайте https://bhv.ru. Подробную информацию про расширение ControlNet вы найдете в следующих источниках (статьи могут быть на английском языке):  ссылки на все модели всех версий ControlNet: https://clck.ru/3HPspB;  расширение ControlNet: https://clck.ru/3HPtAn;  SDXL Union — общая модель, объединяющая 12 моделей для SDXL: https://clck.ru/3HPtHD;
350 Часть VI. Нейросеть внутри нейросети: расширение ControlNet  модель IP-Adapter-FaceID для SD 1.5 на ресурсе Civitai: https://clck.ru/3HPtTD и https://clck.ru/3HPtc2;  основные модели для SD 2.1: https://clck.ru/3HPtp7;  расширение Openpose Editor для ControlNet в Stable Diffusion WebUI: https://clck.ru/3HPu3k;  статья про использование MultiControlNet для смены нарядов «Using MultiControlNet to Change Outfits»: https://clck.ru/3HPuNa;  статья про использование ControlNet для решения задач бизнеса «A Real Business Case with ControlNet»: https://clck.ru/3HPubD;  MultiDiffusion: объединение путей диффузии для контролируемой генерации изображений (генерация нескольких объектов в кадре): https://clck.ru/3HPuij;  использование модели ControlNet union SDXL: https://clck.ru/3HPuon;  использование T2I-Adapter для SD-1.4/1.5 и SDXL: https://clck.ru/3HPuu2;  модели T2I-Adapter для SD-1.4/1.5 и SDXL: https://clck.ru/3HPuxv;  обозначение цветов модели Segmentation в ControlNet: https://clck.ru/3FDd4A;  ссылка на прототип Figma c результатами тестирования всех моделей ControlNet с возможностью просмотра без регистрации в сервисе: https://clck.ru/3FDd2Q;  ссылка на прототип Figma c результатами тестирования всех моделей ControlNet с возможностью просмотра только с регистрацией в сервисе (больше возможностей просмотра файла): https://clck.ru/3FDd2x.
ПРИЛОЖЕНИЕ Описание файлового архива, сопровождающего книгу Сопровождающий книгу файловый архив содержит видеоуроки (к урокам 5 и 22), где подробно разобраны сложные моменты, требующие дополнительного пояснения, а также цветные PDF-файлы, по номерам соответствующие урокам книги и содержащие полный комплект ее иллюстраций. Скачать файловый архив с сервера издательства «БХВ» можно по ссылке https://zip.bhv.ru/9785977520614.zip, а также со страницы книги на сайте https://bhv.ru.