
Зверьки в тумане — это серия изображений, сгенерированных с помощью обученной нейросети Stable Diffusion

Мне очень нравится атмосфера «Ежика в тумане» Юрия Норштейна. Я захотела расширить вселенную мультфильма, представить, как бы выглядели другие истории и сказочные персонажи в исполнении мастера
В качестве изображений для обучения модели я взяла кадры из мультфильма
Результирующая серия изображений
Сначала я попросила сеть сгенерировать дом и людей
Сеть часто изображала людей силуэтами, кутала в туман, как на референсных изображениях. Она использовала размытие, такие же блеклые, выбеленные цвета
Дальше я просила Stable Diffusion рисовать животных или сказочных существ. Для животных сеть часто использовала текстуры из мультфильма. Лица и мордочки сеть зачастую рисовала такими же острыми, как у оригинального Ежика
Огонь и блики похожи на свечение костра в мультфильме




На сгенерированных картинках иногда можно увидеть пленочные дефекты. Они перекочевали из кадров мультика






Персонажи часто выходили ежикоподобными


Сеть хорошо научилась создавать траву, потому что ее было много в референсных изображениях
В сгенерированных картинках удалось сохранить ощущение живой, ручной, карандашной графики


Упс, на голове у птички выросли иголки, как у Ежика, а у чашки появилась мордочка!
Герои получились такими же воздушными и плюшевыми, как у Норштейна. Местами у них сохранились такие же удивленные эмоции, как у совы, ухающей в колодец в мультфильме. Есть ощущение, что все сгенерированные сюжеты происходят где-то в том же тумане, где бродил норштейновский Ежик
Ноутбук с кодом для обучения
Процесс обучения
Я обучала модель Stable Diffusion XL с использованием техники LoRA (Low-Rank Adaptation).
Сначала я проверила доступность GPU и установила необходимые зависимости. Затем я создала директорию для датасета и скопировала туда изображения. Датасет состоит из кадров «Ёжика в тумане». При помощи функции image_grid я отобразила несколько первых изображений из датасета, чтобы убедиться, что данные загружены корректно. Дальше я сгенерировала описания для каждого изображения с помощью модели BLIP (Bootstrapped Language-Image Pretraining). Это необходимо для обучения модели с использованием текстовых подсказок. Потом я создала файл metadata.jsonl, который содержит пути к изображениям и соответствующие подписи. После генерации подписей я удалила модель BLIP, чтобы освободить память. Дальше я настроила и запустила обучение модели Stable Diffusion XL. После обучения я сохранила модель на Hugging Face Hub.
При помощи обученной модели я преступила к генерации серии изображений. Для создания некоторых промптов я просила помощи у нейросети DeepSeek. У меня несколько раз заканчивалось бесплатное время GPU в Google Colab, поэтому я перезапускала модель в разных ноутбуках с разных аккаунтов (Прикрепила ссылки на оба).
Описание применения генеративной модели
Stable Diffusion — применялась для дообучения в целях генерации изображений в стиле мультфильма Юрия Норштейна
BLIP — применялась для генерации автоматических промптов к исходному датасету
DeepSeek — применялась для генерации некоторых промптов к итоговым изображениям