TL;DR
PhyEvolve — это обработка промпта для генератора видео в три шага. Сначала модель разбирает сцену и отделяет физические события («рука закрыла кран») от изменений видимости («камера отъехала», «занавес закрыл предмет»). Потом для каждого процесса она выписывает причины, условия и состояния «до → после». В конце собирает из этого новый, полный промпт и сверяет его с записями. Генератор не дообучают: просто подменяют промпт на улучшенный.
Главная находка: генераторы видео плохо понимают, что процесс продолжается, пока его не видно. Камера ушла от кипящего чайника, вернулась, а вода не выкипела. Или кран закрыли, а вода из шланга всё равно бьёт. Причина в том, что в коротком промпте механизмы и последствия не прописаны, а модель путает «не вижу» с «не происходит». Когда авторы убрали шаг с физикой, успех на «невидимых» процессах просел сильнее всего (с 45,7% до 29,0%). Без роли «Режиссёр» упала только точность управления камерой и действиями.
Метод в три этапа. Режиссёр размечает события и запрещает «наблюдению» влиять на физику. Физик-эволюционист составляет записи о механизмах и цепочку состояний. Сборщик пишет итоговый промпт, проверяет его по записям и правит только помеченные предложения. Всё это можно повторить в обычном чате.
Схема метода
ШАГ 1. РЕЖИССЁР: сцена + события → таблица «событие | тип | что может менять»
(физическое действие / изменение среды / изменение видимости / ограничение сцены)
→ самопроверка
ШАГ 2. ФИЗИК-ЭВОЛЮЦИОНИСТ:
2a. механизмы: (доказательство, условие запуска, механизм, ожидаемая реакция)
2b. цепочка переходов: до → условия → процесс → после → зависит от №…
→ отдельная проверка записей
ШАГ 3. СБОРЩИК: полный промпт-замена → сверка с записями
→ правка ТОЛЬКО помеченных предложений → повтор (до 3 раз)
→ новых механизмов добавлять нельзя
→ итоговый промпт идёт в генератор видео вместо исходного
Всё можно сделать в одном промпте или тремя сообщениями подряд.
Пример применения
Задача: Вы делаете рекламный ролик для пиццерии в духе «Додо Пиццы» в Veo или Kling. Пицца уходит в печь, камера переезжает на лицо ожидающего клиента, потом возвращается к печи. Генератор, скорее всего, покажет ту же сырую пиццу: пока камера смотрела на клиента, «ничего не происходило».
Промпт:
Ты работаешь как конвейер из трёх ролей. Моя задача — улучшить промпт для генератора видео.
Исходный промпт:
«Повар в красном фартуке ставит сырую пиццу Пепперони в дровяную печь и закрывает заслонку. Камера плавно переезжает на лицо молодого парня за столиком: он смотрит на часы и улыбается. Камера возвращается к печи, повар открывает заслонку и достаёт пиццу».
Выпиши события из промпта. Для каждого укажи тип: физическое действие / изменение среды / изменение видимости / ограничение сцены. Для каждого укажи, что оно МОЖЕТ менять: физические условия, состояние объекта, видимость. Правило: событие «камера переезжает» меняет только видимость и не запускает, не останавливает и не сбрасывает физические процессы. Проверь разметку на соответствие тексту.
1. Для каждого физического процесса запиши механизм: (доказательство из текста, условие запуска, механизм, ожидаемая реакция).
2. Построй цепочку переходов: состояние до → активные условия → процесс → состояние после → номера механизмов → от каких прошлых переходов зависит. Видимость веди отдельно от физического состояния. Процессы, чьи условия остаются активными, продолжаются и вне кадра. Если из текста не следует, что что-то меняется, пометь «неопределённо».
3. Проверь записи: опираются ли механизмы на текст, не потеряна ли непрерывность состояний.
Собери новый самодостаточный промпт для генератора видео. Сохрани все объекты, действия, порядок событий и темп. Добавь физические состояния и изменения, которые нужны, чтобы связать события. Затем сверь черновик с записями: найди предложения, где пропущено нужное состояние, нарушена причинная связь или изменена исходная просьба. Перепиши только эти предложения, остальные не трогай. Новых физических механизмов не придумывай. Повтори сверку до трёх раз. В ответе покажи: таблицу Режиссёра, записи Физика, итоговый промпт.
Результат: Модель выдаст три блока. Первый — таблица событий, где «переезд камеры» помечен как «только видимость». Второй — записи о механизмах (нагрев, плавление сыра, подрумянивание) и цепочка состояний, в которой пицца продолжает запекаться, пока камера на клиенте. Третий — полный промпт, где при возврате камеры описана уже готовая пицца: румяный бортик, расплавленный сыр. Его вставляете в генератор вместо исходного.
Почему это работает
Слабость. Короткий промпт описывает сцену и действия, а механизмы, условия и последствия оставляет «за кадром». Генератор следует тому, что написано. Если процесс вне кадра не упомянут, он не развивается. К тому же «не видно» легко смешивается с «не происходит».
Сильная сторона. Языковая модель хорошо раскладывает знакомые физические процессы на причины и стадии. Если заставить её записать их явно, она их не пропустит. Ещё она хорошо сверяет текст с готовыми записями: «в этом предложении состояние забыто».
Как метод это использует. Разбор делится на этапы, и результат каждого этапа записан структурой. Каждое следующее состояние опирается на предыдущее, поэтому «пицца запеклась» тянется через кадры, где её не видно. Итоговый промпт можно проверить по записям, а не «на глаз». Правки точечные: принятые предложения не трогаются, и хорошее не ломается.
Рычаги управления: - Лимит повторов проверки (в статье до 3) — уменьшите для простых сцен, чтобы экономить время. - Тип событий у Режиссёра — добавьте свои типы (звук, свет, реакция героя), если сцена сложнее. - Строка «неопределённо» — оставьте, чтобы модель не выдумывала то, чего нет в тексте. Уберите, если хотите больше творческих деталей. - Запрет на новые механизмы у Сборщика — ослабьте, если нужна вольная режиссура, а не точность. - Показ промежуточных записей — оставьте, чтобы видеть, где модель ошиблась в физике. Попросите только итоговый промпт, чтобы получить результат быстрее.
Шаблон промпта
Дословных промптов в статье нет. Шаблон собран по описанию метода: роли, поля записей и правила проверки сохранены.
Ты работаешь как конвейер из трёх ролей. Улучши промпт для генератора видео.
Исходный промпт:
«{исходный_промпт}»
Первый кадр (если есть): {описание_первого_кадра}
1. Выпиши сущности и их начальные состояния только из текста{и_кадра}. Не восстанавливай прошлое и не предсказывай исходы.
2. Найди предложения с событиями. Для каждого укажи тип: физическое действие / изменение среды / изменение видимости / ограничение сцены.
3. Для каждого события укажи, что оно МОЖЕТ менять: физические условия, состояние объекта, видимость.
4. Правило: событие, которое только скрывает или показывает объект ({примеры_наблюдения}), меняет видимость, но не запускает, не останавливает и не сбрасывает физику. Если в тексте явно указан физический эффект события — сохрани его.
5. Проверь: соответствует ли разметка тексту, типы событий и причинные роли.
1. Механизмы. Для каждого механизма запиши: (evidence — доказательство из текста; condition — условие запуска; mechanism — физический механизм; response — ожидаемая реакция).
2. Переходы. Для каждого перехода запиши: состояние до; активные условия; процесс изменения; состояние после; номера механизмов; от каких прошлых переходов зависит. Состояние «после» становится «до» следующего перехода.
3. Физическое состояние и видимость веди ОТДЕЛЬНО. Если событие меняет только видимость, процессы с активными условиями продолжаются вне кадра, а при возвращении объекта описывай уже изменённое состояние.
4. Если текст не определяет изменение — помечай «неопределённо».
5. Отдельным проходом проверь: опора механизмов на текст, условия и реакции, непрерывность состояний, зависимости переходов, согласованность с ограничениями Режиссёра. Исправь провалившиеся записи.
1. Собери самодостаточный промпт-замену. Сохрани объекты, действия, порядок событий, ограничения сцены и темп. Добавь физические условия и изменения состояний, которые связывают события.
2. Сверь черновик с записями Режиссёра и Физика. Пометь предложения, которые: пропускают нужное состояние, нарушают причинное ограничение или меняют исходную просьбу.
3. Перепиши только помеченные предложения. Принятые не трогай. Можно проговаривать механизмы, уже записанные в переходах, но нельзя вводить новые.
4. Повтори сверку не более {число_повторов} раз. Если проверка не пройдена — верни последнюю версию.
Покажи: таблицу Режиссёра, записи Физика, итоговый промпт.
Что подставлять:
- {исходный_промпт} — ваш обычный короткий промпт для видео.
- {описание_первого_кадра} — если генерируете из картинки, опишите её словами. Если нет — удалите строку.
- {примеры_наблюдения} — чем в вашей сцене скрывается или показывается объект: камера, занавес, выключенный свет, дым.
- {число_повторов} — 2–3.
🚀 Быстрый старт — вставьте в чат:
Вот шаблон PhyEvolve. Адаптируй под мою задачу: {опиши сцену для видео}.
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
Модель спросит, какие события есть в сцене, что скрывается от камеры и какие процессы должны идти вне кадра. Это нужно, чтобы Режиссёр правильно отделил видимость от физики. Она возьмёт структуру из шаблона и соберёт готовый промпт под вашу сцену.
Ограничения
⚠️ Только про видео: Метод проверяли на генераторе видео и физических сценах: вода, огонь, механика, материалы. Для картинок, текстов и общих задач выигрыш не показан. Переносить придётся самим.
⚠️ Проверено на одном генераторе: Все цифры получены на одном «движке» видео (Minimax-H3). На Veo, Kling, Sora эффект не проверялся. Он может быть и меньше, и больше.
⚠️ Верность запросу остаётся слабым местом: Физика улучшается, но генератор всё равно часто не выполняет именно то, что просили (на жёстком наборе сцен смысловая точность осталась низкой). Метод не гарантирует «получилось в точности как заказано».
⚠️ Нет проверки по видео: Всё улучшение идёт до генерации. Готовое видео в цепочку не возвращается. Если генератор проигнорировал хороший промпт, метод этого не поймает.
⚠️ Ошибки физики в записях ломают результат: Модель-планировщик может ошибиться в механизме, и ошибка уйдёт в промпт. Читайте записи Физика, особенно в необычных сценах.
⚠️ В статье это автоматический конвейер: Авторы гоняют его программой на нескольких видеокартах. В чате вы повторяете логику руками, без точных настроек статьи.
⚠️ Отдельные области уступают: По оптике конкурирующий метод NEWTON оказался сильнее.
Как исследовали
Авторы из Canva Research проверяли метод на четырёх наборах физических тестов: «невидимая» эволюция (StEvo-Bench), физический здравый смысл (PhyGenBench, PhyWorldBench, VideoPhy-2). Генератор видео держали неизменным, менялся только промпт. Сравнивали с прямой генерацией и двумя агентными конкурентами (NEWTON, Co-Director). Планировщиком служила открытая модель Qwen3-VL-32B.
В среднем по четырём тестам PhyEvolve выиграл у прямой генерации 14,9 пункта, а у лучшего конкурента — 7,9. Самый яркий результат: на «невидимых» процессах успех вырос с 17,7% до 45,7%.
Потом авторы по очереди выключали роли. Без физика успех упал до 29,0%, это самая большая потеря. Без режиссёра главная метрика почти не изменилась (45,3%), но просело управление камерой и действиями. Без сборщика потери небольшие (около 1–3 пунктов), хотя на иллюстрации без него стакан оказывался видимым за занавесом.
Удивило то, что главную работу делает шаг с явной физикой, а не «умная сборка» промпта. Практический вывод: если нет времени на все три шага, не пропускайте второй. Ещё авторы подменяли планировщик. Модель на 9 млрд параметров дала почти тот же результат, что на 30 млрд (77,3% против 79,6%), так что метод не требует топовой модели. В опросе людей видео от PhyEvolve предпочитали более чем в 60% сравнений.
Оригинал из исследования
Дословных промптов в предоставленном тексте нет. Вот формализация конвейера и записей из статьи:
D = Director(P, I0),
(M, T) = Evolver(P, D),
P* = Composer(P, D, M, T),
V = G(P*, I0)
Mechanism record: m_i = (e_i, c_i, φ_i, r_i)
e = supporting evidence, c = activation condition,
φ = physical mechanism, r = expected response
State transition: s_k --(M_k, c_k)--> s_{k+1}, o_k = O(s_k, v_k)
s = physical state, v = visibility condition, o = what is observable
Контекст: Так авторы описывают передачу данных между ролями и устройство записей. Состояние и видимость ведутся отдельно, поэтому процесс продолжается, пока объект скрыт.
Адаптации и экстраполяции
💡 Адаптация для сторибордов и сценариев: Правило «видимость ≠ событие» работает и для текста. Пусть модель размечает, что происходит «за кадром» истории: пока герой в другой сцене, у остальных процессы идут.
Вот сценарий сериала: {сценарий}.
Шаг 1: выпиши события и пометь, какие меняют мир, а какие — только то, что видит зритель.
Шаг 2: для каждой сюжетной линии, которая выпадает из кадра, запиши состояние «до → что продолжается → состояние после».
Шаг 3: проверь, согласуются ли сцены при возвращении к линии. Исправь только несогласованные места.
🔧 Техника: правка только помеченных мест → не ломаем хорошее. Идея Сборщика пригодится и в обычном редактировании: «Сначала пометь предложения, которые нарушают критерий X. Перепиши только их. Остальное не трогай и не перефразируй». Так правка точечная, а удачные куски остаются нетронутыми.
Ресурсы
- Статья: «PhyEvolve: Multi-Agent State-Evolution Planning for Physics-Aware Video Generation»
- Авторы: Yang-Hao Zhou, Lixing Tan, Zhiqi Li, Guang Yang, Xiao Yang (Canva Research)
- Тесты: StEvo-Bench, PhyGenBench, PhyWorldBench, VideoPhy-2
- Конкуренты: NEWTON, Co-Director
- Генератор: Minimax-H3; планировщик: Qwen3-VL-32B-Instruct
