Z-Image Turbo is a distilled version of Z-Image, a 6B image model based on the Lumina architecture, developed by the Tongyi Lab team at Alibaba Group. Source: https://huggingface.co/Tongyi-MAI/Z-Image-Turbo
I've uploaded quantized versions, meaning the weights had their precision - and consequently their size - slashed for a substantial performance boost while keeping most of the quality. Inference time should be similar to regular "undistilled" SDXL, with better prompt adherence and resolution/details. Ideal for weak(er) PCs.
Credits to those who originally uploaded the models to HF:
Features
Lightweight: the Turbo version was trained at low steps (5-15), and the fp8 quantization is roughly 6 GB in size, making it accessible even to low-end GPUs.
Uncensored: many concepts censored by other models (<cough> Flux <cough>) are doable out of the box.
Good prompt adherence: comparable to Flux.1 Dev's, thanks to its powerful text encoder Qwen 3 4B.
Text rendering: comparable to Flux.1 Dev's, some say it's even better despite being much smaller (probably not as good as Qwen Image's though).
Style flexibility: photorealistic images are its biggest strength, but it can do anime, oil painting, pixel art, low poly, comics, watercolor, vector art / flat design, comic book, pencil sketch, pop art, infographic, etc.
High resolution: capable of generating up to 4MP resolution natively (i.e. before upscale) while maintaining coherence.
Dependencies
Download Qwen 3 4B to your
text_encodersdirectory: https://civarchive.com/models/2169712?modelVersionId=2474529Download Flux VAE to your
vaedirectory: https://huggingface.co/Comfy-Org/z_image_turbo/blob/main/split_files/vae/ae.safetensorsIf using the SVDQ quantization, see "About SVDQ / Nunchaku" session below.
Example:
- 📂 ComfyUI
- 📂 models
- 📂 diffusion_models
- z-image-turbo_fp8_scaled_e4m3fn_KJ.safetensors
- 📂 text_encoders
- qwen3_4b_fp8_scaled.safetensors
- 📂 vae
- FLUX1/ae.safetensorsInstructions
Workflow and metadata are available in the showcase images.
Steps: 5 - 15 (6 - 11 is the sweet spot)
CFG: 1.0. This will ignore negative prompts, so no need for them.
Sampler/scheduler: depends on the art style. Here are my findings so far:
Photorealistic:
Favourite combination for the base image:
euler+beta,simpleorbong_tangent(from RES4LYF) - fast and good even at low (5) steps.Most multistep samplers (e.g.:
res_2s,res_2m,dpmpp_2m_sdeetc) are great, but some will be 40% slower at same steps. They might work better with a scheduler likesgm_uniform.Almost any sampler will work fine -
sa_solver,seeds_2,er_sde,gradient_estimation.Some samplers and schedulers add too much texture, you can adjust it by increasing the shift (e.g.: set shift 7 in ComfyUI's
ModelSamplingAuraFlownode).Keep in mind that some schedulers (e.g.:
bong_tangent) may override the shift with its own.
Some require more steps (e.g.:
karras)
Illustrations (e.g.: anime):
res_2morrk_betaproduce sharper and more colourful results.
Other styles:
I'm still experimenting. Use
euler(orres_2m) +simplejust to be safe for now.
Resolution: up to 4MP native. Avoid going higher than 2048. When in doubt, use same as SDXL, Flux.1, Qwen Image, etc (it works even as low as 512px, like SD 1.5 times). Some examples:
896 x 1152
1024 x 1024
1216 x 832
1440 x 1440
1024 x 1536
2048 x 2048 (risky, might get artifacts in the corners)
Upscale and/or detailers are recommended to fix smaller details like eyes, teeth, hair. See my workflow embedded in the main cover image.
If going over 2048px in either side, I recommend the tiled upscale method i.e. using UltimateSD Upscale at low denoise (<= 0.3).
Otherwise, I recommend your 2nd pass KSampler to either have a low denoise (< 0.3) or to start the sampling at a later step (e.g.: from 5 to 9 steps).
At this stage, you may use even samplers that didn't work well in the initial generation. For most cases, I like the
res_2m+simplecombination.
Prompting: long and detailed prompts in natural language are the official recommendation, but I tested it with comma-separated keywords/tags, JSON, whatever... either should work fine. Keep it in English or Mandarin for more accurate results.
About SVDQ / Nunchaku
Dependencies
SVDQ is a special quantization format - in the same category as SDNQ, nf4, GGUF -, meaning that you must use it through special loaders.
My advice is to install nunchaku in ComfyUI, but so far that only works on RTX GPUs.
I've uploaded the int4 version, which is compatible with RTX2xxx - RTX4xxx. For RTX5xxx and above, download the fp4 version instead - though the quality hit might not be worth the negligible speed boost for this architecture.
Also, your environment must have a specific python and pytorch versions for it to work. The official documentation should guide you through the requirements, but here's the gist of it (always check the official docs first, as they should be more up-to-date):
Install the latest version of ComfyUI-nunchaku nodes, then restart ComfyUI;
Create an empty workflow, then add the node
Nunchaku Installer;Change
modetoupdate node, connect the output to aPreview as Text, then run the workflow.Refresh your ComfyUI page (hit
F5or similar in your browser)Back to the same workflow, change the parameters to:
version: the latest possible.dev_version:none(unless you want to test unstable features, only recommended if you know what you're doing).mode:install
Run the workflow. If you get a successful response, simply restart your ComfyUI.
Otherwise, if you get an error, it means your python environment doesn't meet the requirements.
Go to the release that matches the version you're trying to install (e.g.: v1.2.0), then make sure that one of the wheel files match your environment. For instance, the wheel
nunchaku-1.2.0+torch2.8-cp11-cp11-win_amd64.whlmeans:nunchaku-1.2.0= Nunchaku version, must match the one you selected previously in the install node.torch2.8= pytorch version 2.8.xcp311-cp311= python version 3.11.xwin_amd64= the Windows operating system.
Most of the time, you just need to update your CUDA and/or pytorch:
Inside ComfyUI, press
Ctrl + ,to open the Settings, then go to About and check your Pytorch Version. For instance,2.7.0+cu126means version 2.7.0 and CUDA 12.6.I recommend to update to the minimal stable version, something like
2.9.0+cu128.Run one of the commands from here in your Python environment.
If using ComfyUI portable, go to
python_embeded, then run the command e.g.:.\python.exe -m pip install torch==2.9.0 torchvision==0.24.0 torchaudio==2.9.0 --index-url https://download.pytorch.org/whl/cu128If it fails, you might need to update your NVIDIA driver first, then your CUDA toolkit.
Restart ComfyUI.
Performance boost and trade-offs
In my RTX3080 Mobile (8GB VRAM), images are generated 2x-3x faster compared to fp8 scaled, however, there are trade offs:
Slight quality drop: since the model was already quite small before the quantization, the quality hit seems more noticeable than bigger models (Qwen Image, Flux.1 Dev, etc) in the same format. Details are a bit more distorted than usual, and coherence might be compromised in complex scenes - both might be considered negligible in some cases. I've provided comparisons for you to reach your own conclusions.
Non-deterministic generation: nunchaku generations are non deterministic / non reproducible, even if you reuse the same workflow and seed. I.e. getting back to a previous seed will likely result in a different image, so keep that in mind.
Temporary LoRA issues: nunchaku v1.1.0 is failing to load LoRAs, but this should be fixed soon since there's already a PR in progress with the solution.
ZIT SVDQ is still quite useful in my opinion, specially for testing prompts fast, for a quick txt2img before upscaling, or for upscaling an image generated with higher precision.
The Nunchaku team quantized the model in 3 different rankings: r32, r128 and r256. The lower the ranking, the smaller the file is, but also the lower the quality. In my tests, the only ranking I consider worth it is r256 (the one I offer here).
FAQ
Is the model uncensored?
Yes, it might just not be well trained on the specific concept you're after. Try it yourself.
Why do I get too much texture or artifacts after upscaling?
See instructions about upscaling above.
Does it run on my PC?
If you can run SDXL, chances are you can run Z-Image Turbo fp8. If not, might be a good time to purchase more RAM or VRAM.
All my images were generated on a laptop with 32GB RAM, RTX3080 Mobile 8GB VRAM.
How can I get more variation across seeds?
Start at late step (e.g.: from 3 til 11); or
Give clear instructions in prompt, something like
give me a random variation of the following image: <your prompt>)
I'm getting an error on ComfyUI, how to fix it?
Make sure your ComfyUI has been updated to the latest version. Otherwise, feel free to post a comment with the error message so the community can help.
Is the license permissive?
It's Apache 2.0, so quite permissive.
How to use the SVDQ format?
See the "About SVDQ / Nunchaku" section above.
Video tutorial
Original voiced in Brazilian Portuguese, other languages available through YouTube's auto dub AI.
Description
This is a fp8_e4m3fn scaled quantization, in which the dynamic range of the weights are supposed to be more optimal, resulting in slightly better quality than normal fp8.
Almost same size as SDXL, while some say it could be as good as (or even better than) heavier models such as Flux.1 and Qwen Image.
Credits to Kijai on huggingface.
FAQ
Comments (76)
This has become my favorite model, incredible quality for its size!
Answering important questions!
EDIT: LoRas dont work with fp8_Scaled_E4m3fn_KJ model, gives distorted images.
For those who using forge neo, use lumina ui preset, Shift 3-6 other settings the same (cfg 1, 8 steps etc)
1. On my 3080 (12 GB), generation takes 12 sec with Euler beta, 896×1152, 8 steps.
2. Works in WebUI Forge - Neo (https://github.com/Haoming02/sd-webui-forge-classic/tree/neo). I use Flux ui preset.
3. It’s not heavily censored—just add something like “nsfw, erotic image” to your prompt. Breasts are okay; other areas aren’t handled very well, but it tries.
4. Prompt adherence is good, especially with text.
5. It can understand and generate text in different languages—I’ve tried English, Chinese, and Russian.
Overall, a great model—definitely better and faster than Flux. Just needs some fine-tuning, and we can goon ψ(`∇´)ψ
Thank you for this excellent info. I must still be doing something wrong because in Forge Neo it doesn't work, quickly returning "You do not have Gemma2 state dict!" and 'NoneType' object has no attribute 'is_webui_legacy_model'. I'm using the Flux Preset and in VAE/Text Encoder have ae.safetensors & qwen_3_4b.safetensors. Any guidance or suggestions?
@JazConPlay178 I’m not sure, as I haven’t encountered that problem. If you haven’t updated your WebUI, you need to do so, Z Image support was added only 3 days ago or so.
I can also share the models I used:
- From this page, I downloaded the fp8_e4m3fn model.
- For the VAE and text encoder, I used the files from this page: https://civitai.com/models/2168935/z-image
- But Flux ae works too
Guide on how to update Forge if you need it (also works the same way for Neo):
https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/329
@NekoYaSan Yup, git pull for Forge Neo fixed it.
有一个巨大的遗憾,就是这个模型不明白什么超级大的胸部,HUGE这种词语它认为的巨大,实际上是SDXL里面的BIG级别而已,很遗憾。
@stardv 是啊,我懂你的感受。不过我们只能再等等——等基础模型(base model)正式发布后,“HUGE”这个概念就会被整合进去。
There was a problem loading CLIP. And not only on this model, but also on the FP16.
1. Updated ComfyUI?
2. Load clip type: lumina2
What qwk said. Otherwise, please post the exact error message here and we can help.
I was getting the same error,but upgrading ComfyUI to the latest version fixed it.
update comfyui to 3.75
It was the latest version of Comfi. I deleted the folder and reinstalled it. Everything works.
What is the difference between the one ending in KJ and the first one?
I mention it in the About this version section:
This is a fp8_e4m3fn scaled quantization, in which the dynamic range of the weights are supposed to be more optimal, resulting in slightly better quality than normal fp8.
So in summary, the numbers inside the model are scaled differently, and in theory the quality should be closer to heavier versions of the model (e.g.: bf16).
The "KJ" in the name is because the file was quantized by kijai, a legend in our community.
it is not possible to download from this site... it would be nice to create a mirror copy of this file elsewhere, or even better, right here on Civitai.com
I just tested the download link and it's working for me. What do you mean it's not possible? Your provider is blocking it? Regardless, I'll add the backup link from Civitai just in case. Thanks
@SimplesmenteIA it's hard to say what's going on, I can open the site, I can get a link, I can start downloading the file, but after a couple of seconds the speed drops to zero and nothing else is swinging....
@GeCo Weird indeed, hopefully the mirror link will be useful in this case then, thanks for pointing it out.
I can't get the text encoder provided to work with your z-image quantized model. I updated everything in Comfyui so I'm not sure what the problem is. I see others have been able to get it working but I'm having no luck, even with your workflow. This is the error I'm receiving: "Error(s) in loading state_dict for Llama2: size mismatch for model.embed_tokens.weight: copying a param with shape torch.Size([151936, 2560]) from checkpoint, the shape in current model is torch.Size([128256, 4096])." (that's just the first line, out of over 100 that are similar in the error). Any ideas what's wrong?
In your Load CLIP node, have you set type to lumina2?
I just had the exact same issue (even though I set the type to lumina2 in the Load CLIP node). However, I updated all my nodes and ComfyUI and that solved it.
@SimplesmenteIA Thanks for the reply, yes, it's set correctly I'm still getting the error message. I'm going to try to update again. Wish me luck!
@deven3728468545 I'm going to try to update again, thanks for the reply
ok, I guess 2nd time is a charm, works fine now after updating again. Thanks!
@vortex19609341 cool, I'm glad you figured it out!
FP8 version of the Qwen3 textual encoder (if your PC freezes from the LLM)
https://huggingface.co/jiangchengchengNLP/qwen3-4b-fp8-scaled
Will it be possible to run this model in Stable diffusion reforge?
Probably, another user posted this in one of the comments:
It's a pruned model, meaning you need to download vae and text encoder manually.
If it's baked in, it says full model in file section.
Works in WebUI Forge - Neo https://github.com/Haoming02/sd-webui-forge-classic/tree/neo
It's the same as general Forge, but updated and supports nunchaku, qwen, wan 2.2 etc
@SimplesmenteIA Hi, any chance of a portable version somewhere? Each times I have issues installing with git...
@seeaiart430526 I don't use ReForge so I wouldn't know, but there is a portable version of ComfyUI.
is it just me or just the mode, pussy always looks weird when generating nude woman
Like most models before it (SDXL, Flux, Qwen, Wan), it seems that Z-Image wasn't trained too much on private parts. But since it's not a censored model, future LoRAs should be able to address this limitation.
@SimplesmenteIA hope so. This model is crazy good i think its lot better than flux
@Seii1 we need to use pussy detailing for now, self promotion: https://civitai.com/models/1659913/pussy-pubes-anus-detector-combined-segm
Hi, I have put the workflow into Comfy UI, and installed the needed models and put them to the right path inside Comfy UI, but always get the same execution error message for the three models the fp8 scaled and the qwen 3 4b and the VAE like: " value not in list: unet_name " model name" not in (), please can any one here explain this problem to me and what I have to do exactly, note: I made the update for Comfy UI.
After downloading the models, you need to refresh ComfyUI for it to recognise the new files. To do this, go to the menu > Edit > Refresh Node Definitions - or, in the worst case, simply refresh or restart ComfyUI. Then go to each model loader node (Unet, Clip, VAE) and select the downloaded file from the list.
@SimplesmenteIA Thank you, I am going to try this today, and see if it will work, but for the nodes and the model names inside the flow, here is the strange thing in which when I try to select the name from the list, it won't work and the hole node will freeze some time and the name of the model is disappears totally, so I restart comfy to try another way.
@soufianmassri74455 try to place main model to UNET folder, and place text_encoder model (qwen...) into Clip folder.
Awesome! but do you have a controlnet or something to be able to transpose a pose or something? I'm having an hard time with angles and canny or pose could fix that issue, thanks!
Yes, Alibaba released a ControlNet Union model a couple days ago: https://huggingface.co/alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union
@SimplesmenteIA Thanks, but I will wait for a Forge version and well, with how much vram and ram I have, I don't have much hope to make it work.
Thank you for this - very generous of you helping normies with low vram. Just starting to get results - amazing!
Glad I could be of some help (from one low vram normie to another lol)
I'm using illustrious with a WEBUI right now... the hell is a text encoder? I don't have a folder like that and why does it weigh so much? Do i really need both that and the checkpoint? Where is that text encoder folder?
A text encoder is a model that "interprets" your prompt. Like most SDXL models, Illustrious finetunes have about 2 GB of text encoders embedded in the checkpoint file so you don't need to download it separately.
Modern models (e.g.: Flux, Z-Image Turbo, etc) use more capable (and naturally heavier) text encoders, and usually they're downloaded separately. So yes, you need both the checkpoint, the text encoder and the VAE files.
It weights so much because it's a powerful text encoder that can understand you prompt very well, much better than Illustrious. If you're worried about file size, go with the fp8 version which is 50% lighter with marginal loss in quality.
Most UIs will have a folder where you can place text encoders downloaded from the Internet. Search for something like text_encoder or clip inside your models folder. Though I haven't used WebUI in ages, so not sure whether it supports Z-Image Turbo.
@SimplesmenteIA i see, thanks for the answer... I can't find any folder for the test encoder... I don't want to change my whole settings for another webUI, this is certainly annoying... Thanks for the help though
@kainnosgoth1988 I understand the frustration, but I think it's worth it to install a more modern UI (e.g.: SwarmUI, ComfyUI, ReForge) to experiment with Z-Image Turbo. You don't even need to download all your models again, since they all can be configured to load models from a shared folder.
However, ZIT is specialised in realistic images. If you're more into anime, maybe wait for upcoming finetunes.
Here is a AIO version: https://civitai.com/models/2173571/z-image-turbo-aio
But I can't promise you that it'll be compatible with A1111 due UI's outdated status (can give you "unknown model type" in console.
@mphobbit Thansk a lot, i'll try that one too soon!
My RTX 2080 Ti 11 GB seems to be struggling running this model, it can run it but takes 85 seconds for a 1024x1024 image on 8 steps, while SDXL on 30 steps would take 10 seconds. I am not sure if I am doing something wrong or it is a hardware limitation on my side.
I tested it on an RTX3080 Mobile 8GB VRAM and the same settings take around 30 seconds for both ZIT and SDXL. Are you using ComfyUI? I can take a look if you share your workflow, but almost sure it's a configuration issue.
It seems that the main problem is a LLM text encoder. It can even freeze the system for a while. The Unet is lightweight. Try FP8 quant for TE provided on this page or in my comment below.
@SimplesmenteIA I have tried both a clean installation of ComfyUI and WebUI Forge Neo.
In ComfyUI I use the workflow provided by Comfy, with the settings listed in this post.
In Forge Neo I set it to Lumina and use the settings from the post.
Both UI's have the same speed in generation for me.
@mphobbit I am using the qwen3_4b_fp8_scaled together with the zImageTurboQuantized_fp8ScaledE4m3fnKJ (and the ae VAE ofc).
I also tried the GGUF TE and the normal one, but seem to all give me the same generation times.
I do think my 11GB VRAM likely isn't the issue, but am probably overlooking something, or doing something wrong, or something is out-of-date, or simply the card is too old.
@Filolia probably it's about hardware, my friend with 2060 (8 gigs, also FP8 both checkpoint and TE) recieved around 180 secs on Comfy. Try also FLUX VAE instead vanilla, it twice lightweighted and its results not so far from vanilla.
I think 85 seconds is not bad for 2080ti. It has an older turing architecture, less CUDA cores, etc. Even if VRAM is not the issue, i would expect slower processing times than on 30x, 40x, and 50x GPUs
@darklibertad779 I think for now I will stay with SDXL models.
at least my GPU can run Z-image Turbo without issues (unlike FLUX) albeit a bit slow for my liking.
My takeaway from this is, it is time for an upgrade!
it's normal , old hardware has a hard time, i m doing 1200sec at 1600x2200 8steps on 1080ti with turbo q8, it also need more than 24 of ram, doing 1500x2000 on sdxl lora takes 400sec at 36steps
Well, I found my issue...
I was below the recommended Python version.
I updated to 3.11.9 as per the recommendation and now I generate images in 22 seconds on 1024x1024 and 8 steps.
This performance is about the same as SDXL for me.
@Filolia Good finding, thanks for sharing it!
got it working on forge neo but the checkpoint (maybe the encoder or vae) has to reload every time I change the prompt. Ideas?
Because Neo sucks, here's why
@qek i had that problem with normal forge and reforge aswell, I never tried neo. i thought its a forge thing. so I gave up and forced myself to learn comfy.
I use forge neo with z-image but I don't have this problem. I have installed forge neo using miniconda, not uv. OS: Linux Debian 13
@aimadness291 i have 8gb vram, 32gb ram. I got Oom. With gguf it gives some other error.
How'd you get it running in NEO? I'm getting 'Failed to recognize model type'
@Alienor_ You need to choose FLUX on the top and not the others and update to the latest version, it worked perfectly but I have some memory leak, hope it will be fixed (I just did the Nvidia Cuda thing on the Python executable).
updated ? whats new ?
They have uploaded the text encoder
@Seii1 I've added the text encoder (Qwen 3 4B) in fp8 scaled, which is half the size of the bf16 precision while having pretty much the same quality.
what is the difference from the standard z-image-turbo-fp8-e4m3fn?
In generated images no any differences.
No differences
@210881175 In fp8 scaled, the dynamic range of the weights are supposed to be more optimal, resulting in slightly better quality than normal fp8. Very negligible difference though, perhaps you can notice it more in complex images with text.
Again, thank you but I'm struggling with camera angle, especially, low angle, it just doesn't work. "top angle view" work perfectly for that angle, but for the opposite, worms eye view, low angle view, from below, view from below... Nothing work, it just show the subject dead front each time which is weird, because everything left, right, slightly from behind... everything is fine, but low, nope... Any idea ?
Yeah it depends a lot on how the images were captioned during training, sometimes you need to be very redundant in your prompts like: View from below the subject, worm’s-eye perspective, camera close to ground, looking up. Exaggerated scale, low-angle composition, emphasizing height and dominance of the subject
@SimplesmenteIA Thanks, will try that, it's a big hit and miss, sometimes, when I generate multiple at the same times, it shows 1 correct and the rest dead center, whatever I wrote. I need to keep seeds that does the job.







