КОНЦЕПЦИЯ
Цель проекта — исследовать, насколько генеративная нейросеть способна перенять визуальный язык Ивана Айвазовского и использовать его при создании новых изображений. В качестве основы был выбран именно этот художник, поскольку его живопись обладает ярко выраженной стилистической цельностью: особым вниманием к морю, свету, воздуху и состоянию природной среды.
В рамках проекта модель Stable Diffusion была дообучена на датасете морских пейзажей. После этого была создана серия новых изображений по текстовым запросам. Особое внимание уделялось тому, насколько хорошо модель передает атмосферу моря, освещение, глубину пространства и общее настроение, характерное для работ Айвазовского.
Почему был выбран Айвазовский
Иван Айвазовский был выбран как автор с очень узнаваемым художественным стилем. Его работы легко отличить по световым эффектам, морской тематике, драматичным небесным состояниям и особой эмоциональности изображения.
Кроме того, морской пейзаж хорошо подходит для подобного эксперимента: в нем можно проследить, как нейросеть работает с цветом, освещением, композицией и повторяющимися образами, такими как волны, горизонт, корабли, туман и лунный свет.
ОСОБЕННОСТИ СТИЛЯ
Для живописи Айвазовского характерны несколько устойчивых признаков. Прежде всего это внимание к морской стихии как к главному образу. В его работах важную роль играют световые эффекты: сияние луны, солнечные блики на воде, закатные и рассветные состояния неба.
Также для его картин характерны ощущение движения, глубокое пространство, атмосферная перспектива и тонкий баланс между спокойствием и драматизмом. Именно эти особенности стали основными ориентирами при анализе результатов генерации.
ИСХОДНЫЕ ИЗОБРАЖЕНИЯ
Для обучения модели был собран датасет из изображений морских пейзажей Ивана Айвазовского. При отборе учитывались визуальное качество изображений, тематическая цельность и наличие характерных элементов стиля: моря, неба, отражений, кораблей, тумана, шторма и световых переходов.
Фрагменты картин Ивана Айвазовского (1817–1900)
СЕРИЯ ИЗОБРАЖЕНИЙ
prompts = [ «aivazovsky style calm sea at sunrise, soft golden light, reflective water, romantic marine painting», «aivazovsky style quiet sea under pale morning sky, gentle waves, atmospheric perspective», «aivazovsky style moonlit sea, silver reflections on water, deep blue sky, distant ship», «aivazovsky style sea at night, glowing moonlight, calm waves, dramatic horizon», «aivazovsky style stormy sea, dark clouds, powerful waves, dramatic marine painting», «aivazovsky style sailing ship in storm, sea spray, turbulent sky, glowing breaks in clouds», «aivazovsky style sea after storm, sunlight breaking through clouds, glowing water, emotional atmosphere», «aivazovsky style lone sailing ship on open sea, wide horizon, glowing sky, romantic marine painting», «aivazovsky style boats in quiet harbor, golden evening light, calm reflective water», «aivazovsky style rocky coast by the sea, foamy waves, dramatic sky, luminous atmosphere», «aivazovsky style harbor at dawn, fishing boats, soft mist, pastel sky, calm sea», «aivazovsky style sea at sunset, glowing orange sky, warm reflections, romantic marine landscape» ] negative_prompt = 'low quality, blurry, deformed, bad anatomy, extra objects, text, watermark, frame'
Результаты генерации изображений.
Результаты генерации изображений.
Результаты генерации изображений.
Результаты генерации изображений.
ПРОЦЕСС ОБУЧЕНИЯ
Шаг 1. Подключение рабочей среды
На первом этапе была настроена рабочая среда в Google Colab: подключен Google Drive, установлены необходимые библиотеки и заданы папки для датасета, результатов обучения и итоговых генераций.
Настройка Google Colab, библиотек и рабочих директорий.
Шаг 2. Подготовка датасета
Далее изображения были собраны в единую папку и приведены к единому формату. Для обучения все изображения были обрезаны и подготовлены в размере 512×512 пикселей.
Шаг 3. Формирование описаний для изображений
После подготовки датасета для изображений были созданы текстовые описания, которые использовались моделью в процессе обучения для связи визуального материала с общим стилевым запросом.
Шаг 4. Настройка параметров обучения
На этом этапе были заданы основные параметры обучения: базовая модель Stable Diffusion v1.5, количество шагов, размер изображений, learning rate и параметры сохранения промежуточных checkpoint-файлов.
Шаг 5. Запуск дообучения модели
После настройки параметров был запущен процесс дообучения LoRA-модуля на подготовленном датасете. В ходе обучения модель адаптировалась под выбранную стилистику морских пейзажей.
Дообучение модели Stable Diffusion на собранном датасете.
Шаг 6. Сохранение checkpoint
В процессе обучения были автоматически сохранены промежуточные результаты. Для дальнейшей генерации использовался сохранённый checkpoint с весами LoRA.
Шаг 7. Подключение обученных весов
После завершения обучения сохранённые веса были загружены обратно в pipeline Stable Diffusion, чтобы использовать их для генерации новой серии изображений.
Использование сохранённых весов для дальнейшей генерации.
Использование сохранённых весов для дальнейшей генерации.
Использование сохранённых весов для дальнейшей генерации.
Процесс генерации изображения.
Получение финальной серии изображений по заданным промптам.
Получение финальной серии изображений по заданным промптам.
Настройки для кастомной генерации изображения.
Получение финальной серии изображений по заданным промптам и настройкам.
ВЫВОД
В ходе проекта модель Stable Diffusion была дообучена на подборке морских пейзажей Ивана Айвазовского. Полученные изображения показали, что нейросеть способна перенимать ключевые особенности художественного стиля: световую атмосферу, глубину пространства, цветовую палитру и общее настроение морской сцены.
При этом результаты также выявили ограничения генерации: в некоторых изображениях заметны упрощения формы и неточности в деталях. Тем не менее итоговую серию можно считать удачной, так как модели удалось передать узнаваемую визуальную логику выбранного автора.
ПРИМЕНЕНИЕ ГЕНЕРАТИВНОЙ МОДЕЛИ
— Для генерации промтов был использован ChatGPT Pluse — Для исправления работы кода был использован Claude.ai




