Original size 2480x3500

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

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

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

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

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

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

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

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

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

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

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

big
Original size 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», чтобы исключить вероятность генерации изображений плохого качества.

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

Original size 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
Original size 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

Original size 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
Project created at 10.04.2025
We use cookies to improve the operation of the HSE website and to enhance its usability. More detailed information on the use of cookies can be fou...
Show more