
Тема проекта:
Обучение модели Stable Diffusion (через LoRA-адаптацию) на абстрактных картинах с целью генерации оригинальных изображений в стиле экспрессивной живописи.
Концепция:
Идея проекта заключается в том, чтобы с помощью дообучения нейросети на выборке абстрактных произведений искусства получить модель, способную воспроизводить динамику мазков, цветовые акценты и визуальный ритм, характерный для современной абстракции. В результате должна формироваться серия изображений, где ИИ создает новые варианты «виртуальных картин»
Исходные изображения для обучения
Результаты генерации
Каждое изображение сгенерировано по одному из случайных промптов из заранее подготовленного списка, описывающего художественный стиль («expressive abstract painting», «color field composition», «geometric abstraction» и т. д.).
Развёрнутый комментарий и визуальный анализ
Анализ результатов:
Модель корректно улавливает цветовые ритмы и фактурные переходы — мазки выглядят живописно, структура холста сохранена.
В некоторых примерах заметно влияние геометрической композиции — это следствие разнообразия исходных данных.
Появились вариации по плотности мазков и степени контраста: нейросеть адаптировала паттерны кистевых движений, создавая «виртуальные полотна».
Соответствие концепции:
Изначальная идея заключалась в том, чтобы передать характер «живого» абстрактного письма. Модель справилась: изображения действительно напоминают картины, а не цифровые паттерны. Нейросеть научилась воспроизводить жест живописца — что и было целевой задачей.
Jupyter/Colab ноутбук
https://drive.google.com/drive/folders/1fQZ7MKOpKxe9Wjta7bKVx7X4_cXhhipZ?usp=sharing
create: Код загружает модель Stable Diffusion, подключает обученные LoRA-веса и генерирует серию изображений по текстовым промптам. Основные функции:
from_pretrained () — загрузка базовой модели.
load_state_dict () — подключение LoRA-весов.
pipe () — генерация изображения по промпту (обратная диффузия).
save () — сохранение результата.
main:
Общее назначение
Код обучает адаптацию LoRA (Low-Rank Adaptation) для модели Stable Diffusion, чтобы научить её создавать изображения в стиле абстрактной живописи.
Основные блоки 1. Импорты и конфигурация
Импортируются библиотеки PyTorch, diffusers, PEFT, tqdm и PIL. Настраиваются пути (DATA_PATH, OUT_PATH), параметры обучения (размер изображений, количество шагов, скорость обучения и т. д.).
2. Определение устройства
Выбирается вычислительное устройство:
GPU (cuda) — при наличии видеокарты,
MPS — для Mac,
CPU — по умолчанию.
Тип данных (DTYPE) задаётся в зависимости от устройства.
3. Функции
seed_all () — фиксирует случайность для воспроизводимости.
collect_images () — собирает пути всех изображений из указанной папки.
4. Класс AbstractDataset
Создаёт обучающий датасет:
Загружает изображения из папки,
Преобразует их (Resize, Normalize),
Добавляет случайный текстовый промпт, описывающий стиль картины.
Возвращает пары (изображение, текст) для обучения.
5. Функция train_lora ()
Основная логика обучения:
Загружает модель Stable Diffusion v1-5.
Настраивает и подключает LoRA к UNet.
Для каждой итерации:
Кодирует изображение в латентное пространство (VAE).
Преобразует текст в векторные эмбеддинги (Text Encoder).
Добавляет случайный шум к латентам.
Прогоняет через UNet, который учится предсказывать шум.
Считает MSE-потери (Mean Squared Error) между предсказанным и реальным шумом.
Обновляет веса с помощью оптимизатора AdamW.
Периодически сохраняет чекпоинты LoRA-весов.
После завершения — сохраняет финальную версию в final_lora.
Использование GenAI
В проекте дополнительно использовался ChatGPT (GPT-5) для:
составления промптов для генерации;
формулировки текстовых описаний для caption-пар;