Where are the fp8 quants?

#13
by Shiza001 - opened

No more fp8 quants? This is starting to being ridiculous, now even the text encoder is unnecessary quantized as Int8 ConvRot. It would be great to have at least a fp8 version, because Int8 ConvRot is significantly slower on non blackwell or enterprise GPUs.

Comfyui team already tested int8 is the best for all GPU, old and new GPU. Please check previous blog. Or ask AI to verify / find this blog for you.

Shiza001 changed discussion status to closed
Shiza001 changed discussion status to open

Comfyui team already tested int8 is the best for all GPU, old and new GPU. Please check previous blog. Or ask AI to verify / find this blog for you.

Yes, all GPUs, except mine (and others)... How can you simply ignore this whole suggestion and say "Oh, they said it is better, so it's better! 🧠🔥". That's crazy... I have the same issue of these users: "https://huggingface.co/Comfy-Org/Qwen-Image-2.1/discussions/8#6ab172c779e657da3a84337b" and "https://github.com/Comfy-Org/ComfyUI/issues/16470". GGUF being significantly fast and better in output quality, so what do you really want to say? And plus, why even the text encoder is also in Int8 ConvRot? I searched for a good reason but this doesn't make sense, considering the fact that you need cu130 to archive the best of this quant "https://github.com/Comfy-Org/ComfyUI/issues/16470#issuecomment-5779280565". Edit: Nah, no problem with cuda 13.0, you actually just need a Blackwell GPU to get the best of Int8 ConvRot.

Until there are official ones: for the text encoder, Comfy-Org already has an fp8_scaled Qwen3-VL 8B in the Boogu-Image repo, and it's the same model as qwen3vl_8b_bf16 here (converting this repo's bf16 file gives the same tensors, apart from rounding ties in 0.05% of the FP8 values):
https://huggingface.co/Comfy-Org/Boogu-Image/blob/main/text_encoders/qwen3vl_8b_fp8_scaled.safetensors

For the diffusion model you can make one from the bf16 file, quantizing the same 192 layers as the int8 release:

pip install pytorch-precision-converter
precision-convert qwen_image_2.1_bf16.safetensors -p fp8_scaled --like https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/diffusion_models/qwen_image_2.1_int8_convrot.safetensors -o qwen_image_2.1_fp8_scaled.safetensors

I ran it: 14.23 GB became 7.25 GB in 33 seconds on a Mac CPU, with a 2.65% mean weight error in the FP8 layers, and current ComfyUI loads the file as Qwen-Image 2.1 with no missing keys. I haven't measured speed against int8 on GPUs, so I'd be curious how it compares on yours.
https://github.com/angelolamonaca/PyTorch-Precision-Converter (I'm the author.)

Until there are official ones: for the text encoder, Comfy-Org already has an fp8_scaled Qwen3-VL 8B in the Boogu-Image repo, and it's the same model as qwen3vl_8b_bf16 here (converting this repo's bf16 file gives the same tensors, apart from rounding ties in 0.05% of the FP8 values):
https://huggingface.co/Comfy-Org/Boogu-Image/blob/main/text_encoders/qwen3vl_8b_fp8_scaled.safetensors

For the diffusion model you can make one from the bf16 file, quantizing the same 192 layers as the int8 release:

pip install pytorch-precision-converter
precision-convert qwen_image_2.1_bf16.safetensors -p fp8_scaled --like https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/diffusion_models/qwen_image_2.1_int8_convrot.safetensors -o qwen_image_2.1_fp8_scaled.safetensors

I ran it: 14.23 GB became 7.25 GB in 33 seconds on a Mac CPU, with a 2.65% mean weight error in the FP8 layers, and current ComfyUI loads the file as Qwen-Image 2.1 with no missing keys. I haven't measured speed against int8 on GPUs, so I'd be curious how it compares on yours.
https://github.com/angelolamonaca/PyTorch-Precision-Converter (I'm the author.)

I appreciate your work, thanks! This can be helpful for another person with the exactly problem of mine. Int8 (standard) works faster than fp8 for me (Int8 convrot always performs slower on my T4, and that's the reason why I wanted a fp8 version of this text encoder and model). Anyway, I'm not playing with Qwen-Image 2.1 anymore (after I realized the fact that I need a bunch of LoRas and reference images, lol). I'm waiting for Krea 3 going open source now. Hope the best for this model.

Following up on the T4 note above: plain int8 (no ConvRot) is now in PyTorch Precision Converter 2.3.0, so you can make it from this repo's bf16 file, with the same 192 layers as the official int8 release:

pip install -U pytorch-precision-converter
precision-convert qwen_image_2.1_bf16.safetensors -p int8 --like https://huggingface.co/Comfy-Org/Qwen-Image-2.1/resolve/main/diffusion_models/qwen_image_2.1_int8_convrot.safetensors -o qwen_image_2.1_int8.safetensors

I ran it on the real file: 14.23 GB became 7.26 GB in 27 seconds on a Mac CPU, and ComfyUI 0.43 loads it as Qwen-Image 2.1 with no missing keys, all 192 layers in int8, with a 1.1% mean weight error (it needs ComfyUI v0.27.0 or newer).

I also measured what you saw on a T4, with MOSS-Image (1024², 25 steps): plain int8 took 98 s per image, Comfy-Org's int8_convrot 108 s, and fp8_scaled 678 s, no faster than bf16. So on a T4 I'd use this instead of the fp8_scaled file I suggested above. On the newer GPUs I tested (A10G, L40S, RTX PRO 6000), int8_convrot was faster.
Numbers and images: https://huggingface.co/datasets/anla1234-itachi/comfyui-quant-bench
(I'm the author of the converter: https://github.com/angelolamonaca/PyTorch-Precision-Converter)

Sign up or log in to comment