Original size 1140x1600

Обучение генеративной нейросети Stable Diffusion под интерьер

PROTECT STATUS: not protected
65
Finalist of the competition
big
Original size 1785x225

Цель данной работы заключается в применении возможностей генеративной нейросети Stable Diffusion для создания визуальных концептов в контексте дизайна интерьера. В частности, акцент будет сделан на разработку изображений в советском стиле. Поскольку я обучаюсь на направлении «Дизайн интерьера», то для меня было бы интересно разработать метод для генерации концептов, который позволит упростить и ускорить формирование общей картины проекта.


big
Original size 1785x225

СОВЕТСКИЙ СТИЛЬ


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

ИЗОМЕТРИЯ КАК МЕТОД ВИЗУАЛИЗАЦИИ


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

ПРИМЕНЕНИЕ В ДИЗАЙНЕ ИНТЕРЬЕРА


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

Таким образом, данная работа будет не только исследованием возможностей Stable Diffusion для генерации изображений в специфических стилях, но и практическим проектом, направленным на внедрение инновационных методов в сферу дизайна интерьера.

Original size 1785x225

В первую очередь, загрузим нужные библиотеки и изображения в Colab

Далее посмотрим полученные изображения и создадим для них разметку

Original size 1280x256

Проделаем ту же работу, но уже для другого набора изображений

Original size 1280x256

Теперь можно запускать обучение модели

Original size 1785x225
Original size 1223x397

По завершении обучения, можно приступать к генерации изображений. Загрузим полученную модель в советском стиле

Original size 1785x225

prompt = «photo collage in SOVIET style, bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Попробуем сгенерировать спальную комнату. На сгенериованных изображениях прослеживается советский стиль, но присутствует много фотографий, попробуем убрать из промта «photo collage»


prompt = «SOVIET style, bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

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

Original size 1785x225

prompt = «photo collage in SOVIET style, kitchen» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 0x0

Перейдем к другой комнате, попробуем воссоздать кухню, вернем в промт «photo collage»

На удивление, модель не попыталась «завалить» кухню фотографиями, возможно, «photo collage» в промте влияет на комнаты, в которых модель считает, что фото будет уместно. Сейчас сгенерируем кухню без «photo collage»


prompt = «SOVIET style, kitchen» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

Original size 1024x1024

Получилось хорошее изображение в советском стиле. Модель правильно определила ряд поверхностей передав блики и отражение поверхности. Снова вернем «photo collage» и попробуем еще раз


prompt = «photo collage in SOVIET style, kitchen» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

Изображение вновь показывает отличную передачу советского стиля, но есть ощущение, что если использовать в промте «photo collage», появляется больше объектов, хоть и не фотографии как на примере со спальней, но это создает шум, поэтому опустим «photo collage» в последующий промтах.

Original size 1785x225

prompt = «SOVIET style, children’s bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1328x1289

Данное изображение ближе к началу 2000-х, но общий стиль все еще выдержан. Возможно, помогло бы более гармонично передать стиль, добавив примеры детских спален.

Original size 1785x225

prompt = «SOVIET style, main room» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Теперь попробуем сгенерировать гостиную

По этим изображениям можно сказать, что модель хорошо научена гененрировать изображения в советском стиле. Гостиная получилась гармонично, мебель хоть и выглядит порой немного странно, но суть передана правильно.

Original size 1785x225

prompt = «SOVIET style, corridor» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

Теперь давайте сгенерируем коридор

Тут сложно сказать точно, советский ли это коридор, но в целом, атмосфера соответсвует заявленой.

Original size 1785x225

prompt = «SOVIET style, refrigerator» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

Интересно попробовать сгенерировать конкретный объект, например, холодильник

Original size 1785x225
Original size 1200x393

Теперь протестируем модель, обученную для рисования изометрических изображений комнат. Пройдемся по аналогичному набору помещений

prompt = «photo collage in ISOMETRIC style, bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «ISOMETRIC style, bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

Все же, при работе с комнатами, где чаще всего можно встретить фото, при использовании в промте «photo collage», модель пытается обогатить изображение как можно большим количеством фото.

prompt = «ISOMETRIC style, children’s bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «ISOMETRIC style, kitchen» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

prompt = «ISOMETRIC style, main room» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «ISOMETRIC style, main room» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

По результату, модель отлично справилась с передачей изометрии

Original size 1785x225
Original size 1226x418

Теперь опробуем обе модели вместе


prompt = «SOVIET style, ISOMETRIC style bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «SOVIET style, ISOMETRIC style, children’s bedroom» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «SOVIET style, ISOMETRIC style, kitchen» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «SOVIET style, ISOMETRIC style, corridor» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image



prompt = «SOVIET style, ISOMETRIC style, main room» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

В ряде изображений, получилось добиться смешения советского стиля с изометрией. Изометрия передана в полном объеме, а вот советский стиль теряется, особенно это видно на кухне. Коридор же и вовсе, словно не содержит советский стиль, все напоминает некий офис, нежели заявленное помещение.


prompt = «SOVIET style, ISOMETRIC style, refrigerator» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

Холодильник получился правильно, в изометрии, но советский стиль прослеживается с трудом

Прежде чем подводить итоги, хочется попробовать сгенерировать то, чему мы не обучали свои модели, посмотим, что получится. Отойдем от темы интерьера и попробуем сгенерировать изображение, например, космический корабль.

prompt = «SOVIET style, ISOMETRIC style, spaceship» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «SOVIET style, ISOMETRIC style, a car» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

prompt = «SOVIET style, ISOMETRIC style, a plant» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «SOVIET style, ISOMETRIC style, a cat» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

prompt = «SOVIET style, ISOMETRIC style, a cow» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «SOVIET style, ISOMETRIC style, house» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

По итогу, модель точно передает изометрию, а советский стиль проявляется слабо, порой его просто нет, либо невозможно понять, в чем он заключается. Думаю, проблема в том, что изометрия довольно проста, она строится именно на построении кадра, а не на объектах, как в советском стиле.


prompt = «SOVIET style, a cow» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

Попробуем убрать из промта изометрию и снова нарисовать корову

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


prompt = «SOVIET style, a cat» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


Original size 1024x1024

Да, по всей видимости, модель принимает советский стиль, как фильтр, но надо отдать должное, кот получился здорово! Была мысль, что модель нарисует пародию на кота, но получилось очень натурально, а ведь мы не обучали наши модели на рисование котов. Выходит, порой базовой модели Stable Diffusion может хватить для ряда задач. В любом случае, если задействовать промт по назначению, начинает работать наша модель, которую мы тренировали для интерьера, что доказывает, что обучение прошло успешно.

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

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

prompt = «photo collage in SOVIET style, ISOMETRIC STYLE, space room» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image


prompt = «photo collage in SOVIET style, ISOMETRIC STYLE, air-conditioned room with panoramic window» # @param

image = pipe (prompt=prompt, num_inference_steps=25).images[0] image

И несколько генераций для души

Обучение генеративной нейросети Stable Diffusion под интерьер
65
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more