Описание проекта
Проект вдохновлен японскими гравюрами Укиё-э — это разновидность ксилографии, где для нанесения изображения использовали бумагу и дерево. Художник рисовал эскиз на бумаге, затем изображение переносилось на дерево и вырезалось, далее наносились яркие краски, и всё отпечатывалось на подготовленной поверхности. У мастеров эпохи Эдо был схожий стиль изображения людей и природы. Мне было интересно обучить нейросеть генерировать лица японских дам и посмотреть можно ли бытовые сюжеты из гравюр перенести в современность.
Исходные изображения для обучения
Из гравюр был подготовлен датасет из 89-ти иллюстраций. Все изображения так же были изменены под необходимый для обучения формат (512×512), с учетом того, что лицо не должно быть как-то обрезано.
Japanese Woodblock Print Search URL: https://ukiyo-e.org/ (дата обращения: 06.04.2025).
Процесс обучения
Перед обучением требовалось включить GPU в среде программирования и загрузить все необходимые библиотеки (bitsandbytes, transformers, accelerate, peft). С Github так же нужно было установить diffusers и специальный скрипт train_dreambooth_lora_sdxl, который используется для работы с нейросетями.
Подготовка и загрузка изображений
Подготовленный датасет нужно было загрузить в среду kaggle. Чтобы убедиться, что все изображения были загружены корректно, была использована функция grid с выводом 5 изображений из датасета.
Код из kaggle
Генерация подписей
Далее было необходимо сгенерировать подписи к картинкам с помощью модели Blip, так как для обучения модели необходимо текстовое описание.
Так как я обучаю модель на определенный стиль, я указала префикс: a photo collage in UKIYOE style. Все подписи к изображениям должны начинаться с этой фразы.
код из kaggle
код из kaggle
Сохранение в Hugging Face
Далее нужно было загрузить скрипт accelerate, который поможет сохранить обученную модель на Hugging face.
Для этого, нужно зарегистрироваться на сайте Hugging face и получить специальных токен и ввести его в kaggle.
код из kaggle
код из kaggle
Запуск обучения модели
Перед началом обучения требуется установить библиотеку datasates, которая будет использовать «a photo collage in UKIYOE style»
Можно запускать основной код, обучающий модель. Для оптимизации процесса я установила значения таким образом, чтобы процесс обучения не шел слишком долго и не загружал память GPU.
Например, уменьшено максимальное количество шагов обучения (с 1000 до 500). Таким образом, на процесс обучения ушло вместо 5 часов, около 2 часов.
код из kaggle
Генерация изображений
Для начала сгенерируем привычные сюжеты для гравюр Укиё-э с изображением женщин в кимоно.
изображения сгенерированы нейросетью. «a photo collage in UKIYOE style a woman in a kimono with a fan»
изображения сгенерированы нейросетью. «a photo collage in UKIYOE style The woman with the bird»
изображения сгенерированы нейросетью. «a photo collage in UKIYOE style a woman in a blue kimono with a cup of tea»
изображения сгенерированы нейросетью. «a photo collage in UKIYOE style a photo collage in UKIYOE style koi fish in the pond»
Сравним оригиналы и генерации нейросетью
















