Исходный размер 1190x1684

Дали — обучение генеративной модели

Проект принимает участие в конкурсе

Цель проекта

Визуально исследовать границы восприятия реальности, показав, как привычные категории мира могут быть трансформированы и утратить устойчивость. Через серию генераций проект демонстрирует, что такие базовые элементы, как время, пространство и материя, не являются фиксированными, а могут восприниматься как пластичные и изменяемые.

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

Серия строится как эксперимент: каждая генерация исследует одну базовую категорию реальности и показывает, что происходит, если она перестаёт подчиняться привычным законам. Все сцены сохраняют узнаваемые объекты, но меняют их поведение, создавая ощущение «ломающегося мира».

⏳ Время Время теряет линейность и становится физической субстанцией. Оно растягивается, течёт, замедляется или застывает, превращаясь в часть окружающей среды. 🏛 Пространство Пространство перестаёт быть стабильным: перспектива и геометрия искажаются, расстояния становятся нелогичными, а архитектура теряет структуру. 🧍 Тело Человеческое тело утрачивает чёткую форму. Оно становится текучим, распадается или трансформируется, отражая нестабильность идентичности. 🪨 Гравитация Законы тяжести нарушаются: тяжёлые объекты становятся невесомыми, а лёгкие — наоборот, притягиваются вниз. Мир перестаёт подчиняться физике. 🪞 Отражение Отражение больше не повторяет реальность. Оно показывает другую версию мира или искажённую истину, создавая разрыв между видимым и настоящим. 🫠 Материя Материя теряет границы и стабильность: твёрдые объекты становятся мягкими, растворяются или переходят в абстрактные формы, постепенно исчезая.

Датасет

В качестве датасета использовала работы Сальвадора Дали. Изображения отличаются по сюжету и визуальному стилю, но объединены авторской оптикой и пластикой формы, что даёт модели достаточно разнообразия для генерации новых интерпретаций внутри заданного художественного языка.

big
Исходный размер 2206x1379

Результат

Исходный размер 3072x1024
Исходный размер 3072x1536

Я заметила, что нейросеть сохраняет общую сюрреалистическую логику исходного датасета, но сильно упрощает визуальный язык. В генерациях пропадает сложная многослойность композиций: вместо насыщённых, перегруженных деталями сцен появляются более «вычищенные» пространства с одним-двумя доминирующими объектами.

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

Исходный размер 3072x1024
Исходный размер 3072x3072
Исходный размер 3072x1536

Примеры промптов

  1. a classical clock structure slowly melting and stretching across a desert, time flowing like liquid, long unnatural shadows, dalix surrealist oil painting, visible brushstrokes, canvas texture, dreamlike composition

  2. a familiar architectural space distorted into impossible geometry, walls bending and stretching, collapsing perspective, empty surreal atmosphere, dalix surrealist oil painting, visible brushstrokes, canvas texture

  3. a human figure partially dissolving into soft abstract forms, anatomy becoming fluid, identity blurred, empty desert background, dalix surrealist oil painting, visible brushstrokes, canvas texture

Обучение

На первом этапе я установила все необходимые библиотеки и загрузил скрипт для обучения LoRA.

! pip install -q diffusers transformers accelerate peft huggingface_hub bitsandbytes ! pip install -q git+https://github.com/huggingface/diffusers.git ! wget -q https://raw.githubusercontent.com/huggingface/diffusers/main/examples/dreambooth/train_dreambooth_lora_sdxl.py

После этого я авторизовалась в Hugging Face, чтобы получить доступ к моделям:

from huggingface_hub import notebook_login notebook_login ()

Далее я подключила датасет с изображениями. Код автоматически находит папку с изображениями и использует её для обучения.

dataset_dir = «/kaggle/input/datasets/hannash/Salvador_Dali»

for dirname, _, filenames in os.walk ('/kaggle/input'): if filenames: print (f"Найдены файлы в: {dirname}») dataset_dir = dirname break

Далее — ключевой этап — обучение LoRA-адаптера.

В качестве базовой модели используется Stable Diffusion XL, которая дообучается на моём датасете.

! accelerate launch --num_processes 1 --mixed_precision fp16 train_dreambooth_lora_sdxl.py
--pretrained_model_name_or_path="stabilityai/stable-diffusion-xl-base-1.0»
--instance_data_dir="$dataset_dir»
--output_dir="/kaggle/working/salvador-dali»
--instance_prompt="dalix surreal painting, dreamlike landscape, melting objects, distorted perspective»
--resolution=768
--train_batch_size=1
--gradient_accumulation_steps=4
--learning_rate=1e-4
--lr_scheduler="constant»
--lr_warmup_steps=0
--max_train_steps=1000
--mixed_precision="fp16»
--use_8bit_adam
--gradient_checkpointing
--seed=0
--snr_gamma=5.0

Важный момент — я использовала специальное ключевое слово dalix в instance_prompt. Это позволяет модели «привязать» стиль именно к этому токену и затем вызывать его при генерации.

После завершения обучения я загрузила базовую модель и подключил к ней LoRA-веса.

from diffusers import DiffusionPipeline import torch import gc

torch.cuda.empty_cache () gc.collect ()

pipe = DiffusionPipeline.from_pretrained ( «stabilityai/stable-diffusion-xl-base-1.0», torch_dtype=torch.float16, variant="fp16», use_safetensors=True )

pipe.load_lora_weights («/kaggle/working/salvador-dali») pipe.to («cuda»)

На этапе генерации я настраивала параметры: — количество шагов — CFG (насколько модель следует промпту) — negative prompt для удаления лишнего реализма

num_steps = 35 cfg_scale = 7.5

neg_prompt = «photorealistic, realistic, ultra realistic, photo, photography, sharp focus, cinematic lighting, 3d render»

Далее я использовала серию промптов, в которых комбинировал описание сцены с ключевым словом dalix, чтобы вызывать обученный стиль.

«text»: «a classical clock structure slowly melting and stretching across a desert, time flowing like liquid, long unnatural shadows, dalix surrealist oil painting, visible brushstrokes, canvas texture»

В целом процесс выглядел так:

Подготовка среды Подключение датасета Обучение LoRA Подключение весов Генерация изображений

Использование ИИ

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

Помимо этого, я использовала его для проработки концепции и текстового описания проекта, чтобы точнее сформулировать идею и зафиксировать результаты работы.

Дали — обучение генеративной модели
Проект создан 23.03.2026
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше