Исходный размер 2480x3500

Обучение генеративной нейросети — OSCAR RABIN

Если бы я был такой художник, как Оскар Рабин, если бы я мог писать маслом…

— Ян (Яков) Сатуновский

Концепция проекта

— описание идеи, преследуемые цели, примеры исходных изображений

[1.1] Концепция

Мир творчества Оскара Рабина одновременно манит и пугает. В его работах реальность обретает причудливые очертания и кажется бесконечным, безумным сном. Феномен Оскара Рабина поистине уникален. С поражающей убедительностью и беспощадной критикой окружающей действительности он воплощает в своих работах совершенно особое видение реальности.

Оскар Рабин реализует свои идеи с помощью искусно разработанного эстетического стиля, символьно-образного и графического языков. Для того чтобы «оживить» окружающий мир, он обращается к визуальным и эстетическим решениям стиля поп-арт. Некоторым национальным пафосом обладают «помойки» художника, где реальные предметы «вживляются» в красочную канву — живописный рельеф полотна.

Однако причислить Оскара Рабина к тому или иному стилю по-прежнему трудно, потому что художник не вписывается в существующие границы эстетических и творческих программ. Оскар Рабин самобытен и решительно не поддается культурному фреймингу!

Критики отмечают в его стиле черты экспрессионизма, мизерабилизма и поп-арта, но его метод сложно отнести к одному направлению — это делает Оскара Рабина идеальным кандидатом для обучения нейросети под уникальный стиль.

По ходу работы мне важно узнать и определить, может ли до-обученная нейросеть воспроизвести узнаваемую эстетику (мрачные тона, искаженную перспективу)? Получится ли создавать новые символы в духе Оскара Рабина (например, сочетая его типичные объекты в необычных композициях)?

big
Исходный размер 5200x956

[Фрагменты] 1. Запад-Восток-30м (Ouest-Est-30m) // 2. Хлеб на кладбище. 1964 // 3. Русский поп-арт № 3. 1964 // 4. Луна и город. 1962 // 5. Луна и череп. 1973

[1.2] Подготовка к обучению

Перед тем как обучить нейросетевую модель стилю Оскара Рабина, я собрала датасет из 100 работ художника и кадрировала изображения до квадратного формата (1024×1024).

Несмотря на хронологический разброс выбранных картин, творчество Оскара Рабина обладает устойчивой иконографией, и похожие символы и образы «кочуют» из работы в работу. Часто на полотнах автора встречаются бараки, бутылки, рыбы, религиозные образы (иконы), монеты, газеты и т. д.

[Фрагменты] 1. Строение № 150. 1963 // 2. Крыши в Прилуках. 1967

[Фрагменты] 1. Натюрморт с краской и Парижской водкой. 1997 // 2. Транспортировка шампанского по Сене. 2014

Обучение

— ход работы, первые пробные генерации и предварительные выводы

[2.1] Начало работы

В качестве платформы для до-обучения нейросетевой модели Stable Diffusion я выбрала Kaggle Kernels — облачную среду разработки на сайте Kaggle. Это решение было обусловлено тем, что объем и размер изображений в датасете требовали более значительных ресурсов графического процессора (GPU), чем это мог бы предложить, например, Google Colab.

Убедившись, что датасет успешно загружен в локальную директорию, я приступила к автоматическому созданию описаний к изображениям с помощью модели BLIP.

Так, каждое изображение сопровождалось подписью со специальным префиксом (caption_prefix): «a painting in RABIN style, ». Каждая запись сохранилась в файле metadata.jsonl (каждая строка — отдельный JSON).

import json

caption_prefix = 'a painting in RABIN style, ' #@param with open(f'{local_dir}metadata.jsonl', 'w') as outfile:         for img in imgs_and_paths:             caption = caption_prefix + caption_images(img[1]).split('\n')[0]             entry = {'file_name':img[0].split('/')[-1], 'prompt': caption}             json.dump(entry, outfile)             outfile.write('\n')

Модель BLIP успешно справилась с распознаванием простых объектов и сцен на картинах. Она правильно определила следующие объекты и сюжеты: «a skull and a full moon», «a city with lots of buildings», «a bottle of wine and a plate of food», «a building with a sign on it», «a street scene with flowers and paintings».

Однако, поскольку некоторые картины Оскара Рабина сочетают в себе коллажирование — использование настоящих предметов (монет, карт, газет) и фотографий, нейросеть зачастую неправильно интерпретировала происходящее на изображениях. Особенно это затронуло работы, в которых художник использовал фотографии людей или изображал иконы. Кроме того, некоторым полотнам были даны неправильные описания по причине их излишней абстрактности или из-за того, что цветовые сочетания были слишком тёмными, а контрастность — низкой.

Тем не менее, бо́льшую часть изображений нейросетевая модель BLIP описала верно.

[2.2] Обучение модели

После завершения аутентификации в Hugging Face Hub и передачи токена с правами на запись (write), я поставила такие настройки для обучения модели:

