
Описание идеи
Меня с детства впечатляли и вдохновляли работы художника Сальвадора Дали. Собрав датасет из его наиболее известных картин, я решила посмотреть как нейросеть сможет преобразовать его работы, а также мне было посмотреть на то как нейросеть сможет совместить сюрреализм и английский стиль. Английский стиль я выбрала, поскольку на момент создания проекта я смотрю английский сериал, и мне очень нравится культура и архитектура этой страны. Помимо этого, в финальном результате мне хотелось бы видеть не только картины, но и платья, поскольку я дизайнер одежды. Именно поэтому я решила посмотреть как может выглядеть такой набор данных, как сюрреализм, работы художника Сальвадора Дали, а также интеграция модных идей бренда Скиапарелли.
датасет // картины Сальвадора Дали
Код для обучения и описание процесса обучения

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

На данном скрине я установила необходимые библиотеки для обработки изображений и для работы нейросети.
Также здесь мы устанавливаем диффузор с сайта, диффузоры — это библиотеки для работы современных нейросетей.
И тут же я устанавливаю саму нейронную сеть.
Тут я создала свою папку для загрузки исходных картинок, salvador_pic — это название новой папки.
Здесь я выбирала на компьютере все эти картинки и загрузила их в Google Collab на сервер, чтобы можно было их использовать в коде для дообучения нейросети.
На данном скрине я создаю функцию для обработки каждого изображения до квадратного размера и определенного разрешения (256×256), чтобы все картинки были одинаковыми.
Здесь я все загруженные картинки обрабатываю функцией, созданной выше, а также делаю превью из первых пяти картинок, чтобы посмотреть обработались ли они верно.
Здесь были подключены дополнительные нейросети, которые называются BLIP — Bootstrapping Language-Image Pre-training, это нейросеть, которая позволяет автоматически сгенерировать текстовое описание картинки по самой картинке, то есть нейросеть, которая делает текст из картинки BLIP — это как подготовительный курс, где компьютер учится понимать и создавать связь между картинками и словами, чтобы все было понятно и единообразно.
Здесь мы создаем массив (изображение, путь к ней), это просто подготовка данных для запуска нейросети BLIP.
Тут я прогоняю BLIP нейросеть по всем картинкам и создаем для каждой из них описание того, что на ней изображено, дополнительно я добавила собственный префикс к описанию, в виде слов: фотоколлаж в стиле Сальвадора Дали . Таким образом, в описании каждой картинки будет написано, что она нарисована в стиле Сальвадора Дали.
Здесь я удаляю нейросеть BLIP, так как она уже отработала и надо освободить память для дальнейшей работы.
Далее мы подготавливаем разные настройки для оптимизации и ускорения вычислений, это нам понадобится при дообучении нейронной сети.
Следующим шагом мы подключаемся к сайту HuggingFace — это сайт, на котором хранится большое количество нейросетей, и подключившись к нему, можно сохранять свои нейроести на будущее.
Здесь я устанавливаю различные настройки в систему, чтобы запустить дообучение нейросети дальше.


На данных скринах я перечисляю все настройки гиперпарамметров нейронной сети и начинаю дообучение с этими параметрами. Именно здесь уже обученная нейросеть Stable Diffusion XL (SDXL) добавляет к себе нейросеть LoRA. И эта новая нейросеть (SDXL+LoRA) начинает четко понимать, имеется в виду под понятием «В стиле Сальвадора Дали».
Также из настроек тут видно, что мы запускаем обучение на 500 шагов, то есть нейросеть будет делать 500 раз свои расчеты в поиске наиболее точного совпадения результатов, но я делаю копию нейронов сети уже на 250 шаге, таким образом после окончания этого обучения у меня сохранится две дообученные нейросети, одна из которых обучалась 500 шагов, другая 250.


Тут я сохранила веса обученных нейронных сетей в папку «salvador_style_LoRA», потом сохранила на сайт HuggingFace.
И тут же происходит сохранение всех данных на сайт, а также на компьютер локально.


Здесь мы печатаем ссылку на huggingFace, куда это все сохранилось.
Дальше начинается подготовка к генерации нового изображения по полученной нейронке, VAE — это вариационный автоэнкодер (он преобразует входные данные в формат нужный для нейросети и кодирует информацию определенным образом, чтобы нейронов сети было проще).
Также тут мы выбираем, что работать будем с нейросетью, которая прошла весь путь обучения (500 шагов).


Здесь мы вводим наше текстовое задание для нейросети (что именно ей надо сгенерировать) и указываем количество шагов на генерацию. Ниже появляется картинка с результатом
Дальше мы говорим, что теперь мы хотим обратиться к нейросети, которая прошла 250 шагов, а не 500 (так как нейронная сеть может переучиться, то есть стать хуже при более длительном обучении). Также тут можно увидеть, что я изменила параметр lora_scale на 0.5 — это означает, что я снизила влияние на результат дообученной модели в два раза, то есть влияние именно этой модели на этих результатах будет меньше, чем при генерации прошлых вариантов, где новая модель влияла на результат сильнее .
Результирующая серия изображений


первые генерации
Первые генерации были по запросу Биг-Бен в Лондоне в стиле Сальвадора Дали. Я решила выбрать Биг-Бен, поскольку, на мой взгляд, одна из самых известных картин художника — это картина с часами («Постоянство памяти»), а самые известные часы — это Биг-Бен


Биг-Бен в Лондоне с стиле сюрреализм
Первая генерация сюрреалистического платья для современной английской королевы в стиле Сальвадора Дали и модного дома Скиапарелли
Также я решила попробовать сгенерировать сюрреалистическое платье для современной английской королевы в стиле Сальвадора Дали и модного дома Скиапарелли. Мой выбор пал именно на такую генерацию, поскольку в свое время Сальвадор Дали и Эльза Скиапарелли не один раз сотрудничали и создавали совместные работы в виде платьев, аксессуаров и не только. Мне было интересно, что может предложить нейросеть, особенно, если добавить в этот набор английский стиль.