
Команда Joy Future Academy опубликовала JoyAI-Video-Edit — открытую авторегрессионную диффузионную модель на 16 млрд параметров, которая редактирует видеопоток по текстовой инструкции в реальном времени без доступа к будущим кадрам и без заранее заданной длительности ролика. В замерах авторов полный сквозной пайплайн выдаёт 30.19 FPS в разрешении 720×1280. В связке работают энкодер условий на базе MLLM, каузальный видео-VAE и мультимодальный диффузионный трансформер на 16B параметров.
Код и скрипты развёртывания доступны на GitHub, веса DiT и каузального VAE выложены на Hugging Face под лицензией Apache 2.0. Обучающие корпуса и собственный бенчмарк LongV2VBench авторы пока не выкладывали, но данные и веса родственной image-editing модели JoyAI-Image-Edit доступны вместе с кодом: именно из них перенесён обучающий сигнал для редактирования. Стоит учитывать, что открыт только код инференса: скриптов обучения в репозитории нет, поэтому повторить тренировку модели с нуля по опубликованным материалам не получится.

Проблемы современных подходов
Качественные видеоредакторы на диффузии работают офлайн: берут клип целиком, гоняют двунаправленное внимание по времени и отдают результат после всех шагов денойзинга. Для коротких роликов это удобно, но для прямого эфира или видеозвонка не годится. Плюс объём временных токенов и памяти под активации растёт вместе с длиной входа, а нарезать поток и обрабатывать его куски независимо значит получать видимые артефакты на границах.
Просто сделать модель каузальной тоже мало. Каузальная модель — это модель, которая при генерации очередного кадра смотрит только назад, на уже готовые кадры, и не заглядывает вперёд; технически для этого достаточно поменять маску внимания. Но тут появляется другая проблема: при обучении модели подают в качестве истории настоящие предыдущие кадры, чистые и правильные, а в работе никаких настоящих кадров у неё нет, есть только то, что она сама нагенерировала шагом раньше, вместе со всеми мелкими огрехами: чуть уехал оттенок, слегка поплыла текстура. Модель принимает такой кадр за эталон, строит на его основе следующий, и тот получается ещё немного хуже, так что за минуту потока картинка успевает заметно отойти от оригинала. Этот разрыв между условиями обучения и реальной работы называют train–inference mismatch, а накопленное искажение — временным дрейфом (drift). Для редактирования проблема двойная: каждый новый кусок обязан не только продолжать предыдущие, но и совпадать с текущим исходным кадром, сохраняя всё, что менять не просили.
Архитектура JoyAI-Video-Edit
JoyAI-Video-Edit состоит из трех блоков:
- мультимодальная языковая модель (MLLM) как энкодер условий;
- каузальный видео-VAE;
- мультимодальный диффузионный трансформер (MM-DiT).
MLLM получает первый кадр и инструкцию и выдаёт токены условий (condition tokens), где закодированы и содержание сцены, и намерение правки. VAE сжимает видео с коэффициентом 8 × 24 × 24, то есть один латентный кадр отвечает восьми кадрам видео. Поддерживаются режимы V2V и IV2V, где внешний вид дополнительно переносится с референсной картинки.

Схема архитектуры: MLLM, каузальный VAE, блоки MM-DiT с потоками условий и изображения, cправа — маска внимания: видно, какие группы токенов доступны активному чанку.
Чанки и борьба с дрейфом
Видео режется на выровненные чанки по одному латентному кадру, то есть по восемь кадров. Внутри чанка внимание двунаправленное, между чанками каузальное. Межчанковое внимание ограничено скользящим окном, иначе вычисления росли бы вместе с длиной потока: активный чанк смотрит на фиксированное число недавних чанков плюс на самый первый, который остаётся в контексте постоянно и выступает опорным кадром (global sink) для всей последовательности.
Сначала модель учат на настоящих предыдущих кадрах (teacher forcing), а потом эти настоящие кадры подменяют тем, что модель генерирует сама по ходу обучения (схема resampling forcing): каждый исторический чанк заново собирается одним шагом денойзинга, и градиенты через него не проходят. Обучение идёт на распределении истории, близком к тому, что модель встретит на инференсе.
SA-DMD и длинный горизонт
Обычная диффузия делает десятки шагов денойзинга, для реального времени их сжимают до двух методом Distribution Matching Distillation. В обучении участвуют три модели на общем бэкбоне с LoRA-адаптерами: каузальный генератор-ученик, обучаемая модель, которая оценивает распределение самого ученика, и замороженный учитель, который знает, как выглядит правильное распределение. Ученика тянут к учителю через расхождение между этими двумя оценками.
Исследователи разработали и использовали метод Source-Anchored DMD, который привязывает учителя к той части исходного видео, которая совпадает по времени с текущим фрагментом. Для этого к предсказанию учителя применили направляющую генерацию без классификатора (classifier-free guidance) сразу по двум независимым направлениям: отдельно усилили влияние текстовой инструкции с весом w_txt и отдельно — верность оригиналу весом w_src. Вторая ветка получается так: у учителя удаляют исходный кусок видео и смотрят, насколько предсказание изменится без него.
Long-Horizon Autoregressive Distillation режет длинный роллаут на короткие клипы, считает обратный проход по каждому и чистит граф перед следующим, накапливая градиенты для одного шага оптимизатора. Так модель видит поздние состояния с накопленной ошибкой, не упираясь в OOM.
Откуда берётся 30 FPS
На инференсе поток режется на чанки по восемь кадров, применяются FP8-квантизация, слияние операторов и компиляция вычислительного графа. Кодирование VAE занимает 22 мс, денойзинг DiT — 185 мс, декодирование — 19 мс, что даёт задержку отклика в 226 мс. Сборка чистого KV-кэша и псевдокодирование добавляют ещё 31 и 9 мс, полный цикл выходит 266 мс, что составляет ровно 30.1 FPS.