--dataset_name='oscar_rabin' \ --output_dir='oscar_rabin_style_LoRA' \ --instance_prompt='a painting in RABIN style' \ --resolution=1024 \ --train_batch_size=1 \ --gradient_accumulation_steps=3 \ --max_train_steps=1200 \ --checkpointing_steps=500 \

На обучение LoRA-модели ушло почти 6 часов.

После обучения я сохранила модель на Hugging Face в формате репозитория со всеми чекпоинтами.

from huggingface_hub import whoami from pathlib import Path

output_dir = 'oscar_rabin_style_LoRA' #@param username = whoami(token=Path('/root/.cache/huggingface/'))['name'] repo_id = f'{username}/{output_dir}'

...

from IPython.display import display, Markdown

link_to_model = f'https://huggingface.co/{repo_id}' display(Markdown('### Your model has finished training.\nAccess it here: {}'.format(link_to_model)))

[2.3] Первые генерации

Первые генерации* смутили меня своим качеством и цветовым решением (преобладанием розовых оттенков), которое значительно отличалось от общей палитры картин в датасете. Плохое качество, вероятно, связано с тем, что некоторые изображения в собранной базе данных изначально имели меньшее разрешение. После того как их привели к единому размеру (1024×1024), они, возможно, потеряли в чёткости и резкости.

Я решила немного «откатиться» и посмотреть, как модель генерирует изображения на checkpoint-500. Результат мне понравился больше — были заметны характерные черты художественного метода Оскара Рабина (даже появилась сигнатурная подпись автора), однако цветовая гамма показалась мне слишком насыщенной и не отражала ценностей художника.


*Для лонгрида я улучшила качество этих изображений в Topaz Gigapixel AI, однако в своем первоначальном виде сгенерированные примеры получились очень пиксельными и «заблюренными».

[prompt = 'a painting in RABIN style, oil painting, still life of a fish and a bottle of vodka'] 1. Доученная LoRA-модель // 2. checkpoint-500

После первых результатов я добавила негативный промпт (negative_prompt) — «blurry, out of focus, soft, low detail, bokeh», чтобы исключить вероятность генерации изображений плохого качества.

Качество стало лучше, как и цветовая палитра, однако количество артефактов и неточностей увеличилось:

Исходный размер 5186x1634

[+ negative_prompt] prompt = 'a painting in RABIN style, oil painting, fish, crumpled newspaper, and vodka bottles'

Методом проб и ошибок я вывела настройки генерации, при которых получаемые изображения сохраняли консистентность стиля автора, не были плохого качества и обладали меньшим количеством артефактов, чем при предыдущих попытках.

pipe.load_lora_weights('jqpgnl/oscar_rabin_style_LoRA') pipe.fuse_lora(lora_scale=0.8) pipe.to('cuda')   prompt = 'a painting in RABIN style, oil painting, a city with a moon in the sky' negative_prompt = 'blurry, out of focus, soft, low detail, bokeh' image = pipe(     prompt=prompt,     num_inference_steps=40,     negative_prompt=negative_prompt, ).images[0]   image
Исходный размер 5186x1634

prompt = 'a painting in RABIN style, oil painting, still life of a fish and a bottle of vodka'; lora_scale = 0.8

prompt = 'a painting in RABIN style, oil painting, a city with a moon in the sky'; lora_scale = 0.8

Исходный размер 5250x1089

prompt = 'a painting in RABIN style, oil painting, fish, crumpled newspaper, and vodka bottles, with buildings in the background'; lora_scale=0.8

[2.4] Промежуточные выводы

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

Обученная LoRA-модель смогла запечатлеть исключительные черты графического языка художника — контуры (клуазонне), приглушенные, мутные цвета, анаморфозу (намеренное искажение форм, воссоздающее предмет в особом, причудливом ракурсе). Однако хуже нейросеть справляется с передачей плановости, с сохранением понятной перспективы. Оскар Рабин нередко использует в своих работах обратную перспективу, но в сложных композициях обученная нейросеть не всегда может воссоздать этот прием.

Кроме того, на сгенерированных изображениях расположение и размер предметов часто кажутся лишенными логики. Вероятно, это связано с тем, что Оскар Рабин имплицитно использует в своих картинах коллажирование. И если у автора эти коллажные вставки выглядят убедительно, органично вписываются в композицию холста и дополняют сюжет картин, то в изображениях, сгенерированных нейросетью, ощущается беспорядочность и неаккуратность таких «вставок».

Сравнение сгенерированных и оригинальных работ

— сигнатурные образы и мотивы творчества Оскара Рабина глазами нейросети

Перед генерацией результирующей серии работ я решила сравнить, как обученная модель изображает другие мотивы, характерные творчеству Оскара Рабина. Я подобрала шесть ярких картин художника (которых не было в датасете) и попробовала их повторить с помощью обученной модели.

Мне было важно проверить, сможет ли модель воссоздать картины, на которых не была обучена.

Обучение генеративной нейросети — OSCAR RABIN
Проект создан 10.04.2025
Мы используем файлы cookies для улучшения работы сайта НИУ ВШЭ и большего удобства его использования. Более подробную...
Показать больше