Экстерьер и интерьер
Вступление
Хороший дизайнер и архитектор даёт не только красивую внешнюю картинку, но и оптимальный вариант по стоимости, надёжности и удобству эксплуатации. Зачастую "дизайнеры" забывают про все пункты кроме первого и ещё берут за это деньги. В этом материале мы разберём как выполнить работу такого "дизайнера" и зададим вектор для дальнейшего развития.
Главное с чего нужно начать - 3D проект или хотя бы фото нужного вида. Благо дело сейчас полно программ как локальных так и через online позволяющих создать проект дома или отдельных его комнат. В качестве примера будет использована программа Revit для проектирования и дополнительное расширение Enscape3D для более удобной постановки камеры с возможностью пройтись пешком или полетать по проекту с применением рендеринга. Обойтись без проекта и стать хорошим дизайнером/архитектором - нельзя, важно соблюдать пропорции, перспективу и конструкционные особенности проекта. Рассматриваемый способ позволяет не только визуализировать в определённом стиле эталонное изображение, но как следствие применять к нему другие эффекты типа: разрушение, пожар, времена года. Также возможно применение целых стилей по типу кинематографичного рендеринга или мультика в стиле Pixar.
Вот пример применения разрушения к эталонному изображению:
Настройки
Для работы со 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 при одинаковых настройках генерации.
На меньшем разрешении у девушки слева пропала целостность структуры, пропал духовой шкаф, пропал мальчик за столом по центру. Что в целом может следовать из-за ухудшения качества краёв эталонной заготовки. В данном тесте использовалась версия эталона "из пенопласта" без окантовки для выявления эффекта потери граней объектов и как следствие ухудшения их распознавания.
ТЕСТ РАЗРЕШЕНИЯ ГЕНЕРАЦИИ
Тест разрешения ГЕНЕРАЦИИ
Рекомендуемое разрешение для модели juggernautXL_v9Rundiffusionphoto2 равно от 832 до 1216) - поэтому при превышении данного параметра возможны искажение в особенности человечков, однако вместе с этим значительно повышается качество, поэтому нужно найти золотую середину.
Разрешение генерации 1024 по длинной стороне не рассматриваю - получается явно отстой.
В сравнении разрешение по длинной стороне 1600 против 2024:
А вот на фасаде с кучей мелких деталей и дальнем плане: 1600x616 в сравнении с 2024x776. Детальки на большем разрешении при увеличении будут чётче и правильнее:
Вот ещё один пример на другой модели samaritanCGI_v10 на подсказке winter:
Вот ещё один пример влияния разрешения при перегенерации, в данном случае я попросил сгенерировать Астронавта на разрешении 1200х1200 и 1600х1600, и как видно получил заметно большее изменение с ростом разрешения генерируемого изображенияr:
ТЕСТ Control Weight и Control Mode
ТЕСТ Control Weight
Сравним параметры Control Mode с различными значениями Control Weight.
Как видно есть 2 адекватных варианта (0,85 в балансовом режиме с минимальными изменениями и 1.5 с приоритетом на подсказку и большей стилизацией по подсказке), сравним их и сделаем вывод - лучше всего отрабатывает:
- Control Weight = 1.5 чем больше это значение, тем больше соблюдаются линии объектов и меньше добавляются элементов, чем меньше это значение - тем больше выполняется подсказка и вносится больше преобразований. Соответственно увеличиваем до 2 если есть мелкие детальки которые важнее подсказки, и уменьшаем если подсказка должна вносить большое количество изменений в композицию.
- Control Mode = My prompt is more important
При этом изображение получается более соответствующим описанию (фотореалистичного изображения уютного дома) и сохраняется структура эталона.
Естественно настройки будут зависеть от эталона и решаемой задачи, если у Вас довольно хороший рендер который требуется лишь немного подрихтовать,
ТЕСТ ОЧЕРТАНИЙ
ТЕСТ ОЧЕРТАНИЙ
Для большего эффекта уменьшим разрешение эталона до 1024 по длинной стороне. Сравним и сделаем вывод: с очертаниями дефектов меньше.
ТЕСТ Lineart VS InstructP2P
ТЕСТ сравнения с другим набором
Для достижения эффекта рендеринга можно воспользоваться другими препроцессорами, например с использованием Lineart с препроцессором lineart_realistic с приоритетом на подсказке. И как видно далее результат неплох:
Результат зависит от используемых препроцессоров, а точнее от чёткости отделения и определения объектов.
Но использование универсальной модели удобнее - во-первых нет необходимости выбирать препроцессор, соответственно не тратится время на его работу. Во-вторых для XL альтернативной модели под некоторые препроцессоры нет либо их нужно искать и качать отдельно. Ну и последнее и самое важное, использование данной модели без препроцессора даёт более правильные композиции, хотя и не идеальные. Например, попросим сделать уютный зимний вечер в фотореалистичном стиле с использованием препроцессора с lineart_realistic и без него на одной и той же модели (на нашей универсальной модели Union-promax). Без препроцессора (изображение справа) интерпрtтация более подходящая, хотя и не без "особенностей".
Попробуем попросить разрушить дом (make a destroyed house) с препроцессором, выберем вкладку Lineart с препроцессором lineart_realistic и без него на модели union-promax, параметры:
- Control Weight = 1,5 (уменьшение увеличит разрушения но и уменьшит похожесть на эталон, и наоборот)
- Control Mode = My prompt is more important
Теперь всё тоже самое только выберем вкладку 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
Расширенная подсказка больше ясности не вносит, тут всё на вкус и цвет. Но лично мне больше нравится применение вкладки InstructP2P без необходимости тыкаться с препроцессорами.
ТЕСТ модели для генерации
ТЕСТ модели для генерации
Для основной генерации можно использовать различные модели, многое будет зависеть от неё и подсказки. Тест на 1600 х 616 px - рекомендуется делать повыше, но в данном случае нас интересует сам стиль
Естественно результат будет зависеть от подсказки, эталона и настроек.
ТЕСТ FreeU
ТЕСТ FreeU
FreeU - это дополнение для Stable Diffusion, которое улучшает качество изображения за счет изменения шумоподавителя модели улучшая согласованность генерируемого изображения. Сравним до и после применения расширения на XL модели, для этого включим расширение и выберем соответствующую рекомендацию SDXL Recommendations.
Для более наглядного сравнения увеличим элементы и сравним. Слева без FreeU, справа соответственно с включённым расширением. Разрешение 2048 на 762
ТЕСТ редизайн
ТЕСТ редизайна
Редизайн можно применять не только к архитектурным решением для интерьера и экстерьера. Но и для других генераций и их частей. Применение к конкретному элементу возможно через маску. Пробежимся по основам применения и примерам.
Кратко рассмотрим вариант без маски, усложним эксперимент текстом на картинке:
Второй пример - преобразование реалистичной женщины с яркой эмоцией в астронавта в стиле Pixar, для реализации данной подсказки требуется внести значительные изменения, следовательно необходимо увеличить разрешение от эталонного (чем больше разрешение будет отличаться от эталонного - тем больше будет изменений в новом изображении). В подсказку прописываем "pixar style, astronaut", и выставляем настройки:
- разрешение 1200 на 1200 (у эталона 1024 на 1024)
- CFG Scale = 10 (чем больше - тем ярче и красочнее, чем меньше - тем тусклее но более реалистично), в данном случае на нужен более мультяшный персонаж, поэтому увеличиваем данный параметр до 10
- Control Weight = 1 ( чем меньше это значение - тем больше будет изменений в новой генерации)
- Control Mode = My prompt is more important
Более подробно про редизайн будет в другом материале.
Здесь же следует учитывать что для сохранения максимальной схожести лица нужно воспользоваться маску в режиме inpaint, ну а без её применения требуется внести корректировки в настройки:
- Control Weight = 1
- Control Mode = Balanced
- Разрешение генерируемой картинки должно совпадать с эталоном!
- в подсказке пишем не просто что хотим сгенерировать, а прям просим об этом, добавляем токен "make in"
* без маски в любом случае будет воздействие на всю композицию.
Вот пример с просьбой сделать жёлтый пиджак - "make in yellow jacket":
Все выводы сделаны на основе показанных и непоказанных тестов, выражают чисто субъективное мнение которое может и должно отличаться от Вашего.