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


Сделать лицо человека очень сильно похожим на него самого — сложная задача для нейросети, но в генерациях явно улавливаются мои черты и отличительные особенности.
Например, длинные волосы, светлая кожа и прическа.
Еще один промпт, который я использовала, был ориентирован на лица. Однако с ним я становилась совсем не похожей на себя


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