Original size 1140x1600

Обучение генеративной нейросети

PROTECT STATUS: not protected
The project is taking part in the competition

Цель проекта — дообучить генеративную модель Stable Diffusion XL так, чтобы она запомнила конкретный образ собаки и могла затем воспроизводить его в новых сценах по текстовому запросу.

Для этого используется датасет фотографий собак, на основе которого через DreamBooth LoRA модель связывает специальный токен DOGTOK с устойчивым визуальным образом объекта. После обучения проверяется, насколько хорошо модель переносит этот образ в разные условия — с другим фоном, освещением и дополнительными деталями. Таким образом, проект показывает, как с помощью дообучения можно сделать генерацию изображений более управляемой и персонализированной.

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

В качестве обучающего набора использовались фотографии собак из открытого датасета jockeroika/dogs-photo-dataset, загруженного через kagglehub. В коде из общего массива выбирается ограниченное число изображений (120 файлов), которые затем используются для обучения модели. Набор включает фотографии собак в разных ракурсах и условиях съёмки, что позволяет модели опираться не на один конкретный кадр, а на более общий визуальный образ объекта — форму тела, строение морды, фактуру шерсти и особенности фотографического изображения собаки.

Связь итоговой серии изображений с концепцией проекта

Original size 2879x712

В основе проекта лежит идея дообучить генеративную модель так, чтобы она запомнила конкретный образ собаки и могла затем воспроизводить его в новых сценах по текстовому запросу. Для этого в коде используется специальный токен DOGTOK, который связывается с устойчивым визуальным образом объекта. Главная задача проекта — сделать этот образ управляемым: не просто получать случайные изображения собак, а генерировать новые сцены, в которых сохраняются основные черты одного и того же обученного объекта.

Original size 2879x1813

По коду видно, что проект выстроен как полный рабочий пайплайн. Сначала подключаются нужные библиотеки и задаются основные параметры проекта, а затем через kagglehub загружается датасет jockeroika/dogs-photo-dataset. Из общего массива в рабочую папку копируется ограниченное количество изображений — в данном случае 120 файлов. Датасет не используется целиком, чтобы обучение оставалось выполнимым в Colab и не требовало слишком больших вычислительных ресурсов.

Original size 2879x718

Следующий важный этап — подготовка текстовых подписей для обучения. Для всех изображений формируется единая подпись «a photo of DOGTOK dog», которая записывается в metadata.jsonl. Это значит, что модель обучается не на длинных и разных описаниях каждой фотографии, а на общем представлении об объекте. Такой подход помогает привязать токен DOGTOK к устойчивому визуальному образу собаки и не перегружает пайплайн лишними деталями.

Original size 2879x1298

Само обучение запускается на базе stabilityai/stable-diffusion-xl-base-1.0 с отдельным VAE madebyollin/sdxl-vae-fp16-fix. При этом используется не полное переобучение модели, а LoRA-адаптация через DreamBooth, что делает проект более реалистичным с точки зрения вычислительных затрат. В коде заданы параметры resolution=512, train_batch_size=1, gradient_accumulation_steps=4, learning_rate=1e-4, max_train_steps=600, checkpointing_steps=200, а также fp16 и 8bit Adam. Такая конфигурация нацелена на стабильный и убедительный результат в доступной среде.

Original size 2879x1145

После завершения обучения из папки OUTPUT_DIR загружаются сохранённые веса pytorch_lora_weights.safetensors, и уже с ними собирается DiffusionPipeline для генерации итоговой серии изображений. Это важный момент, потому что проект показывает не отдельный фрагмент работы, а весь цикл целиком: от подготовки датасета и запуска обучения до подключения готовой LoRA и проверки того, как она ведёт себя на новых запросах.

Original size 2879x1145

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

Original size 2879x718

Отдельную роль играет negative_prompt: cartoon, painting, drawing, low quality, blurry, text, watermark. С его помощью генерация дополнительно отталкивается от нежелательных признаков — мультяшности, живописности, размытости и артефактов вроде текста или водяных знаков. Таким образом модель специально направляют в сторону реалистической фотографии.

С точки зрения анализа здесь важно не просто сказать, что картинки получились разными, а показать, в чём именно проявляется вариативность. В итоговой серии меняется пространство — парк, студия, улица, трава, — меняется освещение, но при этом должен сохраняться общий образ собаки: правдоподобные пропорции, цельная анатомия, узнаваемая структура шерсти и ощущение, что это всё ещё один и тот же объект — такая управляемая вариативность показывает, что модель усвоила не отдельный кадр, а более общий визуальный образ.

Особенно показателен отдельный тест с красным шарфом. Он нужен, чтобы проверить, может ли модель добавить новый элемент в сцену и при этом не разрушить сам образ собаки. Если генерация остаётся убедительной, это значит, что LoRA не просто повторяет тренировочные шаблоны, а действительно умеет сочетать выученный объект с новыми деталями.

Если подвести итог, проект показывает, как дообученная SDXL LoRA переносит образ собаки в несколько новых визуальных ситуаций. Главный акцент здесь сделан не на стилизации, а на реалистической вариативности: разные сцены, разный свет, разные условия съёмки, но один и тот же обученный объект, связанный с токеном DOGTOK. Именно в этом и состоит основная идея итоговой серии.

Использование ГенИИ:

в работе был использован ChatGPT для того, чтобы сделать код более чистым и удобочитаемым, а также переназвать переменные

Обучение генеративной нейросети
Project created at 21.03.2026
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more