Исходный размер 3216x4267
Проект принимает участие в конкурсе

Концепция

Хочу познакомить вас с моим пуделем Лаки, который 9 лет назад стал незаменимым членом нашей семьи и до сих пор является им.

За свою жизнь мне удалось посетить более 20 стран, но, к сожалению, Лаки ни разу не сопровождал меня в этих путешествиях. Именно поэтому благодаря визуализациям в рамках курса я смогла представить, какими могли бы быть его фотографии в самых разных уголках мира, словно он путешествовал вместе со мной.

big
Исходный размер 3024x1846

Исходное изображение Лаки

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

big
Исходный размер 3024x1871

Исходное изображение Лаки

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

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

Код обучения модели писался в Visual Studio Code с расширением Claude Code, которое помогало в написании кода, а также в исправлении ошибок. Обучение выполнялось локально на Windows (NVIDIA RTX 3070 Ti, 8 GB VRAM), так как Google Colab T4 не имеет достаточно памяти для полного цикла обучения SDXL. Демонстрация и инференс в Google Colab.

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

Был собран датасет из 69 фотографий пуделя Лаки. Скрипт выполнял автоматическую предобработку каждого фото.

Для каждого изображения создавался текстовый caption-файл с trigger word — sks poodle dog Lucky.

0

Установка зависимостей

Было создано виртуальное окружение Python 3.12, установлен PyTorch с поддержкой CUDA 12.1 для RTX 3070 Ti, а также библиотеки для обучения DreamBooth LoRA и Скрипт обучения от HuggingFace Diffusers.

Исходный размер 1032x409

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

Для обучения использовался метод DreamBooth. Он позволяет научить нейросеть узнавать конкретный объект всего по нескольким десяткам фотографий. Чтобы обучение поместилось в память видеокарты, применялась технология LoRA. Она обновляет только небольшую часть параметров модели вместо всей сети целиком.

Исходный размер 1032x630

Публикация модели

Исходный размер 1032x445

Генерация изображений

После обучения модель была опубликована на платформе HuggingFace. Для генерации изображений базовая модель Stable Diffusion XL загружается и к ней подключаются обученные LoRA-веса, что позволяет модели вспомнить Лаки и рисовать его в любых сценах.

Исходный размер 1032x562

Пример генерации одной локации

Исходный размер 1032x521
post

На выходе получилась очаровательная фотография Лаки в красном берете на фоне Эйфелевой башни.

Генерация проводилась в 3 итерации для каждой из 11 локаций, итого 33 изображения. Разные значения параметра seed дают вариативность результата при одном и том же промпте: меняются поза, ракурс, детали одежды и фона.

Исходный размер 2812x912

Лаки в Тайланде

Промпт: a photo of sks poodle dog on a tropical beach in Thailand, wearing sunglasses, palm trees and turquoise water background, photorealistic, 8k.

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

Лаки в Англии. Промпт: a photo of sks poodle dog sitting near Big Ben in London England, wearing a plaid scarf, cloudy sky, photorealistic, 8k

0

Лаки в Мексике. Промпт: a photo of sks poodle dog in Mexico wearing a large sombrero hat, sitting at a table with a plate of tacos, colorful background, photorealistic, 8k

Лаки в Италии: a photo of sks poodle dog riding a gondola in Venice Italy, looking at the camera, canal background, photorealistic, 8k

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

0

Лаки в Египте. Промпт: a photo of sks poodle dog near the Great Pyramids of Giza in Egypt, desert landscape, golden hour sunset lighting, photorealistic, 8k

Исходный размер 2812x912

Лаки в Китае. Промпт: a photo of sks poodle dog in China wearing traditional Chinese hanfu costume, standing among red traditional Chinese buildings decorated with glowing red lanterns, night scene

Лаки в Корее. Промпт: a photo of sks poodle dog standing in front of Gyeongbokgung Palace in Seoul South Korea, traditional Korean architecture, sunny day, photorealistic, 8k

0

Лаки в Греции. Промпт: a photo of sks poodle dog in Greece near an ancient amphitheater, white buildings and blue sea in background, photorealistic, 8k

Лаки в Японии. Промпт: a photo of sks poodle dog sitting in a traditional Japanese zen garden in Kyoto Japan, cherry blossom trees, stone path, peaceful atmosphere, photorealistic, 8k

Исходный размер 2812x912

Лаки в Америке. Промпт: a photo of sks poodle dog standing in front of the Statue of Liberty in New York USA, sunny day, blue sky, looking at camera, photorealistic, 8k

Итоговые изображения получились фотореалистичными и узнаваемыми.

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

Проблема решалась многократным запуском с разными seed и отбором лучших результатов из серии.

Примеры генераций с артефактами

Итоги

По итогу мне удалось увидеть, как выглядел бы Лаки путешественником по всему миру.

Модель сохранила его внешность: белая шерсть и порода пуделя узнаваемы во всех 11 локациях. Все сцены получились убедительными: от гондолы в Венеции до пирамид в Египте. Одежда, береты, сомбреро, традиционные костюмы, а также анатомия собаки, отображалась не всегда точно, однако эта проблема легко решается уточнением промпта и подбором seed. При повторной генерации нужный элемент появлялся корректно.

В целом опыт оказался интересным и показал полный цикл работы с генеративными нейросетями: от сбора датасета до публикации готовой модели и генерации своих изображений.

Главное, модели удалось передать самую узнаваемую черту Лаки — розовый носик.

Список использованных инструментов: — Stable Diffusion XL (SDXL) — базовая генеративная модель, дообученная методом DreamBooth LoRA под конкретного персонажа — пуделя Лаки; — Visual Studio Code + Claude Code — помощь в написании скриптов подготовки датасета, обучения модели и генерации изображений; — Google Colab — демонстрация результатов: загрузка обученной LoRA и генерация финальных изображений на GPU T4; — HuggingFace Hub — публикация обученной LoRA-модели в открытый доступ по адресу LuckyPlay7/lucky-poodle-lora; — Python / diffusers / accelerate / peft — библиотеки для обучения и инференса модели; — Git + Git LFS — загрузка весов модели (47 MB) в репозиторий HuggingFace.