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


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


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

Собрала датасет из картин Петрова-Водкина: 52 объекта, загрузила в Google Collab в отдельную директорию, применяя метод resize для форматирования изображений под 1:1, просмотрела первые 5 изображений
Сгенерировала подписи к изображениям с использованием модели BLIP: к каждой подписи в названиях изображений добавляется префикс «portrait in the style of Petrov-Vodkin». Метаданные (пути к файлам и подписи) сохранила в metadata.jsonl (проверяя правильность выполнения кода).
Дообучение
Использовала технику 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.
Сохранение полученной модели и её публикация
Сохранила модель в Hugging Face с помощью upload_folder. Через save_model_card создала карточку модели с метаданными.
Генерация изображений
После обучения, сохранения, публикации — загрузила обученную модель LoRA.
Использовала конвейер DiffusionPipeline для генерации изображений по такому промпту: «portrait in the style of Petrov-Vodkin». Настройки генерации: 25 шагов, FP16.
результат генерации
Результат генерации изображений с помощью обученной модели
в своём проекте я поставила себе задачу сделать портреты разных возрастов, поэтому для этого применяла разные промпты
результат генерации


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


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


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


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


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


результат генерации
Выводы по результатам генерации
результат генерации
В итоговой серии изображений получился набор портретов разных возрастов мужчин и женщин. Палитра получилась в основном из синих, жёлтых и оранжевых цветов, повторяя стиль Петрова-Водкина. Модели на портретах преимущественно изображены смотрящими вперёд, а также в три четверти. Также стоит упомянуть задний план изображений, он выполнен в стиле художника, часто объект находится рядом с окном, на него попадает естественный свет.
результат генерации
В исходных изображениях также присутствовали и картины, выполненные карандашом, на выходе были сгенерированы черно-белые портреты, повторяющие графику художника
Использование нейросетей и технологий в проекте
Использованные (ключевые) технологии:
Stable Diffusion XL — https://stability.ai/
Hugging Face — https://huggingface.co/
Блокнот с кодом














