Nœud personnalisé ComfyUI accélérant l’inférence de Z-Image de 20 à 30 %
(github.com/newgrit1004)Bonjour. Fort de l’intérêt que vous avez porté à mon précédent projet d’optimisation de noyaux Triton pour Qwen3-TTS, je partage aujourd’hui mon deuxième projet open source.
Il s’agit d’un nœud personnalisé ComfyUI qui accélère de 20 à 30 % l’inférence de Z-Image S3-DiT (6.15B), un modèle populaire de génération d’images qui enregistre plus de 3,6 millions de téléchargements mensuels sur HuggingFace.
1. Pourquoi l’avoir créé ? (contexte et caractéristiques)
Il existe déjà Nunchaku (SVDQuant) pour accélérer Z-Image, mais cet outil ne prend en charge que le modèle Z-Image « Turbo ». J’ai estimé qu’il fallait une solution d’accélération au niveau des noyaux pour le modèle Base.
De plus, du point de vue des utilisateurs, devoir retélécharger de nouveaux modèles quantifiés de plusieurs dizaines de Go (GGUF, etc.) représente une lourde contrainte. J’ai donc fait en sorte que les modèles BF16 safetensors que vous utilisiez déjà puissent être quantifiés instantanément à l’exécution (On-the-fly Quantization) et utilisés tels quels.
- Installation en un clic via ComfyUI Manager ou simplement avec
pip install. (Pas de stress lié à une compilation CUDA personnalisée fastidieuse ni à la compatibilité des versions.) - Il suffit d’ajouter un seul nœud au workflow existant, avec une compatibilité parfaite avec LoRA et ControlNet.
2. Benchmarks de performance (RTX 5090, base 30 steps)
- T2I Baseline : 18.9s → Triton + INT8 : 15.3s (gain de vitesse de 1.24x)
- LoRA Baseline : 19.0s → LoRA + Triton + INT8 : 14.6s (gain de vitesse de 1.30x)
- Économie de VRAM : total de 23GB → 19.5GB (réduction d’environ 3.5GB)
3. Préservation de la qualité vérifiable visuellement (sans cherry-picking)
Lors du précédent projet TTS, il fallait télécharger et écouter directement les audios pour vérifier les résultats, ce qui était contraignant. Cette fois, la comparaison de qualité est immédiatement possible sur le web.
Aucun cherry-picking n’a été effectué pour la comparaison des performances. En raison de la fusion des noyaux et des caractéristiques de la quantification, de légères variations au niveau du pixel existent, mais la composition globale et la qualité des détails sont remarquablement bien préservées. Vous pouvez consulter directement les images comparatives d’origine pour tous les scénarios via le lien ci-dessous.
- Voir les résultats de benchmark : https://github.com/newgrit1004/ComfyUI-ZImage-Triton/…
4. Points d’ingénierie
Le code des noyaux de cette version aussi a largement bénéficié de l’aide de Claude Code, tandis que j’ai consacré toute mon énergie à des benchmarks rigoureux et à la validation de la qualité.
- Application de 6 noyaux fusionnés Triton (RMSNorm, SwiGLU, QK-Norm+RoPE, Norm+Gate+Residual, AdaLN, RoPE 3D)
- Maintien maximal de la qualité de quantification grâce à W8A8 + Hadamard Rotation (basé sur QuaRot / ConvRot, NeurIPS 2024), qui répartit les outliers
5. Annonce de mise à jour pour le projet précédent
Par ailleurs, le projet qwen3-tts-triton que j’avais publié précédemment sera bientôt porté lui aussi sous forme de nœud personnalisé ComfyUI. (mise à jour v0.2.0 : atténuation de l’articulation brouillée grâce à un hybride Triton+PyTorch, application de TurboQuant, remplacement de l’outil d’évaluation Cohere, etc.)
Les tests sont actuellement terminés dans mon environnement personnel (RTX 5090). Si vous l’essayez sur des GPU des séries 30/40 ou dans d’autres environnements, vos retours via les issues GitHub ou les commentaires me seraient d’une aide précieuse. Merci !
Aucun commentaire pour le moment.