Потактовая разбивка обработки одного чанка на одной Nvidia B200.
Полная задержка пайплайна на 81 кадре составила 2.68 с против 4.48 у StreamDiffusionV2 и 5.58 у SANA-Streaming. Отдельно VAE выдаёт 200 FPS, что снимает узкое место автокодирования. Результаты в таблице:

Результаты
На открытом OpenVE-Bench модель набирает 3.60 балла из 5 по оценке мультимодального судьи Gemini. Это на 0.98 выше SANA-Streaming, на 1.60 выше LiveEdit, на 1.73 выше XMax-X2.0 и на 2.37 выше StreamDiffusionV2. Показатель сопоставим с офлайн-редакторами: Kling-3.0 Omni набирает 3.64, Bernini-R 3.72. По локальному удалению объектов 4.06 балла это лучший результат среди всех сравниваемых методов, включая офлайновые.

Для минутных роликов авторы собрали LongV2VBench, 229 задач в пяти категориях: смена фона, глобальная стилизация, а также локальное добавление, локальное изменение и локальное удаление объектов. Здесь модель занимает первое место во всех пяти категориях с общей оценкой 3.30 против 1.71 у ближайшего конкурента XMax-X2.0, при пропускной способности 30.19 FPS в разрешении 720×1280 против 20.90 FPS у XMax-X2.0 в более низком разрешении.

В попарной человеческой оценке на роликах короче 10 секунд JoyAI-Video-Edit выигрывает в 90% случаев против LiveEdit, в 87% против SANA-Streaming и StreamDiffusionV2 и в 81% против XMax-X2.0. С офлайн-моделями примерный паритет: против Bernini-R счёт 48% на 44% в пользу JoyAI-Video-Edit, а Kling-3.0 Omni и Seedance 2.0 её обходят, набирая по 56% голосов:

Что даёт каждый компонент
Абляция показывает вклад обеих идей. Базовая конфигурация набирает 2.81 балла, SA-DMD поднимает её до 3.23 и даёт самый крупный прирост: глобальная стилизация растёт с 3.61 до 4.24, локальное изменение с 3.43 до 4.00. Одна LHAD даёт 3.06 и лучше всего помогает там, где ошибка копится дольше всего, то есть на смене фона и локальном удалении. Вместе обе стратегии дают 3.30 и выигрывают во всех трёх задачах локального редактирования, так что они дополняют друг друга, а не дублируют.

Итог
Раньше при редактировании видео приходилось выбирать между двумя типами моделей. Потоковые обрабатывали кадры на лету и годились для эфира, но качество редактирования у них было заметно хуже. Офлайновые давали хороший результат, зато требовали весь ролик целиком и отдавали его только после долгого просчёта. JoyAI-Video-Edit показывает, что такой выбор больше не обязателен: модель обрабатывает кадры по мере их поступления и делает всего два шага денойзинга вместо десятков, но по качеству держится наравне с офлайновыми редакторами. На практике это значит, что результат виден сразу во время воспроизведения, инструкцию можно тут же переписать, и не надо ждать, пока просчитается весь файл.
Слабые места тоже видны. Заявленные 30 кадров в секунду получены на одной Nvidia B200, а это карта не для домашнего компьютера. Разрешение зафиксировано на 720p. И смена фона даётся модели хуже всего: на минутных роликах это 2.49 балла из 5, заметно ниже остальных категорий.








