Image du titre

Q4, Q6 ou Q8 : quel GGUF de Z-Image Turbo choisir ? Le benchmark en une commande

Q4, Q6 ou Q8 : quel GGUF de Z-Image Turbo choisir ? Le benchmark en une commande

Les quantifications GGUF de Z-Image Turbo font passer le modèle de 12 Go (BF16) à 4,6 Go (Q4_K_M).

Le fichier tient sur un SSD modeste, se télécharge trois fois plus vite et reste quantifié en VRAM. La question qui fâche : qu’est-ce que tu perds en qualité ? J’ai mesuré, avec une méthode que tu peux rejouer en une commande grâce à la grille X/Y/Z de crispz-studio.

Le matériel du test

  • crispz-studio : studio Z-Image 100 % local (txt2img, upscale, inpaint/outpaint, face detailer, grille X/Y/Z). Il charge les checkpoints BF16, GGUF, et même les builds FP8/INT8 « scaled » de CivitAI, dequantifiés à la volée.
  • Le modèle d’origine : Tongyi-MAI/Z-Image-Turbo (S3-DiT 6B, 8 steps, guidance 0).
  • Les GGUF : jayn7/Z-Image-Turbo-GGUF (Q3 à Q8, conversion ComfyUI-GGUF ; alternative : unsloth/Z-Image-Turbo-GGUF). Dépose les fichiers dans ton dossier checkpoints, crispz-studio les liste au démarrage.
FichierTaille
z_image_turbo-Q4_K_M.gguf4,6 Go
z_image_turbo-Q6_K.gguf5,5 Go
z_image_turbo-Q8_0.gguf6,7 Go

Machine du test : RTX 5090 (32 Go), rendus 1024×1024 en 8 steps, seed fixe 42.

La méthode : trois prompts qui cherchent la faille

Un benchmark de quantification se joue sur les points faibles connus : le micro-détail, les dégradés, les couleurs saturées. Trois portraits, un par point faible :

1. Texture de peau et lumière naturelle. Le bruit de quantification apparaît d’abord dans les pores et les poils fins.

close-up portrait of an elderly fisherman with deep wrinkles, white stubble and sun-weathered skin, visible pores and fine vellus hair on the cheekbones, soft diffused window light from the left, shallow depth of field with a blurred workshop background, muted earth-tone palette, catchlights in pale blue eyes, 85mm lens framing from the shoulders up

2. Contre-jour et basse lumière. Les longs dégradés d’ombre révèlent le banding.

low-light portrait of a young woman standing against a golden sunset backlight, rim light tracing individual flyaway hair strands, her face in soft shadow lit only by faint warm bounce light, smooth gradient from deep shadow to glowing edge, dust particles floating in the light beam, dark moody background, cinematic contrast, centered composition

3. Couleurs saturées et matières complexes. La dérive colorimétrique et les reflets spéculaires trahissent les quants agressifs.

portrait of a woman wearing an embroidered emerald silk sari with gold thread patterns, heavy antique gold jewelry with ruby stones catching sharp specular highlights, saturated jewel-tone palette against a deep red backdrop, hard key light from the upper right revealing fabric weave and metal engraving detail, medium shot, rich color depth

Même seed partout : sur une colonne donnée, la seule variable est la quantification.

La commande

La grille X/Y/Z de crispz-studio croise les deux axes : X = les 3 prompts (axe « Prompt », chaque valeur est un prompt complet, les guillemets protègent les virgules), Y = les 3 GGUF. Neuf rendus, un seul chargement par modèle, planche contact annotée à la fin :

.venv\Scripts\python.exe app.py --txt2img --seed 42 --gen-steps 8 \
  --xyz "Prompt=\"<prompt 1>\",\"<prompt 2>\",\"<prompt 3>\"" \
  --xyz "Checkpoint=z_image_turbo-Q4_K_M.gguf,z_image_turbo-Q6_K.gguf,z_image_turbo-Q8_0.gguf" \
  --save-mode local --output-dir out

Remplace les <prompt N> par les prompts ci-dessus. La même grille se construit dans l’interface : accordéon X/Y/Z grid, axe X = Prompt, axe Y = Checkpoint. Bonus depuis la 1.16 : les champs de valeurs proposent une autosuggestion après 3 caractères tapés (checkpoints, LoRA, wildcards), fini le copier-coller de noms de fichiers.

Douze minutes plus tard, la planche tombe dans out/xyz_<timestamp>/sheet.png : prompts en colonnes, quants en lignes.

Les résultats

Colonne 1 (peau). Les trois quants tiennent les pores, les rides et les poils de barbe. Aucun lissage, aucun bruit. Q6 et Q8 produisent des images quasi superposables ; Q4 change légèrement l’angle de la tête.

Colonne 2 (contre-jour). Zéro banding dans les dégradés, même en Q4. Le piège classique des quantifications agressives est ici déjoué par les trois fichiers.

Colonne 3 (bijoux). La colonne qui départage. L’émeraude, l’or et le rouge restent justes partout, mais le Q4 simplifie la parure : un ras-du-cou seul, là où Q6 et Q8 génèrent le ras-du-cou, le sautoir à pendentif et les boucles travaillées, avec des gravures métal plus fines.

Le point important : le Q4 produit une image de même qualité perçue, avec des choix de composition différents. L’erreur de quantification accumulée dévie la trajectoire du sampling, et le modèle « décide » autre chose. Reproductibilité réduite, qualité intacte.

Verdict

QuantTaillePour qui
Q4_K_M4,6 GoVRAM ou disque serrés ; exploration ; accepte que la même seed donne des variantes
Q6_K5,5 Gole meilleur ratio : sortie quasi identique au Q8 sur les trois stress-tests
Q8_06,7 Gofidélité maximale au modèle d’origine, 1,2 Go de plus pour un écart invisible ici

Mon choix au quotidien : Q6_K. Le Q8 reste la référence quand tu veux reproduire un rendu au pixel près.

Pour aller plus loin

  • crispz-studio charge aussi les checkpoints FP8 et INT8 « scaled » de CivitAI (dequant à la volée, y compris le format ConvRot de ComfyUI), les fine-tunes en bundle AIO, et applique la même grille X/Y/Z aux LoRA, samplers, steps et prompts.
  • Le dépôt, l’installation et le cheat sheet CLI : github.com/mikecastrodemaria/crispz-studio
  • La famille complète : crispz-krea (FLUX.1 Krea), crispz-qwen-edit (Qwen-Image/Edit), sur le même compte GitHub.

Les trois prompts sont libres de réutilisation : colle-les dans ta propre grille et compare tes quants.

Pas de commentaire

Publier un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.