Original size 1140x1600

Обучение нейросети созданию иллюстраций коров в стиле 1coweveryday

PROTECT STATUS: not protected
12

Описание проекта

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

Как только 2021 год закончился, проект закрылся, а я всё реже начала о нем вспоминать. Но начав работать над этим финальным заданием, я неожиданно вспомнила о том, как любопытно мне было рассматривать те изображения коров, и решила окунуться в теплое и любимое прошлое, снова погрузившись в воспоминания

big
Original size 1920x756

примеры иллюстраций, которые были загружены для обучения

Процесс генерации

(1) Обучение модели

Для обучения модели я использовала среду Kaggle, поскольку там меньше ограничений на использование gpu, что было для меня важно — хотелось быть уверенной в том, что процесс не оборвется в неподходящий момент.

Обучала я нейросеть Stable Diffusion с помощью DreamBooth в модели был создан стиль иллюстрации — illustration of a 1CED cow. (1CED — сокращение от 1coweveryday). Также был использован метод LoRA, который позволил сократить время обучения модели.

Для обучения модели я использовала 102 оригинальные. иллюстрации от 1coweveryday, максимальное число шагов для тренировки было выставлено 1000 с чекпоинтом на 500 шаге. Разрешение было выбрано 512, чтобы не перегружать слишком сильно систему

big
Original size 1920x1292

(2) Первые ошибки и их исправление

Для начала я просто попробовала вводить обычные промпты и столкнулась с первыми проблемами — у коров было слишком много ног

Промпт: illustration of a 1CED cow one cow with 4 hooves, with curls

Original size 1920x614

Поняв, что просто так вписывать в промпт «4 копыта» бесполезно, я стала искать дальше в чем могла быть проблема и постепенно пришла к следующей структуре кода: у меня есть промпт и негативный промпт, а также далее я детальнее пишу информацию по guidance scale, lora scale и seed, но об этом далее

Original size 1920x1018

(3) Эксперименты с seed и lora scale

Дальше, выработав базу из кода, я начала изучать, что можно исправить и как можно подкрутить дальнейшие настройки, так, чтобы изображения были больше похожи на изначальный стиль. Начала я с seedов в сочетании с lora scale

Я взяла первые 4 seed’а и на примере одного и того же промпта посмотрела, как каждый из них будет работать при lora scale в значении 0.4 и 0.8

Промпт: illustration of a 1CED cow one cow, in two colors on a blue background, realistic body, 4 legs, clean anatomy

Негативный промпт: extra limbs, extra legs, mutated, deformed, disfigured, distorted, bad anatomy, unrealistic, poorly drawn, fused body, ugly

Original size 1920x467

seed от 1 до 4, lora_scale=0.4

Original size 1920x467

seed от 1 до 4, lora_scale=0.8

Так я наглядно поняла, что первый seed чаще всего выдает результат с множеством ног, а на втором будет не одна корова, а множество. Самыми стабильными мне показались 3 и 4 — их я далее в проекте и продолжила использовать.

Что касается lora scale — я поняла, что чем ниже это значение, тем реалистичнее и дальше от изначального стиля получается генерация, поэтому дальше решила посмотреть, какое значение лучше всего подойдет в дальнейшем, чтобы не переборщить со стилем и вместе с тем чтобы его выдержать максимально

(4) Пробы разных вариаций lora scale

На примере одного промпта я экспериментировала с разными значениями lora scale, чтобы найти идеальное для себя. Им стало значение около 0.8 — при этом значении стиль всё ещё прослеживается, при этом не возникают артефакты как при использовании lora scale со значением 1.

Промпт: llustration of a 1CED cow one cow, a pastel fantasy cow with red strawberry horns, leaf tail, light pink and white body, red hooves, cartoon style, on a blue background, realistic body, 4 legs, clean anatomy

Негативный промпт: extra limbs, extra legs, mutated, deformed, disfigured, distorted, bad anatomy, unrealistic, poorly drawn, fused body, ugly

Original size 1920x624

