идея
Проект посвящён обучению нейросети воспроизведению визуального стиля Рембрандта — одного из величайших мастеров живописи Золотого века Нидерландов, чьи работы поражают глубиной света, богатством текстур и психологической выразительностью образов.
В современном мире творчество Рембрандта продолжает вдохновлять художников и зрителей, а его техника остаётся эталоном мастерства. Его полотна, наполненные драматизмом, игрой света и тени, а также проникновенной передачей человеческих эмоций, послужили для меня толчком для обучения модели Stable Diffusion XL.
Моя цель — небольшая художественная шалость: привнести образ котов в серьёзные произведения великого мастера. Эта идея возникла, когда я просматривала архив художника и обратила внимание, что изображения животных в его работах встречаются нечасто. Их силуэты куда чаще можно заметить в набросках, чем в законченных живописных полотнах. Краской Рембрандт изображал животных значительно реже, чем людей. Именно поэтому у меня появилось желание по-своему переосмыслить его произведения — заменить действующих лиц, людей, на котов. Но, сама модель нацелена на воспроизведение стиля художника, она не обучалась дополнительно на генерации только с котами.
датасет
Для обучения был использован датасет из 55 квадратных изображений Рембрандт Харменс ван Рейна.
Отбирались качественные изображения, которые передают глубину работ и тонкость художника работы со светотенью. Так же важно было отобрать изображения с детальной проработкой мазка, которая, по-моему мнению, и отражает суть работ автора.
Рембрандт ван Рейн. «Агата Бас». 1641.
1. Рембрандт ван Рейн. Портрет «Сюзанна ван Коллен и её дочь Анна». 1632 2. Рембрандт ван Рейн. «Семейный портрет». 1660-е гг.
Рембрандт, ван Рейн. «Ян Сикс». 1654.
обучение модели
Для обучения я использовала Google Colab и установила и подключила необходимые библиотеки (torch, diffusers, transformers, accelerate, bitsandbytes, Pillow и peft) для настройки среды обучения и генерации изображений с использованием Stable Diffusion. Создала папку dataset и загрузила в неё 55 изображений Рембрандта. Далее был создан код, который переводил image to text, тем самым каждое изображение сопровождалось текстовым описанием (промптом), чтобы модель могла обучаться на парах «изображение-текст».
1. техническая подготовка 2. подгрузка датасета через Google drive
1 ячейка — функция, которая объединяет несколько изображений в одно большое изображение-сетку. 2 ячейка — модель BLIP для создания текстовых описаний к изображениям
проверка, что все загрузилось
перебор найденных изображений, генерация текстового описания с заданным префиксом с помощью модели BLIP, а затем сохранение описаний вместе с именами файлов в формате JSONLines в файл metadata.jsonl.
освобождение оперативной памяти GPU, кодировка среды в UTF-8, вход в аккаунт Hugging Face
подготовка среды и запуск скрипта для обучения, загрузка обученной LoRA модели на Hugging Face Hub
создание репозитория на Hugging Face Hub, загрузка базовой модели Stable Diffusion XL, применение к ней обученных весов LoRA и генерация новых изображений на основе текстового описания
облегченный вариант кода, чисто для замены промпта внутри
Использовала предобученную модель stabilityai/stable-diffusion-xl-base-1.0 и настроила параметры обучения. Позже, мне пришлось поменять эти параметры обучения и генерации промптов, так как Google Colab не выдерживал модель SDXL и часто слетал из-за заполнения GPU, который был недостаточным для всего конвейера инференса. Чистка кэша не помогала.
В следствии чего под конец я пришла к более сжатым изображениям, с большим количеством артефактов. (результат после смены параметров)
Генерации
Итоговая серия состоит из генераций, которые продолжают визуальный язык работ Рембрандта, но при этом не копируют их буквально. В серии появляются портреты котов, стилизованные под классические полотна: с глубокими тенями, мягким светом и характерной текстурой мазков. Проверка как будут нарисованы коты в стиле художника прошла успешно, потому что в генерациях узнается его стиль, в особенности «излишняя чернота», а так же в нескольких генерациях даже удалось скопировать его стиль мазка.
Главным в этой серии становится не сюжетная оригинальность, а передача узнаваемой интонации Рембрандта: его драматизма, игры света и тени, психологической глубины — но теперь с пушистыми моделями.
В рамках проекта использовалась генеративная модель Gemini 2.5 Flash, она выступала в роли помощника в написании кода.