FastVideo : accélérer la génération vidéo de l'entraînement à l'inférence

Découvrez FastVideo, un framework ouvert qui combine attention parcimonieuse, distillation, entraînement évolutif et génération vidéo en temps réel sur GPU et Apple Silicon.

FastVideo : accélérer la génération vidéo de l'entraînement à l'inférence

Les modèles de diffusion vidéo sont puissants, mais ils sont coûteux à presque toutes les étapes du workflow. L'entraînement nécessite des systèmes distribués et de vastes jeux de données, tandis que l'inférence peut impliquer des dizaines d'étapes de débruitage sur des représentations spatiotemporelles de grande dimension. Même un court clip généré peut nécessiter une quantité importante de mémoire GPU et de calcul.

FastVideo répond à ce problème avec un framework unifié pour le post-entraînement des modèles vidéo et l'inférence accélérée. Au lieu de considérer l'optimisation comme une préoccupation distincte liée au déploiement, le projet rassemble l'affinage, la distillation, l'attention parcimonieuse, l'entraînement distribué et les API de génération destinées aux utilisateurs dans une seule base de code.

Le résultat est une base pratique pour les chercheurs et les ingénieurs qui travaillent avec des modèles de diffusion vidéo ouverts, notamment lorsque la latence, l'utilisation de la mémoire ou la flexibilité matérielle sont importantes.

Ce que FastVideo fournit

FastVideo prend en charge des workflows de post-entraînement de bout en bout pour les modèles vidéo bidirectionnels et autorégressifs. Les développeurs peuvent effectuer un affinage complet ou un affinage LoRA sur des DiT vidéo ouverts de pointe, préparer des jeux de données vidéo, image et texte, et utiliser plusieurs stratégies de distillation pour réduire le coût de l'inférence.

Les principales capacités d'entraînement comprennent :

  • Distribution Matching Distillation (DMD2) : réduit le nombre d'étapes de débruitage nécessaires pour générer une vidéo.
  • Video Sparse Attention (VSA) : réduit la charge liée à l'attention en exploitant la structure des données vidéo.
  • Distillation parcimonieuse : combine l'entraînement du modèle et le calcul parcimonieux pour atteindre une accélération du débruitage supérieure à 50x dans les workflows pris en charge.
  • FSDP2 et parallélisme de séquence : répartissent les tâches d'entraînement volumineuses sur plusieurs appareils.
  • Checkpointing sélectif des activations : échange du recalcul contre une consommation mémoire réduite.
  • Distillation causale Self-Forcing : prend en charge les workflows de génération causale pour les scénarios autorégressifs ou en streaming.

Cette combinaison est importante, car un noyau d'attention plus rapide à lui seul ne résout pas le problème dans son ensemble. Un modèle peut rester trop lent parce qu'il nécessite trop d'étapes de débruitage, ou ne pas tenir en mémoire pendant l'entraînement. FastVideo rend ces différentes couches d'optimisation disponibles ensemble.

Optimisations de l'inférence

Pour l'inférence, FastVideo fournit le parallélisme de séquence pour la génération distribuée ainsi que plusieurs backends d'attention. Le framework expose ces fonctionnalités via une interface en ligne de commande et une API Python, ce qui lui permet de servir aussi bien d'environnement de recherche que de composant applicatif.

Les systèmes matériels et d'exploitation pris en charge sont nombreux pour un projet axé sur l'accélération. FastVideo prend en charge les GPU NVIDIA H100, A100 et RTX 4090, ainsi que des configurations Linux, Windows et macOS. La prise en charge d'Apple Silicon est assurée par un runtime MLX et la famille de modèles FastMetal-QAD.

Le projet comprend également des intégrations et des options de déploiement pour les applications en temps réel. Dreamverse, situé dans apps/dreamverse/, est la plateforme de génération et d'édition vidéo en temps réel de FastVideo. Elle prend en charge la génération en streaming et ce que le projet appelle le « vibe directing » : guider interactivement une vidéo pendant sa production. Dreamverse peut fonctionner sur un GPU local, un serveur B200 auto-hébergé via SSH, Docker ou Modal serverless.

Installation avec uv

Le projet recommande d'utiliser uv pour créer un environnement Python isolé. Cela offre généralement une installation plus rapide et plus stable qu'un environnement Conda existant.

Pour un système NVIDIA utilisant CUDA 12, la configuration de base est la suivante :

uv venv --python 3.12 --seed
source .venv/bin/activate
UV_TORCH_BACKEND=cu126 uv pip install fastvideo

Pour CUDA 13, utilisez UV_TORCH_BACKEND=cu130 à la place. Les guides d'installation spécifiques à chaque plateforme sont importants, car FastVideo dépend de noyaux compilés et les différents backends d'attention peuvent avoir des exigences de compatibilité différentes.

Sur Apple Silicon, installez les extras MLX et utilisez un checkpoint FastMetal-QAD :

uv pip install -e '.[mlx]'

