ComfyUI ajoute l'attention clairsemée et le Compilateur Comfy
L'attention clairsemée par blocs arrive au cœur de ComfyUI avec trois backends pour MiniMax H3, plus un compilateur mémoire qui réduit l'usage VRAM et accélère les rendus longs.
Attention clairsemée par blocs : un nœud, trois backends
Le nouveau nœud Attention clairsemée par blocs (catégorie advanced/model, marqué expérimental) se trouve dans comfy_extras/nodes_sparse_attention.py et route chaque bloc de requête vers uniquement un sous-ensemble sélectionné de blocs clés. L'accélération relative augmente avec la longueur de la séquence, ce qui correspond exactement au régime des clips H3 de 10 secondes. Une garde min_tokens garde les séquences courtes denses automatiquement.
Trois modes de sélection sont livrés dans le même nœud :
- Sol-Attn (tau adaptatif) : un seuil adaptatif par tête dans les sigmas de distribution de score.
tau1.0 garde environ 16 % des blocs clés exacts, 1.5 environ 7 %, et 2.0 environ 2,7 %. C'est le mode qui fonctionne sans poids spécialement entraînés. - top-k (SLA) : un
keep_percentfixe de blocs clés partout. Cela correspond à ce contre quoi les LoRAs turbo style SLA lightx2v sont distillées, donc il est recommandé seulement avec ces poids entraînés. - VSA (FastVideo) : tuilage de cubes avec une branche de compression grossière, correspondant à la configuration d'entraînement FastH3-VSA à un taux de conservation de 10 %. Il utilise les calques
to_gate_compressdu modèle lorsqu'ils sont présents.
Une fenêtre de planification (start_percent / end_percent, défaut 0,2 à 1,0) garde les étapes de débruitage précoces denses, et deux options avancées spécifiques à H3 gèrent le conditionnement : sink_conditioning assiste les lignes texte/audio/référence packées exactement (~3 % de coût) afin que les invites et l'audio ne se dégradent pas, et extra_tokens ajoute les tokens à score élevé au-delà des blocs sélectionnés pour rester plus proche du dense.
Jusqu'à présent, cette fonctionnalité n'existait que sous forme de paquets de nœuds communautaires séparés, et les tests communautaires avaient montré que la LoRA seule ne fait rien sans un backend clairsemé correspondant. Le nœud central consolide les trois approches derrière une seule interface, donc un seul flux de travail peut basculer entre Sol-Attn, SLA et VSA en changeant une liste déroulante.
Le benchmark du Compilateur Comfy issu du PR #15861 : MiniMax H3 720p à 158 images sur une RTX 5060 montre une empreinte VRAM stable et un taux d'itération beaucoup plus élevé une fois le compilateur mémoire actif.
Compilateur Comfy : moins d'allocations, étapes plus rapides
Le Compilateur Comfy (PR #15861) est un processus de compilation à deux couches :
- Le compilateur mémoire aimdo (dans comfy-aimdo 0.5.0) calcule et minimise les allocations mémoire à l'avance, réduisant les appels d'allocation CUDA à une configuration unique et gardant la mémoire d'inférence stable et constante. Selon le PR, cela supprime le brassage de l'allocation et la course entre la pression dynamique-VRAM et les nombres rapportés par CUDA, et il garantit que le pic physique VRAM correspond au pic d'allocation logique au lieu de laisser les allocations libérées traîner dans le cache.
- Couche graphiques CUDA au-dessus. Les adresses virtuelles stables produites par le compilateur mémoire sont ce qui rend l'enregistrement du graphique sûr ; la synchronisation est seulement nécessaire sur le premier bloc transformateur.
L'effet pratique se voit dans les benchmarks du PR : une exécution MiniMax H3 720p 158 images sur une RTX 5060 qui précédemment bloquait sans progression d'itération s'achève à environ 43 secondes par étape après le changement, et l'échantillonnage MiniMax Music 3 AR gagne environ 35 % de débit d'étapes sur la même carte.
Tous les modèles qui utilisent le préchargeur plus MiniMax H3 sont convertis dans la fusion initiale. WAN est répertorié comme travail futur, ce qui augmenterait ses tailles de génération réalisables de la même manière.
Avant : l'exécution H3 prépare 19,9 Go de poids échelonnés puis devient silencieuse pendant plusieurs minutes. Après le changement, la même exécution montre une progression régulière par étape.
L'inconvénient : OOM précoce et plantages d'annulation
Les tests communautaires dans le Discord Banodoco ont signalé deux problèmes dans les premiers jours. Les exécutions clairsemées peuvent OOM lorsque le Compilateur Comfy est également actif, et annuler une exécution tandis que le nœud clairsemé est chargé peut planter ComfyUI. Un commit de suivi (#16148, "Pause comfy compiler for long lived sparse allocations") a déjà adressé l'interaction, et --disable-comfy-compiler reste disponible comme indicateur de repli. Le chemin de repli dense du nœud signifie que si une séquence tombe en dehors de la fenêtre de planification ou sous min_tokens, elle exécute simplement le backend dense normal sans rebranchement.
Disponibilité
Les deux fonctionnalités sont dans les versions actuelles de ComfyUI : le nœud Attention clairsemée par blocs nécessite comfy-kitchen 0.2.33 (déjà dans requirements.txt), et le Compilateur Comfy fait partie du cœur avec comfy-aimdo 0.5.2. Aucune étape d'installation supplémentaire n'est nécessaire sur les installations à jour ; les utilisateurs sur les flux de travail MiniMax H3 doivent juste déposer le nœud entre le chargeur de modèle et l'échantillonneur.
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.