Экстерьер и интерьер

Что нам понадобится?

Вступление

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

Главное с чего нужно начать - 3D проект или хотя бы фото нужного вида. Благо дело сейчас полно программ как локальных так и через online позволяющих создать проект дома или отдельных его комнат. В качестве примера будет использована программа Revit для проектирования и дополнительное расширение Enscape3D для более удобной постановки камеры с возможностью пройтись пешком или полетать по проекту с применением рендеринга. Обойтись без проекта и стать хорошим дизайнером/архитектором - нельзя, важно соблюдать пропорции, перспективу и конструкционные особенности проекта.  Рассматриваемый способ позволяет не только визуализировать в определённом стиле эталонное изображение, но как следствие применять к нему другие эффекты типа: разрушение, пожар, времена года. Также возможно применение целых стилей по типу кинематографичного рендеринга или мультика в стиле Pixar.

Вот пример применения разрушения к эталонному изображению:

9 juggernautXL_v9Rundiffusionphoto2-destroyed house-1-Time_20240823102728
Настройки

Для работы со Stable Diffusion в Automatic1111 нам понадобится скачать со страницы huggingface модель diffusion_pytorch_model_promax.safetensors которую нужно положить в папку ...\webui\models\ControlNet\

Запомните название модели, допускается переименовать её в более понятное для себя название, я например назвал controlnet-union-sdxl-1_0-promax.safetensors - т.к. эта модель универсальная и включает в себя совокупность моделей для разных целей в controlnet.

Качество генерации будет зависеть от:

  • качества прорисовки эталона, чем чётче будут очертания объектов - тем лучше. В идеале использовать обводку объектов и хорошее разрешение.
  • основной модели генерации, рекомендуется универсальная XL модель, в тестах и примерах я использовал juggernautXL_v9Rundiffusionphoto2, хотя неплохие результаты дал samaritanCGI_v10 - несмотря на гораздо меньшую популярность.
  • наличие на эталоне таких элементов как человеки и мелких деталей сложно определяемых даже на человеческий глаз
  • правильности подобранных настроек

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

  • Выставим разрешение генерируемого изображения согласно пропорциям подгруженного эталона, оно может быть больше рекомендуемого для модели, например для XL по высоте можно выставить 1600, другую сторону можно привести к пропорциям через рядом расположенный замочек при изменении эталонного значения одной из сторон но не более 2048. Чем больше разрешение - тем качественнее генерация и тем больше изменений вносятся в эталон в соответствии с подсказкой и при этом значительно дольше происходит генерация!
  • Preprocessor = none
  • Model = controlnet-union-sdxl-1_0-promax (именно так я назвал скачанную модель), если её не будет в списке то нужно обновить список щёлкнув на рядом расположенную иконку.
  • Control Weight = 1.5 чем больше это значение, тем больше соблюдаются линии объектов и меньше добавляются элементов, чем меньше это значение - тем больше выполняется подсказка и вносится больше преобразований. Соответственно увеличиваем до 2 если есть мелкие детальки которые важнее подсказки, и уменьшаем если подсказка должна вносить большое количество изменений в композицию.
  • Control Mode = My prompt is more important

*Выбор набора настроек Control Type влияет на набор параметров характерных для связки препроцессора и модели. В основном это для удобства работы т.к. у каждой связки могут быть свои ползунки, но тем не менее может немного изменить генерацию.

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

Для применения к конкретным элементам нужно использовать маску.

Для сохранения максимальной схожести лица без применения маски требуется внести корректировки в настройки:

  • Control Weight = 1
  • Control Mode = Balanced
  • Разрешение генерируемой картинки должно быть близко к загруженному эталону для сохранения лица
  • в подсказке пишем не просто что хотим сгенерировать, а прям просим об этом, добавляем токен "make in"

Тест разрешения эталона

Как видим уменьшение разрешения эталона приводит к размытию границ объектов и как следствие к ухудшению качества генерации. Первый пример с разрешением 2557-978 а второй 1024-392 при одинаковых настройках генерации.

3 3- генерация
3-1024 3-1024 генерация

На меньшем разрешении у девушки слева пропала целостность структуры, пропал духовой шкаф, пропал мальчик за столом по центру. Что в целом может следовать из-за ухудшения качества краёв эталонной заготовки. В данном тесте использовалась версия эталона "из пенопласта" без окантовки для выявления эффекта потери граней объектов и как следствие ухудшения их распознавания.

