Viggle Turbo v0.3 : Qwen-Image 2.1 en 6 et 9 étapes dans ComfyUI

ComfyUI Wikinews

La distillation v0.3 de Qwen-Image 2.1 par Viggle ajoute un mode 9 étapes et fournit des nœuds, flux et poids fusionnés officiels pour ComfyUI, en génération et édition 6 étapes.

Viggle Turbo v0.3 (Hugging Face) est la nouvelle version de la distillation en quelques étapes de Qwen-Image 2.1 par Viggle : 6 étapes sans classifier-free guidance au lieu de 40, avec désormais un second mode 9 étapes qui redonne les deux dernières étapes au modèle de base. Le changement le plus important pour les utilisateurs de ComfyUI concerne le packaging : la v0.3 fournit ses propres nœuds personnalisés, flux de travail texte-vers-image et d'édition, et transformers fusionnés en fichier unique en int8, fp8 et GGUF, au lieu de laisser le portage à la communauté.
Un panorama équirectangulaire à 360 degrés généré à partir d'une seule photo avec Viggle Turbo v0.3

Un panorama équirectangulaire à 360 degrés construit à partir d'une seule photo en perspective, généré par la v0.3 en 9 étapes à 2176x1088. Source : onglet de comparaison du Space de démonstration de Viggle.

Ce que change la v0.3

La distillation elle-même est inchangée : un LoRA de rang 256 sur le transformer Qwen-Image 2.1 de base, échantillonné sur un planning sigma fixe avec true_cfg_scale=1.0 et sans prompt négatif. La v0.3 déplace l'équilibre plutôt que la méthode.

  • 6 étapes, réajustées. Par rapport à la v0.2.1, les résultats sont moins granuleux et plus propres sur les surfaces planes, avec une texture fine légèrement plus douce. Viggle précise explicitement qu'il ne s'agit pas d'une mise à niveau stricte : si vous préfériez le rendu plus net de la v0.2.1, cet adaptateur reste dans le référentiel.
  • Un nouveau mode 9 étapes. Sept étapes turbo, puis le LoRA est désactivé et le modèle de base non modifié termine les deux dernières. Le détail est plus fin et les petits textes rendus sont plus souvent corrects. Cela prend environ 1,4 à 1,5 fois plus de temps que 6 étapes, ce qui reste environ 3,5 fois plus rapide que le modèle de base en 40 étapes.
  • Un plafond annoncé. Viggle écrit que 6 étapes correspond à peu près à ce que cet élève peut faire : chaque gain trouvé depuis la v0.2.1 a sacrifié quelque chose, plus de netteté venant avec plus de grain et moins de grain venant avec un rendu plus doux. Au-delà de ce point, la qualité doit se payer en étapes, ce que fait le mode 9 étapes.

Le mode 9 étapes

Le chemin en 9 étapes n'est pas simplement un planning plus long. Le pipeline calcule les K/V de texte et de référence une seule fois et les réutilise ; les 7 étapes turbo remplissent ce cache, donc la première étape du modèle de base doit le recalculer avant que le LoRA soit désactivé et que le modèle de base prenne le relais. Dans diffusers, cela implique un callback d'étape et un wrapper autour du forward du transformer, tous deux montrés dans la carte du modèle :

SIGMAS_9 = [1.0, 0.9583, 0.9167, 0.875, 0.75, 0.5, 0.25, 1 / 6, 1 / 12]

Le planning en 6 étapes conserve les nœuds à faible bruit 0.875, 0.75, 0.5, 0.25 et ajoute des étapes uniquement du côté à bruit élevé : 5 étapes correspond à [1, 0.875, 0.75, 0.5, 0.25], 7 étapes à [1, 0.9583, 0.9167, 0.875, 0.75, 0.5, 0.25]. Déplacer les nœuds à faible bruit à la place rend les résultats plus doux, et passer un simple nombre d'étapes sans la liste de sigmas ne fonctionne pas.

9 étapes fonctionne actuellement uniquement dans diffusers et le Space de démonstration. Les flux de travail ComfyUI implémentent le planning à 6 étapes.

Prise en charge officielle de ComfyUI

C'est la partie que la v0.2 n'avait pas. La sortie inclut désormais un portage ComfyUI dans le dossier comfyui/ du référentiel de modèles, testé avec ComfyUI 0.37.0, qui prend en charge nativement Qwen-Image 2.1 :

  • viggle_turbo.py ajoute deux nœuds. Copiez-le dans ComfyUI/custom_nodes/ et redémarrez.
  • Viggle Turbo Sigmas fournit le planning en 6 étapes avec le décalage dépendant de la résolution du pipeline, à utiliser avec euler et BasicGuider au lieu d'un scheduler de KSampler, sans CFG et sans prompt négatif.
  • Viggle Turbo LoRA (unmerged) applique l'adaptateur à l'exécution comme le fait diffusers. Les chargeurs LoRA standards le fusionnent dans les poids, ce que Viggle mesure comme une perte d'environ 30 % de la mise à jour de cet adaptateur en bf16 et l'ajout de bruit en int8. Le nœud unmerged coûte 10 à 25 % de temps supplémentaire par étape.
  • Des flux de travail pour la génération texte-vers-image et l'édition, plus des variantes pour les poids fusionnés en fichier unique et pour GGUF.

