Цель проекта:
Целью проекта является обучение генеративной нейросети Stable Diffusion для рисования в моей собственной стилистике. Главной задачей является достижение узнаваемости стиля в сгенерированных картинках.
Примеры исходных изображений
Примерами исходных изображений стали кадры из моих анимаций, сделанных за один учебный год. В них прослеживается похожая стилистика, и их достаточно много, чтобы можно было обучить нейросеть. Все кадры были обрезаны в соотношении 1:1 и снижены до разрешения 512×512 для ускорения обработки.
В кадрах можно проследить яркую цветовую палитру, в которой преобладают оранжевые и бирюзовые оттенки. Персонажи нарисованы сильно упрощенно. В выборке есть как варианты с контуром, так и без него. На большинстве картинок присутствует использование текстурных кистей, что хотелось бы увидеть в итоговых генерациях.
Процесс обучения
Для создания проекта использовались такие инструменты как:
- Stable Diffusion — генеративная нейросеть, которую обучали;
- Kaggle — пространство для выполнения генераций;
- Hugging Face для получения токена для работы над обучением нейросети;
Для выполнения задания я использовала предоставленный в курсе код, немного поменяв его под свои нужды.
Фрагмент кода
Мной был собран датасет из 23 картинок и приложен к блокноту, через функцию upload dataset. После были проверены и подключены все важные составляющие для обучения нейросети.
Фрагменты кода: добавление датасета
После проверки, все ли картинки загрузились, я приступила к созданию подписей к изображениям. Подписи генерируются автоматически с помощью BLIP. Подписи соответствовали содержанию изображений.
Фрагмент кода: Подписи к исходным изображениям
После входа в Hugging Face и создания токена, я перешла непосредственно к обучению нейросети.
Фрагмент кода: обучение нейросети
Для тренировки нейросети было выбрано разрешение 512, как у исходников. Максимальный шаг тренинга был установлен на 500, а чекпоинт на 250.
Результаты
Промты: «man with a blue shirt dark hair and orange glasses» и «one man with a blue shirt dark hair and orange glasses sitting in a garage»
Для начала я решила попробовать сгенерировать персонажа, который чаще всего попадался на исходных кадрах. Нейросеть справилась с тем, чтобы оставить основные отличительные признаки героя, а именно его оранжевые очки, голубую футболку и примерную форму прически, но вид картинки оставляет желать лучшего. Человек хоть и угадывается в этой фигуре, но с трудом.
Промты: «garage» и «girl with one head in black dress standing on the street»
Помимо конкретного персонажа, я решила попробовать сгенерировать отдельно фон и персонажа, которого не было на кадрах. Здесь можно заметить, что нейросеть продолжает использовать одни и те же цвета, а объекты, хоть и сильно искажены, но все равно угадываются.
Несмотря на грубые ошибки, можно заметить, что нейросеть переняла некоторые черты визуального стиля. Цвета используются такие же как на исходных материалах, и даже присутствуют мазки на фоне, которые я оставляла на оригиналах. Вероятно, это произошло из-за того, что я не указывала конкретный токен для обучения, а поставила, что нейросеть должна обучиться стилю в целом: «photo collage in My style». Компьютер сосредоточился на повторении черт стиля, а не на целостности фигур.
Вывод
Нейросеть смогла перенять некоторые черты стиля кадров из моих анимаций. Возможно, если бы я предоставила больше материала, то результат выглядел бы более качественно, но важно, что даже на таком уровне стиль угадывается за счет небольших деталей и цветовых решений.