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

Портреты в стиле укиё-э: обучение нейросети

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

Идея проекта

Укиё-э (浮世絵) — «картины изменчивого мира» — направление японской живописи, расцветшее в период Эдо (XVII–XIX века). Эти работы отличает особая эстетика: лаконичность линий, плоскостность, декоративность, выразительные силуэты и тонкая работа с цветом. Художники укие-э создали визуальный язык, который до сих пор влияет на мировое искусство — от импрессионистов до современной анимации.

Целью проекта стало обучение генеративной модели Stable Diffusion созданию изображений в стилистике укиё-э, чтобы затем сгенерировать серию портретов и сцен в этой стилистике. Основной фокус — передача характерного способа изображения лиц и фигур, свойственного японской классической гравюре.

Исходники

Для обучения был собран датасет из 133 скадрированных 1:1 изображений, основанный на работах классических мастеров укиё-э: большей их части более сотни лет, и гравюры находятся в общественном достоянии. Важно было не просто скопировать стиль, а «научить» нейросеть его внутренней логике: как строятся лица, как работают контуры и цветовые пятна.

Графичность, стилизация, плоскостность

Укие-э оперирует четкими контурами и плоскостями — это нейросети «уловить» легче, чем сложную светотень. Лица в укие-э упрощены, но выразительны, а сам стиль очень узнаваемый — это, в частности, повлияло на выбор темы для проекта.

Исходный размер 1752x1752

Результат

post

Сгенерированная серия довольно успешно передает ключевые черты укие-э: в стилизации лица — характерная форма глаз (узкие, миндалевидные, с выразительным взглядом), упрощенная моделировка (минимальные тени, лицо строится на контурах), эмоции; композиционные приемы — крупные планы, классический формат портретов, динамичные позы (танцоры, актеры в характерных движениях), в фонах — узнаваемые японские мотивы. Цвета приглушенные, естественные, с акцентными пятнами.

Исходный размер 2048x2048

Сгенерированные «гравюры» довольно разнообразны: нейросети удается передать различные ракурсы, позы, динамику-статику. На различных картинах разные времена года, что соответствует важной для укиё-э и японского менталитета в целом теме сезонности. Безусловно, есть и проблемные моменты: модели сложно даются руки (из-за относительно небольшого объема базы и, в частности, из-за того, что они и на настоящих гравюрах выглядят довольно специфично) и лица на дальнем плане, потому что датасет был в первую очередь ориентирован на портреты.

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

Исходный размер 2284x734
Исходный размер 2048x2048

Код

Проверяем, есть ли видеокарта (GPU) и сколько у нее памяти. так как без GPU обучение нейросети невозможно. Скачиваем и устанавливаем готовые библиотеки, скрипт для обучения.

Исходный размер 1193x168

Подгружаем инструменты: работа с файлами, zip-архивами, изображениями, отрисовка картинок. Загружаем и распаковываем архив с датасетом из фотографий. Показываем первые 6 фото в виде сетки 2×3, чтобы убедиться, что всё загрузилось правильно.

Исходный размер 1192x592

Далее происходит автоматическое создание текстовых описаний для 133 загруженных фото. Я использовала модель BLIP (Bootstrapping Language-Image Pre-training) от Salesforce: эта нейросеть обучена описывать изображения на естественном языке. BLIP работает следующим образом: изображение подается на вход, модель анализирует его содержимое и генерирует текстовое описание длиной до 50 символов. Для повышения качества генерации используется метод beam search с параметром num_beams=3, что позволяет модели рассмотреть несколько вариантов и выбрать наиболее вероятный.

После получения автоматического описания я добавляю к нему триггер-фразу «ukiyoe face style» — ключевое слово, которое свяжет стиль укие-э с обученной LoRA-моделью. В результате каждая запись датасета выглядит примерно как «ukiyoe face style, woman in traditional kimono with elaborate hairstyle».

0

После того, как все изображения загружены и для них сгенерированы подписи, необходимо объединить эти данные в единый структурированный набор. Для этого используется библиотека datasets от Hugging Face — стандартный инструмент для работы с данными в экосистеме диффузионных моделей.

Я создаю словарь с двумя полями: image — список путей к файлам изображений, и prompt — список соответствующих текстовых подписей.

Метод Dataset.from_dict () преобразует этот словарь в объект Dataset, который оптимизирован для пакетной загрузки, перемешивания и потоковой передачи данных во время обучения. Это гарантирует, что каждое изображение будет правильно сопоставлено со своей подписью на всех этапах обучения.

Готовый датасет сохраняется на диск в папку /content/ukiyoe_dataset. В дальнейшем скрипт обучения сможет загрузить его одной строкой кода, без необходимости писать собственную логику обработки данных.

Исходный размер 1166x318
Исходный размер 2284x734

Самая важная часть:

После успешного обучения LoRA-модели необходимо загрузить её в пайплайн Stable Diffusion XL. Процесс начинается с очистки памяти видеокарты, чтобы освободить место для генерации. Затем загружаются три ключевых компонента:

  1. VAE (вариационный автоэнкодер) — специальная версия sdxl-vae-fp16-fix, которая исправляет артефакты на темных участках и работает в 16-битной точности для экономии памяти.
  2. Базовая модель SDXL — stabilityai/stable-diffusion-xl-base-1.0, предобученная на миллиардах изображений.
  3. LoRA-веса — обученный файл .safetensors, который добавляет в модель стиль укие-э.

Для генерации используется 20 различных промптов, разделенных по тематикам: портреты гейш, самураи, театр кабуки, бытовые сцены и атмосферные зарисовки. Для каждого промпта создается по 2 вариации с разными seed-значениями, что позволяет получить разнообразие в деталях, композиции и цветовых решениях.

0

Параметры генерации:

— num_inference_steps = 25 — баланс между качеством и скоростью — guidance_scale = 7.5 — умеренное следование промпту — seed — уникальное значение для каждой вариации, обеспечивающее воспроизводимость

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

Описание применения генеративной модели

В процессе работы над проектом было использовано несколько инструментов на основе генеративного искусственного интеллекта: для автоматического создания подписей к обучающим изображениям применялась модель BLIP от Salesforce. Само обучение и генерация выполнялись в среде Google Colab с использованием готовых библиотек Hugging Face (Diffusers, Transformers, PEFT), которые предоставляют оптимизированные реализации методов DreamBooth и LoRA. Кроме того, для работы с текстом и разбора технических деталей кода частично использовались языковые модели.

Портреты в стиле укиё-э: обучение нейросети
Проект создан 24.03.2026
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше