Self-Forcing Генерация видео в реальном времени без компромиссов
Репозиторий давно не обновлялся
Последнее обновление было 10 месяцев назад.
Представьте, что вы обучаете нейросеть генерировать видео, но при реальном использовании качество оказывается хуже, чем во время тестов. Знакомая проблема? Команда из Adobe Research и UT Austin предлагает элегантное решение — Self-Forcing, метод, который устраняет этот разрыв и открывает новые возможности для генерации видео.
Что делает Self-Forcing особенным?
Self-Forcing — это метод обучения авторегрессионных диффузионных моделей, который:
- Симулирует процесс вывода во время обучения с использованием KV-кэширования
- Позволяет генерировать видео в реальном времени на одном RTX 4090
- Сохраняет качество на уровне state-of-the-art моделей
- Поддерживает потоковую генерацию длинных видео
Кстати, самое удивительное — для обучения (кроме GAN-версии) даже не нужны видео данные! Метод работает с ODE-инициализированными чекпоинтами.
Кому это будет полезно?
- Разработчикам генеративных моделей
- Создателям видеоконтента
- Исследователям в области компьютерного зрения
- Всем, кто работает с диффузионными моделями
Как это работает под капотом?
Технически Self-Forcing решает проблему mismatch между обучением и тестированием через:
- Авторегрессионное развертывание с кэшированием ключей и значений (KV caching)
- Чанковую обработку видео
- Оптимизированные алгоритмы вывода
Модель основана на CausVid и Wan2.1, но с ключевыми улучшениями в процессе обучения.
Практическое применение
Быстрый старт
- Устанавливаем зависимости:
conda create -n self_forcing python=3.10 -y
conda activate self_forcing
pip install -r requirements.txt
pip install flash-attn --no-build-isolation
python setup.py develop
- Загружаем модели:
huggingface-cli download Wan-AI/Wan2.1-T2V-1.3B --local-dir-use-symlinks False --local-dir wan_models/Wan2.1-T2V-1.3B
huggingface-cli download gdhe17/Self-Forcing checkpoints/self_forcing_dmd.pt --local-dir .
- Запускаем GUI:
python demo.py
Совет от авторов: модель лучше работает с подробными промптами — можно предварительно расширять их через GPT-4o.
Производительность
На 64 H100 обучение занимает менее 2 часов. На 8 H100 с градиентным аккумулированием — около 16 часов. Для ускорения вывода можно использовать:
torch.compile(рекомендуется)- TAEHV-VAE (чуть хуже качество, но быстрее)
- FP8 Linear layers
Вывод: стоит ли пробовать?
Definitely! Self-Forcing — это:
✅ Решение реальной проблемы mismatch в генеративных моделях ✅ Качественная генерация видео на потребительском железе ✅ Открытый код и предобученные модели
Особенно рекомендую попробовать, если вы:
- Работаете с видео генерацией
- Ищете способы ускорить вывод диффузионных моделей
- Хотите экспериментировать с авторегрессионными подходами
Проект активно развивается — самое время подключиться и, возможно, внести свой вклад!
P.S. Не забудьте процитировать авторов, если используете их наработки:
@article{huang2025selfforcing,
title={Self Forcing: Bridging the Train-Test Gap in Autoregressive Video Diffusion},
author={Huang, Xun and Li, Zhengqi and He, Guande and Zhou, Mingyuan and Shechtman, Eli},
journal={arXiv preprint arXiv:2506.08009},
year={2025}
}
