Я очень люблю рамен и часто его фотографирую—собираю фото из разных заведений, городов и стран. Каждая тарелка уникальна: разные бульоны, лапша, топпинги, подача. Мне стало интересно—можно ли научить нейросеть генерировать новые тарелки рамена на основе моих снимков? Будет ли результат просто усреднённой версией исходных фото, или модель сможет придумать что-то новое—необычные сочетания ингредиентов, непривычную подачу?
Исходные фотографии из датасета
Для этого я обучила LoRA-модель для Stable Diffusion XL на своём наборе изображений. Для этого я подготовила датасет, сгенерировала подписи к изображениям, обучила LoRA и затем использовала обученные веса для генерации изображений.
Процесс. Google Collab
Сначала я установила все необходимые библиотеки для работы Stable Diffusion, LoRA и обучения
Затем я скачала обучающий скрипт DreamBooth LoRA для SDXL из репозитория HuggingFace
После этого я подключила Google Drive, чтобы работать с датасетом и сохранять результаты обучения
Далее я подготовила датасет изображений: создала папку для изображений и загрузила туда изображения, на которых будет обучаться модель
Исходные фотографии из датасета
Затем я сгенерировала подписи к изображениям с помощью модели BLIP, чтобы у каждого изображения было текстовое описание для обучения
После этого я сформировала файл metadata.jsonl, в котором записаны названия изображений и соответствующие им текстовые описания
Далее я запустила обучение LoRA-модели на базе Stable Diffusion XL с помощью скрипта DreamBooth
Во время обучения создавались чекпоинты (checkpoint-250, checkpoint-500 и т. д.), которые содержат веса обученной LoRA-модели
После обучения я загрузила базовую модель Stable Diffusion XL и подключила к ней обученные LoRA-веса. Прикрепить карточку. В конце я сгенерировала новые изображения по текстовому запросу с использованием обученной LoRA-модели
Результаты
Результат
В результате обучения LoRA-модели нейросеть научилась генерировать новые изображения рамена на основе обучающего датасета. Сгенерированные изображения не копируют исходные фотографии, а создают новые комбинации ингредиентов и композиций, сохраняя стиль и основные визуальные признаки рамена. С увеличением числа шагов обучения заметно растёт детализация изображений.
Результаты
Модель корректно воспроизводит тарелку, бульон и основные топпинги (часю, яйцо, нори, зелёный лук, кукурузу)
Композиция изображений соответствует фуд-фотографии (ракурс сверху или под углом, мягкий свет)
Изображения отличаются по цвету, освещению и расположению ингредиентов
Модель генерирует новые комбинации, а не копирует обучающие изображения На checkpoint-250 форма и цвета уже распознаются, но детали размытые
На checkpoint-500 значительно лучше видны лапша, текстура мяса и детали бульона
Использование генеративного ИИ
В проекте помимо обученной нейросети Stable Diffusion XL был использован ChatGPT для помощи с написанием текстовых описаний (описание идеи проекта, анализ результатов).




