Исходный размер 2480x3500

Обучение генеративной нейросети под художественный стиль Cowboy Bebop

Идея Проекта

Cowboy Bebop — культовое аниме с уникальной стилистикой: неоновыми цветами, резкими тенями и кинематографичными композициями. Моей целью было создать кастомную нейросеть на базе Stable Diffusion, способную генерировать новые изображения в этом стиле. Для этого я обучил модель на 200+ скриншотах из аниме, используя метод Dreambooth LoRA.

Процесс разработки модели были основан на следующем

РУКОВОДСТВЕ

Сбор данных: создание датасета

Для успешного обучения нейросети важно подготовить качественный набор изображений. Я собрал более 200 скриншотов из Cowboy Bebop, чтобы модель смогла уловить стилистику аниме.

Исходный размер 2560x512

Исходные скришоты из серий аниме «Cowboy Bebop»

Перед обучением изображения были обработаны следующим образом:

Обрезаны c помощью собственной программы на Python до квадратного формата (1:1), чтобы лучше соответствовать требованиям модели.

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

Исходный размер 1280x1280

Скриншоты из «Cowboy Bebop»

Подготовка модели и загрузка изображений

Для обучения я использовал метод Dreambooth с LoRA-адаптацией, который позволяет эффективно дообучать модель с меньшим количеством VRAM.

Первый шаг, загрузить в Google Colab этот инструментарий.

Далее, программа загружает изображения из папки и подготавливает их для обучения.

Исходный размер 1137x201

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

Исходный размер 1165x418

Создание метаданных для обучения

Stable Diffusion требует, чтобы каждое изображение сопровождалось описанием (caption), которое помогает модели понимать его стиль. Для этого создаётся специальный файл metadata.jsonl:

Исходный размер 707x360

Что здесь происходит:

Каждое изображение получает текстовое описание, объединяющее caption_prefix и автоматически сгенерированную подпись.

Эти данные записываются в metadata.jsonl в формате JSON.

Файл будет использоваться при обучении, чтобы сопоставить изображения с текстами и обучить нейросеть правильно понимать стиль Cowboy Bebop.

Подключение к HuggingFace

Для доступа к моделям и датасетам на платформе Hugging Face я использовал функцию notebook_login(). Это позволило авторизоваться в Hugging Face Hub и загрузить необходимые ресурсы для обучения с помощью сгенерирванного API ключа.

Исходный размер 875x488

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

Использование Dreambooth LoRA для кастомного стиля:

Здесь модель обучается на изображениях из папки /content/Photos, используя базовую Stable Diffusion XL.

Исходный размер 1030x502

Самые важные параметры: --pretrained_model_name_or_path: Указывает базовую модель (Stable Diffusion XL 1.0).

--dataset_name: Путь к датасету с изображениями для обучения.

--instance_prompt: Описание стиля/объекта, который должна генерировать модель.

--learning_rate: Скорость обучения (1e-4).

--max_train_steps: Общее количество шагов обучения (500).

Загрузка обученной модели

Этот код получает имя пользователя с HuggingFace, используя сохранённый токен, и формирует ID репозитория, куда будет загружена модель.

Исходный размер 988x266

А здесь уже происходит загрузка модели на HUB в HuggingFace. Это последний шаг перед использованием обученной модели.

Исходный размер 943x649

Инициализация и использование модели

Обучение генеративной нейросети под художественный стиль Cowboy Bebop
Проект создан 10.03.2025
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше