Рубрикатор
— Идея проекта — Блокнот и датасет — Структура кода — Результат — Материалы
Идея проекта
Идея проекта: обучить модель Stable Diffusion моему собственному иллюстративному стилю.
Основной акцент сделан на передачу цветовых решений, текстур и художественных приёмов, так как в датасете присутствуют мои работы разных лет, исполненные в различных палитрах.
В целом, направленность моего творчества можно назвать фэнтезийной, поэтому итоговая модель должна уметь изображать тривиальных для фэнтези персонажей, сохраняя при этом мою стилистику.
Всего в датасете 26 изображений, так как законченных работ у меня немного. Посмотрим, как модель передаст работу с текстурами, светом и мазками.
Структура кода
Для начала подгружаем все необходимые библиотеки и обучающий скрипт DreamBooth + LoRA (для дальнейшего обучения модели). Подготавливаем датасет и проверяем корректность отображения картинок.
С помощью BLIP к каждому изображению прикрепляется текстовая подпись, всё это точно так же необходимо сохранить для дальнейшей работы.
Далее переходим к самому обучению модели. Подобный метод затрагивает модель на верхних уровнях, условно — кастомизирует Stable Diffusion. Это позволяет сильно сэкономить время и ресурсы GPU.
Оставшийся блок кода выделен под генерацию изображений (промпты).
Результат
В целом, атмосфера исходных работ сохранена. Видна небрежность, смягченность задних планов, наличие «фоновых брызг» (или же ауры/огня). Также работы определённо тяготеют к красному цвету, которого действительно много и в датасете:
Что было скопировано точно — это высокая детализация доспехов, сам эффект выглядит как фотобаш что на оригинальных работах, что на генерациях.
Для сравнения:
Можно заметить и то, что практически у всех персонажей на генерациях есть капюшоны — эту деталь из датасета нейросеть хорошо запомнила.
Также есть прямое заимствование поз:
Помимо того, что модель достаточно достоверно воспроизводит работу со светом и фактуру тканей, она заимствует позы, элементы одежды. Это и капюшоны, многослойная одежда и нечто, похожее на вышивку по краям одежды. В данном случае это имитация ремней, застежек.
Модель также хорошо выучила и мои ошибки: диспропорцию тел, вытянутые черты лица у персонажей.
Как итог — модель действительно запомнила многие мои стилистические особенности. Она неплохо имитирует свет, цвет, визуальные эффекты. Копирует позы, элементы одежды. А также заучивает свойственные мне ошибки, вероятно, малый объём датасета и наличие старых работ повлияли на то, что персонажи на многих генерациях вышли диспропорциональными.
Материалы
Stable Diffusion XL Base 1.0 (SDXL) — https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0
DreamBooth + LoRA (обучающий скрипт) — https://github.com/huggingface/diffusers/tree/main/examples/dreambooth
BLIP (генерация текстовых описаний изображений) — https://huggingface.co/Salesforce/blip-image-captioning-base
SDXL VAE FP16 Fix (улучшенное декодирование) — https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
ChatGPT (генерация промптов) — https://chatgpt.com




