
Описание идеи проекта и его разработка
Основной целью данного проекта заключается обучение нейросети Stable Diffusion под определенный стиль и создание ей специфического персонажа.
Для основы своей работы я решила выбрать собственные старые рисунки, нарисованные мной еще в школьные годы. Персонаж, которого будет генерировать нейросеть по этим рисункам — Аанг из мультсериала «The Last Airbender» — персонаж, который очень нравился мне в те годы, в которые были нарисованы иллюстрации, но которого я тогда так и не решилась попробовать нарисовать.
Основными чертами моего старого стиля я считаю следующее: диджитал, чёрные плавные линии (иногда толстые, иногда тонкие), плоский цвет — иногда с простыми тенями и «затемнениями» на щеках и под глазами, тени на ушах и шее, большие глаза — или черные, или просто одноцветные, мультяшный милый вид. Для обучения нейросети я опиралась на эти черты, уточнив их в письменном описании подобранных картинок.
Далее приложены несколько примеров референсов, использованных для обучения нейросети (использовалось два подтипа стиля — более простой и милый и более детализированный), а также примеры неудачной генерации и удачной генерации. К каждой картинке прилагается описание и анализ того, чему нейросеть могла обучиться благодаря картинке/где нейросеть справилась с задачей, а где — нет.
Примеры заданных референсов-изображений






Примеры неудачных генераций

Среди неудачных генераций одни из наиболее часто встречающихся деталей — «карандашный стиль» — фактура, предполагающая, что рисунок сделан на бумаге. Несмотря на то, что в референсах не было ни одного «карандашного» рисунка, эта проблема была относительно легко решена с помощью добавления промпта «a digital illustration».
Подборка финальных генераций и их анализ
Как уже было упомянуто ранее: основные детали моей старой стилистики это плавный черный лайнарт, плоский цвет (при этом не исключено присутствие легкой текстуры/теней на главном персонаже), большие глаза, уши в форме буквы G, общая мультяшность. В финальных генерациях смогла передать эти детали, но у нее были свои затруднения — так, в большей части получившихся рисунков главный герой смотрит только вперёд, на зрителя — в то время как на картинках-референсах персонажи чаще смотрят в сторону. Также у нее были ошибки в виде сбоя передачи цвета и формы стрелки на лбу Аанга и дополнительного промпта, заданного по бэкграунду картинки.
Ноутбук с кодом
Ссылка на Google Collab с кодом:
https://colab.research.google.com/drive/1DXjjKCx7JwDXrXg9Cb9m4JVfWBuHyyfw?usp=drive_link
(На момент выкладывания проекта на моем аккаунте закончился доступ к GPU, но сам код работает)
Для того, чтобы успешно обучить нейросеть, я составила для себя план:
1. Установка библиотек и основных модулей из этих библиотек 2. Подготовка данных — создание датасета (сами картинки, их текстовое описание, размер файлов) 3. Загрузка модулей и Collate Fn 4. Обучение 5. Pipeline + UNet 6. Генерация в соответствии с несколькими промптами
Следуя этому плану, я выполнила задание и смогла создать несколько генераций узнаваемого персонажа (Аватар Аанг) в своем старом стиле.
Описание применения генеративной модели
При работе над проектом я использовала ChatGPT в тех случаях, когда при написании кода Google Collab выдавал ошибку и методы, которые я применяла для ее исправления, не помогали. https://trychatgpt.ru
Также, если совет по исправлению ошибки от ChatGPT не помогал, я использовала встроенный в Google Collab AI Gemini https://gemini.google.com/app