Views
No views yet
pip install -q "optimum-intel[openvino,diffusers]" torch transformers diffusers openvino nncf optimum-quanto1from diffusers import StableDiffusionPipeline, AutoencoderKL, UNet2DConditionModel, PNDMScheduler
2from transformers import AutoTokenizer, CLIPTextModel, CLIPTokenizer
3from optimum.intel import OVStableDiffusionPipeline
4from optimum.intel import OVQuantizer, OVConfig, OVWeightQuantizationConfig
5import torch
6from nncf import CompressWeightsMode
7import os1model_id = "danhtran2mind/ghibli-fine-tuned-sd-2.1"
2device = "cuda" if torch.cuda.is_available() else "cpu"
3dtype = torch.float16 if torch.cuda.is_available() else torch.float32
4
5# Load and export the model to OpenVINO format
6pipeline = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=dtype)1# Export to OpenVINO format without quantization
2ov_pipeline = OVStableDiffusionPipeline.from_pretrained(
3 model_id,
4 export=True,
5 compile=False,
6 load_in_8bit=False, # Explicitly disable 8-bit quantization
7 load_in_4bit=False, # Explicitly disable 4-bit quantization
8 torch_dtype=dtype
9)1# Define INT4 quantization configuration
2ov_weight_config_int4 = OVWeightQuantizationConfig(
3 weight_only=True,
4 mode=CompressWeightsMode.INT4_ASYM, # Use enum for asymmetric INT4
5 group_size=64,
6 ratio=0.9 # 90% INT4, 10% INT8
7)
8ov_config_int4 = OVConfig(quantization_config=ov_weight_config_int4)1# Create Quantization Directory
2save_dir_int4 = "ghibli_sd_int4"
3os.makedirs(save_dir_int4, exist_ok=True)
4
5quantizer = OVQuantizer.from_pretrained(ov_pipeline, task="stable-diffusion")
6
7# Quantize the model
8quantizer.quantize(ov_config=ov_config_int4, save_directory=save_dir_int4)
9
10# Save scheduler and tokenizer
11pipeline.scheduler.save_pretrained(save_dir_int4)
12pipeline.tokenizer.save_pretrained(save_dir_int4)pip install -q "optimum-intel[openvino,diffusers]" openvino1import torch
2from optimum.intel import OVStableDiffusionPipeline1device = "cuda" if torch.cuda.is_available() else "cpu"
2
3pipe = OVStableDiffusionPipeline.from_pretrained("danhtran2mind/ghibli-fine-tuned-sd-2.1-int4")
4pipe.to(device)