Original size 1140x1600

Один день персонажа LUMI

PROTECT STATUS: not protected

Введение

В основе проекта — обучение генеративной нейросети Stable Diffusion XL распознавать и воспроизводить уникальный стиль моего иллюстративного персонажа. Датасет состоит из 20 изображений одного и того же нарисованного вручную персонажа в различных ситуациях: с очками, телефоном, зонтиком, цветком, волшебной палочкой, в задумчивости и т. д. Все изображения выполнены в едином стиле: плоская 2D иллюстрация, лаконичные линии, простой фон, характерная пластика позы.

big
Original size 2958x1329

Цель: научить нейросеть генерировать этого персонажа в новых ситуациях, которых не было в обучающей выборке — сохраняя узнаваемость стиля, пропорции и характер.

big
Original size 2958x1256

Исходные изображения

big
Original size 2958x1256

Исходные изображения

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

Техника обучения: DreamBooth с адаптером LoRA поверх базовой модели stabilityai/stable-diffusion-xl-base-1.0. DreamBooth позволяет «вшить» конкретный объект/стиль в модель с помощью всего нескольких десятков примеров, а LoRA делает этот процесс эффективным по памяти и времени.

Описание обучения

1. Загрузка датасета и установка библиотек

Датасет состоит из 20 PNG-изображений, созданных в едином стиле (flat 2D illustration). Все изображения показывают одного персонажа в различных позах и ситуациях. Изображения подготовлены с простым фоном, что упрощает задачу обучения. Датасет загружен как Kaggle Dataset и подключён через Add Data.
Original size 2782x1230

Фрагменты кода

Проверка GPU. Для обучения используется GPU P100 (16 ГБ памяти) на платформе Kaggle.

Потом устанавливаем необходимые библиотеки.

diffusers — основная библиотека HuggingFace для работы с диффузионными моделями bitsandbytes — квантизация весов до 8-бит (экономия GPU-памяти) transformers — работа с языковыми и vision-моделями accelerate — ускорение обучения, поддержка mixed precision peft — Parameter-Efficient Fine-Tuning, включает поддержку LoRA

Original size 2782x1230

Фрагменты кода

2. Генерация подписей (BLIP)

Использовался Salesforce/blip-image-captioning-base для автоматического описания каждого изображения. К каждой подписи добавлен префикс «flat 2D illustration, LUMI character, " — это создаёт связь между токеном и стилем. Результат: файл metadata.jsonl с 20 парами изображение–подпись.
Original size 2781x1485

Фрагменты кода

3. Обучение (DreamBooth + LoRA)

  • Базовая модель: stabilityai/stable-diffusion-xl-base-1.0
  • Адаптер: LoRA (rank 4, применяется к attention-слоям UNet)
  • 1000 шагов обучения на GPU P100 (~4.5 часа)
  • Использованы все техники экономии памяти: gradient checkpointing, fp16, 8-bit Adam
  • Ноутбук запускался через Save Version на Kaggle — фоновое выполнение без привязки к браузеру
  • Результат: файл pytorch_lora_weights.safetensors (~22 МБ) сохранён в /kaggle/working/
Original size 2781x1485

Фрагменты кода

4. Инференс и генерация серии

  • Загрузка базовой SDXL + LoRA-адаптер из /kaggle/working/
  • 8 промптов, описывающих один день персонажа
  • По 30 шагов диффузии на каждое изображение
  • Итоговый коллаж сохранён в /kaggle/working/Nataly_NeuroCharacter/lumi_series_final.png
0
1/3

Фрагменты кода

5. Загрузка на huggingfacehub

Затем модель подгружается на huggingfacehub, где доступна для использования и генерации новых изображений.

Генерации

Параметры генерации: num_inference_steps=30 (баланс между качеством и скоростью) guidance_scale=7.5 — степень следования текстовому промпту (стандартное значение для детальных промптов)

Структура промпта: Каждый промпт построен по схеме: [стилевой префикс] + [токен персонажа] + [описание действия/ситуации] + [контекст фона] Пример: «flat 2D illustration, LUMI character, sitting and reading a book, cozy, simple background»

Стилевой префикс «flat 2D illustration» помогает базовой модели оставаться в нужном визуальном режиме, а токен «LUMI character» активирует обученный LoRA-адаптер.

Original size 2782x1230

Утро: кофе / День: работа

prompt = «flat 2D illustration, LUMI character, holding a cup of coffee, morning, simple background»

promt = «flat 2D illustration, LUMI character, sitting at a desk with a laptop, working, simple background»

Original size 2782x1230

Прогулка / Чтение

prompt = «flat 2D illustration, LUMI character, walking in a park, holding an umbrella, outdoors, simple background»

prompt = «flat 2D illustration, LUMI character, sitting and reading a book, cozy, simple background»

Original size 2782x1230

Шоппинг / Встреча

prompt = «flat 2D illustration, LUMI character, holding shopping bags, happy, simple background»

prompt = «flat 2D illustration, LUMI character, waving hello, smiling, simple background»

Original size 2782x1230

Вечер: музыка / Ночь

Один день персонажа LUMI
Project created at 18.03.2026
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