Идея проекта
Мне захотелось обучить генеративную нейросеть Stable Diffusion на работах художника Анри Матисса, чтобы исследовать, насколько точно модель сможет воспроизвести его уникальный художественный стиль.
Цель проекта — проверить:
- Насколько нейросеть способна передать характерную цветовую палитру Матисса
- Сможет ли она воспроизводить его подход к форме и композиции
- Насколько генерации будут визуально близки к оригинальным работам художника
Описание датасета
Для обучения была собрана выборочная подборка из 65 изображений картин Матисса, взятая (и позднее отредактированная) с сайта kaggle.
В проекте использовались:
Stable Diffusion — обучение модели Google Colab — запуск кода Deep Seek — редактирование кода
Мои генерации
henri matisse style, fauvism, portrait of a woman with red hair and green eyes, bold brushstrokes, vibrant colors, simplified features, decorative background with floral pattern, oil painting texture
- Классический фовистский портрет Зачем: Передаёт узнаваемую манеру портретов Матисса (например, «Женщина в шляпе»), с акцентом на цвет и декоративность.
henri matisse style, interior with open window, view of mediterranean sea, colorful curtains, vase with flowers on table, simplified forms, flat perspective, vivid blues and oranges, fauvism
- Интерьер с видом из окна Зачем: Мотив «открытого окна» часто встречается у Матисса. Такой промпт подчеркнёт плоскостность и яркие контрасты.
matisse style, still life with colorful fruits, bold colors, red and yellow apples, blue tablecloth, decorative pattern, simplified shapes, expressive brushstrokes, fauvism
- Натюрморт с фруктами Зачем: Натюрморты — важная часть творчества. Этот промпт даст яркую, почти абстрактную композицию.
henri matisse style, dance, five figures holding hands in a circle, simplified human forms, vibrant red figures against blue and green background, rhythm, movement, fauvism
- Танец (отсылка к знаменитому полотну) Зачем: Вдохновлён картиной «Танец». Промпт акцентирует ритм, обобщённые фигуры и чистый цвет.
matisse style, paper cutouts, abstract composition with organic shapes, bright blue, yellow, and red forms, black outlines, geometric and freeform elements, joyful, decorative, flat design
- Вырезки из бумаги (поздний период) Зачем: Имитирует технику gouaches découpées, которую Матисс использовал в конце жизни. Даёт графичный, плоскостной результат.
henri matisse style, landscape with palm trees and colorful flowers, vivid greens and pinks, simplified foliage, fauvism, expressive brushwork, hot mediterranean colors
- Пейзаж с яркой растительностью Зачем: Пейзажи Ниццы и Марокко вдохновляли художника на буйство цвета.
matisse style, woman reading in a colorful armchair, interior with patterned wallpaper, relaxed pose, simplified features, bold colors, reds and greens, decorative lines, fauvism
- Женская фигура в интерьере Зачем: Соединяет портрет, интерьер и мотив отдыха — типичная для Матисса тема.
henri matisse style, abstract composition, pure colors, flat areas of red, blue, yellow, black outlines, organic shapes, decorative, fauvism, no realism
- Абстрактная композиция (акцент на цвет) Зачем: Если хотите проверить, насколько LoRA усвоила цветовую палитру и композиционные приёмы без конкретного сюжета.
henri matisse style, family on the beach, simplified figures, bright sunshine, vibrant blues and yellows, striped umbrellas, relaxed atmosphere, fauvism
- Семейная сцена на пляже Зачем: Мотив отдыха на природе, характерный для работ Матисса.
henri matisse style, still life with fish and lemons, bold brushstrokes, colorful table, decorative background, vivid orange and yellow, simplified forms, fauvism
- Натюрморт с рыбой (вариация) Зачем: Ещё один вариант натюрморта с яркой цветовой гаммой.
Описание процесса обучения
Блок 1: Установка зависимостей и подготовка окружения
— Проверка доступного GPU и объёма видеопамяти (VRAM) в Colab. — Установка ключевых библиотек — Установка свежей версии diffusers из репозитория GitHub — Скачивание официального скрипта обучения DreamBooth LoRA для SDXL. — Автоматическая настройка конфигурации accelerate.
Блок 2: Загрузка и извлечение датасета
— Открывает диалог загрузки файла в Colab, позволяет пользователю выбрать ZIP-архив с изображениями. — Создаёт папку для извлечения. — Распаковывает архив в папку /content/matisse_raw. — Рекурсивно ищет все изображения (JPG, PNG, JPEG) в распакованной папке, сортирует их и выводит количество и первые 5 названий для проверки.
Блок 3: Предобработка изображений
— Создаёт папку для обработанных изображений. — Устанавливает целевой размер — 1024×1024 пикселя (оптимально для SDXL).
Для каждого изображения:
- Конвертирует в RGB (на случай PNG с альфа-каналом)
- Применяет pad — добавляет белые поля (255,255,255) для превращения в квадрат без искажения содержимого
- Сохраняет в JPG с качеством 95% в папку обучения
— Функция для визуализации сетки изображений. — Показывает первые 8 обработанных квадратных изображений для контроля качества предобработки.
Блок 4: Авторизация в Hugging Face
— Открывает интерфейс для входа в Hugging Face Hub. — Нужна для доступа к модели stabilityai/stable-diffusion-xl-base-1.0 (требуется соглашение о лицензии). Пользователь должен ввести токен.
Блок 5: Обучение модели DreamBooth LoRA
— Определяет папку для сохранения обученной модели и текстовый промпт, который будет ассоциироваться со стилем.
Запуск обучения с параметрами (одни из):
- resolution=512 — размер изображений для обучения (меньше 1024 для экономии памяти)
- mixed_precision='bf16' — смешанная точность (экономия памяти)
- use_8bit_adam — 8-битный оптимизатор Adam (экономия VRAM)
- max_train_steps=300 — всего 300 шагов обучения
- checkpointing_steps=100 — сохранение каждые 100 шагов
Блок 6: Сохранение модели на Google Диск
— Монтирует Google Диск для сохранения модели. — Создаёт папку на Google Диске для модели. — Копирует все файлы модели (LoRA веса, конфиги) с временного хранилища Colab на постоянное хранилище Google Диска. — Выводит список сохранённых файлов с размерами для контроля.
Блок 7: Тестовая генерация после обучения
— Загружает базовую модель SDXL в память GPU в половинной точности (float16) для экономии памяти. — Загружает обученные LoRA веса из папки output_dir. — Включает VAE slicing — техника для экономии VRAM при генерации. — Запрашивает промпт у пользователя. — Автоматически добавляет упоминание стиля Матисса, если его нет. — Генерирует изображение с фиксированным seed (42) для воспроизводимости, 30 шагами денойзинга, guidance scale 7.5. — Сохраняет изображение с меткой времени, показывает его в Colab и автоматически скачивает на компьютер пользователя. — Удаляет пайплайн из памяти и очищает кэш CUDA для освобождения ресурсов.
Блок 8: Повторная загрузка модели с Google Диска
— Монтирует Google Диск и указывает путь к сохранённой модели. — Очищает память перед загрузкой модели. — Загружает базовую модель и LoRA веса с Google Диска, готовит пайплайн для генерации.
Блок 9: Интерактивная генерация (после перезапуска сессии)
— Подготовка: очистка памяти перед генерацией. — Интерактивный ввод промпта с автоматическим добавлением стиля. — Генерация изображения с теми же параметрами, что и в блоке 7. — Сохранение, отображение, скачивание и финальная очистка памяти.
Ссылки




