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

Этот проект посвящён ностальгии по лету 2020 года — времени, когда в мире были локдаун, экономические и социальные кризисы, многие люди столкнулись с непредвиденными проблемами и я в их числе. Это было тяжелое время, когда мировые проблемы столкнулись с моими личными — 11 класс, сдача ЕГЭ, выбор профессии, поступление. Спасаясь от тревоги, я стала смотреть на небо, начала фотографировать рассветы, закаты, облака — это было лучшее лекарство от отчаяния.

Этот проект — о той самой терапии. О том, что всё в мире меняется: мы прощаемся с детством, проходим через кризисы, но небо остаётся неизменным в своей красоте. Оно было, есть и будет — вечный зритель нашей быстротечной жизни и напоминание о том, что покой можно найти даже в самый трудный момент.

С помощью генеративной нейросети Stable Diffusion и техники DreamBooth LoRA я хочу научить модель воспроизводить ту самую эстетику: мягкие оранжевые и розовые тона, золотистое свечение, невесомые облака. В результате будет создана серия изображений, которые возвращают ощущение того лета и показывают, как искусственный интеллект может интерпретировать личные воспоминания.

Ниже я подробно расскажу обо всех этапах работы: от сбора датасета до генерации финальной серии.

I. Сбор и подготовка датасета

Для обучения необходимо было собрать от 10 до 200 квадратных изображений (соотношение сторон 1:1) хорошего качества. В моём случае это фотографии неба, закатов, облаков и солнца, сделанные летом 2020 года.

Примеры исходных изображений

Примеры исходных изображений

Я помню, где и когда сделана та или иная фотография, это греет душу до сих пор. И мне искренне жаль, что я перестала снимать.

II. Настройка среды в Google Colab и подготовка данных

Я использую предоставленный код, адаптируя его под свою тему. Все действия выполняются в Google Colab (среда с GPU).

Этот этап — фундамент нашего путешествия в воспоминания. Подготовка инструментов напоминает о том, как перед долгой дорогой мы снаряжаем рюкзак.

GPU — как надёжный спутник, который поможет переложить мои личные фотографии в язык нейросети.

Первым делом проверяем доступность GPU и устанавливаем необходимые библиотеки.

Называем папку, например «summer2020», и создаём её, затем переходим в созданную папку и загружаем файлы с компьютера

После создадим текстовые описания с помощью модели BLIP. Каждое описание будет начинаться с префикса, задающего стиль, например, «summer 2020 nostalgia style».

Исходный размер 1707x285
0

III. Обучение модели DreamBooth LoRA для Stable Diffusion XL

Исходный размер 1703x497

Для каждого изображения мы генерируем описание и дописываем в начало ключевую фразу «summer 2020 nostalgia style». Эта фраза станет идентификатором стиля — именно по ней нейросеть будет узнавать, что нужно рисовать в нашем особом настроении. Все пары «имя файла → текст» сохраняем в файл metadata.jsonl (формат JSON Lines), который требуется для обучения. После этого удаляем BLIP из памяти, чтобы освободить ресурсы.

0

Для доступа к моделям и возможности сохранить обученную LoRA на Hub вводим токен авторизации.

Поскольку Stable Diffusion XL оказалась слишком тяжёлой для бесплатного Colab, мы переходим на более лёгкую, но не менее качественную модель — Stable Diffusion 1.5. Для неё нужен скрипт train_text_to_image_lora.py. Он позволяет обучать LoRA на собственном датасете с индивидуальными подписями.

Вот мы уже запускаем обучение LoRA!

Этот этап похож на передачу моих воспоминаний нейросети. Каждый шаг обучения — это ещё один штрих, приближающий искусственный интеллект к пониманию того, как я видела то лето.

IV. Загрузка обученной LoRA и настройка пайплайна

После загрузки модели на Hub мы можем использовать её для генерации. Загружаем пайплайн Stable Diffusion XL и применяем LoRA-веса.

Исходный размер 1704x506
Исходный размер 1708x666

Я составляю список промптов, которые отражают разные грани лета 2020: закаты, облака перед грозой, алый закат в поле, солнце сквозь листву. Важно всегда начинать с ключевой фразы «summer 2020 nostalgia style», чтобы активировать обученный стиль.

0

Примеры промптов:

«summer 2020 nostalgia style, sunset over the calm sea, warm orange and pink sky, soft clouds»

«summer 2020 nostalgia style, golden hour in a wheat field, sun rays through the clouds»

«summer 2020 nostalgia style, dramatic clouds before a storm, deep purples and golds»

«summer 2020 nostalgia style, a lone tree on a hill at dusk, silhouette against colorful sky»

«summer 2020 nostalgia style, abstract cloud formations, dreamy atmosphere»

Получившиеся работы

Из полученных 20 изображений я выбираю те, которые наиболее точно передают настроение ностальгии и качество стиля. Важно, чтобы серия была разнообразной: разные сюжеты, но единая эстетика.

summer 2020 nostalgia style, twilight over a wild meadow, soft purple and pink sky, fading light, quiet evening atmosphere/summer 2020 nostalgia style, sunset over the calm sea, warm orange and sky

summer 2020 nostalgia style, view from below of clouds floating over a meadow, fluffy white clouds against blue sky, sense of freedom/summer 2020 nostalgia style, reflection of sunset in a lake

Как мы видим, модель хорошо усвоила характерные цвета моих фотографий: мягкие градиенты, отсутствие резких контрастов.

Облака получились воздушными, с характерной для моих снимков лёгкостью. Почти на всех изображениях есть ощущение уюта, тишины. Это достигается за счёт тёплого света и пастельных оттенков.

summer 2020 nostalgia style, empty country road at twilight, wild grass along the sides, sky transitioning to night, nostalgic feeling/summer 2020 nostalgia style, dramatic clouds before a storm, deep

Заключение:

Проект успешно достиг цели — нейросеть научилась генерировать изображения в моём стиле «лето 2020», создав серию ностальгических образов. Это пример того, как технологии могут служить инструментом для сохранения и переосмысления воспоминаний.

Я надеюсь, что представленная серия изображений вызовет у зрителя те же чувства уюта и ностальгии, которые испытываю я, глядя на свои старые фотографии.

Для написания текстов экспликации, идей промптов использовался ChatGPT (версия GPT-4). Это помогло структурировать мысли и придать тексту нужное настроение.