Тест разрешения ГЕНЕРАЦИИ

Рекомендуемое разрешение для модели juggernautXL_v9Rundiffusionphoto2 равно от 832 до 1216) - поэтому при превышении данного параметра возможны искажение в особенности человечков, однако вместе с этим значительно повышается качество, поэтому нужно найти золотую середину.

Разрешение генерации 1024 по длинной стороне не рассматриваю - получается явно отстой.

В сравнении разрешение по длинной стороне 1600 против 2024:

1600 2024

А вот на фасаде с кучей мелких деталей и дальнем плане: 1600x616 в сравнении с 2024x776. Детальки на большем разрешении при увеличении будут чётче и правильнее:

juggernautXL_v9Rundiffusionphoto2-cinematic film still autumn evening shallow depth of-1-Time_20240821192821 juggernautXL_v9Rundiffusionphoto2-cinematic film still autumn evening shallow depth of-1-Time_20240821193003

Вот ещё один пример на другой модели samaritanCGI_v10 на подсказке winter:

samaritanCGI_v10-winter-1-Time_20240822094518 samaritanCGI_v10-winter-1-Time_20240822094801

Вот ещё один пример влияния разрешения при перегенерации, в данном случае я попросил сгенерировать Астронавта на разрешении 1200х1200 и 1600х1600, и как видно получил заметно большее изменение с ростом разрешения генерируемого изображенияr:

ТЕСТ Control Weight

Сравним параметры Control Mode с различными значениями Control Weight.

Как видно есть 2 адекватных варианта (0,85 в балансовом режиме с минимальными изменениями и 1.5 с приоритетом на подсказку и большей стилизацией по подсказке), сравним их и сделаем вывод - лучше всего отрабатывает:

  • Control Weight = 1.5 чем больше это значение, тем больше соблюдаются линии объектов и меньше добавляются элементов, чем меньше это значение - тем больше выполняется подсказка и вносится больше преобразований. Соответственно увеличиваем до 2 если есть мелкие детальки которые важнее подсказки, и уменьшаем если подсказка должна вносить большое количество изменений в композицию.
  • Control Mode = My prompt is more important

 При этом изображение получается более соответствующим описанию (фотореалистичного изображения уютного дома) и сохраняется структура эталона.

Control Weight 0 Control Weight 1

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

ТЕСТ ОЧЕРТАНИЙ

Для большего эффекта уменьшим разрешение эталона до 1024 по длинной стороне. Сравним и сделаем вывод: с очертаниями дефектов меньше.

3-1024 3
6-1024 6
7-1024 7
11-1024 juggernautXL_v9Rundiffusionphoto2-Hyperrealistic art cozy house modern design Extremely high-1-Time_20240820151819

ТЕСТ сравнения с другим набором

Для достижения эффекта рендеринга можно воспользоваться другими препроцессорами, например с использованием Lineart с препроцессором lineart_realistic с приоритетом на подсказке. И как видно далее результат неплох:

realistic lineart_realistic

Результат зависит от используемых препроцессоров, а точнее от чёткости отделения и определения объектов.

Но использование универсальной модели удобнее - во-первых нет необходимости выбирать препроцессор, соответственно не тратится время на его работу. Во-вторых для XL альтернативной модели под некоторые препроцессоры нет либо их нужно искать и качать отдельно. Ну и последнее и самое важное, использование данной модели без препроцессора даёт более правильные композиции, хотя и не идеальные. Например, попросим сделать уютный зимний вечер в фотореалистичном стиле с использованием препроцессора с lineart_realistic и без него на одной и той же модели (на нашей универсальной модели Union-promax). Без препроцессора (изображение справа) интерпрtтация более подходящая, хотя и не без "особенностей".

juggernautXL_v9Rundiffusionphoto2-Make a cozy winter evening Hyperrealistic art cozy-1-Time_20240820175748 juggernautXL_v9Rundiffusionphoto2-Make a cozy winter evening Hyperrealistic art cozy-1-Time_20240820175540

