Давным-давно, скажем, этим летом, нас посетила удачная мысль включить повсюду свет и озарить ночные города. Так родился проект по обучению нейросети сложному искусству светодизайна.
Разумеется, мы были не первыми, кто до этого додумался, но поскольку бум ИИ удачно наложился на развитие инфраструктуры и появление новых зданий в разных городах РФ (а еще осень, темно, холодно) – было решено взяться за дело. Светодизайн зданий – сложная область, которая удачно сочетает в себе архитектурное проектирование, инженерные достижения, дизайн и человеческий гений. В помощь последнему мы решили добавить искусственный интеллект. Оказалось, что после долгих тренировок он способен:
Оптимизировать освещение. Нейросеть может анализировать необходимые параметры (геометрию пространства, ориентацию зданий, климатические условия и предпочтения пользователей, для создания оптимального светового дизайна. Системы на основе ИИ могут предлагать варианты освещения, которые обеспечивают максимальную эффективность и минимизируют потребление энергии.
Создавать пространство вариантов. Технологии генеративного проектирования, поддерживаемые ИИ, позволяют людям создавать множество вариантов светодизайна на основе заданных параметров. Это помогает находить новые и оригинальные решения, которые соответствуют требованиям и при этом не тратить на них массу рабочего времени.
Взаимодействовать с «умными» системами. Современные здания всё чаще оснащаются умными системами освещения, которые могут адаптироваться к изменяющимся условиям и нуждам пользователей. Нейросеть анализирует поведение людей в пространстве и на основе этих данных управляет освещением, создавая комфортные условия и минимизируя затраты на энергию. А еще есть датчики движения, системы управления климатом и безопасностью – светодизайн не должен мешать их работе,
Учитывать мелочи. Да, даже такие, когда «свет не нравится» или «свет раздражает». ИИ помогает создать световые решения, которые учитывают биоритмы и предпочтения пользователей, например, регулировать цветовую температуру и яркость в зависимости от времени суток.
-
Минимизировать вред. Использование ИИ в светодизайне способно уменьшить углеродный след. ИИ помогает выявлять возможности для использования природного освещения, а также оптимизирует работу систем искусственного освещения для снижения потребления электроэнергии.
Это, конечно, не весь профит, но в целом было понятно, что использование ИИ в светодизайне – верное и своевременное решение. Кроме перечисленных преимуществ мы выяснили, что AI-дизайнер снижает нагрузку на людей, поднимает светодизайн по воронке работы с клиентом, снижает расходы, увеличивает скорость и производительность. При этом в любой момент времени возможно прототипирование, проведение UX тестирований и поиск оптимальных вариантов.
Крупное архитектурные бюро заинтересовались проектом, и стали предлагать нам 3D-макеты зданий, которым требовалось освещение.
Оставалось установить KPI успешности внедрения – в нашем случае это оказался перечень продуктовых и бизнес-метрик, по достижении которых можно было считать проект успешным. Мы подтянули мнения экспертов о трендах рынка, расчеты, макеты, перечень клиентских запросов и потратили некоторое время на проведение собственных исследований, которые показали достаточно высокий интерес к продукту.
Затем мы сформировали пул для Early Adopters, добавили некую маркетинговую активность и обучающие материалы. А потом мы перешли к самому интересному – стали программировать модель.
Задачи на старте были следующие:
подобрать нейросеть, которая хорошо подходит под задачу. (Спойлер: в нашем случае это Stable Diffusion);
показать превращение фотографии из дневной в ночную;
показать четыре варианта освещения одного здания на основе предобученной библиотеки с возможными стилями оформления зданий;
Сложности на старте тоже были. Почти сразу же мы поняли, что:
Нейросеть рисует объект похожий на те, на которых ее обучали, а не перерисовывает конкретный дом с конкретным окружением.
при конвертации в ночное фото теряется четкость и контрастность, размываются границы. Изначально не задавали эти исправления, чтобы не усложнять код, пришлось править вручную.
электросети, провода и даже безобидные кусты сильно осложняют задачу, и если провода просто мешают, то зелень надо убирать, а после конвертации добавлять обратно, то есть раскладывать картинку на передний фон, задний фон и все остальное.
тяжело попасть в контуры, в итоге на ночном здание могут внезапно появиться лишние окна или пропасть двери.
цвет изображение может измениться на резко противоположный.
Способы решения:
Использование различных инструментов контроля изображение - контурный, глубины и другие. При этом достаточно распространенные модули типа ControlNET не дали качественных результатов и пришлось искать узкоспециализированные модули. Связка Anyline+MistoLine смогла дать качественный результат по сохранению контуров изображения. Размытость исчезла, здание перестало постоянно изменяться при перестроении. Но если изображение перегружено элементами, то даже самая строгая передача контуров не поможет. Особенно это касается органических объектов или сложных лепнин.
Кусты, деревья и прочую зелень с картинок удаляем, чтобы сделать обработку здания, а затем добавить обратно. Да, как в фотошопе, но нейросеть может автоматически разложить пачку изображений за раз на отдельные куски при помощи различных методик сегментного анализа (Segment Anything / SAM). Система машинного видения позволяет определить границы конкретных классов объектов (небо, машины, деревья и т.д.) и вырезать их из исходного изображения.
Самым интересным оказалось сохранение цвета. Нейросеть сложно обучается не менять цвета, ведь все время ее затачивают именно под изменения. Все рабочие алгоритмы берут исходный “шум” и медленно выстраивают из него изображение совпадающее с общим пониманием нейросети условных “хорошо-плохо”. Но шум может быть как статистическим, там и регулируемым. А вот второе дает требуемый рычаг управления. Подложив нейросети эскиз фото обработанный цветовыми фильтрами, можно заставить ее не рисовать с нуля, а дорисовать изображение пользователя.
Если же изображение сильно перегружено, то выбора не остается и приходится упрощать - раскладываем каждое фото на несколько планов, удаляем лишние объекты;
Ограничиваем области работы инструментов. Т.е. не скармливаем всю зону фотографии для перерисовывания под освещенные участки, а только определенные зоны. Например, выделяем и подсвечиваем окна на фото изнутри, так как нужно подчеркнуть узоры, пилястры, карнизы и прочее архитектурное убранство. Если подсветка одного элемента понравилась – делаем остальные по образцу, задаем нейросети области, которые можно редактировать одинаково.
А иногда можно сделать наоборот, не ограничивать зоны, а предложить нейросети исправить все фото целиком и выдать набор решений. Это может послужить прекрасной отправной точкой для поиска интересных технических решений и необычных способов расстановки освещения.
Яндекс.Карты могут служить источником исходных изображений, если присланные изображения не подходят по качеству или ракурсам.
Процесс работы светодизайнеров с фото в Stable Diffusion выглядит так:
получаем фотографию;
правим перспективу;
добавляем детали, которые «сломались»: достраиваем здания, дорисовываем углы;
разделяем зелень/машины/людей, здание и задний фон (например, другие строения, улицы и т.д.).
Затем прорабатываем детали, фиксируем недостающие элементы, возвращаем зелень, меняем небо (как демиурги, да) и смотрим на результат.
Предварительно нужно обучить модель на большой базе светодизайна, с большим разнообразием подсветок, релевантных российской застройке. Для «проблемных» элементов можно создать отдельные инструменты.
Для вхождения в процесс мы создали серию пошаговых инструкций, которые планируем опубликовать позднее. В набор входит обучение собственных моделей работе с разными элементами фасадов (колонны, портики и т.д., работа с разным осветительным оборудованием, которое дает разные пучки света, углы наклона и так далее), обучение правильным вариантам использования освещения на реалистичных примерах.
Что под капотом: Stable Diffusion в оболочке ComfyUI.
Модель на основе текстового описания, основанная на диффузионных процессах, которая позволяет создавать и редактировать изображения, используя современные методы глубокого обучения. ComfyUI – графическая оболочка, удобный интерфейс, который упрощает взаимодействие с этой моделью и позволяет пользователям легко генерировать графику без использования командной строки или языков программирования.
ComfyUI поддерживает возможность не только создания изображений, но и редактирования существующих. Например, можно изменить определенные аспекты изображения, основываясь на новом текстовом описании.
Для ускорения процесса генерации ComfyUI может использовать графические процессоры, что значительно уменьшает время, затрачиваемое на создание изображений. Пользователи могут адаптировать интерфейс под свои нужды, выбрать необходимые плагины и функции, интегрировать дополнительные инструменты для улучшения рабочего процесса.
В настоящее время в ComfyUI можно запускать все поколения Stable Diffusion, Kandinsky, FLUX и другие нейросети.
В систему входят прикладные пакеты и программы, в частности программа для вырезания по маске на базе нейросетей, по достраиванию изображений, по распознаванию лиц, и так далее. Другими словами, это некая среда, благодаря которой вы можете решать разнообразные задачи, связанные с генерацией и редактированием изображений, в нашем случае – светодизайна.
Благодаря возможностям системы работа светодизайнера трансформируется в создание шаблонов для нейросети, упрощается и ускоряется во времени. И свет повсюду.
Комментарии (5)
engine9
26.10.2024 09:05Джва года такой гайд ждал. И я столкнулся с такими же трудностями, так же на SD и забил.
Скажите пожалуйста, а ваш метод может принимать на вход 3Д рендер без текстур и текстурировать поверх, дорисовывать детали и т.п.?
kinall
Слайды! Слайды!
GPU_GuRu Автор