Идея
Я люблю создавать стилизованных 3D персонажей и рендерить их в разных обстоятельствах и позах.
И для финального проекта я взял идею дообучить генеративный ИИ на моих 3D рендерах, чтобы он генерировал картинки в моём стиле. Мне было интересно узнать насколько ИИ сможет скопировать мой стиль.
Рендеры из датасета





Результирующие картинки


3D render in PIERROTIMMORTAL style, blond man in a castle/ 3D render in PIERROTIMMORTAL style, black-haired woman in a bar


3D render in PIERROTIMMORTAL style, blond man in a dense forest/ 3D render in PIERROTIMMORTAL style, blonde woman in a forest
Комментарий о генерации
В итоговой серии изображений приведены картинки персонажей в некотором окружении. Видно, что ИИ действительно пытался повторить стиль моих персонажей и окружения, взятых из датасета, на котором я его дообучал.
ИИ изобразил стилизованных персонажей с длинными «пластмассовыми» волосами. Женщины в длинных платьях, как женщина из моего датасета, и все персонажи имеют наплечники, как мужчина на моих рендерах. Траву и землю он сделал очень похожей на то, что было в исходном датасете.


Элементы, которые ИИ скопировал, на примере одного рендера. Слева — ИИ генерация, справа — мой рендер.
Как правило, цветовую палитру ИИ делал ту же, что и была на моих рендерах, но на одном из них, по какой-то причине, ИИ решил выдать сильно розовые цвета, хотя на моих рендерах из датасета такого нет.


Сгенерированные ИИ картинки с очень розовой гаммой
Процесс обучения
Я решил не изобретать велосипед и следовал тому коду, который был нам предоставлен. За исключением того, что в конце картинка не просто генерировалась и сразу демонстрировалась, а сохранялась в папку ноутбука в kaggle.
Импортировал библиотеки, загрузил датасет, загрузил токен Hugging Face, прописал свой токен, запустил обучение (заняло 1, 5 часа), и генерировал изображения простыми промптами.
Исходный датасет состоял из 25 ренедров. Я понимал, что это меньше, чем хотелось бы, но многие рендеры, которые я делал, я счёл по тем или иным причинам неподходящими для обучения нейросети.
Я решил компенсировать малый объём датасета количеством ступеней обучения — их выставил 1000.
Первый десяток сгенерированных картинок выглядел неплохо, но, к сожалению, нейросеть начала быстро деградировать, у сгенерированных персонажей начинало плыть лицо, в окружении появлялись руки и т. д. Пришёл к выводу, что ступеней следовало ставить ещё больше, например 2000.
Ноутбук




