Сегодня я хочу рассказать о процессе обучения нейросети для создания изображений с девушкой в зимнем пальто из коллекции бренда OSTIN. Мы взяли пальто с артикулом LJ6764O02 и научили модель ИИ переодевать в него цифровых моделей, меняя цвет, местоположение и атмосферу на изображениях.
Задача:
Обучить нейросеть, чтобы она могла автоматически “надевать” на модель пальто конкретной модели. Это означало, что сеть должна была хорошо запомнить все детали — цвет, фасон, текстуру — и воспроизводить их на различных изображениях.
Этапы подготовки данных
Для начала, мы собрали 14 фотографий девушки в пальто двух цветов: бежевого и черного. На этих изображениях модель снималась спереди или сбоку, и пальто было видно либо полностью, либо оно занимало значительную часть кадра. Все фото были приведены к единому формату 832×1216 пикселей, чтобы подходить под требования нейросети. Это размер, при котором изображение разбивается на квадраты 64×64 пикселей для обучения, и важно, чтобы они заполняли изображение целиком.
Далее, мы создали текстовые описания для каждого изображения, сохранив их в файлы с соответствующими названиями. Эти описания помогали модели лучше понимать, что изображено на фото, и как это связано с реальными объектами. Например, мы указали, что это модель в пальто с артикулом LJ6764O02.
Параметры обучения
Чтобы создать такую модель, мы использовали следующие параметры для обучения:
Модель: SDXL juggernautXL_v8Rundiffusion
Количество эпох: 12
LR Scheduler: cosine_with_restarts
Optimizer: Adafactor
Learning rate: 0,0001
Text Encoder learning rate: 0,00005
Unet learning rate: 0,0001
Network Rank (Dimension): 64
Network Alpha: 8
Clip skip: 1
Noise offset: 0,0357
Repeats: 40
Regularisation images: NONE
Instance prompt: vatoko LJ6764O02
Class prompt: coat
Мы тщательно следили за процессом обучения и протестировали различные подходы к настройкам, чтобы добиться наилучшего результата.
Результаты
После 8 часов обучения, мы получили первую серию изображений на основе базовой модели. Вот что получилось:
Далее, мы экспериментировали с промптами и настройками, чтобы модель начала лучше воспроизводить все детали. Мы добавили различные описания и сценарии, такие как зимний день в Москве или Петербурге.
Пример 1: Зимний день в Москве
Сгенерировали изображение девушки в бежевом пальто с настройками:
Пример 2: Зима в Санкт-Петербурге
Мы изменили местоположение и условия:
Пример 3: Эксперименты с цветами
Мы решили попробовать сгенерировать пальто в новых цветах, не представленных в исходных изображениях. Также поменяли локацию на Дворцовую площадь в Петербурге:
Проблемы и вызовы
Модель справляется с основной задачей — она воспроизводит пальто LJ6764O02 с хорошей детализацией и правильными цветами. Однако остаются проблемы с мелкими элементами, такими как пуговицы, которые иногда “разбросаны” по поверхности пальто неправильно. Примерно 50% сгенерированных изображений имеют такие недочеты.
Основные ошибки, связанные с пуговицами и их количеством, можно объяснить тем, что материнская модель SDXL имеет свои ограничения. Эти проблемы передаются и нашей обученной модели. Решение, возможно, в увеличении объема данных, однако даже это не гарантирует полное устранение проблем.
Выводы
Модель выполнила поставленную задачу: она точно воспроизводит цвет, материал и фасон пальто. Однако из-за некоторых ограничений базовой модели возникают проблемы с пуговицами и мелкими деталями. Для улучшения точности и фотореалистичности изображений я рекомендую протестировать альтернативную модель FLUX, которая может справиться с этими проблемами более эффективно.
Надеюсь, что этот опыт будет полезен для дальнейших экспериментов с обучением моделей ИИ в сфере моды и дизайна одежды.