48
48
from ...exporters .openvino .model_patcher import patch_model_with_bettertransformer
49
49
from ...exporters .openvino .stateful import ensure_export_task_support_stateful , ensure_stateful_is_available
50
50
from ..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
52
52
from ..utils .modeling_utils import get_model_device
53
53
from .configuration import OVConfig , OVQuantizationConfig , OVQuantizationMethod , OVWeightQuantizationConfig
54
54
from .modeling_base import OVBaseModel
@@ -325,7 +325,8 @@ def _quantize_ovbasemodel(
325
325
remove_unused_columns : bool = True ,
326
326
** kwargs ,
327
327
):
328
- from optimum .intel .openvino .modeling_diffusion import OVStableDiffusionPipelineBase
328
+ if is_diffusers_available ():
329
+ from optimum .intel .openvino .modeling_diffusion import OVStableDiffusionPipelineBase
329
330
330
331
if save_directory is not None :
331
332
save_directory = Path (save_directory )
@@ -335,7 +336,7 @@ def _quantize_ovbasemodel(
335
336
if calibration_dataset is not None :
336
337
# Process custom calibration dataset
337
338
338
- if isinstance (self .model , OVStableDiffusionPipelineBase ):
339
+ if is_diffusers_available () and isinstance (self .model , OVStableDiffusionPipelineBase ):
339
340
calibration_dataset = self ._prepare_unet_dataset (
340
341
quantization_config .num_samples , dataset = calibration_dataset
341
342
)
@@ -373,7 +374,7 @@ def _quantize_ovbasemodel(
373
374
374
375
if isinstance (self .model , OVModelForCausalLM ):
375
376
calibration_dataset = self ._prepare_builtin_dataset (quantization_config )
376
- elif isinstance (self .model , OVStableDiffusionPipelineBase ):
377
+ elif is_diffusers_available () and isinstance (self .model , OVStableDiffusionPipelineBase ):
377
378
calibration_dataset = self ._prepare_unet_dataset (
378
379
quantization_config .num_samples , dataset_name = quantization_config .dataset
379
380
)
@@ -385,7 +386,7 @@ def _quantize_ovbasemodel(
385
386
if quantization_config .quant_method == OVQuantizationMethod .HYBRID :
386
387
if calibration_dataset is None :
387
388
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 ):
389
390
# Apply weight-only quantization to all SD submodels except UNet
390
391
quantization_config_copy = copy .deepcopy (quantization_config )
391
392
quantization_config_copy .dataset = None
0 commit comments