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

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

Процесс обучения
Поскольку я редко рисую что-то простое, вроде аниме-девочек на белом фоне, у BLIP, который генерирует подписи для изображений, возникли трудности. Некоторые описания совсем не подходили, а некоторые были просто смешными. Я решил, что оставлю так и посмотрю, что будет.
С обучением не возникло никаких проблем: я использовал рекомендованный код в kaggle, с самыми простыми параметрами, помолился и начал процесс. Обучение длилось примерно 5часов.
Результаты обучения
Результаты, на мой взгляд, во многом напоминают мой стиль рисования. Здесь присутствуют небрежные линии, окрашенные в темные и насыщенные версии оригинальных цветов. Тени с фиолетовым оттенком (характерный прием ленивого цифрового художника: тени, выполненные фиолетовым цветом с эффектом Multiply, почти всегда смотрятся достойно на простых рисунках), а также текстуры, созданные с помощью специальных кистей. Угадываются типичные для моих рисунков черты лица и те же анатомические неточности, которые я часто допускаю.
Однако пайплайн diffusers, который я освоил, имеет свои ограничения. Он не слишком хорошо реагировал на детальные промпты — скорее всего из-за простоты подписей от BLIP. Так же на Hugging Face практически нет LoRA-моделей, которые соответствовали бы моим предпочтениям и позволили бы мне улучшить результаты.
Смена маршрута
У меня возникло две проблемы: Во-первых, я привык работать с ComfyUI, но попытки использовать свою LoRA и SDXL в этой среде заняли у меня почти целый день. Я устанавливал дополнительные модули, редактировал их код, переустанавливал Python — но ничего не помогло. Оказалось, что перенести пайплайн из diffusers полностью практически невозможно.
Во-вторых, SDXL, как выяснилось, не совсем подходит для широкого спектра цифрового искусства. Он лучше всего справляется с реализмом, неплохо работает с детализированным аниме и реалистичными рисунками, но для других стилей его возможности ограничены.
Изображения от Pony XL 6, найденные на CivitAI. Художники, чей стиль используется: sakuemonq, superiorfox, InCase.
Для создания не-аниме изображений в стиле цифрового арта чаще всего используют Pony Diffusion. Его ключевая особенность заключается в том, что он обучался на данных с booru-сайтов, где художники и их поклонники публикуют свои работы. Благодаря этому Pony Diffusion поддерживает огромное количество стилей, имитирует разный уровень мастерства в рисовании и работает с простыми, тегоподобными промптами. Для него существует множество LoRA-моделей, которые воспроизводят стили современных интернет-художников. Несколько примеров представлены выше.
Обучение лоры для Pony Diffusion
Я немного изменил свой датасет, добавил пару рисунков пони и фурри-персонажей (все-таки Pony позволяет это делать, грех упускать возможность). Для создания подписей и обучения я использовал ноутбуки от hollowstrawberry.
Подписи были сгенерированы под стандарты Pony Diffusion в виде тегов, без слов для активации, так как в ComfyUI LoRA загружается через отдельную ноду. Это обучение прошло намного быстрее, чем первое.
Результаты обучения… 2!
С новой LoRA и Pony Diffusion тоже пришлось повозиться. Внизу приведены примеры генераций, которые я считаю неудачными.
Справа — результат первой попытки обучения (10 эпох). Хотя некоторые особенности моего стиля сохранились, модель упорно генерировала чиби-персонажей, которых я никогда не рисую.
В середине — результат второй попытки обучения (20 эпох). Стиль меня вполне устраивал, но на человека результат был мало похож. Тогда я вспомнил, что в датасете изображения с животными, вероятно, имеют общие теги с изображениями людей (например, теги вроде 1girl, 1boy, указывающие на количество персонажей). Чтобы исправить это, я добавил в начало негативного промпта теги 'furry' и 'pony'.
Еще одна особенность Pony Diffusion — возможность использовать теги, связанные с «оценками». Поскольку модель обучалась на данных из социальных сетей для художников, в процессе обучения сохранилась информация о рейтингах изображений. Очевидно, что на таких платформах более талантливые художники получают более высокие оценки, поэтому добавление тега оценки в промпт значительно влияет на результат.
Например, справа на картинке выше проблема возникла из-за того, что я добавил в промпт тег score_9. Я стараюсь быть реалистичным: я бы просто не смог нарисовать что-то настолько качественное.
Тестирование тегов с оценками дало мне интересные результаты. Оказалось, что на сайтах с десятибалльной системой оценки мои работы, скорее всего, получали бы в среднем 7 баллов. Генерации с оценками 9 и <4 совершенно не похожи на мои рисунки, тогда как 7 всегда оказывается очень близко к моему стилю.