Lora_scale = 1, Lora_scale = 0.8, Lora_scale = 0.6

Original size 1920x945

Lora_scale = 0.4, Lora_scale = 0.2

(5) Выбор guidance scale

Далее, всё также на примере одной иллюстрации я решила проэкспериментировать с guidance scale, поскольку мне было интересно проследить то, насколько сильно от изменения этого параметра будет меняться весь стиль в целом

Промпт: illustration of a 1CED cow one cow, a cute fluffy orange cow with wavy fur, pink ribbon horns, deep blue background, realistic body, 4 legs, clean anatomy

Негативный промпт: extra limbs, extra legs, mutated, deformed, disfigured, distorted, bad anatomy, unrealistic, poorly drawn, fused body, ugly

Original size 1920x762

guidance scale от 10 до 1 последовательно

Таким образом я поняла, что чем ниже этот параметр, тем дальше иллюстрация уходит от изначального стиля и становится более детализированной (изначально стиль автора не такой), при этом добавляются цвета и формы несвойственные стилю. Для себя я определила комфортное значение на уровне 8. Так стиль остается узнаваемым и в нем не возникает лишних деталей или артефактов

Финальные иллюстрации

Для финальных иллюстраций я использовала seed со значением 3 (при этом иногда я переходила на 6, так как он работал лучше в некоторых ситуациях), lora scale 0.8 и guidance scale 8. Так получилось несколько серий иллюстраций разных коров, где каждая не похожа на другую и при этом выполнена в едином стиле

Негативный промпт (единый для всех): extra limbs, extra legs, mutated, deformed, disfigured, distorted, bad anatomy, unrealistic, poorly drawn, fused body, ugly

Original size 1920x1927

Промпт 1: illustration of a 1CED cow one cow, a dreamy sunset-colored cow with soft orange and peach fur, golden highlights, small flower petals in its mane, glowing hooves, calm expression, blue background, realistic body, 4 legs, clean anatomy

Промпт 2: illustration of a 1CED cow a soft baby calf with light beige fur, large round eyes, pink nose, small fuzzy ears, curly fur texture, blue background, calm and delicate expression, realistic body, 4 legs, clean anatomy

Промпт 3: illustration of a 1CED cow a cow with long curved horns, soft black fur, subtle gradient on the body, blue background, realistic body, 4 legs, clean anatomy

Промпт 4: illustration of a 1CED cow long-haired white cow lying down with legs folded under the body, soft and fluffy fur, peaceful expression, light-blue background, realistic body, 4 legs, clean anatomy

Original size 1920x1927

Промпт 1: illustration of a 1CED cow a a pastel blue cow with a slightly silvery sheen, soft velvet-like fur, gentle eyes, small rounded ears, standing calmly on a light blue background, subtle shadow, 4 legs, clean anatomy

Промпт 2: illustration of a 1CED cow a soft green cow with mossy texture, light leaf-like markings on its fur, slightly lowered head, light blue background, 4 legs, clean anatomy

Промпт 3: illustration of a 1CED cow a golden brown cow with long curved horns, soft and slightly wavy fur, proud posture, natural light hitting the top of its horns, blue background, 4 legs, clean anatomy

Промпт 4: illustration of a 1CED cow a pale cream cow with fluffy fur that looks like whipped cream, subtle warm shading, tiny pink nose, slightly tilted head, standing on a baby blue background, 4 legs, clean anatomy

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

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

Выводы

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

Можно сказать, что обучение прошло достаточно успешно, поскольку нейросеть достаточно подробно приняла стиль 1coweveryday и иллюстрации получились похожими на иллюстрации самого автора. Но всё-таки чувствуется, что они не на 100% живые — в них всё слишком аккуратно и отсутствует элемент живого штриха, который может быть неаккуратным и местами небрежным.

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

Источники

В ходе работы над данным проектом использовался ChatGPT для доработки моих промптов для новых изображений, а также для доработки негативных промптов

Код на Kaggle Модель на huggingface

Обучение нейросети созданию иллюстраций коров в стиле 1coweveryday
12
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more