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

«a photo of kndttka girl skiing in Swiss Alps, snow-covered mountains, winter clothes, action shot»

«a photo of kndttka girl walking in Times Square New York at night, neon lights, city atmosphere, realistic, crowded»
«a photo of kndttka girl in Icelandic hot springs, northern lights, geothermal pool, magical»
«a photo of kndttka girl in Australian outback, kangaroos, unique landscape, sunset»
«a photo of kndttka girl on a tropical beach in Bali, sunset, palm trees, turquoise water, wearing summer dresses, cinematic lighting»
«a closeup photo of kndttka girl sitting in a cozy cafe in Paris, detailed face, clear eyes, natural skin texture, sharp focus, professional portrait photography, 8k UHD»
«a closeup photo of kndttka girl sitting in a cozy cafe in Paris, detailed face, clear eyes, natural skin texture, sharp focus, professional portrait photography, 8k UHD»
Сделать лицо человека очень сильно похожим на него самого — сложная задача для нейросети, но в генерациях явно улавливаются мои черты и отличительные особенности.
Например, длинные волосы, светлая кожа и прическа.
Еще один промпт, который я использовала, был ориентирован на лица. Однако с ним я становилась совсем не похожей на себя


Я становилась брюнеткой
Я несколько раз меняла параметры обучения нейросети, добавляя шаги обучения, уменьшая кол-во генераций и так далее, но, к сожалению, это лучший результат, которого удалось достичь.
Работа кода
Код подключает Google Drive и настраивает все параметры обучения: пути к данным, размеры изображений, скорость обучения и другие технические настройки.
Создается специальный класс TravelGirlsDataset, который загружает твои фотографии, изменяет их размер до 512×512 пикселей и подписывает их промптами. Каждое изображение случайным образом получает одно из текстовых описаний.
Загружается базовая модель Stable Diffusion и добавляется техника LoRA (Low-Rank Adaptation) — это эффективный метод дообучения, который не меняет всю модель, а только небольшие адаптеры.
Нейросеть учится через процесс диффузии:
-Изображения кодируются в латентное пространство -Добавляется шум на разных временных шагах -Модель учится предсказывать этот шум -Оптимизатор корректирует веса для минимизации ошибки
Обученная LoRA сохраняется на Google Drive для последующего использования в генерации.
Генерации я делала отдельно
Код настраивает все параметры для создания изображений: загружает модель, подключает мою персональную LoRA и задает настройки качества.
Создается список из 15 промптов — детальных описаний разных стран и ситуаций. Каждый промпт содержит мой идентификатор kndttka, что гарантирует, что на изображениях будешь именно я.
Код загружает мою обученную LoRA и «встраивает» ее в базовую модель.
Для каждого изображения случайным образом выбирается локация, устанавливается seed для воспроизводимости, и запускается процесс создания картинки.
Каждое сгенерированное изображение автоматически получает понятное имя с указанием локации и сохраняется в отдельную папку.