
Введение
Идеей данной работы стало желание натренировать модель, способную генерировать интерьеры и локации, вдохновленные серией игр Silent Hill. Игра является достаточно культовой и обладает своим определенным стилем (в частности это относится к 1 и 2 части серии). Помимо определенного фильтра и стиля, была попытка разнообразить элементы, натренировав модель на основе заброшенных и полуразрушенных интерьеров.
Начало работы
Подготовим рабочую среду и загрузим необходимые материалы.


Импортируем наши датасеты.

Подготовим наши изображения для первой модели и дадим ей prefix
Проделаем то же самое, но с другим датасетом.
Обучение модели
Запуск обучения второй модели.
Тестироваение модели
После того, как я научил модель, хочу протестировать то, насколько удачно она может передавать стиль Silent Hill. Поэтому начну с генерации кухни
Кухня — 1 тестовая генерация prompt = «room interior in style of SILENT HILL, kitchen»
Кухня — вторая тестовая генерация prompt = «room interior in style of SILENT HILL, kitchen»
Получается в целом приближенно к стилю игры, даже есть прорисовка каких-то маленьких объектов, однако пока слабое попадание в качественную светотень.
В случае с гаражом все намного лучше, больше объектов и лучше светотень. Также остается свойственный игре фильтр prompt = «style of SILENT HILL, garage»


prompt = «destroyed rusty interior in style of SILENT HILL, laundry room» / prompt = «style of SILENT HILL, laundry room»
Отлично получаются объекты в генерации прачечной комнаты, также при незначительном изменении настроек промпта добавляется более мрачная и грязная атмосфера.
Попробуем сгенерировать детскую комнату.


prompt = «destroyed interior in style of SILENT HILL, kids room» / prompt = «interior in style of SILENT HILL, kids room»
Это дается модели чуть сложнее, но с изменением промпта со второго раза получается приближенный к тому, что хочется видеть, результат.
prompt = «interior in style of SILENT HILL, corridor»
Теперь загрузим вторую модель и протестируем ее работу.
Попробуем начать с спальни.


prompt = «ABANDONED bedroom» / prompt = «ABANDONED modern interior bedroom»
Отлично получается передать как общую картину, так и мелкие объекты и светотень.
prompt = «ABANDONED club room»
Не похоже на клуб в привычном его понимании, но детально все так же хорошо, как и в первом случае.
Попробуем что-нибудь другое, например — кухню.


prompt = «ABANDONED kitchen room»
И снова отлично, кухня отчетливо передает ощущение разрухи и заброшенности, все соответствует желаемому запросу.
prompt = «ABANDONED kids room»
Снова небольшая проблема в генерации отдельных объектов, однако окружение работает отлично.
Теперь попробуем загрузить 2 модели и протестируем их
Попробуем повторить старые запросы, в каких-то случаях поменять промпт и проследить как и где работает или не работает наша модель.
prompt = «SILENT HILL style, ABANDONED kids room»


prompt = «ABANDONED room, SILENT HILL style, kids room»


prompt = «ABANDONED style, SILENT HILL room, main room»
Начиная отсюда, после определенных изменений промпта, 2 модели начинают работать друг с другом лучше и прорисовывают детальную разруху в стиле игры.


prompt = «ABANDONED kitchen room, SILENT HILL style»


prompt = «ABANDONED attic room, SILENT HILL style»
Здесь снова отстутстуют необходимые для заброшки детали, становится понятно как необходимо использовать запрос.
Теперь попробуем добавить новых вводных в запрос и протестируем.
prompt = «insudtrial ABANDONED meat shop room, SILENT HILL style»
prompt = «insudtrial ABANDONED kebab store room, SILENT HILL style»
В первом случае модель поняла что речь про мясо от тега «meat», однако в случае с шаурмечной, тег «kebab» дал только справа вертиль и небольшую рабочую зону, что в целом неплохо, но не то, что ожидалось увидеть.
prompt = «insudtrial ABANDONED burger store room, SILENT HILL style»
Однако, в случае с бургерами, модели сработали лучше и добавили бардовые оттенки, как в случае с мясным магазином.
Теперь попробуем модель на ее работоспособность в других запросах, например животных.
prompt = «gopher, SILENT HILL style»
Суслик получился как всегда великолепным и соответствует стилю игры, но эта история больше похожа на комикс.
Попробуем другое животное, например — черепаху.
prompt = «turtle, SILENT HILL style»
Думаю, это одна из лучших генераций в проекте. Идеально получилось как и само животное, так и специфическое окружение + соответствующий игре фильтр.
prompt = «realism big butterfly, ABANDONED street, SILENT HILL style»
Бабочка также неописуемо красива, теперь ясно, что модель может как генерировать окружение, так и качественно включать какие-либо объекты по запросу внутрь этих пространств.
Попробуем еще раз сгенерировать окружение, несколько упростив запрос.
prompt = «ABANDONED office room, SILENT HILL style»
prompt = «ABANDONED mall interior, SILENT HILL style»
prompt = «ABANDONED swimming pool interior, SILENT HILL style»
Теперь точно то, что нужно, осталось попробовать добавить неожиданный объект в виде черепахи
prompt = «big angry turtle and big butterfly fighth, ABANDONED office room, SILENT HILL style»
Заключение
В заключение, хочется сделать вывод о том, что модель научилась генерировать необходимый стиль изображения, а также должную детализацию разрушенных помещений, хотя и чаще неудачно. Среди них, сильнее выходит на первый план фильтр игры.
Неожиданным оказалось то, как модель может совмещать отдельные от темы запросы с тем, чему она обучилась. В частности бабочка с черепахой кажутся реальными персонажами в контексте этих изображений, что как мне кажется, можно считать дополнительным успехом.