[1] О проекте: тема, задачи, процесс

«TATTOOED ANIMALS» — переосмысление традиционной фарфоровой анималистики через призму архаичного искусства трайбл-татуировок.
Именно эта серия керамических работ, созданная лично мной (а также разработанная для них роспись) стала основой для этого проекта, логического продолжения моего предыдущего опыта. В ходе генерации новых изображений я разделила свои запросы на два типа: создание фигурки и создание эскиза для тату.


Примеры моих работ, фотографии которых легли в основу датасета
С технической точки зрения процесс обучения нейросети воспроизведению заданного визуального стиля можно разделить на несколько последовательных этапов. В рамках данного проекта работа была организована следующим образом:
[1] Подготовка и структурирование датасета изображений с тату-эскизами (сторонние тату-эскизы (трайблы), находящиеся в открытом доступе, и фотографии моих работ); [2] Генерация текстовых подписей для изображений с помощью модели BLIP; [3] Дообучение генеративной модели Stable Diffusion XL с использованием методов DreamBooth и Low-Rank Adaptation; [4] Тестовая генерация изображений и анализ результатов обучения модели.
В ходе работы использовались различные программные инструменты и платформы:
Stable Diffusion — для обучения и последующей генерации изображений; Google Colab — как среда выполнения кода и обучения модели; Hugging Face — для авторизации, работы с моделями и публикации полученных весов; ChatGPT — для консультаций, генерации отдельных фрагментов кода и проверки корректности решений; Adobe Illustrator — для подготовки графических материалов проекта (скриншотов кода).
[2] Серия изображений
Серия «DOGS»


[porcelain dog figurine with tribal ornaments, realistic 3D look, glossy porcelain]
В основном проекте «приняли участие» четверо животных: лошадь, лягушка, воробей и голубь. Очевидно, что схожие с ними виды не подошли бы для генерации — нейросеть бы повторила уже имеющиеся в собранном датасете изображения.
По этой причине было решено взять (в той или иной степени) животных, отличных от тех, на которых проводилось обучение. Так моими «подопытными» стали: собака, рыба, паук и кролик. Четверо новых и четверо старых. Вместе с тем, я провела небольшой эксперимент, разделив каждый блок генераций на два: создание фарфоровых фигурок и создание тату-эскизов, так как мой датасет не был «однородным».
Полный промпт для фигурок собак: [painting in TRIBLE_O style, tattoo flash design, porcelain dog with elegant tribal ornaments, clean black ink linework, bold and thin tattoo lines, minimalist tattoo stencil, professional tattoo flash sheet style, white background, isolated design, high contrast, no shading, no color]*
Полный промпт для тату собак: [painting in TRIBLE_O style, tattoo flash design, pair of running porcelain dogs with elegant tribal ornaments, clean black ink linework, bold and thin tattoo lines, minimalist tattoo stencil, dynamic poses, professional tattoo flash sheet style, white background, isolated design, high contrast, no shading, no color]
*важно: на генерации вышла именно керамическая фигурка, хотя в промпте она не была указана (что обусловлено датасетом) — именно это стало «поворотной точкой» в развитии проекта.


[flat line art sketch of a running dog with elegant tribal ornaments]
Серия «FISHES»


[porcelain fish figurine with tribal ornaments, fins spread, realistic 3D look, glossy porcelain]
Полный промпт для фигурок рыб: [painting in TRIBLE_O style, porcelain fish figurine with tribal ornaments, fins spread, realistic 3D look, glossy porcelain, white background, isolated, high contrast]
Полный промпт для тату рыб: [painting in TRIBLE_O style, tattoo sketch of a single fish silhouette with thin line, separate tribal ornament next to the fish, white background, clean lines, high contrast, no shading, no color]


[tattoo sketch of a single fish silhouette with thin line]
Серия «SPIDERS»


[porcelain spider figurine with tribal ornaments, legs spread, realistic 3D look, glossy porcelain]
Полный промпт для фигурок пауков: [painting in TRIBLE_O style, porcelain spider figurine with tribal ornaments, legs spread, realistic 3D look, glossy porcelain, white background, isolated, high contrast]
Полный промпт для тату пауков: [painting in TRIBLE_O style, tattoo sketch of a single porcelain spider, white background, clean lines, high contrast, no shading, no color]


[tattoo sketch of a single spider silhouette with thin line]
Серия «RABBITS»


[porcelain rabbit figurine with tribal ornament, realistic 3D look, glossy porcelain]
Полный промпт для фигурок кроликов: [painting in TRIBLE_O style, porcelain rabbit figurine with tribal ornament, realistic 3D look, glossy porcelain, white background, isolated, high contrast]
Полный промпт для тату кроликов: [painting in TRIBLE_O style, tattoo sketch of a single rabbit silhouette with thin line, separate tribal ornament next to the rabbit, white background, clean lines, high contrast, no shading, no color]


[flat tattoo sketch of a single rabbit silhouette with thin line]
Довольная итогом работы, я все же должна заметить, что база данных крайне важна для генерации (порой даже важнее корректного и однозначного промпта). Так, генерации фигурок вышли более однозначными, удачными и четко отвечающими на мой запрос, пока эскизы татуировок требуют доработки, если их когда-то захочется реализовать.
Серия «ADDITIONAL EXPERIENCE»


