
Что станет с караваджовским светом, когда источник освещения — не Бог, а LED-матрица?
«Кибер-Караваджо» — визуальное исследование столкновения барочного света и цифровой эпохи. Через обучение нейросети стилю Караваджо проект воссоздаёт сцены современной технологической действительности — от экранного свечения до механических тел — в духе библейской драмы и плотской экспрессии итальянского барокко.
Изображения-результаты
Для начала работы были выбраны герои-архетипы, через образы которых можно показать «слияние» киберпагк-эстетики (отчасти вдохновленной фильмом «Бегущим по лезвию»* игрой «Cyberpunk 2077»**). Ими стали: инженер, доктор (алхимик), ангел (здесь важнее религиозность работ Караваджо), хакер (он же «кибер-плут», хотя влияние киберпанк-эстетики тут больше, в противовес предыдущему персонажу), музыкант, воин (рыцарь, образ для типичных выбранной эстетике «уличных боев»), охранник ночного клуба (киберпанк вновь превалирует, слияние гвардии и роботов, «хрома» и металлических лат), гонщик (наездник). Отдельно стоит отметить человек/андроид — общий образ, впрочем, центральный как для противостояния живого и искусственного в указанных мной фильме и игре, так и для поиска граней «человечности» Караваджо.
*Хэмптон Фэнчер и Дэвид Пиплз, 1982 год ** CD Projekt Red, 2020 год
Инженер
Общее начало промпта: «painting in CYBER-CARAVAGGIO style, male engineer with glowing cybernetic implants,» Развитие изображений в слайдере — следствие усложнения промпта
Доктор (= алхимик)


Промпты имеют общее начало: «painting in CYBER-CARAVAGGIO style, cyber doctor in baroque-inspired robe…», «игра» с окружением и деталями
Ангел
Промпт: «painting in CYBER-CARAVAGGIO style, android angel with bright glowing blue face and eyes,»
Хакер


Изначальный промпт: «painting in CYBER-CARAVAGGIO style, hacker wearing baroque-style cloak, face replaced by glowing screen,», не удалось добиться точного исполнения требований. Требуется развитие


Развитие благодаря усложнению промпта: «face fully replaced by bright glowing blue screen, edges of face glowing strongly,»


Частичное изменение промпта (слишком сложная задача): «multiple monitors and holographic panels with flickering neon reflections, thick neon cables crawling over desk and floor,»
Музыкант
Упоминание точных предметов, а не перекладывание на нейросеть ответственность за киберпанк-эстетику дает свои плоды: «painting in CYBER-CARAVAGGIO style, android musician… electric guitar,»
Воин (= рыцарь), уличная потасовка (= дуэль)


Промпты: 1. «curly-haired young man in ornate baroque armor with subtle glowing neon patterns,» 2. «two cyber knights with glowing neon swords crossing in combat,»
Охранники ночного клуба (= доспехи)
Промпт: «painting in CYBER-CARAVAGGIO style, group of cyber enforcer robots with baroque armor elements,»
Гонщик (= наездник)


Разные генерации по одному промпту («painting in CYBER-CARAVAGGIO style, cyber street racer in baroque-inspired outfit posing on a black horse,»), «вольность» нейросети
Человек и андроид
Промпт: «painting in CYBER-CARAVAGGIO style, human and humanoid robot wearing baroque clothing,»
По итогу получившихся генераций можно смело сообщить, что генеративная нейросеть научилась достаточного правдоподобно подражать особенностям как всей барочной живописи, так и приемам самого Караваджо. Впрочем, не обошлось без трудностей: в следствие отсутствия отдельного датасета с изображениями в киберпанк-эстетике (в самом начале было принято решение отказаться от него, т. к. не было уверенности в безопасности использования изображений из-за авторских прав) мне приходилось детально (все промпты сохранены в Google Colab, в подписях под иллюстрациями обозначены ключевые строки) описывать окружение и технику, по несколько раз изменять уточняющие промпты так, чтобы добиться необходимого результата. Основной сложностью я бы назвала самостоятельный поиск баланса между подробностью и сравнительной характеристикой описания и слишком общей характеристикой, понятной генеративной нейросети, но не выдающей необходимого изображения.
Работа с кодом
Общее описание процесса работы над кодом:
Сначала проверяется доступность GPU и устанавливаются необходимые библиотеки для работы с моделями, LoRA и Diffusers. Затем распаковывается архив с изображениями и создаются папки для сырых и подготовленных данных. Все изображения приводятся к квадратной форме и изменяются до размера 512×512, после чего сохраняются в подготовленную папку. Для наглядности создается коллаж из первых пяти обработанных изображений. С помощью модели BLIP генерируются текстовые подписи для каждого изображения, добавляется префикс «painting in CYBER-CARAVAGGIO style» и сохраняются в metadata.jsonl. Далее освобождается память GPU, удаляются модели BLIP перед началом обучения LoRA. Настраивается соединение с Hugging Face и производится вход в аккаунт для дальнейшей загрузки модели. Подготавливаются изображения для обучения и запускается скрипт DreamBooth LoRA на базе SDXL с указанными параметрами обучения. После завершения обучения создается модельная карточка, а LoRA загружается на Hugging Face с игнорированием временных файлов. Для проверки создается пайплайн DiffusionPipeline с предобученным VAE, загружаются веса LoRA и переводится на GPU для генерации изображений.
Весь код поделен на логические обозначенные логические блоки.