Original size 2480x3500

Обучение генеративной нейросети по личному архиву пленочных снимков

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

Идея проекта

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

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

Подготовка окружения

Настраиваю среду, загружая все необходимые инструменты и инструкции для работы.

big
Original size 1920x607

Проверяем подключение к GPU

big
Original size 1920x141

Ускорение вычислений

big
Original size 1920x248

Загружаем репозиторий diffusers

big
Original size 1920x394

Скачиваем скрипт для дообучения

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

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

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

Данный блок кода отвечает за создание и наполнение датасета для обучения — те самые пленочные фотографии, которые станут основой для стиля нейросети.

Original size 1920x203
Original size 1920x195

Загружаем изображения для дообучения в local_dir

Original size 1920x572
Original size 1920x572
Original size 1920x572

Датасет с исходными оригинальными кадрами в формате 1:1

*Кадры отсняты на «Зенит», Olympus и Konica с пленкой Kodak.

Генерация подписей к изображениям

Original size 1920x165
Original size 1920x105

Выбираем GPU для проведения вычислений

Original size 1920x136

Загрузка модели предобученной модели BLIP для генерации подписей к изображениям

Original size 1920x163
Original size 1920x134

Создаем пути и открываем изображения

Original size 1920x291
Original size 1920x336

Для каждого описания изображения добавляем префикс

Original size 1920x1559

Вывод полученных описаний изображений

Original size 1920x141
Original size 1920x170

Избавляемся от модели BLIP, чтобы освободить память

На этом этапе код автоматически создает текстовые описания для каждого фото, используя модель компьютерного зрения BLIP: система анализирует содержимое изображений и генерирует к ним английские подписи, к которым добавляет стилевой маркер «photo in my style», после чего все пары «файл-описание» сохраняются в файл metadata.jsonl, формируя основной датасет для последующего обучения нейросети, а затем модель BLIP выгружается из памяти для освобождения ресурсов GPU.

Подготовка окружения к обучению

Original size 1920x130
Original size 1920x107

Авторизуемся на Hugging Face

Original size 1920x107
Original size 1920x107

Выставляем настройки

В данном этапе на Hugging Face беру токен для обучения нейросети, вношу его в среду для программирования.

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

Original size 1920x723
Original size 1920x157

Проверяем, что все сохранилось

Сохранение на Hugging Face

Original size 1920x1152

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

Original size 1920x487
Original size 1920x203

Код автоматически определяет мое имя пользователя на Hugging Face, создает новый репозиторий для модели, генерирует информационную карточку с метаданными обучения, загружает все файлы обученного LoRA-адаптера в созданный репозиторий на платформу.

Результаты генераций

Original size 1024x1024

prompt = «photo in my style, a young girl sitting at the table in the bar with flowers, the photo is captured in the night»

Original size 1160x1160

prompt = «photo in my style, a woman with long red hair and a white jacket walking down the red metal stairs, the photo is captured in the nigh with harsh flash»

prompt = «photo in my style, rock concert, a band is playing a guitar in a dark room» / «photo in my style, two men playing guitars on stage with a microphone»

Original size 1024x1024

prompt = «photo in my style, a woman with black trad-goth messy hairstyle sitting in near the water with leaves reflection in it. the photo is black & white»

Original size 1024x1024

prompt = «photo in my style, a man with shoulder-lenght black hair, ivory skin, green eyes laying on the grass in a black shirt»

Original size 1024x1024

prompt = «photo in my style, a huge dried black tree with no leaves in the middle of a field and the person in black coat standing in front of it. the green filter on the photo»

Original size 1024x1024

prompt = «photo in my style, girl in beige oversized fur coat, fur hat sitting in front of brick wall with a big red flag»

Original size 1024x1024

prompt = «photo in my style, woman with dark brown straight hair in oversized beige fur coat stand among the bookshelves in a library reading a book»

Original size 1024x1024

prompt = «photo in my style, a young woman with shoulder-lenght straight light pink hair, light brows, fair skin, big plump lips, wearing a sleeveless pastel green and pink striped top»

Original size 1024x1024

prompt = «photo in my style, a woman with long dark brown hair and very short micro bangs, thin brows, in an oversized leopard fur coat sitting on the stairs»

Original size 1024x1024

prompt = «photo in my style, a young girl with long dark brown hair and very short micro bangs, thin brows, wearing blouse and skirt sitting in the snow in the fog»

prompt = «photo in my style, group of people in different coloured rain coats standing on the valley in the fog» / «photo in my style, group of equiped people walking up a mountain in the fog»

Original size 1024x1024

prompt = «photo in my style, woman in a brown rain jacket with the hood up, smiling as she pets a light-colored husky with blue eyes. dog has its tongue out, looking directly at the camera»

prompt = «photo in my style, a group of sea lions resting on a rock in the water»

prompt = «photo in my style, a herd of cows grazing in a field» / «photo in my style, a brown horse standing in a field of tall grass»

Описание применения генеративной модели

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

Итоги обучения

Нейросети тяжело дается воспроизведение уникальных черт конкретного человека — сложных причесок, объема губ или цвета бровей. Модель хорошо улавливает «настроение» портрета, но создает обобщенные образы, а не точные копии людей. А также не получилось натуралистично повторить «зерно» на изображениях, жесткую заполняющую вспышку или случайные дефекты пленки (мушки, засветы).

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

Обучение генеративной нейросети по личному архиву пленочных снимков
17
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