Original size 1140x1600

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

PROTECT STATUS: not protected
The project is taking part in the competition

Идея проекта

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

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

Исходники

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

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

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

Original size 1752x1752

Результат

post

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

Original size 2048x2048

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

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

Original size 2284x734
Original size 2048x2048

Код

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

Original size 1193x168

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

Original size 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. В дальнейшем скрипт обучения сможет загрузить его одной строкой кода, без необходимости писать собственную логику обработки данных.

Original size 1166x318
Original size 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. Кроме того, для работы с текстом и разбора технических деталей кода частично использовались языковые модели.

Портреты в стиле укиё-э: обучение нейросети
Project created at 24.03.2026
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more