Avec les valeurs par défaut int8, le LoRA r128 et l'améliorateur de prompt activés, les flux de travail atteignent un pic d'environ 26 Go de VRAM à 1248x832. La carte du modèle note aussi que le portage ComfyUI a été en grande partie écrit avec un assistant de codage IA, donc des aspérités sont attendues et les correctifs sont bienvenus.

Transformers fusionnés en fichier unique

Si vous préférez ne pas charger de LoRA du tout, la v0.3 fournit aussi le transformer de base avec l'adaptateur de rang 256 déjà fusionné en fp32 et quantifié une seule fois. Les fichiers vont dans models/diffusion_models/ ; les versions GGUF nécessitent ComfyUI-GGUF, et chaque chemin nécessite toujours Viggle Turbo Sigmas fourni par le nœud personnalisé. Seul le mode 6 étapes est disponible de cette façon.

FormatTailleChargeur ComfyUILPIPS v0.3LPIPS v0.2.1
GGUF Q8_07,7 GoUnet Loader (GGUF)0,0510,054
int8, recette convrot de Comfy-Org7,3 GoCharger Modèle Diffusion0,0570,060
GGUF Q6_K6,0 GoUnet Loader (GGUF)0,0550,067
fp8 e4m3fn, poids uniquement7,3 GoCharger Modèle Diffusion0,0680,070
GGUF Q5_K_M5,1 GoUnet Loader (GGUF)0,0760,083
GGUF Q4_K_M4,3 GoUnet Loader (GGUF)0,1000,118
int8 plus le LoRA r128 (les flux de travail LoRA)8,0 GoCharger Modèle Diffusion0,0410,044

LPIPS est la distance VGG moyenne mesurée par Viggle par rapport à diffusers exécutant le LoRA de rang 256, sur 96 requêtes mises de côté avec le même prompt, les mêmes entrées, la même graine et le même bruit ; plus la valeur est basse, plus c'est proche. Pour donner l'échelle, ComfyUI et diffusers diffèrent d'environ 0,03 à 0,04 sans LoRA chargé.

Les poids fusionnés sont proches du chemin LoRA, mais pas identiques. Sur environ 8 de ces 96 requêtes, la version fusionnée int8 ou Q8_0 aboutit à une composition ou une tenue différente, contre 3 à 5 pour le flux de travail LoRA. Q4_K_M dérive visiblement davantage, à 23 à 29 sur 96, et Viggle ne le recommande que lorsque rien de plus grand ne tient en mémoire.

Le modèle de base en 40 étapes face aux modes 6 et 9 étapes

Les exemples ci-dessous proviennent de l'onglet Comparison du Space de démonstration de Viggle. Chaque colonne utilise le même prompt, les mêmes entrées, la même graine et le même bruit.

Modèle de base en 40 étapesViggle Turbo v0.3 en 6 étapesViggle Turbo v0.3 en 9 étapes
Modèle de base, 40 étapesv0.3, 6 étapesv0.3, 9 étapes

Une référence de personnage transposée dans une scène de passerelle en mangrove à 1344x1760. Le résultat en 6 étapes est le plus propre des deux colonnes turbo ; 9 étapes ramène une partie de la texture fine.

Le mode 9 étapes vise les deux endroits où l'élève 6 étapes reste en retrait par rapport au modèle de base : le texte dense rendu et les petits détails. Une capture d'écran verticale d'application contenant beaucoup de petits textes d'interface à 1536x2720 constitue un test de résistance raisonnable, et l'onglet de comparaison en exécute un.

Modèle de base en 40 étapes sur une capture d'écran d'application denseViggle Turbo v0.3 en 9 étapes sur la même capture d'écran
Modèle de base, 40 étapesv0.3, 9 étapes

La distillation fonctionne aussi avec jusqu'à 3 images de référence dans diffusers, et le portrait de groupe à six images ci-dessous emprunte ce chemin : six identités, un prompt, un intérieur de bar.

Modèle de base en 40 étapes sur un portrait de groupe à six référencesViggle Turbo v0.3 en 6 étapes sur le même portrait de groupe
Modèle de base, 40 étapesv0.3, 6 étapes

Vitesse

Mêmes comparaisons, temps par image en secondes tels que rapportés dans le Space de démonstration :

CasRésolutionBase, 40 étapesv0.3, 6 étapesv0.3, 9 étapes
Portrait à partir d'une référence1344x176014,0 s2,9 s4,0 s
Portrait de groupe à six références1248x188825,8 s5,9 s8,8 s
Capture d'écran d'application dense1536x272026,9 s4,9 s6,8 s
Panorama à 360 degrés2176x108814,3 s2,9 s4,1 s

Ce qu'il ne fait toujours pas

La carte du modèle est inhabituellement directe au sujet de l'écart restant. Les modifications compliquées restent le point faible de l'élève : la composition multi-références, les échanges de visage et les instructions préservant l'identité peuvent produire des figures dupliquées ou fantômes et une dérive d'identité. Les textes rendus petits ou longs se brouillent plus souvent qu'avec le modèle de base, et 9 étapes aident sans corriger le problème. Les couleurs ressortent quelques pourcents moins saturées. La sortie 2K, la sortie RGBA, les modifications guidées par masque et les modifications avec plus de 3 références ne sont vérifiées qu'à l'œil sur l'onglet de comparaison, sans benchmark annoncé.

Commentaires

Connectez-vous avec GitHub pour rejoindre la discussion.

Chargement des commentaires…
Viggle Turbo v0.3 : Qwen-Image 2.1 en 6 et 9 étapes dans ComfyUI | ComfyUI Wiki