4848from ...exporters .openvino .model_patcher import patch_model_with_bettertransformer
4949from ...exporters .openvino .stateful import ensure_export_task_support_stateful , ensure_stateful_is_available
5050from ..utils .constant import _TASK_ALIASES
51- from ..utils .import_utils import DATASETS_IMPORT_ERROR , is_datasets_available
51+ from ..utils .import_utils import DATASETS_IMPORT_ERROR , is_datasets_available , is_diffusers_available
5252from ..utils .modeling_utils import get_model_device
5353from .configuration import OVConfig , OVQuantizationConfig , OVQuantizationMethod , OVWeightQuantizationConfig
5454from .modeling_base import OVBaseModel
@@ -325,7 +325,8 @@ def _quantize_ovbasemodel(
325325 remove_unused_columns : bool = True ,
326326 ** kwargs ,
327327 ):
328- from optimum .intel .openvino .modeling_diffusion import OVStableDiffusionPipelineBase
328+ if is_diffusers_available ():
329+ from optimum .intel .openvino .modeling_diffusion import OVStableDiffusionPipelineBase
329330
330331 if save_directory is not None :
331332 save_directory = Path (save_directory )
@@ -335,7 +336,7 @@ def _quantize_ovbasemodel(
335336 if calibration_dataset is not None :
336337 # Process custom calibration dataset
337338
338- if isinstance (self .model , OVStableDiffusionPipelineBase ):
339+ if is_diffusers_available () and isinstance (self .model , OVStableDiffusionPipelineBase ):
339340 calibration_dataset = self ._prepare_unet_dataset (
340341 quantization_config .num_samples , dataset = calibration_dataset
341342 )
@@ -373,7 +374,7 @@ def _quantize_ovbasemodel(
373374
374375 if isinstance (self .model , OVModelForCausalLM ):
375376 calibration_dataset = self ._prepare_builtin_dataset (quantization_config )
376- elif isinstance (self .model , OVStableDiffusionPipelineBase ):
377+ elif is_diffusers_available () and isinstance (self .model , OVStableDiffusionPipelineBase ):
377378 calibration_dataset = self ._prepare_unet_dataset (
378379 quantization_config .num_samples , dataset_name = quantization_config .dataset
379380 )
@@ -385,7 +386,7 @@ def _quantize_ovbasemodel(
385386 if quantization_config .quant_method == OVQuantizationMethod .HYBRID :
386387 if calibration_dataset is None :
387388 raise ValueError ("Calibration dataset is required to run hybrid quantization." )
388- if isinstance (self .model , OVStableDiffusionPipelineBase ):
389+ if is_diffusers_available () and isinstance (self .model , OVStableDiffusionPipelineBase ):
389390 # Apply weight-only quantization to all SD submodels except UNet
390391 quantization_config_copy = copy .deepcopy (quantization_config )
391392 quantization_config_copy .dataset = None
0 commit comments