Les modèles FastMetal-QAD disponibles comprennent des variantes de 1.3B, 5B et 14B optimisées pour le matériel Mac. Après l'installation, téléchargez FastVideo/FastMetal-1.3B-QAD ou un autre checkpoint pris en charge, puis suivez le guide Apple Silicon.

Les systèmes NVIDIA DGX Spark nécessitent une approche différente. Comme il n'existe pas de wheel ARM précompilée pour le noyau CUDA de FastVideo, le package doit être installé depuis les sources :

UV_TORCH_BACKEND=cu130 uv pip install -e .

Cette commande compile localement le noyau pour l'environnement ARM64. Une wheel FlashAttention ARM64 précompilée compatible est disponible séparément.

Lancer une première génération

Une fois l'environnement et les noyaux VSA installés, un exemple Python minimal peut générer une vidéo avec l'API VideoGenerator :

import os

from fastvideo import VideoGenerator


def main():
    os.environ["FASTVIDEO_ATTENTION_BACKEND"] = "VIDEO_SPARSE_ATTN"

    generator = VideoGenerator.from_pretrained(
        "FastVideo/FastWan2.1-T2V-1.3B-Diffusers",
        num_gpus=1,
    )

    prompt = (
        "A curious raccoon peers through a vibrant field of yellow sunflowers, "
        "its eyes wide with interest."
    )

    generator.generate_video(
        prompt,
        output_path="my_videos/",
        save_video=True,
    )


if __name__ == "__main__":
    main()

Lancez-le avec :

python example.py

Le paramètre FASTVIDEO_ATTENTION_BACKEND sélectionne le backend d'attention vidéo parcimonieuse. Le paramètre num_gpus peut être ajusté en fonction du matériel disponible, tandis que output_path contrôle l'emplacement d'écriture des fichiers générés. Pour une utilisation en production, le guide de démarrage rapide de l'inférence et le cookbook des familles de modèles proposent des options de configuration plus détaillées.

Exemples de distillation et de performances

Les travaux d'optimisation de FastVideo sont particulièrement pertinents lorsqu'un modèle doit produire des clips courts avec une faible latence. Le projet indique que FastWan-QAD peut générer cinq secondes de vidéo en 1,8 seconde de bout en bout. Un autre workflow présenté crée une vidéo 1080p de cinq secondes en 4,5 secondes sur un seul GPU.

Le dépôt comprend des recettes de distillation parcimonieuse pour plusieurs familles de modèles. Par exemple, la recette FastWan2.1-T2V-1.3B utilise le jeu de données FastVideo Synthetic Wan2.1 480P, tandis que la recette FastWan2.2-TI2V-5B utilise le jeu de données FastVideo Synthetic Wan2.2 720P.

Ces exemples illustrent le principe central de conception du framework : les gains de latence proviennent de la combinaison de techniques au niveau du modèle et au niveau des systèmes. La distillation étape par étape réduit le nombre d'itérations de débruitage, l'attention parcimonieuse réduit le coût de chaque itération et l'exécution distribuée rend les charges de travail plus importantes accessibles.

FastVideo dans l'écosystème élargi

Le framework est également devenu une base pour des projets de recherche et de production connexes. La fonctionnalité d'inférence par diffusion de SGLang repose sur un fork de FastVideo datant du 24 septembre 2025. Parmi les autres projets basés sur le framework ou qui lui sont liés figurent DanceGRPO, SRPO, DCM, HY-WorldPlay, Hunyuan Video 1.5, Kandinsky-5.0 et LongCat Video.

Cet écosystème est important pour les développeurs qui choisissent une stack d'inférence. FastVideo n'est pas limité à un seul checkpoint ou à une seule application. Ses abstractions couvrent l'entraînement, l'évaluation, l'inférence, les noyaux spécifiques au matériel et le déploiement applicatif, ce qui le rend adapté aussi bien à l'expérimentation de nouvelles méthodes d'optimisation qu'à la création de produits de génération vidéo.

Quand l'utiliser

FastVideo est un choix solide lorsque vous devez affiner un modèle vidéo ouvert, réduire le nombre d'étapes d'un modèle de diffusion, déployer une attention parcimonieuse ou créer un service de génération à faible latence. Il est particulièrement utile pour les équipes qui souhaitent conserver un lien étroit entre le code de recherche et celui du déploiement.

Les principaux prérequis sont l'accès à un matériel compatible, une bonne connaissance de PyTorch et des modèles de diffusion, ainsi que la volonté de suivre les instructions d'installation propres à chaque plateforme. Les noyaux CUDA compilés et les hypothèses propres aux modèles impliquent qu'une installation générique du package peut ne pas suffire sur toutes les machines.

Pour les développeurs qui travaillent sur la génération vidéo en temps réel, la combinaison de DMD2, VSA, du parallélisme de séquence et des runtimes spécifiques au matériel fait de FastVideo bien plus qu'une simple démonstration de modèle. Il s'agit d'une boîte à outils d'ingénierie pour faire passer la génération vidéo d'une expérience hors ligne à un système interactif.

Source

hao-ai-lab/FastVideo : un framework unifié d'inférence et de post-entraînement pour accélérer la génération vidéo.