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.
| Fichier | Taille |
|---|---|
| z_image_turbo-Q4_K_M.gguf | 4,6 Go |
| z_image_turbo-Q6_K.gguf | 5,5 Go |
| z_image_turbo-Q8_0.gguf | 6,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
| Quant | Taille | Pour qui |
|---|---|---|
| Q4_K_M | 4,6 Go | VRAM ou disque serrés ; exploration ; accepte que la même seed donne des variantes |
| Q6_K | 5,5 Go | le meilleur ratio : sortie quasi identique au Q8 sur les trois stress-tests |
| Q8_0 | 6,7 Go | fidé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