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

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

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

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

Скачиваем скрипт для дообучения
Сначала выполняю диагностику аппаратных возможностей через проверку GPU, затем устанавливается ключевое программное обеспечение, основная библиотека для моделей ИИ, а также специализированный фреймворк, позволяющий адаптировать большую модель под задачи без гигантских затрат ресурсов.
Далее подключаю актуальную версию библиотеки для работы с диффузионными моделями — основным инструментом генерации изображений. Напоследок: скрипт для обучения по методу Dreambooth с технологией LoRA, который является детализированной инструкцией для «вписывания» моего визуального стиля в готовую модель.
Подготовка датасета
Данный блок кода отвечает за создание и наполнение датасета для обучения — те самые пленочные фотографии, которые станут основой для стиля нейросети.
Загружаем изображения для дообучения в local_dir
Датасет с исходными оригинальными кадрами в формате 1:1
*Кадры отсняты на «Зенит», Olympus и Konica с пленкой Kodak.
Генерация подписей к изображениям
Выбираем GPU для проведения вычислений
Загрузка модели предобученной модели BLIP для генерации подписей к изображениям
Создаем пути и открываем изображения
Для каждого описания изображения добавляем префикс
Вывод полученных описаний изображений
Избавляемся от модели BLIP, чтобы освободить память
На этом этапе код автоматически создает текстовые описания для каждого фото, используя модель компьютерного зрения BLIP: система анализирует содержимое изображений и генерирует к ним английские подписи, к которым добавляет стилевой маркер «photo in my style», после чего все пары «файл-описание» сохраняются в файл metadata.jsonl, формируя основной датасет для последующего обучения нейросети, а затем модель BLIP выгружается из памяти для освобождения ресурсов GPU.
Подготовка окружения к обучению
Авторизуемся на Hugging Face
Выставляем настройки
В данном этапе на Hugging Face беру токен для обучения нейросети, вношу его в среду для программирования.
Обучение модели
Проверяем, что все сохранилось
Сохранение на Hugging Face
Генерация изображений
Код автоматически определяет мое имя пользователя на Hugging Face, создает новый репозиторий для модели, генерирует информационную карточку с метаданными обучения, загружает все файлы обученного LoRA-адаптера в созданный репозиторий на платформу.
Результаты генераций
prompt = «photo in my style, a young girl sitting at the table in the bar with flowers, the photo is captured in the night»
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»
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»
prompt = «photo in my style, a man with shoulder-lenght black hair, ivory skin, green eyes laying on the grass in a black shirt»
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»
prompt = «photo in my style, girl in beige oversized fur coat, fur hat sitting in front of brick wall with a big red flag»
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»
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»
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»
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»
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, выдает довольно сухие и обобщенные описания.
Итоги обучения
Нейросети тяжело дается воспроизведение уникальных черт конкретного человека — сложных причесок, объема губ или цвета бровей. Модель хорошо улавливает «настроение» портрета, но создает обобщенные образы, а не точные копии людей. А также не получилось натуралистично повторить «зерно» на изображениях, жесткую заполняющую вспышку или случайные дефекты пленки (мушки, засветы).
Однако модель блестяще показала себя в создании пейзажей и изображения животных: она выдает отличные результаты, убедительно воссоздает «магию» и тепло аналоговой фотографии, которые я стремилась в нее заложить.