Ref2VA VSA : nœud d'attention sparse pour le Ref2VA H3
Un nœud ComfyUI transpose le gate VSA de FastH3 sur MiniMax H3 Ref2VA: les tokens de référence restent denses, seules les tuiles vidéo sont élaguées.
Pourquoi Ref2VA est resté sur le planning dense
VSA (video sparse attention) regroupe les tokens vidéo en tuiles spatio-temporelles 3D et élague la plupart d'entre eux à chaque bloc, ce qui permet aux checkpoints FastH3 de réduire le coût de chaque passe avant du transformer. Le référence-vers-vidéo casse cette disposition : Ref2VA ajoute en préfixe des segments multimodaux dynamiques, les latents de l'image de référence, les latents de l'audio de référence et les tokens du prompt, avant la séquence vidéo générée.
Un tuilage naïf place des tokens de modalités différentes dans la même tuile, ce qui corrompt les masques de conditionnement et casse l'identité du personnage. Pour cette raison, la génération H3 basée sur une référence a continué d'utiliser la voie d'attention dense, tandis que le texte-vers-vidéo passait aux kernels sparse.
Le correctif d'attention à deux niveaux
Ref2VA VSA résout ce problème grâce à une disposition d'attention conçue sur mesure plutôt qu'à un nouveau checkpoint :
- Préfixe exempté du dense : le mappeur de géométrie isole les tokens du texte, de l'image de référence et de l'audio de référence dans des tuiles purement segmentaires, exemptées de l'élagage top-k. Les tokens de référence restent entièrement denses, de sorte que la fidélité de l'identité n'est pas sacrifiée au profit de la vitesse.
- Vidéo sparse uniquement : l'élagage top-k est appliqué strictement aux tuiles clés de la vidéo générée.
- Transplantation du gate : les 50 matrices de projection
to_gate_compressentraînées du checkpoint FastH3 VSA sont attachées aux blocs Ref2VA H3, puis le même kernel Sol/VSA en tuiles de 64 s'exécute sur le modèle corrigé.
L'image de référence utilisée pour les essais comparatifs de l'auteur.
L'auteur a publié des comparaisons à graine identique sur une seule machine, un seul prompt et une seule image de référence en 1344x768. Les deux colonnes utilisent la même référence de personnage :
![]() | ![]() |
|---|---|
| Ref2VA VSA : 4 étapes, 75 % de sparsité vidéo, environ 2,2x plus rapide | Video Delta Net (VDN-H3) : 8 étapes |
Par rapport au planning natif dense de H3, le dépôt annonce une accélération d'environ 9x, et d'environ 2,2x par rapport à la voie Video Delta Net, à 4 étapes contre 8.
Intégration dans un flux de travail
Résultat Ref2VA VSA en 4 étapes de l'auteur, en 1344x768.
Le nœud de correctif se place entre le chargeur de modèle et la chaîne d'échantillonnage :
UNETLoader (Ref2VA INT8)
-> LoraLoaderModelOnly (turbo 4-step LoRA, strength 1.0)
-> Ref2VAVSAGatePatch (fasth3_vsa_gate.safetensors, sparsity 0.75)
-> MiniMaxH3SigmaShift (shift_video 12, shift_audio 3)
-> BasicScheduler (steps 4) + BasicGuider -> SamplerCustomAdvanced (euler)Le nœud est livré sous FastH3/VSA et prend en entrée le modèle, un fichier safetensors de gate depuis models/loras/ et une valeur sparsity. La recette en 4 étapes du README utilise une sparsité de 0.75 avec le scheduler simple ; la description du nœud lui-même suggère de commencer entre 0.50 et 0.70 et de comparer avec la même graine dense avant d'aller plus haut. La même catégorie contient aussi FastH3 VSA-H3 Patch (tile64), le correctif texte-vers-vidéo d'origine, de sorte que les deux voies peuvent partager une seule installation.
Flux de travail
Le dépôt inclut également ref2va_vsa_4step_with_preview.json pour une passe d'aperçu UI plus légère et ref2va_vsa_4step_api.json au format API, ainsi que tools/extract_vsa_gate.py pour reconstruire fasth3_vsa_gate.safetensors à partir d'un checkpoint FastH3 VSA si vous en avez déjà un en local.
Disponibilité
Ref2VA VSA est un nœud personnalisé sous Apache-2.0. Clonez Kablex/ComfyUI-Ref2VA-VSA dans ComfyUI/custom_nodes, redémarrez, puis cherchez les nœuds sous FastH3/VSA. Il nécessite une version récente de ComfyUI avec le support de H3 et comfy-kitchen avec les primitives CUDA Sol-Attention, car le kernel sparse lui-même provient de ce package.


Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.