Тренировка модели и концепция
фото наскальной живописи для тренировки модели
В этом проекте я натренировала LoRA Stable Diffusion рисовать изображения в стиле наскальной живописи, чтобы посмотреть, как искусственный интеллект повторит одни из самых ранних примеров человеческого творчества.
промпт: three people hunting deer in cave art style, chekpoints 250 vs 500
Для тренировки модели я создала датасет из фотографий наскальной живописи с описаниями на Hugging Face. На изображениях выше можно увидеть результаты работы модели в процессе тренировки (на прогрессе 50%, и когда тренировка модели была закончена). Можно заметить, что к концу тренировки модель научилась более убедительно передавать цвет и текстуру на изображениях. На первой попытке рисунки выглядят слишком аккуратными.
Серия изображений
промпт: handprints on a wall in CAVE ART style; промпт: hunters dancing in CAVE ART style
В итоговой серии изображений я хотела совместить стандартные сюжеты наскальной живописи с темами, с которыми доисторический человек никогда не мог бы столкнуться. Для начала генерируем простые сюжеты близкие к фотографиям, использованнным для тренировки — отпечатки рук и охоту.
промпт: a farm in CAVE ART style
Большинство изображений в использованном датасете содержали людей и крупных рогатых животных, поэтому именно такие изображения удаются модели лучше всего: например, ферма.
промпт: chicken in CAVE ART style; промпт: dinosaur in CAVE ART style
Нейросеть намного лучше справляется с генерацией групп животных, несмотря на то, что в датасете присутствовали фотографии одиночных животных. Тем не менее, за счёт того, что текстура фона и цвета соответствуют привычному виду наскальной живописи, получается интересная стилизация даже животных, которых в датасете нет. На примере изображения динозавра можно заметить, что намного убедительнее выглядят небольшие динозавры вокруг основного — они менее аккуратные и детализированные, более похожие на древние рисунки.
промпт: knights on horses in CAVE ART style
Кроме неизвестных древним людям животных, я сгенерировала так же сюжеты из более поздней истории человечества с разной степенью успешности. Самым успешным сюжетом стали рыцари — модель хорошо рисует группы людей и животных, знает как выглядят люди и лошади. Конница получилась в меру примитизированной, без лишней аккуратности и деталей. В верхней части изображения можно заметить, что у лошадей больше, чем четыре ноги: как и должно быть в наскальной живописи для эффекта бега.
промпт: pirates on ships in CAVE ART style; промпт: race cars in CAVE ART style
На удивление, модели довольно неплохо удалась генерация пиратов. Хаос океана определённо получился, хотя все фигуры слишком разные для наскальной живописи, и не очень понятно, что происходит. Интересно перевоплотились гоночные машины. Видимо, этот концепт оказался слишком оторван от датасета — но есть некоторая ирония в том, что вместо машин получилось стадо бегущих лошадей и быков, поэтому я считаю эту генерацию более чем удачной.
промпт: women in space in CAVE ART style
Последняя генерация — женщины в космосе — относительно успешна. Это изображение показывает, что модели удаётся генерация женщин, у них есть своя узнаваемая форма, отличная от мужчин. Относительно того, находятся ли они в космосе, можно только предполагать, однако такая неточность может быть объяснена многозначностью слова «space» в английском. Если модель создавала изображение женщин в пространстве, цель определённо выполнена.
Выводы
В целом, тренировку модели можно назвать успешной, особенно учитывая, что я использовала довольно небольшой датасет. Однако нужно отметить, что модели заметно лучше удаются конкретные сюжеты (групповые), и несмотря на правильные цвета и фактуру фона, появляется одна ключевая проблема. Искусственный интеллект работает слишком аккуратно, особенно на крупном масштабе заметны ровные линии и практически гладкая заливка, не характерные для наскальной живописи или, в целом, чего угодно на настолько фактурном фоне.
Тренировка модели была произведена в Google Colab в соответствии с представленным на курсе пайплайном:
- В Google Colab запускаем GPU сесиию
- Загружаем необходимые библиотеки
- Создаём датасет из изображений и metadata на сайте Hugging Face
- Обучаем LoRA на собранных изображениях, сохраняем созданную модель (веса)
- Генерируем изображения по промптам с помощью сохранённой на HF модели
Финальную серию я генерировала в отдельном блокноте, подтянув свою модель с Hugging Face, чтобы не забивать код (и ресурс GPU) лишними ячейками с тренировкой.