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

moroccam: кадры из отпуска для карты желаний

Проект принимает участие в конкурсе

Идея проекта

Летом я ездила в Марокко и снимала на компактную камеру-мыльницу. У этих кадров есть узнаваемый почерк: перенасыщенные тёплые цвета, высокий контраст, резкий свет и немного неловкая «туристическая» композиция. Такие фото невозможно сделать нарочно: они возникают из-за ограничений недорогой камеры.

Обучить нейросеть Stable Diffusion XL (метод DreamBooth + LoRA) на моих собственных фотографиях из недавней поездки в Марокко, снятых на компактную камеру-«мыльницу» с яркой вспышкой. У всех отобранных для обучения снимков есть выверенная общая визуальная манера: повышенная насыщенность, высокая контрастность и жёсткий свет вспышки.

мои фото из поездки 1/ атлантический океан 2/ медина феса

Цель проекта

Главной целью проекта было получение от нейросети воспроизводенных в этом «почерке» изображений, чтобы она могла генерировать стилистически похожие «фото из отпуска» в странах, куда я только собираюсь поехать, для моей карты желаний.

фото из поездки

Генерации изображений: модель и датасет

big
Исходный размер 2793x1640

мой датасет для обучения

Датасет состоит из 33 собственных фотографий из Марокко (городские улицы, рынки, интерьеры, небо, люди). Все они сняты мной на мыльницу и приведены к квадрату 1:1.Для генерации изображений была выбрана нейросеть Stable Diffusion XL, которую я дообучила методом DreamBooth с LoRA.

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

Я взяла готовую модель Stable Diffusion XL, которая уже умеет рисовать почти всё, и дообучила её на своих 33 фотографиях методом DreamBooth + LoRA. Модель не переписывается целиком: к ней подключается небольшой «адаптер» LoRA (файл около 93 МБ), который запоминает только мой стиль съёмки. Базовые знания модели о мире остаются прежними, поэтому она может рисовать и места, которых нет в моём датасете.К каждому фото нейросеть BLIP автоматически написала короткое описание содержания, например «people walking down a street in a small town». Перед каждым описанием я добавила фразу «photo in MOROCAM style». Слово MOROCAM придумано мной, нейросеть его не знает, и именно с ним она связывает всё общее, что есть на всех моих снимках: цвет, свет, контраст, манеру кадра. Вспышку и насыщенность в подписях я намеренно не упоминала, чтобы эти свойства достались триггерному слову, а не потерялись среди описаний.

фото из поездки, обрезанные до формата 1:1

Модель 600 раз подряд показывали группы по 6 фотографий (батч 2 × накопление градиента 3): она пыталась восстановить фото по его подписи, а ошибка корректировала адаптер LoRA. За весь процесс через модель прошло около 3600 изображений, то есть каждое из 33 фото она «увидела» примерно 109 раз. Обучение шло на бесплатной видеокарте Google Colab T4 и заняло около 58 минут (около 5,9 секунды на шаг). Чтобы SDXL поместился в память этой карты, обучение шло на разрешении 512×512 с экономией памяти (fp16, 8-bit Adam, gradient checkpointing).

Исходный размер 2793x1311

Основные параметры: rank 16, скорость обучения 1e-4, SNR gamma 5.0, чекпоинт каждые 200 шагов.Про показатель ошибки. Последнее значение ошибки (loss) в логе составило 0,122. Это число сильно колеблется от шага к шагу и само по себе не говорит о качестве, поэтому я оценивала обучение глазами, по картинкам, сгенерированным на промежуточных версиях.

Исходный размер 1152x820

Каждые 200 шагов я сохраняла копию LoRA. Затем сгенерировала по одному и тому же запросу («a tourist walking on a street in Kyoto, Japan») и с одним seed картинки на разных этапах. Так видно, как нейросеть постепенно «заражалась» моим стилем. На сравнении: базовая SDXL без LoRA, шаг 200, шаг 400 и шаг 600 (training_progress_strip.png).Без LoRA (базовая модель). Получается красивый «кинематографичный» кадр: девушка в кимоно с зонтиком идёт по пустой улице, приглушённые холодные тона, красные осенние листья, мягкий пасмурный свет. Это эстетика профессионального фотографа и стоковых картинок, но не личного альбома.

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

В результате выяснилось, что с ростом числа шагов модель всё сильнее усваивает цвет, свет и композицию моих снимков, но одновременно «перетягивает» детали места на марокканские. На шаге 200 больше сохраняется страна из запроса, а на шаге 600 лучше передан стиль. Я выбрала финальную версию, потому что для проекта важнее узнаваемый стиль, но этот компромисс стоит упомянуть: при ещё более длинном обучении модель начала бы копировать конкретные кадры датасета.

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

Результирующая серия

Исходный размер 1536x1230

промпты для всех изобрадений:
1/ «Scotland», «a green hill with an old stone castle, cloudy sky, a hiker»
2/ «Portugal», «a yellow tram on a steep street in Lisbon, tiled facades»
3/ «Vietnam», «a street in Hanoi full of motorbikes and hanging wires»
4/ «Turkey», «hot air balloons over Cappadocia, rocky landscape»
5/ «Mexico», «a bright pink and yellow building in Mexico City, people at a taco stand»
6/ «Norway», «red wooden cabins by a fjord, a traveler with a backpack»
7/ «Peru», «Machu Picchu in the morning with a llama in the foreground»
8/ «Greece», «white houses with blue domes on Santorini, a person on the stairs»
9/ «Thailand», «a night market with street food stalls and neon signs in Bangkok»
10/ «Italy», «a narrow colorful street in Positano, scooters, laundry hanging»
11/ «Iceland», «a waterfall and black sand beach, a traveler in a bright jacket»
12/ «Japan», «a tourist on a street in Kyoto with wooden houses and paper lanterns»

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