Original size 2480x3500

Marilyn Manson AI Gen

PROTECT STATUS: not protected

Концепция и референс

На 1 курсе обучения в университете на дисциплине арт-практика в 3 модуле мы создавали серию иллюстраций. В моем случае она была посвящена моей любимой песне Мерлина Мэнсона — «The nobodies»

0

мои иллюстрации с 1-го курса

Рассуждая над темой проекта, я решила, что хочу увидеть как эти иллюстрации сможет изобразить искусственный интеллект

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

Список использованных в проекте инструментов:

1. Google Colab — основная среда разработки 2. Python — основной язык программирования 3. PyTorch — фреймворк машинного обучения 4. Diffusers (от Hugging Face) — библиотека для диффузионных моделей 5. PEFT (Parameter-Efficient Fine-Tuning) — эффективная настройка 6. Transformers — библиотека для NLP моделей 7. Torchvision — компьютерное зрение 8. Pillow (PIL) — работа с изображениями 9. Google Drive — хранилище данных 10. tqdm — прогресс-бары

Описание процесса обучения

Сначала импортируются библиотеки, необходимые для работы проекта

Original size 1200x584

фрагмент кода

После был создан блок CONFIG который хранит все настройки проекта manson_folder — где лежат иллюстрации out_dir — куда сохранять обученную модель model_name — какая базовая модель используется batch, lr, epochs — параметры обучения

Original size 1548x510

Фрагмент кода

далее идет подключение google drive

Original size 1052x308

Фрагмент кода

После подключения производится настройка устройства, которая определяет на чем запускать код — CPU или GPU

Original size 1112x252

Фрагмент кода

Далее идет фрагмент создания датасета.

Этот фрагмент: Находит все изображения в папке Подготавливает их для нейросети (меняет размер, нормализует) Создает пары «изображение-описание»

Original size 2542x1052

Фрагмент кода

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

0

Фрагмент кода

Основной процесс диффузионного обучения — учит модель предсказывать шум:

Original size 1878x710

Фрагмент кода

И под конец кода идет процесс, сохраняющий прогресс обучения каждые 50 шагов:

Original size 976x256

Фрагмент кода

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

Описание процесса генерации иллюстраций

Сначала у нас идет фрагмент с настройками, который хранит параметры генерации base_model — какая модель использовать как основу lora_folder — где лежит обученный стиль Мэнсона output_folder — куда сохранять результаты n_images — сколько изображений сгенерировать inference_steps — количество шагов дениойзинга (качество) guidance — сила следования промпту (7.5 — нормально) seed_start — начальное значение для случайных чисел

Original size 1434x358

Фрагмент кода

Позже идет загрузка LoRA и создание пайплайна, результатом является то, что модель теперь умеет рисовать в моем стиле, а базовая модель stable diffusion загружена:

Original size 1440x862

Фрагмент кода

Далее в коде у нас идут промпты для генерации изображений:

Original size 2356x1192

Фрагмент кода

После чего у нас начинается процесс самой генерации иллюстраций:

Original size 2356x1192

Фрагмент кода

Нейросеть превращает текст в картинку за 30 шагов:

  1. Начинает с чистого шума
  2. Постепенно убирает шум
  3. Руководствуется промптом и обученным стилем
  4. Получает финальное изображение

Результат

Результатом работы являются данные иллюстрации, сгенерированные моделью

0

Иллюстрации сгенерированные моделью

Разбор результата

Модель смогла обучиться моему стилю и сгенерировать крайне похожие по исполнению к моим иллюстрации:

0

Результат более чем удовлетворительный. Было крайне интересно посмотреть на мои работы исполнением нейросети