Original size 1599x2000

Обучение генеративной нейросети. Портреты в стиле Кузьмы Петрова-Водкина

PROTECT STATUS: not protected

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

картины Петрова-Водкина

Стиль Кузьмы Петрова-Водкина в портретах имеет яркую цветовую палитрой, при этом модели изображаются с подчеркнутой психологической глубиной и их взгляд направлен на самого художника. Его манера письма сочетает в себе элементы реализма и символизма, создавая ощущение одновременно реальной и немного ирреальной натуры.

картины Петрова-Водкина

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

Тренировка нейросети

0

В начале я проверила доступность GPU через nvidia-smi, потом установила библиотеки: bitsandbytes (квантование моделей), transformers (обработка текста и изображений), diffusers (работа с диффузионными моделями), peft (параметрическая настройка, включая LoRA), скрипт для обучения Dreambooth-LoRA из репозитория Hugging Face.

big
Original size 2436x522

Собрала датасет из картин Петрова-Водкина: 52 объекта, загрузила в Google Collab в отдельную директорию, применяя метод resize для форматирования изображений под 1:1, просмотрела первые 5 изображений

Original size 2497x805

Сгенерировала подписи к изображениям с использованием модели BLIP: к каждой подписи в названиях изображений добавляется префикс «portrait in the style of Petrov-Vodkin». Метаданные (пути к файлам и подписи) сохранила в metadata.jsonl (проверяя правильность выполнения кода).

Дообучение

Original size 1557x856

Использовала технику Dreambooth-LoRA для дообучения Stable Diffusion. Беру базовые модели:

А также: stabilityai/stable-diffusion-xl-base-1.0 VAE madebyollin/sdxl-vae-fp16-fix

Основные параметры обучения: Разрешение: 512×512 Batch size: 2 Learning rate: 1e-4 Количество шагов: 500 8-bit Adam (оптимизация памяти) FP16

Запустила обучение через accelerate.

Сохранение полученной модели и её публикация

Original size 2161x877

Сохранила модель в Hugging Face с помощью upload_folder. Через save_model_card создала карточку модели с метаданными.

Генерация изображений

После обучения, сохранения, публикации — загрузила обученную модель LoRA.

Использовала конвейер DiffusionPipeline для генерации изображений по такому промпту: «portrait in the style of Petrov-Vodkin». Настройки генерации: 25 шагов, FP16.

Original size 1178x191

результат генерации

Результат генерации изображений с помощью обученной модели

в своём проекте я поставила себе задачу сделать портреты разных возрастов, поэтому для этого применяла разные промпты

Original size 2238x157
Original size 1024x1024

результат генерации

результат генерации

Original size 2433x166
Original size 1024x1024

результат генерации

результат генерации

Обучение генеративной нейросети. Портреты в стиле Кузьмы Петрова-Водкина
Project created at 10.04.2025