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


все изображения для датасета были взяты из pinterest
я искренне считаю, что в мире сейчас мало добрых картинок, поэтому целью своего мини-эксперимента определяю создание открыток с милыми котиками с оммажем на ретро стиль при помощи современных технологий
подготовка изображений
пример исходных изображений
для того, чтобы нагенерировать новые картинки в уже созданном стиле, я собрала датасет из 45 изображений. все картинки проходят небольшую обработку, чтобы модель могла с ними работать: * обрезаются до квадратной формы (1:1), центр сохраняется * уменьшаются до размера 512×512 пикселей
результат

промпты: illustration in KITTENCARD style, there are two cuddling kittens on a blank pale pink background, no text allowed // Illustration in KITTENCARD style, a kitten wearing a flower crown, sitting in a field of daisies // illustration in KITTENCARD style, a kitten flying in the sky // illustration in KITTENCARD style, a bunny flying in the sky
итак, примечательно, что скормленная картинками нейросеть вполне себе неплохо справилась с задачей: она выучила основные черты таких рисунков. например, особый стиль рисования мордочек у животных, тёплая и несколько приглушённая цветовая гамма
Illustration in KITTENCARD style, a kitten wrapped in a blanket, holding a cup // Illustration in KITTENCARD style, a tiny fox holding a lantern, sitting on a small rug, isolated on a white background
я решила попробовать погенерировать не только кошечек, но и других животных, чтобы посмотреть, как с этим справится нейросеть. к счастью, у неё получились достаточно симпатичные зверушки независимо от того, собачка это была или выдра
Illustration in KITTENCARD style, a kitten sitting inside a basket full of colorful fruits
ещё я решила попробовать генерировать картинки с более сложными сюжетами и фонами, чтобы посмотреть, на что вообще способен мой обученный нейроученик
Illustration in KITTENCARD style, a baby alpaca with soft fluffy fur, standing in a meadow filled with colorful wildflowers and floating hearts
Illustration in KITTENCARD style, a baby bear fishing with a tiny wooden boat on a peaceful lake // Illustration in KITTENCARD style, a baby otter swimming through a crystal-clear pond
и всё же обучение нейросети было неидеальным. она нередко ошибалась с количеством конечностей, добавляя пятую лапу, второй хвост, третье ухо или ещё что-нибудь. рискну предположить, что при более высоких параметрах обучения такое встречалось бы реже, но мои фавориты с таким открытием:
бонус
в связи с тем, что подобная стилистика иллюстраций использовалась для открыток, я решила точно так же использовать их для полиграфии
Illustration in KITTENCARD style, a baby panda wandering through a magical bamboo forest, where each bamboo stem glows faintly in the moonlight. The forest floor is covered with tiny lanterns
Illustration in KITTENCARD style, a baby bear dressed as a pirate, holding a treasure map
Illustration in KITTENCARD style, a small penguin holding a tiny bouquet of flowers // Illustration in KITTENCARD style, a small kitten on a cupcake
Illustration in KITTENCARD style, a kitten wearing a tiny bowtie, sitting in a teacup
промпт: Illustration in KITTENCARD style, a baby bunny sitting on a swing made of vines and flowers, hanging from a tall, ancient tree in an enchanted forest. Around the bunny, glowing fireflies light up the evening sky, and the ground is covered in soft moss and mushrooms, giving the scene a whimsical fairytale feel
Illustration in KITTENCARD style, a baby fox sitting at a picnic table in a sunny meadow, with a checkered blanket laid out and baskets full of strawberries, flowers, and pastries
работа в colab
- установка библиотек сначала скрипт ставит всё нужное, чтобы можно было работать со stable diffusion и начать обучение
- впоследствии загружается датасет из изображений
- я использовала предобученную модель blip, чтобы автоматически генерировать текстовые описания изображений, и с помощью функции caption_images я обработала изображения из папки, передала их в модель и получила текстовые подписи
впоследствии был создан префикс для генерации изображений: «illustration in KITTENCARD style»
далее я удалила объекты модели из памяти и подчистила gpu, чтобы освободить ресурсы. дальше я устанавливаю utf-8 как кодировку и настраиваю accelerate для корректной работы моделей. авторизуюсь в hugging face и устанавливаю библиотеку datasets для работы с датасетами
- самым ответственным шагом было обучение нейросети. параметрами были разрешение 512, 500 шагов, поэтому процесс занял около часа
вывод
результат моего мини эксперимента показался мне достаточно удачным, хотя и лишние конечности несколько смущали. тем не менее, нейросети удалось обучиться такой доброй ретро стилистике и сделать достаточно симпатичные картинки для жизнеутверждающих открыток. она уловила цветовую гамму, особенности рисования животных, и даже выцепила некоторую зернистость из-за текстуры бумаги
примечание
для создания изображений среды с открытками использовалась нейросеть recraft, для создания промптов использовался chat gpt