Здравствуй Хабр!с Вами Андрей — Fashion Data Scientist бренда люксовой одежды Sovereign. Хочу поделиться техпроцессом создания образа с помощью нейросетей. Да, направление довольно узкое, но, тем самым, буду рад разнообразить коллекцию статей (и без того широкую). В Апреле 2024 года нашим клиентом стала актриса Регина Тодоренко. Целью было создание образа на выступление, с несколькими условиями — образ должен быть футуристичным и созданным с применением хайтека, но сохранением элементов историзма. Посему, нами было принято решение использовать свои наработки и некоторый опыт в области нейросетей и 3D печати. Генеративный ИИ для создания одежды — уже не что‑то новое. Midjourney и Stable Diffusion запросто генерируют тысячи стильных образов. Но мы говорим о люксовом сегменте (где мы не в праве использовать стандартные подходы). Большое количество мелочей, уникальные материалы и та самая «аура» недостижимости, которая пропадает в этих самых шаблонных тысячах стоковых образах. Возможно заморочек было придуманно слишком много, но это можно списать на высокую увлеченность процессом. Более того, мы планируем использовать и используем наработки в наших проектах.
Задача была амбициозной ( и определенных результатов мы достигли) - создать «систему», способную генерировать не просто «красивую одежду», а концептуальные эскизы уровня Haute Couture, сохраняя при этом узнаваемость ДНК бренда и техническую осуществимость. Расскажу только самое важ��ое, не углубляясь сильно.
Этап 1. Формулировка задачи и сбор данных - самая болезненная и тяжелая часть проекта
Проблема заключается, конечно же, в отсутствии достаточного количества материалов для выборки. В отличие от fast fashion кампаний, люксовые дома строго охраняют свои архивы. Public-датасеты (например, DeepFashion2) содержат в основном масс-маркет, но он подходит только для работы с техническими рисунками и эскизами, так как кампания работает только с люксом. Наш датасет формировался из:
оцифрованных архивных скетчей (XIX-XX вв.) из нескольких музеев моды (самая ценная и сложная часть выборки).
публичных lookbook-изображений с подиумных показов (преимущественно детали: строчка, драпировка, текстура).
скетчей дизайнеров бренда, работавших с нами по NDA.
Ключевой предпроцессинг: Мы не работали с «сырыми» фотографиями. Каждое изображение проходило через семантическую сегментацию (Решили использовать архитектуру U-Net с кастомной разметкой), где выделялись не просто «платье», а следующие его части, типа:
элементы силуэта, тип драпировки, конструктивные детали: корсетные косточки, швы, вытачки,(зоны применения разных материалов. Это позволило перейти к выборке из структурированных систем образов. В дальнейшем мы экспериментировали с этими выборками - миксовали их, добавляли к ним общедоступные данные. В целом, можно сказать, что это самая долгая и важная часть во всей проделанной работе, так как теперь нам есть от чего отталкиваться в дальнейших подобных проектах.
Этап 2. Архитектура — почему не подошел чистый Diffusion?
Мы начали с классической Stable Diffusion 2.1, дообученной на наших данных. Результаты были эстетичны, но бесполезны с точки зрения дизайна для конкретного бренда:
наложение материалов: нейросеть «придумывала» несуществующие наложения материалов друг на друга из-за чего страдал весь лук.
игнорирование законов кроя: генерировались красивые, но физически невозможные драпировка и крой.
Решением стала гибридная каскадная архитектура состоящая из трех модулей:
[Концептуальный жёлоб (pipeline)]-[Генератор скетчей]- [Визуализатор]
Модуль 1: Главной проблемой стал разрыв между тем концептом креативного директора, и тем, что понимает под задачей ИИ. Мы собрали онтологию моды — большой граф, где узлы это стили, техники, имена дизайнеров, а ребра — связи между ними. Задачей модуля стало преобразовать абстрактный промпт дизайнера в структурированный вектор условий для следующего модуля. В качестве «лингвистического мозга» взяли дообученную RuCLIP‑Large, а картой понятий стала графовая нейронка ( Fashion GNN). То есть, если взять входной запрос, — например («Драма барокко в духе МакКуина с отсылкой к доспехам самураев») то через лингвистические парсеры (spaCy плюс некие кастомные правила) будут извлечены несколько стилевых маркеров типа («барокко», «МакКуин», «самураи») и некоторые конструктивные термины («доспехи»). Также будут идентификацированны материалы и текстуры, например («парча», «лакированная кожа», «металлический шип»).
Полученные токены проходят через GNN, построенную на графе модной онтологии (Fashion DNA Graph). Кажд��й узел — понятие (напр., «барокко»), ребра — отношения («влияет на», «противопоставляется», «использует технику»). В ней Узел «МакКуин» связан с «готический романтизм», «скелетонизация», «экстремальный силуэт». А, узел «самурайские доспехи» связан с «ламинарное строение», «шарнирное соединение».
Наша Fashion GNN агрегирует признаки соседних узлов, создавая расширенный контекстный эмбеддинг. Таким образом, добавляются скрытые, но логически вытекающие новые понятия и формируется Сборка итоговой технической спецификации: Итоговый вектор C = [S; T; M], где:
S (style) — семантический стилевой эмбеддинг от GNN. Цифровое «облако смыслов», полученное после обогащения в GNN. Не просто «барокко», а сложный цифровой отпечаток, объединяющий «барокко», «готику», «драматизм» и, например «скелетонизацию».
T (technical) — бинарный вектор конструктивных ограничений (наличие корсета, тип рукава, длина). Проще говоря — чек‑лист обязательных элементов.
M (materials) — дает нам информацию о распределении вероятностей по материалам (где какой использовать).
Итоговый вектор C = [S; T; M] — это и есть та самая структурированная инструкция, которую мы передадим следующему модулю, чтобы она создала конкретный и соответствующий запросу дизайн.
Здесь стоит отметить возникающую сложность — баланс между креативностью и контролем. Если слишком жестко следовать инструкции, то это приведет к шаблонности, слишком мягко — к потере смысла. Решение — умный регулятор (Conditioning Gating) — модель обучается «игнорировать» часть C для второстепенных деталей, но строго следовать ключевым атрибутам. Это, так называемые,«задвижки» (гейты) для каждого параметра: У системы есть внутренний «регулятор» для каждой части инструкции. Например, для T (технические детали): «Наличие корсета» ‑«красный» приоритет (100%). А вот «точный тип шва на корсете» ‑«желтый» приоритет (регулятор открыт на 40%, генератор может выбрать наиболее эстетичный вариант). Это можно назвать обучением «чувству такта»: Модель (нейросеть‑генератор) учится на примерах, каким требованиям следовать неукоснительно, а где можно проявить фантазию. Ей показывают тысячи пар «запрос — удачный результат» и она сама выявляет закономерности — когда в запросе есть имя дизайнера (МакКуин), силуэт и драматизм — это святое. А вот конкретный оттенок упомянутой ткани может варьироваться, если это улучшает композицию. Игнорирование в этом контексте это не полное удаление, а ослабление влияния. Если регулятор для какого‑то второстепенного параметра установлен на 10%, это значит, что данный параметр становится легким намёком, а не жёсткой директивой.
Итог работы Модуля 1 — не промпт, а условный тензор C = [S; T; M], подаваемый на вход следующим сетям. Это и есть основа структурированного промт‑инжиниринга, где творческий запрос детерминировано транслируется в технические параметры. Без этого шага любая генерация была бы лотереей.
Модуль 2. Он заключался в синтезе корректного чертежа. Задача очевидна — преобразовать семантический вектор C в технически корректный эскиз.У конструктора есть главный «станок с ЧПУ» для генерации изображений, (StyleGAN3 — про него есть множество статей на Хабр), который неплохо умеет создавать детализированные изображения. GAN была выбрана за её инвариантность к текстурам и чёткую работу с геометрией. Но её версия не умела работать с нашим сложным тензором C. Мы модифицировали Mapping Network, заставив генерировать не один w‑вектор, а последовательность стилевых кодов ws для разных слоёв генератора, где каждый код был функцией от своей части C: ws_i = f_i(C_i).Ключевая инновация — Дифференцируемый слой физических ограничений, встроенный прямо в форвард пасс генератора. Перед финальной активацией (на разрешении 512×512) карты признаков проходили через легковесную U‑Net, обученную предсказывать карту механического напряжения для данной геометрии. Эта карта превращалась в регуляризационный член функции потерь:L_total = L_adv + λ1*L_perceptual + λ2*L_DPCL, гдеL_DPCL = MSE(Stress_Predicted, Stress_Ideal).Ideal Stress — нулевая карта для статичных участков и плавный градиент для зон драпировки. Таким образом, дискриминатор наказывал не только за «нереалистичность», но и за физическую некорректность. Модель училась генерировать только те силуэты, которые могут существовать в гравитации.
То есть генерация изображения идет через многостадийный синтез — чертеж не накладывается весь сразу, а делает это поэтапно, слой за слоем, начиная с грубого наброска и заканчивая мельчайшими деталями с разными условиями в векторах для каждого уровня:.
Уровень 1 (базовый силуэт) — принимает T (технические ограничения). Использует встраивание контрольных точек силуэта (плечи, талия, бедра).
Уровень 2 (линии кроя) — принимает C и набросок с 1-го уровня. Ключевой созданный компонент — Differentiable_Sewing_Simulator (DSS): Его можно назвать виртуальным симулятором пошива, который действует как «советник по реализму». Так станок учится рисовать только реалистичные, осуществимые линии кроя.
Уровень 3 (детализация) — добавляет декоративные элементы (драпировки, складки, пуговицы, узоры). Использует Semantic Region‑Adaptive Normalization (SEAN) — параметры нормализации адаптируются под S (стиль). «Добавляет декор» — сказано громко, скорее адаптирует нормализацию под S (стилевой эмбеддинг от GNN), применяя разные стили к зонам.
Далее стоит обратить внимание на геометрию — в эскизе один рукав длиннее другого или присутствует асимметричный вырез, даже если это не задумано. Для сохранения симметрии и пропорций был добавлен блок аксиального внимания в средних слоях генератора, который «соотносит» левую и правую части изображения.
Помимо стандартной адверсариальной потери, также использован паттерн потеря когерентности — чертеж автоматически «разворачивается» в упрощенную 2D‑выкройку (как те, что есть в журналах) и проверяет непрерывность линий — линии швов должны быть целыми, без разрывов. А также насколько реалистично плоская ткань «натягивается» на смоделированную 3D‑форму. Штрафует за чрезмерное растяжение или сжатие, которое в реальности привело бы к перекосу.
Ключевым трюком было разделение «стиля» и «конструкции». Модель училась: можно менять декор, но нельзя трогать несущие швы. В итоге она выдавала не просто картинку, а строгий векторизованный скетч. Это был скелет будущего платья — абсолютно корректный с точки зрения моделирования и кроя.
Модуль 3. Визуализатор — «оживление» чертежа. Он берет сухой черно‑белый чертеж от конструктора и превращает его в фотореалистичную картинку будущего изделия, учитывая физику материалов.В основе архитектуры конечно же использовалась Latent Diffusion Model, но с двумя ControlNet‑адаптерами и текстурным банком.
ControlNet‑контур — принимает бинарный массив линий кроя из Модуля 2 и следит, чтобы в процессе раскрашивания и добавления текстур геометрия не поплыла. Платье не превратилось в бесформенный балахон, а швы остались на своих местах. Его вес при денойзинге был высок (0.8), чтобы жёстко фиксировать геометрию.
ControlNet‑материал — принимает семантическую маску областей материалов (шелк — зона А, металл — зона Б) и контролирует локализацию текстур. Его вес был ниже (0.4), позволяя диффузионной модели творчески интерпретировать текстуру в заданных границах.
Умный текстурный банк: Вместо обучения LDM с нуля на PBR‑материалах, используется текстурный банк с индексом векторных представлений изображений (FAISS), (такие уже вовсю используются крупными компаниями не только в сфере моды) где каждой текстуре сопоставлен эмбеддинг и физические атрибуты (жесткость, вес, коэффициент драпируемости). Денойзер U‑Net внутри LDM имеет слой перекрестного внимания к этому банку, «выбирая» и смешивая текстуры на лету в соответствии с запросом (M из Модуля 1). Диффузионная модель не рисовала текстуру с нуля — она «запрашивала» её у библиотеки.
В процесс денойзинга также была добавлена легкая нейросеть‑физик, — на каждом шаге диффузии сверяются градиенты освещенности (предсказанные легкой CNN) с ожидаемым поведением материала (по типу — шелк дает мягкие блики, лакированная кожа — резкие).
Для элементов вроде вышивки или шипов используется отдельный, более мелкий LoRA‑адаптер, встроенный в U‑Net. Он обучен на патчах высокого разрешения (512×512) и активируется только для соответствующих масок из ControlNet‑Segmentation.
Самым важным, на мой взгляд, стало отделение геометрии (модуль 2) от материалов (модуль 3), что позволяет на один и тот же крой «надевать» разные ткани, что соответствует реальному процессу дизайна.
Теперь у нас есть красивый 3D‑рендер. Тут стоит сказать, что для нашего проекта этого было достаточно, так как его основой стала часть, которая должна была быть распечатана на 3D‑принтере. Cамо платье, было самой простой частью, оно прошло обработку из 3D‑модели в 2D в flats generator. На этом наша работа с ИИ была завершена. На фото отдельно результат платья и отдельно декора, который был распечатан на 3D принтере.
Но, как мы помним, целью ставился полный цикл создания готового образа с помощью. На данный момент следующие этапы находится на стадии разработки и мы можем только описать планы по их реализации. Итак, имеем на руках модель.obj, но как по ней сшить реальную вещь? Для этого нужен переводчик с языка 3-мерной визуализации на язык 2-мерных выкроек.
Простыми словами, это цифровой технолог. Его задача — взять красивую картинку и создать полный комплект рабочей документации для ателье или фабрики: 3D‑модель для примерки, набор плоских выкроек с припусками и инструкции по пошиву.
Поэтому самым важным шагом должен стать набор из трёх маленьких сетей‑ремесленников.
Для первой можно использовать 2D‑to-3D Deformation Net (U‑Net), которая предсказывает карту смещений (displacement map) для переноса плоского эскиза на 3D‑манекен.
Далее, можно заморочиться, и, на основе архитектуры графов, написать вторую нейросейть, которая на сгенерированном 3D‑меше предлагает оптимальные линии швов для минимизации деформации ткани, для этого не нужны сложные выборки из люксовых платьев, достаточно масмаркета, но подобные нейросети (как и все, которые были преведены в этой статье) представлены на просторах интернета, и многие, даже бесплатно, поэтому можно воспользоваться ими.
Помимо 2D‑to-3D необходима Flats Generator (Генератор итоговых выкроек). Она генерирует технические рисунки (flats) с припусками, ориентируясь на 3D‑драпировку и исходный эскиз. > Котик: На выходе мы имеем пакет файлов: финальный рендер, 3D‑модель в.obj, технические флэты в.svg, файл с рекомендациями по материалам и припусками — готовые к передаче в лабораторию Sovereign. Итоговый результат на живой модели -

На каждом этапе такого производства человек также прикладывает свою руку, как и частенько было в нашем случае. И, на самом деле, сложно сказать, что ИИ сильно облегчает техпроцесс или сильно ускоряет его. Вероятно, модели стоит качественно обучать, а сам цикл должен превратиться из сырого, почти кустарного пайплайна в отрегулированный до мельчайших деталей «конвеер высокой моды» путем обработки десятков тысяч заказов, подобных нашему. Это требует колоссальных усилий и материальных вложений. Многое дорабатывалось вручную, но, тем не менее такой опыт дает представление о потенциале нейросетей в настолько креативной области как высокая мода.
Да, это далеко не end‑to‑end модель, а синергия специализированных сетей, каждая из которых решает свою узкую задачу со своей эффективностью (иногда положительной, а иногда отрицательной... пока что), управляемая единым вектором условий, полученным в результате семантического анализа исходного творческого запроса.
Также хочется отметить некоторые преимущества работы по такому процессу:
- конечно же это — расширение поискового пространства дизайнера, ИИ предлагает вариации, которые человек мог упустить.
- удивительно точная интуитивная формализация — переводить «это должно быть похоже на тающее стекло» в конкретные параметры драпировки и материала.
- ускорение работы с эскизами, и 3D‑моделями
Спасибо за внимание, надеюсь и дальше делиться опытом в новых проектах!
