Original size 343x509

Архитектура Рима // Обучение генеративной нейросети Stable Diffusion

PROTECT STATUS: not protected
2

Идея проекта

Обучить генеративную модель (Stable Diffusion с дообучением LoRA) на целевом датасете с изображениями архитектуры Рима, чтобы нейросеть умела по текстовому описанию фотографически воссоздавать сцены с узнаваемыми римскими объектами и характерной визуальной средой.

Исходные изображения

0

Примеры исходных изображений

Процесс обучения

Original size 1526x556

Импорт необходимых библиотек

Original size 1514x108

Подключение Google Drive для доступа к датасету и сохранения результатов

Original size 1484x650

Задание основных параметров обучения: пути, размер изображений, количество шагов, устройство, тип данных

Original size 1516x138

Фиксация случайных чисел для воспроизводимости обучения

Original size 1506x190

Поиск и сбор всех изображений в папке с датасетом

Original size 1498x742

Создание собственного датасета: загрузка изображений, изменение размера и добавление текстовых подписей

Original size 1514x132

Подготовка данных к обучению через DataLoader

Original size 1510x414

Загрузка модели Stable Diffusion и перевод UNet в режим обучения

Original size 1504x218

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

Original size 1508x96

Выбор оптимизатора AdamW для обновления параметров LoRA

Основной цикл обучения:

for epoch in range (Config.EPOCHS): for batch in tqdm (dl): pixel_values = batch[«pixel_values»].to (Config.DEVICE) latents = pipe.vae.encode (pixel_values).latent_dist.sample () * 0.18215 text_embeddings = pipe.text_encoder ( pipe.tokenizer (batch[«caption»], return_tensors="pt», padding=True).input_ids.to (Config.DEVICE) )[0] noise = torch.randn_like (latents) timesteps = torch.randint (0, pipe.scheduler.config.num_train_timesteps, (latents.shape[0],), device=Config.DEVICE) noisy_latents = pipe.scheduler.add_noise (latents, noise, timesteps) model_pred = unet (noisy_latents, timesteps, encoder_hidden_states=text_embeddings).sample loss = nn.functional.mse_loss (model_pred.float (), noise.float ()) optimizer.zero_grad () loss.backward () optimizer.step ()

Original size 1512x92

Сохранение финальных весов LoRA для последующего использования при генерации изображений

Original size 1504x486

Загрузка базовой модели Stable Diffusion 1.5 и подключение обученных LoRA-весов для генерации в нужном стиле

Original size 1486x720

Случайный выбор промпта, создание изображения, сохранение файла с отметкой времени

Промпты:

«A breathtaking view of the Roman Forum at dawn, sun rays lighting up the ruins, high realism, 8k quality»,

«The majestic Colosseum standing tall under a clear sky, sharp contrast of light and shadow, realistic architecture»,

«A busy street in modern Rome with a mix of classic architecture and scooters, cinematic urban photography»,

«The Vatican at sunset, St. Peter’s Basilica illuminated with soft golden light, detailed historical buildings»,

«A stunning aerial view of Rome’s ancient ruins blending into the modern cityscape, ultra-detailed textures»,

«The Pantheon’s iconic oculus casting beams of light onto the floor, intricate detailing, ancient Roman architecture»

Итоговые изображения

0
0

Материалы

Результаты

В ходе работы удалось успешно обучить модель Stable Diffusion с использованием метода LoRA на небольшом наборе изображений, отражающих архитектуру Рима. После подключения полученных весов к базовой модели нейросеть начала уверенно воспроизводить узнаваемые черты римской городской среды.

Результаты генерации показали, что даже короткое дообучение позволяет заметно сместить визуальный стиль модели в сторону римской тематики. При этом сохраняется общий реализм, заложенный в базовой версии Stable Diffusion. На ряде изображений появились типичные элементы — Колизей, Форум, Пантеон, узкие улицы с балконами и растительностью, а также правильная передача фактур камня и света.

Архитектура Рима // Обучение генеративной нейросети Stable Diffusion
2
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more