TL;DR
DSV превращает текстовое описание (в оригинале — описание сна) в серию из четырёх картинок, которые выглядят как одна история, а не случайный набор изображений. Работает это в два шага: сначала LLM разбивает текст на четыре хронологические сцены, для каждой придумывает эмоцию и готовый промпт для генератора картинок, а потом каждый промпт достраивается словами-якорями — токенами стиля и эмоции из заранее составленного словаря.
Если просто попросить нейросеть нарисовать четыре картинки по кускам одного текста, они получаются разнобойными: то персонаж другой, то палитра скачет, то настроение не совпадает — будто каждую рисовал другой художник. Причина проста: короткий промпт не даёт генератору картинок достаточно "сигналов стиля", а без явной команды держаться за предыдущий кадр каждая новая картинка рисуется как бы с нуля, из памяти модели ничего не переносится.
DSV решает это одним развёрнутым промптом LLM: сначала зафиксировать единый стиль и эмоциональную арку для всех четырёх сцен сразу (а не генерировать промпты по одному), а потом усилить каждый промпт конкретными словами-якорями палитры и атмосферы — чтобы генератор картинок точно понял, что кадры должны быть похожи.
Схема метода
ШАГ 1 (один запрос к LLM): Разбить историю на 4 хронологические сцены
→ для каждой: короткое описание + доминирующая эмоция + позитивный промпт + негативный промпт (в формате JSON)
ШАГ 2 (обработка текста, можно тем же промптом или отдельно):
Обогатить каждый промпт словами из словаря:
[стиль → цветовая палитра и атмосферные токены] + [эмоция → набор образов] + общий "буст качества"
ШАГ 3 (генерация в T2I-сервисе, вне чата):
Сгенерировать 4 картинки. Картинки 2–4 генерируются с оглядкой на предыдущую (referens-изображение),
чтобы персонаж/обстановка/палитра не "расползались"
ШАГ 4 (проверка, опционально):
Сравнить картинку с описанием сцены → если не совпадает, перегенерировать с усиленным промптом
Шаги 1–2 — это чистый текстовый промптинг, полностью переносится в обычный чат. Шаги 3–4 зависят от возможностей конкретного сервиса генерации картинок (референс-изображение, повторная генерация).
Пример применения
Задача: Основатель стартапа ведёт Telegram-канал и хочет выложить пост-историю "как я всё потерял и начал с нуля" — с четырьмя иллюстрациями вместо текста, чтобы пост цепляли визуально, а не только словами.
Промпт:
Ты — сценарист и промпт-инженер для генератора изображений.
Пользователь дал тебе историю. Твоя задача:
1. Разбей историю ровно на 4 хронологические сцены.
2. Для каждой сцены напиши детальный промпт для генератора картинок на русском.
3. Примени единый визуальный стиль «{стиль}» ко всем четырём промптам
(например: нуар, минимализм, тёплая акварель, киберпанк).
4. Определи доминирующую эмоцию каждой сцены.
Правила для промптов:
— В каждом промпте должен быть герой, который что-то конкретное делает
(идёт, сидит за столом, смотрит на экран и т.д.)
— Опиши позу, жесты, взаимодействие со сценой
— Опиши цвет, свет, атмосферу
— Добавь во все промпты слова, закрепляющие единый стиль
— Держи промпт в пределах 40–70 слов
— Для каждой сцены дай и то, чего НЕ должно быть в картинке (например: «без толпы людей, без ярких неоновых цветов»)
История: {текст истории про запуск и провал стартапа}
Ответь в формате JSON: 4 объекта со сценой, описанием, эмоцией,
позитивным и негативным промптом.
Результат: Модель выдаст JSON с четырьмя блоками — по одному на сцену истории (например: "офис в 3 часа ночи, эмоция — тревога", "пустой счёт в банке, эмоция — отчаяние", "разговор с партнёром, эмоция — надежда", "запуск нового продукта, эмоция — облегчение"). Каждый блок будет содержать готовый текстовый промпт для вставки в Midjourney, DALL-E или любой другой генератор картинок — с общими словами стиля во всех четырёх, чтобы кадры выглядели одной историей.
Почему это работает
Генераторы картинок не помнят, что рисовали секунду назад, если это отдельный запрос — каждый промпт интерпретируется с нуля, поэтому герой, палитра и обстановка "плывут" от кадра к кадру.
LLM, наоборот, хорошо держит связный план внутри одного ответа — если попросить её сразу расписать все четыре сцены с общим стилем и конкретными деталями (цвет, герой, эмоция), она сама протащит консистентность через текст, потому что видит все четыре описания одновременно.
Метод использует эту сильную сторону: заставляет LLM сначала зафиксировать "рецепт" каждой сцены текстом сразу для всех четырёх, а потом усиливает зацепки явными словами-якорями (палитра, атмосфера), которые генератор картинок точно распознает — вместо того чтобы надеяться, что он сам "запомнит" стиль.
Рычаги управления: - Число сцен (4) → меняй под свою историю: 3 для короткого поста, 6 для развёрнутого сторителлинга - Словарь стилей/эмоций → расширяй своими категориями: "киберпанк", "нуар", "детская книга" — вместо готовых 4 из исследования - Место эмоциональных деталей в промпте → ставь их в начале, не в конце: если промпт длинный, некоторые сервисы обрезают конец, и именно эмоция/сюжет теряются первыми - Негативный промпт → если сервис не поддерживает отдельное поле "чего не должно быть", впиши это прямо в основной текст промпта
Ограничения
⚠️ Сохранение персонажа между кадрами работает только с референс-режимом. В исследовании кадры 2–4 генерировались с "подсказкой" в виде предыдущей картинки (вес 0.3/0.7). В обычном чате без загрузки референс-изображения (как в Midjourney с
--crefили при явной загрузке картинки) эффект слабее — модель может не удержать внешность героя.
⚠️ Длинные промпты теряют детали в конце. В исследовании обогащённые промпты обрезались генератором картинок после определённой длины, и терялись именно слова про эмоцию и сюжет — из-за этого итоговые картинки получались красивыми, но слабо передавали историю (оценка нарратива — 2.68 из 5 против 4.41 за красоту картинки). Вывод: важные смысловые детали пиши в начале промпта.
⚠️ Метод плохо держит согласованность, если сюжет скачет между разными местами. Работает лучше всего, когда история происходит в одной обстановке — герой, цвет, декорации могут "переехать" из сцены в сцену без проблем. Если сюжет прыгает между разными локациями и временами, персонаж и палитра начинают расползаться.
Как исследовали
Исследователи взяли 50 описаний снов из архива DreamBank и прогнали через пайплайн: LLM Qwen2.5 разбивала текст на четыре сцены, SDXL рисовал картинки, CLIP проверял соответствие тексту, а Qwen2-VL выступал "судьёй" по семи параметрам качества. Дополнительно провели пилотный опрос 10 человек и ablation-тест — по очереди отключали части пайплайна, чтобы понять, что именно даёт эффект.
Самое интересное открытие: полный пайплайн получал более низкую оценку по CLIP (метрика соответствия текста и картинки), чем упрощённая версия без всех "улучшений". Казалось бы, провал. Но разгадка в том, что генератор картинок SDXL молча обрезает промпт после определённой длины токенов — а именно в конце промпта авторы дописывали слова про эмоцию и сюжет. То есть добавление деталей стиля выталкивало важные смысловые слова за пределы того, что модель вообще видит.
Это объясняет, почему судья (Qwen2-VL) ставил высокие оценки за стиль и красоту картинки (выше 4 из 5), но низкие — за то, насколько картинки передают сюжет и эмоцию (около 2.5–2.7 из 5). Практический вывод для читателя: порядок слов в промпте имеет значение — критичные смысловые детали нужно ставить первыми, а декоративные (стиль, качество) — последними.
Адаптации и экстраполяции
🔧 Техника: перенос эмоциональных якорей в начало промпта → меньше потерь смысла при обрезке
Вместо:
[описание сцены], [стиль], [эмоция], masterpiece, best quality, 8k...
Пиши:
[эмоция], [описание сцены], [стиль], masterpiece, best quality, 8k...
Так даже если сервис где-то обрежет промпт, смысловая суть уже "прочитана" моделью раньше декоративных слов.
🔧 Техника: замена img2img-chaining на явный текстовый якорь
Если сервис не поддерживает загрузку референс-картинки, добавляй в каждый следующий промпт явное текстовое описание того, что должно повториться:
Тот же герой (короткие тёмные волосы, синяя куртка),
та же цветовая палитра (тёмно-синий и оранжевый),
но теперь [новое действие]...
Это грубее, чем img2img, но частично компенсирует отсутствие визуального референса.
Ресурсы
Coherence-Oriented Dream Scene Visualisation, Azra Açıl и Simon Colton, Queen Mary University of London. Использованные модели: Qwen2.5 (14B) для декомпозиции текста, SDXL для генерации изображений, CLIP и DINOv2 для измерения соответствия и согласованности, Qwen2-VL как визуальный судья. Датасет снов — DreamBank (Domhoff and Schneider, 2008).
