В условиях жесткой конкуренции на рынке отделочных материалов магазинам жизненно важно выделяться на фоне остальных. Банальные скидки и стандартные каталоги давно перестали впечатлять покупателей. Так у нас зародилась идея создать онлайн-примерочную обоев. Казалось, это станет настоящим «киллер-фичей»: дать клиенту возможность до покупки увидеть, как выбранный паттерн впишется в его интерьер.
В то время рынок захватил хайп вокруг генеративных моделей, таких как «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% загружаемых пользователями фото. Если помещение слишком сложное или освещение неудачное, система просит сделать другой кадр. Мы считаем это честным бизнес-решением: лучше отказать в генерации, чем выдать некачественный результат.
В ближайших планах:
-
Снижение уровня отбраковки за счет обучения на нестандартных ракурсах.
-
Поддержка визуализации напольных покрытий.
-
Работа с комбинированными обоями (акцентные стены).
-
Оптимизация инференса для снижения затрат.
Путь от простого промпта до своего ML-движка был сложным, но упрямство законов физики требует профессионального подхода к данным. Мы только начинаем, и впереди много интересной работы.