[porcelain bird figurine with tribal ornaments, realistic 3D look, glossy porcelain]
Вместе с тем, я предположила, что нейросеть, обученная на фигурках конкретных животных, справится куда лучше с генерацией схожих на них существ — неназванных птиц и единорогов. Отчасти, так и вышло: в изображениях-результатах заметно не просто сильное сходство, но явное цитирование изображений-исходников, что подтверждает прямую зависимость результата от датасета.
Но наличие птиц и лошадей (единорогов) в датасете не сделало генерации эскизов для татуировок более удачными.


[flat line art sketch of a small bird with elegant tribal ornaments]
Полный промпт для фигурок птиц: [painting in TRIBLE_O style, porcelain bird figurine with tribal ornaments, wings spread, realistic 3D look, glossy porcelain, white background, isolated, high contrast]
Полный промпт для тату птиц: [painting in TRIBLE_O style, flat line art sketch of a small bird with elegant tribal ornaments, minimalist tattoo stencil, clean black ink lines, bold and thin linework, isolated design on white background, high contrast, no shading, no color, professional tattoo flash sheet style, simple and dynamic composition]


[pair of porcelain unicorn figurines with tribal ornaments, manes flowing, realistic 3D look, glossy porcelain]
Полный промпт для фигурок единорогов: [painting in TRIBLE_O style, pair of porcelain unicorn figurines with tribal ornaments, manes flowing, realistic 3D look, glossy porcelain, white background, isolated, high contrast]
Полный промпт для тату единорогов: [painting in TRIBLE_O style, tattoo of a unicorn head and a tribal ornament, flat line drawing, white background, clean lines, high contrast, no shading, no color]


[tattoo of a unicorn and a tribal ornament]
[3] Работа с кодом
В качетсве заключительного описательного этапа проекта — разбор полного цикла подготовки и обучения LoRA-модели на базе Stable Diffusion XL. Моей основной задачей было формирование собственного визуального стиля на основе пользовательского датасета изображений (фотографий работ) и его максимально точное воспроизведение.
Процесс включает в себя несколько последовательных шагов: подготовку среды и датасета, автоматическую генерацию текстовых описаний изображений с помощью BLIP, настройку параметров обучения, запуск обучения LoRA, а также последующую проверку и интеграцию модели в генеративный пайплайн.
На первом этапе я подключаю все необходимые библиотеки и настраиваю рабочую среду. В частности, используются инструменты для работы с диффузионными моделями, обработки изображений и управления обучением. Это формирует базу для дальнейших операций и обеспечивает корректную работу всех последующих этапов.
#Установка зависимостей
Далее я подготавливаю датасет изображений: задаю пути к папкам, проверяю структуру данных и убеждаюсь, что все изображения доступны для обработки. Это необходимо для того, чтобы избежать ошибок на этапе генерации подписей и обучения модели.
#Распаковка и подготовка датасета
После этого я подключаю модель BLIP, которая автоматически создает текстовые описания к каждому изображению. К полученным описаниям я добавляю общий стилевой префикс, чтобы задать единое художественное направление. Все результаты сохраняются в файл metadata.jsonl — таким образом, каждая картинка получает свой индивидуальный промпт для обучения.
После генерации подписей я выгружаю BLIP из GPU-памяти, чтобы освободить VRAM для последующего обучения LoRA. Это критически важно, так как одновременное хранение нескольких моделей может привести к переполнению видеопамяти и остановке процесса.
#Работа с BLIP, подписи
Далее я настраиваю библиотеку Accelerate с помощью команды стандартной конфигурации. Она определяет параметры среды обучения, включая используемое устройство и распределение вычислительных ресурсов. Параллельно я выполняю авторизацию в Hugging Face, чтобы в дальнейшем иметь возможность загрузить и опубликовать модель.
#Очистка памяти/ #Подключение к FH/ #Подготовка директория подключения
На следующем этапе я запускаю обучение LoRA. В процессе задаются ключевые параметры, такие как скорость обучения, количество эпох, размер батча и другие настройки, влияющие на качество итоговой модели. Обучение происходит на основе ранее сформированного датасета с подписями.
Во время обучения автоматически сохраняются промежуточные веса модели (чекпоинты), что позволяет отслеживать прогресс и при необходимости возвращаться к более ранним версиям.
После завершения обучения я проверяю, что все LoRA-веса успешно сохранились и не повреждены. Это необходимо перед переходом к следующему этапу — публикации модели.
#Обучение модели
Далее я создаю репозиторий на Hugging Face с тем же именем, что и локальный каталог проекта. В него автоматически добавляется model card с описанием обучения. После этого я загружаю все файлы модели (за исключением временных чекпоинтов) и получаю ссылку на готовый репозиторий.
#Загрузка модели HF
На финальном этапе я подключаю VAE для корректного декодирования изображений и загружаю обученную LoRA в пайплайн Stable Diffusion XL. После сборки пайплайна выполняется тестовая генерация, которая позволяет оценить качество обучения и соответствие полученных изображений заданному стилю.
#Инициализация и проверка пайплайна






