SDNQ add RuntimeError for post-load quantizing a pre-quant

This commit is contained in:
Disty0
2026-06-07 17:51:48 +03:00
parent 809f24aa13
commit f0c93defb8
2 changed files with 13 additions and 2 deletions
+1 -1
View File
@@ -129,7 +129,7 @@ def load_sdnq_model(model_path: str, model_cls: ModelMixin | None = None, file_n
model_config.pop("quantization_config", None)
model = model_cls(**model_config)
model = sdnq_post_load_quant(model, torch_dtype=dtype, add_skip_keys=False, use_dynamic_quantization=False, **get_quant_args_from_config(quantization_config))
model = sdnq_post_load_quant(model, torch_dtype=dtype, pre_quantized=True, **get_quant_args_from_config(quantization_config))
key_mapping = getattr(model, "_checkpoint_conversion_mapping", None)
files = []
+12 -1
View File
@@ -469,7 +469,18 @@ def sdnq_post_load_quant(
quantization_device: torch.device | None = None,
return_device: torch.device | None = None,
torch_dtype: torch.dtype | None = None,
pre_quantized: bool = False,
):
if pre_quantized:
add_skip_keys = False
use_dynamic_quantization = False
elif (
hasattr(model, "quantization_config")
or (hasattr(model, "config") and hasattr(model.config, "quantization_config"))
or (hasattr(model, "config") and isinstance(model.config, dict) and "quantization_config" in model.config)
):
raise RuntimeError("Quantizing a pre-quantized model is not supported!")
quantization_config = SDNQConfig(
weights_dtype=weights_dtype,
quantized_matmul_dtype=quantized_matmul_dtype,
@@ -669,7 +680,7 @@ class SDNQQuantizer(DiffusersQuantizer, HfQuantizer):
self.quantization_config.add_skip_keys = False
with init_empty_weights():
model = sdnq_post_load_quant(model, torch_dtype=self.torch_dtype, add_skip_keys=False, use_dynamic_quantization=False, **get_quant_args_from_config(self.quantization_config))
model = sdnq_post_load_quant(model, torch_dtype=self.torch_dtype, pre_quantized=True, **get_quant_args_from_config(self.quantization_config))
if self.quantization_config.add_skip_keys:
if keep_in_fp32_modules is not None: