Исходный размер 1140x1600

Обучение генеративной нейросети Stable Diffusion под стиль вязаных объектов

Проект принимает участие в конкурсе

Идея проекта

Идеей проекта было обучить нейросеть создавать милые игрушки и вязанные объекты в одном стиле. Целью было заставить нейросеть игнорировать оригинальный материал объекта и предавать ему новые свойства.

В качестве датасета были взяты изображения с сайта unsplash.com с бесплатной коммерческой лицензией (https://unsplash.com/license)

В датасете я составил 19 изображений половина из которых — макро съемка текстуры и другая половина -вязаных игрушек.

Исходные изображения

Исходные изображения

Процесс обучения

Обучение проводилось на базе архитектуры Stable Diffusion XL (SDXL) с использованием метода DreamBooth LoRA.

Параметры обучения: Модель обучалась 1000 шагов, качество изображений 1024 пикселя, и тренировка происходила по одному изображению за бэтч.

Для активации стиля было внедрено уникальное слово-токен knttd_obj. Это позволило изолировать мой авторский паттерн вязки от базовых знаний нейросети о слове «knitted». В добавок к слову-токену были автоматически созданы описания к изображениям для более точного обучения.

Результаты

Исходный размер 1024x1024

object in knttd_obj style, dinosaur

Исходный размер 1024x1024

object in knttd_obj style, cat

Исходный размер 1024x1024

object in knttd_obj style, chair

Исходный размер 1024x1024

object in knttd_obj style, pikachu

Исходный размер 1024x1024

object in knttd_obj style, wolf

Исходный размер 1024x1024

object in knttd_obj style, wolf

Исходный размер 1024x1024

object in knttd_obj style, cat

При использовании чистого промта стиля без дополнительного контекста мы получаем хорошее отображение среднего генерируемого изображения сетью и можем наблюдать как исходные изображения отразились в стиле.

чистый промт стиля: «object in knttd_obj style»

При генерации я заметил что нейросеть начала воспроизводить текстуру вязки из объекта промта используя часть датасета, которая отвечала за текстуру. То есть при генерации авокадо мы получили не просто связанную игрушку, а вязку в форме авокадо. В результате получались интересные сюрреалистичные изображения.

Исходный размер 1024x1024

object in knttd_obj style, avocado

Исходный размер 1024x1024

object in knttd_obj style, bread

Финальная серия изображений полностью отражает идею проекта. В отличие от базовых знаний нейросети о материале «knitted», обученный стиль имеет свои уникальные визуальные свойства: он изолирует объекты на чистом фоне и выдает стабильно консистентный результат.

Представленные объекты сохраняют узнаваемые силуэты, но полностью лишаются привычных физических свойств. На всех генерациях отчетливо читается объем пряжи, микроворсинки, реалистичное натяжение нити и физически корректные глубокие тени в местах переплетений. Кроме того, на объектах заметны следы использования — небольшая грязь и неидеальность ручной вязки, что делает их более реалистичными.

Если бы я делал этот проект снова, я бы разделил задачу и обучил две разные модели: одну — для текстур вязки, вторую — для объемных вязаных объектов. Либо же отделил для разных изображений разные токены, используя их раздельно. Практика показала, что внутри одной модели нейросети пока сложно понять, когда от нее требуют применить физику материала к сложной форме, а не просто сгенерировать заливку текстурой.

Обучение генеративной нейросети Stable Diffusion под стиль вязаных объектов
Проект создан 23.03.2026
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше