Исходный размер 819x1024

Цифровой импрессионизм

Проект принимает участие в конкурсе

Описание идеи

Импрессионизм в истории мирового искусства занимает отдельное место. По моему мнению, это течение занимало не такой большой промежуток времени, как хотелось бы. А сейчас и вовсе не выходит каких-то знаменитых произведений в этой стилистике. Именно поэтому мне захотелось создать универсальный инструмент, в котором пользователю можно будет делать картинки в данной стилистике. При этом, ему не обязательно ограничиваться лишь картинами природы и города, как это делал, например, Клод Моне. Любой пользователь может воплотить любые самые смелые свои фантазии.

Обучение модели

Мне хотелось, чтобы это был не просто какой-то абстрактный импрессионизм, в котором «понамешаны» разные стили, а я хотел, чтобы в генерируемых результатах вполне можно было бы узнать приемы и стили знаменитых авторов того времени. Главными картинами для обучения, конечно же, стали картины знаменитого Клода Моне.

big
Исходный размер 1000x700

Клод Моне, «Дом рыбака в Варенжвиле», 1882 г., Клод Моне, «Прогулка по скале в Пурвиле», 1882 г., Клод Моне, «Цветник в Ветёе», 1881 г., Клод Моне, «Сан-Джорджо Маджоре в сумерках», 1908–1912 гг.

Всего я нашел 22 картинки для обучения. После того, как я привел их к единому формату (1024 на 1024 — один из идеальных форматов для текущей задачи), я загрузил их в радел Datasets на kaggle.com и начал устанавливать все необходимые библиотеки и подготовку окружения.

big
Исходный размер 1073x58
big
Исходный размер 480x49

А вот код, созданный для обучения модели. Ключевые элементы:

  1. accelerate launch — для запуска обучения в распределенном или оптимизированном режиме
  2. train_dreambooth_lora_sdxl.py — для тренировки LoRA, чтобы не менять все параметры модели
  3. --gradient_checkpointing — для снижения потребления видеопамяти
  4. --mixed_precision="fp16» — для ускорения работы без существенной потери качества
  5. --gradient_accumulation_steps=4 — чтобы модель обновляла веса после 4-х картинок, а не каждой
  6. --learning_rate=2e-4 — стандартная скорость для обучения в LoRA
  7. --max_train_steps=400 — ограничил модель 400 шагов, чтобы не уйти в переобучение и в случае чего не исчерпать запасы бесплатной версии kaggle.com
  8. --instance_prompt="in the style of impressionism» — когда в промптах будет добавляться эта фраза, будут активироваться выученные веса стиля.

Модель обучалась около 40 минут.

Исходный размер 948x323

После того, как модель закончила обучаться, был написан финальный код для генерации картинок.

Особенности:

  1. from diffusers import DiffusionPipeline — импортируется базовый класс для загрузки готовых конвейеров нейросетевых моделей
  2. DiffusionPipeline.from_pretrained — осуществляется загрузка предобученной модели Stable Diffusion XL с использованием сокращенной точности вычислений (fp16) для оптимизации видеопамяти
  3. pipe.load_lora_weights — производится подгрузка обученных весов адаптера (LoRA), которые модифицируют работу базовой модели в соответствии с заданным стилем
  4. pipe.to («cuda») — выполняется перенос модели на видеокарту для ускорения вычислений с помощью технологии CUDA
  5. pipe (prompt) — запускается процесс итеративного шумоподавления, в ходе которого на основе текстового описания формируется финальное изображение
  6. num_inference_steps=35 — задается количество шагов генерации, определяющее баланс между качеством детализации и временем обработки
  7. guidance_scale=7.5 — устанавливается коэффициент соответствия модели текстовому запросу, ограничивающий степень творческой свободы нейросети
  8. image.save («sohranil_kartinku.png») — выполняется запись полученного результата в файл формата PNG на диск
Исходный размер 1406x512

Получившиеся изображения

Теперь ниже будет показано, какие изображения у меня получились, и, в частности, какие особенности стиля из датасета мне удалось передать.

Импрессионисты первыми заявили: «Важно не то, ЧТО мы рисуем, а то, КАК мы это видим в конкретный момент времени».

Исходный размер 1019x522

Промпт: a medieval room in the style of Impressionism

Импрессионисты отказались от четких контуров, потому что в реальности глаз их не видит.

Исходный размер 1000x600

Промпты: а beautiful dog in the style of Impressionism/ Optimus Prime in the style of Impressionism

Главным героем картины уже ощущается не объект (дерево, лодка), а свет и воздух, которые окружают этот объект.

Исходный размер 1000x700

Промпты:

  1. A forest where the trees are made of giant glowing fiber-optic cables and the river is made of liquid gold, in the style of digimp, in the style of impressionism
  2. The character Cuphead in the style of Impressionism
  3. A T-Rex wearing a tuxedo and top hat, eating a gourmet dinner at a fancy restaurant on the Moon, looking out at the Earth, in the style of digimp, in the style of impressionism
  4. A massive deep-space battle station shaped like a giant clockwork skull, swirling nebulae in the background, in the style of digimp, in the style of impressionism
Исходный размер 1024x526

Промпт: two Jokers fighting in the style of Impressionism.

Художники не смешивали краски на палитре. Они накладывали на холст маленькие мазки чистых цветов (рядом синий и желтый). При просмотре с расстояния глаз сам «смешивал» их в зеленый — так картинка казалась более яркой и «дрожащей» от света.

Исходный размер 1024x749

Промпт: dwarf star miners leaving asteroid citadel in the style of impressionism

Импрессионисты почти не использовали чистый черный. Тени у них — цветные (синие, фиолетовые, коричневые). Это делает работу «воздушной».

Исходный размер 1000x700

Промпты: dwarf king studying cosmic map in the style of impressionism/dwarves discovering forgotten stellar forge in the style of impressionism/battle with cosmic void creatures in the style of impres

Серийность — Моне мог написать один и тот же стог сена, собор или кувшинки 20–30 раз в разное время суток. Ему было важно показать, как один и тот же объект меняется в зависимости от света.

Исходный размер 1024x640

Промпт: dwarf captain leading starship fleet in the style of impressionism

У Моне (особенно в поздних работах, например, в «Кувшинках») объекты часто почти полностью растворяются в свете. Остаются только пятна цвета, которые создают эмоциональное ощущение воды или сада.

Исходный размер 1024x682

Промпт: final battle above burning nebula in the style of impressionism

Исходный размер 1000x700

Промпты: dwarves rebuilding crystal space citadel in the style of impressionism/peaceful dwarf civilization among nebulae in the style of impressionism/ morning coffee cup in the style of impressionis

Таким образом, в получившихся работах мне удалось передать стилистику и приемы изображений, на которых была обучена нейросеть.

Ссылки и нейросети

  1. Дополнительные методы улучшения изображений, кроме обрезания и коллажа не использовались
  2. ноутбук с кодом для обучения (kaggle): https://www.kaggle.com/code/muhavzuha/notebook6a3075022d
  3. Нейросети:

DiffusionPipeline служит для объединения текстового энкодера, модели диффузии (UNet) и декодера (VAE) в единый рабочий процесс генерации.

CLIPTextModel — модуль перевода данных; служит для преобразования текстового промпта в векторное представление (математические числа), понятное нейросети.

UNet2DConditionModel — основной вычислительный блок; служит для итеративного удаления шума из скрытого представления изображения в соответствии с заданными текстовыми условиями.

AutoencoderKL — модуль сжатия и восстановления; служит для перевода математических тензоров (латентного пространства) в финальные пиксели готового изображения и обратно.

LoRA-адаптер — дополнительный слой параметров; служит для «тонкой настройки» весов внутри блоков UNet, что позволяет внедрить специфические визуальные особенности (стиль) без изменения всей архитектуры модели.

  1. Датасет: https://www.kaggle.com/datasets/muhavzuha/my-impress
Цифровой импрессионизм
Проект создан 18.03.2026
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше