
Идея
«Если вы когда-нибудь будете на северо-западном побережье, вы, вероятно, увидите на машинах наклейки с названием „Гравити Фолз“. Этого городка нет на картах, и мало кто о нем слышал, кто-то считает, что это миф. Но если вам любопытно, не ждите, поезжайте туда, найдите его! Он где-то там, среди лесов, ждет вас…»
«Гравити Фолз» — американский мультсериал, который никого не оставляет равнодушным. Являясь душевным проектом одного человека, Алекса Хирша, он цепляет своим мистическим сюжетом и загадками, вызывая ностальгию по детству, когда летом, на даче, при помощи воображения ты мог быть кем угодно, в компании друзей побеждая всех врагов.
Сериал также славится своим характерным стилем, который очень хорошо узнаваем. Лично меня всегда завораживали фоны этого проекта, они всегда предстают невероятно атмосферными, а их детали завораживают и как будто окружают. Поэтому мне стало интересно, что получится, если дообучить генеративную нейросеть Stable Diffusion именно на фонах мультсериала. Насколько модель сможет уловить не только визуальную стилистику, но и глубину пейзажей, представленных в «Гравити Фолз».

Примеры исходных изображений
Обучение — сетап

Код — подготовка
Обучение — загрузка датасета
Для проекта я отобрала около 50 изображений оригинальных фонов из сериала, стараясь собрать достаточно разнообразный датасет, насколько это возможно. После чего загрузила изображения в свой проект в Google Colab, чтобы подготовить их к дальнейшему использованию нейросетью — привела в общий формат jpeg, подрезала в формат 512:512.
Изображения из исходного датасета
Код — загрузка исходных изображений
Обучение — 'captions'
Для того, чтобы моя модель понимала, что из себя представляет стилистика «Гравити Фолз», я, с помощью специальных инструментов, добавила подпись 'illustration in Gravity Falls style' перед описанием того, что происходит на самой картинке (описания составлялись специальной моделью BLIP). Это будет неким маркером в будущем для промптов.
Код — добавление подписей
Обучение — тренировка
После нескольких шагов подготовки можно было приступить к обучению модели. Было попробовано несколько вариантов настройки обучения с целью оптимизировать время обучения с его качеством, остановилась я на следующих настройках.
Код — тренировка
Генерация изображений
После обучения пришло время проверить модель. Так как в фонах не было никакой архитектуры как таковой, только пейзажи, я, не рассчитывая ни на что хорошее, попробовала сгенерировать нечто архитектурное. Конечно, строения вышли совершенно неузнаваемые, однако меня поразило, что даже в этих изображениях можно было считать стилистику мультсериала — простой контур, чистые, но при этом насыщенные цвета, мультяшная стилистика.


Сгенерированные изображения. Промпты: 'illustration in Gravity Falls style, statue of liberty, cool tones' 'illustration in Gravity Falls style, big city, dark blue'
После неудачного эксперимента с архитектурой я почувствовала себя ограниченной одними лишь елками, так как они составляют большую часть всех пейзажей. Получающиеся на тот момент изображения меня не устраивали, так как «повторяли» исходные сюжеты и в сравнении с оригиналами сильно проигрывали.
Сгенерированные изображения.
Я поняла, что нужно что-то новое. Например, пейзажи, которых не было в сериале, но которые могли бы существовать. Получились невероятно выразительные изображения, некоторые из них вполне убедительные, но, что самое главное, стилистику удалось сохранить.
Сгенерированные изображения.
Наконец я решила проверить модель на умение передать атмосферу. Я попробовала несколько промтов для этой задачи, и у меня получилось несколько кадров, которые в теории могли бы быть локацией для какого-нибудь очередного квеста Диппера и Мейбл.


Сгенерированные изображения. Промпты: 'illustration in Gravity Falls style, portal in the woods, glowing runes, sci-fimystery' 'illustration in Gravity Falls style, mysterious swamp, foggy and eerie'
Нейросети удалось ухватить не только стилистику иллюстраций фонов к мультсериалу, но и их атмосферу и глубину. Получившиеся изображения нельзя назвать законченной иллюстрацией при ближнем рассмотрении, однако они смотрятся очень цельно и интересно.
Сгенерированные изображения.
Ссылка на ноутбук с кодом.
Описание применения генеративной модели
При работе использовались следующие нейросети: ChatGPT для помощи в написании промптов, а также для устранения ошибок в коде; Stable Diffusion — генеративная нейросеть, которую я до-обучала