Ожидание: ИИ-примерочная обоев за 2 дня. Реальность: дообучение собственной модели на SD

В условиях жесткой конкуренции на рынке отделочных материалов магазинам жизненно важно выделяться на фоне остальных. Банальные скидки и стандартные каталоги давно перестали впечатлять покупателей. Так у нас зародилась идея создать онлайн-примерочную обоев. Казалось, это станет настоящим «киллер-фичей»: дать клиенту возможность до покупки увидеть, как выбранный паттерн впишется в его интерьер.

В то время рынок захватил хайп вокруг генеративных моделей, таких как «Nano Banana». На первый взгляд, задача выглядела как классическое решение «в два клика». План казался безупречным: получить API-ключ, передать через эндпоинт фото комнаты и текстуру, добавить грамотный промпт с требованиями к масштабу, свету и перспективе — и ждать готовый результат.

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

Иллюзия простых решений: почему коробочные продукты дают сбой

Наш первый выбор пал на мощную модель Google Nano Banana Pro, но результат разочаровал. Выяснилось, что нейросеть излишне «креативит»: вместо корректной замены обоев она могла самовольно изменить планировку квартиры, а текстуру растягивала как огромное панно, игнорируя реальный раппорт и масштаб рисунка.

Для коммерческого запуска такие «галлюцинации» недопустимы. Мы переключились на тестирование других решений, включая Flux Pro, ChatGPT Image 2 и специализированный B2B-сервис Wizart.

Вот краткий обзор наших наблюдений.

Flux

Результаты Flux оказались неоднозначными. Он неплохо справлялся с масштабом, но постоянно деформировал текстуру, превращая её в невнятное «месиво».

  • Хорошо работает с освещением и тенями, качественно покрывает поверхности.

  • Часто «дорисовывает» лишние детали — розетки, фурнитуру. Искажает сложные орнаменты (геометрию, дамаск) и периодически произвольно меняет цветовой тон покрытия.

OpenAI (ChatGPT Image 2.0)

Модель от OpenAI показалась наиболее перспективной, но стресс-тесты выявили слабые стороны.

  • Стабильно сохраняет геометрию помещения, корректно работает со светом и не генерирует лишние объекты.

  • Склона к «приблизительной отрисовке». Главная беда — некорректный масштаб. Модель «ленится» учитывать перспективное уменьшение рисунка на дальних планах, превращая обои в гигантские полотна. Иногда наблюдается кадрирование исходного изображения.

Wizart

Будучи профильным решением, он разочаровал качеством итоговой картинки.

  • Бережно сохраняет текстурный паттерн и не мусорит лишними элементами.

  • «Рваные» маски, неполное покрытие стен, неестественное освещение и серьезные искажения перспективы на углах.

Стало ясно: типовые генеративные модели не понимают физики пространства, не учитывают перспективу и масштаб раппорта.

Закулисье RoomRUM

Детали архитектуры — тайна нашего проекта, но я приоткрою принципы построения фундамента RoomRUM. Вместо борьбы с ограничениями готовых API мы создали собственный эталонный датасет, собрав качественную выборку из Public Domain материалов.

Пайплайн подготовки данных

Чтобы обучить модель, мы автоматизировали подготовку данных, дополняя её ручной корректурой:

  • Сегментацию стен реализовали через связку Grounded-SAM (Grounding DINO + SAM) для получения идеально точных масок.

  • Для реализма внедрили разделение компонентов освещения (тени и блики), накладывая их поверх текстуры через блендинг.

  • Финальную чистовую обработку выполняли специалисты: доработка масок в сложных узлах (углы, мебель, окна) и устранение визуальных артефактов.

Результат — 1700 идеально размеченных пар: «Интерьер ➔ Текстура ➔ Корректный результат».

Fine-tuning

Мы провели дообучение ControlNet и Inpainting на базе Stable Diffusion, используя арендованные кластеры с GPU A100. Мы учили алгоритм не «геометрии в сантиметрах», а визуальной логике масштабирования и перспективы. После 100 эпох обучения модель начала стабильно удерживать пропорции паттерна.

Сравнительный Benchmark (In-house): ChatGPT Image 2.0 vs RoomRUM 1.0

Мы сравнили наш движок с решением от OpenAI, выставив 4 ключевых критерия оценки (Color, Texture, Size, Geometry) по 2-балльной шкале.

Критерий

2 балла

1 балл

0 баллов

Color

Идентичность

Легкий сдвиг

Провал

Texture

Полная детализация

Потеря деталей вдали

Замена рисунка

Size

Верный масштаб

Незначительное увеличение

Эффект панно

Geometry

Целостность сцены

Мелкие огрехи

Искажения/Брак

Результаты тестирования:

Категория

ChatGPT Image 2.0

RoomRUM 1.0

Color

99%

94%

Texture

68%

63%

Size

46%

94%

Geometry

73%

85%

ИТОГО

71,5%

84,0%

RoomRUM показал превосходство в критических аспектах (масштаб и геометрия), в то время как ChatGPT работает скорее как творческий художник, готовый ради красивой картинки изменить пропорции вашего интерьера.

Ограничения и планы

Важно признать: наш препроцессинг отсеивает около 60% загружаемых пользователями фото. Если помещение слишком сложное или освещение неудачное, система просит сделать другой кадр. Мы считаем это честным бизнес-решением: лучше отказать в генерации, чем выдать некачественный результат.

В ближайших планах:

  1. Снижение уровня отбраковки за счет обучения на нестандартных ракурсах.

  2. Поддержка визуализации напольных покрытий.

  3. Работа с комбинированными обоями (акцентные стены).

  4. Оптимизация инференса для снижения затрат.

Путь от простого промпта до своего ML-движка был сложным, но упрямство законов физики требует профессионального подхода к данным. Мы только начинаем, и впереди много интересной работы.

 

Источник

Читайте также