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

Процесс генерации
(1) Обучение модели
Для обучения модели я использовала среду Kaggle, поскольку там меньше ограничений на использование gpu, что было для меня важно — хотелось быть уверенной в том, что процесс не оборвется в неподходящий момент.
Обучала я нейросеть Stable Diffusion с помощью DreamBooth в модели был создан стиль иллюстрации — illustration of a 1CED cow. (1CED — сокращение от 1coweveryday). Также был использован метод LoRA, который позволил сократить время обучения модели.
Для обучения модели я использовала 102 оригинальные. иллюстрации от 1coweveryday, максимальное число шагов для тренировки было выставлено 1000 с чекпоинтом на 500 шаге. Разрешение было выбрано 512, чтобы не перегружать слишком сильно систему

(2) Первые ошибки и их исправление
Для начала я просто попробовала вводить обычные промпты и столкнулась с первыми проблемами — у коров было слишком много ног
Промпт: illustration of a 1CED cow one cow with 4 hooves, with curls
Поняв, что просто так вписывать в промпт «4 копыта» бесполезно, я стала искать дальше в чем могла быть проблема и постепенно пришла к следующей структуре кода: у меня есть промпт и негативный промпт, а также далее я детальнее пишу информацию по guidance scale, lora scale и seed, но об этом далее
(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
Так я наглядно поняла, что первый 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
(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
Таким образом я поняла, что чем ниже этот параметр, тем дальше иллюстрация уходит от изначального стиля и становится более детализированной (изначально стиль автора не такой), при этом добавляются цвета и формы несвойственные стилю. Для себя я определила комфортное значение на уровне 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
Промпт 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
Промпт 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 для доработки моих промптов для новых изображений, а также для доработки негативных промптов