Original size 2480x3500

Обучение генеративной нейросети под стиль JoJo’s Bizarre Adventure

PROTECT STATUS: not protected
105

Идея Проекта

Аниме «JoJo’s Bizarre Adventure» — это не просто серия, а целая вселенная, обладающая неповторимой эстетикой и энергией, которая сразу же запоминается. Уникальный визуальный стиль, эксцентричные персонажи и динамичные сцены сделали его настоящей иконой. Моя задача была создать кастомную модель на базе Stable Diffusion, которая могла бы генерировать новые картинки в стиле JoJo. Для этого я собрал более 200 скриншотов из аниме и использовал метод Dreambooth LoRA, чтобы обучить модель именно на этом визуальном материале.

Для осуществления этого проекта я пользовался этим РУКОВОДСТВОМ

Сбор изображений для обучения

Для обучения нейросети нужно подготовить базу изображений в одинаковом разрешении с соотношением сторон 1:1.

big
Original size 2560x512

Перед обучением изображения прошли следующие этапы предварительной обработки:

С использованием программы на Python все изображения были обрезаны до соотношения сторон 1:1, что оптимально для требований модели.

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

big
Original size 996x874
Original size 2560x2560

Подготовка среды

Original size 986x196

Подключаю необходимые модули, настраиваю рабочую директорию и пути к данным.

Original size 1052x353

Генерация метаданных

Original size 868x313

Метаданные используются при обучении моделей для связывания изображений с их описаниями. Это помогает модели лучше понять, какой визуальный контент соответствует заданному описанию, что особенно важно при дообучении модели с помощью методов Dreambooth LoRA.

Авторизация в HuggingFace

Чтобы работать с моделями и наборами данных на Hugging Face, я использовал функцию notebook_login (). Благодаря ей я вошёл в систему Hugging Face Hub с помощью сгенерированного API-ключа и получил доступ ко всем нужным ресурсам для обучения.

Original size 875x488

Обучение модели

Эта команда запускает процесс, где я дообучаю модель, чтобы она генерировала картинки в стиле JoJo. Сначала подгружается базовая модель с нужными ресурсами, а затем ей показывают набор примеров картинок с описаниями, чтобы она научилась создавать новые работы в этом уникальном стиле.

Original size 1021x428

Сохранение модели

Original size 948x144

Этот код используется, чтобы выложить обученную модель на Hugging Face. Сначала он определяет имя пользователя с помощью токена, а затем создаёт уникальное название репозитория, где лежат результаты обучения.

Original size 1208x559

Начало работы с моделью

В этом фрагменте я подключаю VAE, подгружаю Stable Diffusion XL в режиме float16 и указываю репозиторий с LoRA-весами, чтобы модель могла рисовать в нужном стиле. После этого переношу всё на видеокарту, чтобы быстрее генерировать изображения и экономить память.

Original size 1227x276

Результаты генерации

После обучения нейросеть смогла соблюсти и повторить визуальный стиль характерный для JoJo’s Bizarre Adventure. В генерации видны яркие и броские цвета, замысловатые дизайны деталей, а также гиперболизированные черты лица.

prompt = «A stylish character portrait inspired by JoJo’s Bizarre Adventure, showcasing extravagant fashion, dramatic lighting, and an expressive, confident gaze, with intricate ornamental details.»

prompt = «A dramatic portrait of a heroic character in the flamboyant JoJo’s Bizarre Adventure style, striking a dynamic pose with intricate details, bold lines, and vibrant colors.»

prompt = A surreal, fashion-forward scene in the JoJo aesthetic: an elegantly posed character in elaborate attire, set against a vivid, abstract background filled with dynamic patterns and cold color.

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

prompt = «A stylish character portrait inspired by JoJo’s Bizarre Adventure, showcasing extravagant fashion, dramatic lighting, and an expressive, confident gaze, with intricate ornamental details.»

Однако для изначальной идеи соблюдения стиля JoJo это не мешает, поскольку самая характерная черта аниме — лица персонажей.

prompt = «A group of stylish travelers embarking on an epic journey, rendered in the dynamic, detailed style of JoJo’s Bizarre Adventure. They are walking along a winding road through a vast…

prompt = A stylish portrait of character inspired by JoJo’s Bizarre Adventure, showcasing extravagant fashion, dramatic lighting, and an expressive, confident gaze, with intricate ornamental details.

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

Встретившиеся сложности

1. Возникали сложности в Google Colab, пути к папкам прописываются и учитываются средой немного иначе, чем в Jupyter. Так же есть разница, где лежат файлы: в коренной или вложенной папке.

2. Обучение модели обрывалось из-за нехватки видео памяти. Было несколько действий для решения проблемы: Очистка кэша, но не во время обучения, так как тогда обучение проходило в 10 раз медленнее. Кэш способствует обработке изображений. Уменьшено количество подаваемых изображений. Уменьшено разрешение изображений.

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

Описание применения генеративной модели

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

Обучение генеративной нейросети под стиль JoJo’s Bizarre Adventure
105
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