From 0ee9ab032b17188b8acbe916cbe650d322c7227d Mon Sep 17 00:00:00 2001 From: sukru tikves Date: Fri, 17 Jul 2026 14:02:07 -0700 Subject: [PATCH] Fix Flux quality: don't quantize text encoder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Flux text encoder (Qwen-based, 3B) was marked quantizable=True, causing it to be exported at INT4 when --compression 4bit is used. This degrades prompt adherence (cosine 0.9655 vs reference) because the conditioning signal loses semantic precision at 4-bit. Set quantizable=False for the Flux text encoder so it stays at f16 regardless of global compression setting. The transformer (4B) remains INT4 — it's quality-insensitive since it just predicts noise. Fixes #111. --- python/src/coreai_models/diffusion/components.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/src/coreai_models/diffusion/components.py b/python/src/coreai_models/diffusion/components.py index 871c2cb..ebcaa48 100644 --- a/python/src/coreai_models/diffusion/components.py +++ b/python/src/coreai_models/diffusion/components.py @@ -327,7 +327,7 @@ def _dummy_sd3_transformer(pipe: Any, batch_size: int = 2) -> tuple[torch.Tensor output_names=("hidden_states",), wrapper_fn=lambda p: Flux2TextEncoderWrapper(p.text_encoder), dummy_fn=dummy_flux2_text_encoder, - quantizable=True, + quantizable=False, ), "vae_decoder": ComponentSpec( asset_name="VAEDecoder",