Original size 1190x1684

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

PROTECT STATUS: not protected
The project is taking part in the competition

Цель проекта

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

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

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

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

Датасет

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

Original size 2206x1379

Результат

Original size 3072x1024
Original size 3072x1536

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

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

Original size 3072x1024
Original size 3072x3072
Original size 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. Он помогал разбираться с техническими ошибками в коде, лучше понимать этапы обучения модели и принципы настройки параметров.

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

Дали — обучение генеративной модели
Project created at 23.03.2026
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more