В рамках этого проекта я обучила генеративную нейросеть Stable Diffusion стилю русского художника Ивана Яковлевича Билибина.
Подготовка и анализ картин

В качестве примеров я брала его книжные иллюстрации для сказок, наброски костюмов и портретов, а также зарисовки пейзажей. Некоторые работы выполнены в чёрно-белой палитре, однако основной упор сделан на цветные картины.
Все работы были обрезаны до квадратной формы. При обработке фотографий я постаралась выхватить самые удачные моменты, чтобы кадрировать наиболее важные детали, например, лица, животных, узоры.

Как можно заметить, у Билибина есть свой определённый стиль рисования: он использует приглушённую палитру, предпочитая природные, тёплые, землистые оттенки; часто его иллюстрации сопровождаются чётким контуром и большим количеством декоративности. Узоры могут как окантовывать картину, так и быть непосредственной её частью. Художник фокусируется на реалистичном изображении людей и животных, усердно прорисовывая каждую деталь.
Работа с нейросетью
В проекте не использованы иные нейросети, работа велась в Google Collab с использованием Stable Diffusion XL, метода DreamBooth и технологии LoRA. Для начала я провела все необходимые подготовительные операции для корректной работы.
Затем я преступила к выгрузке датасета. В качестве архива фотографий я взяла 104 картины художника, кадрированные мной до нужного размера. Как можно заметить, все картинки были выгружены в папку внутри Goggle Collab под названием «/content». На предварительном просмотре все рисунки отобразились корректно и в нужном формате.
Затем с помощью модели BLIP были сгенерированы подписи к картинкам. Я использовала префикс «art in BILIBIN style», который позже буду использовать для генерации картинок. Далее был создан файл metadata.jsonl, который содержал картинку и подпись к ней. Как можно заметить, все подписи были достаточно детальны и разнообразны.
После я удаляю ненужную и тяжёлую модель и очищаю кэш.
После этого я работаю с Hugging Face для дальнейшего использования кода без обучения нейросети с нуля. Затем загружаю библиотеку для работы с metadata.jsonl.
Наконец, начинается процесс обучения. Я поменяла необходимое значение на своё собственное, такое как «art in BILIBIN style», и записала max_train_steps=500 и checkpointing_steps=250 для облегчения и ускорения работы.
Я заканчиваю обучение модели, сохраняя её на Hugging Face.
Затем я загружаю модель из Hugging Face. И теперь я могу написать промпт для генерации картинки.
Получившиеся изображения
В рамках генерации я постаралась по-разному поэкспериментировать с промптами и изображениями. Несколько раз я меняла силу воздействия нейросети для того, чтобы посмотреть, сильно ли изменится результат.
Для начала я попробовала самые обычные запросы, например, «art in BILIBIN style, a portrait of a man» и «art in BILIBIN style, a portrait of a woman».