Попробуем попросить разрушить дом (make a destroyed house) с препроцессором, выберем вкладку Lineart с препроцессором lineart_realistic и без него на модели union-promax, параметры:

  • Control Weight1,5 (уменьшение увеличит разрушения но и уменьшит похожесть на эталон, и наоборот)
  • Control Mode = My prompt is more important
juggernautXL_v9Rundiffusionphoto2-make a destroyed house-1-Time_20240820191129 juggernautXL_v9Rundiffusionphoto2-make a destroyed house-1-Time_20240820191248

Теперь всё тоже самое только выберем вкладку InstructP2P параметры такие же только без препроцессора:

Усложним подсказку, сравним выберем вкладку InstructP2P без препроцессора и вкладку Lineart с препроцессором lineart_realistic на одинаковой модели (union-promax) и параметрах. вот подсказка:

cinematic film still make a destroyed house . shallow depth of field, vignette, highly detailed, high budget, bokeh, cinemascope, moody, epic, gorgeous, film grain, grainy
Negative prompt: anime, cartoon, graphic, text, painting, crayon, graphite, abstract, glitch, deformed, mutated, ugly, disfigured

juggernautXL_v9Rundiffusionphoto2-cinematic film still make a destroyed house shallow-1-Time_20240820195347 juggernautXL_v9Rundiffusionphoto2-cinematic film still make a destroyed house shallow-1-Time_20240820195620

Расширенная подсказка больше ясности не вносит, тут всё на вкус и цвет. Но лично мне больше нравится применение вкладки InstructP2P без необходимости тыкаться с препроцессорами.

ТЕСТ модели для генерации

Для основной генерации можно использовать различные модели, многое будет зависеть от неё и подсказки. Тест на 1600 х 616 px - рекомендуется делать повыше, но в данном случае нас интересует сам стиль

Естественно результат будет зависеть от подсказки, эталона и настроек.

ТЕСТ FreeU

FreeU - это дополнение для Stable Diffusion, которое улучшает качество изображения за счет изменения шумоподавителя модели улучшая согласованность генерируемого изображения. Сравним до и после применения расширения на XL модели, для этого включим расширение и выберем соответствующую рекомендацию SDXL Recommendations.

juggernautXL_v9Rundiffusionphoto2-winter-1-Time_20240822111243 juggernautXL_v9Rundiffusionphoto2-winter-FreeU

Для более наглядного сравнения увеличим элементы и сравним. Слева без FreeU, справа соответственно с включённым расширением. Разрешение 2048 на 762

ТЕСТ редизайна

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

mr-bean-mr-bean-1415087-1025-768 juggernautXL_v9Rundiffusionphoto2-clown-1-Time_20240823114429

Второй пример - преобразование реалистичной женщины с яркой эмоцией в астронавта в стиле Pixar, для реализации данной подсказки требуется внести значительные изменения, следовательно необходимо увеличить разрешение от эталонного (чем больше разрешение будет отличаться от эталонного - тем больше будет изменений в новом изображении). В подсказку прописываем "pixar style, astronaut", и выставляем настройки:

  • разрешение 1200 на 1200 (у эталона 1024 на 1024)
  • CFG Scale = 10 (чем больше - тем ярче и красочнее, чем меньше - тем тусклее но более реалистично), в данном случае на нужен более мультяшный персонаж, поэтому увеличиваем данный параметр до 10
  • Control Weight = 1 ( чем меньше это значение - тем больше будет изменений в новой генерации)
  • Control Mode = My prompt is more important
juggernautXL_v9Rundiffusionphoto2-portrait Kate Beckinsale Downblouse Nipslip windblownface a woman-1-Time_20240813203844 juggernautXL_v9Rundiffusionphoto2-pixar style astronaut-1-Time_20240826121823

Более подробно про редизайн будет в другом материале.

Здесь же следует учитывать что для сохранения максимальной схожести лица нужно воспользоваться маску в режиме inpaint, ну а без её применения требуется внести корректировки в настройки:

  • Control Weight = 1
  • Control Mode = Balanced
  • Разрешение генерируемой картинки должно совпадать с эталоном!
  • в подсказке пишем не просто что хотим сгенерировать, а прям просим об этом, добавляем токен "make in"

* без маски в любом случае будет воздействие на всю композицию. 

Вот пример с просьбой сделать жёлтый пиджак - "make in yellow jacket":

mr-bean-mr-bean-1415087-1025-768 1 (2)

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

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