Spaces:
Runtime error
Runtime error
from pathlib import Path | |
from typing import Any | |
from optimum.intel.openvino import OVDiffusionPipeline | |
from optimum.intel.openvino.modeling_diffusion import ( | |
OVModelVae, | |
OVModelVaeDecoder, | |
OVModelVaeEncoder, | |
) | |
from backend.device import is_openvino_device | |
from backend.tiny_autoencoder import get_tiny_autoencoder_repo_id | |
from constants import DEVICE, LCM_DEFAULT_MODEL_OPENVINO | |
from paths import get_base_folder_name | |
if is_openvino_device(): | |
from huggingface_hub import snapshot_download | |
from optimum.intel.openvino.modeling_diffusion import ( | |
OVBaseModel, | |
OVStableDiffusionImg2ImgPipeline, | |
OVStableDiffusionPipeline, | |
OVStableDiffusionXLImg2ImgPipeline, | |
OVStableDiffusionXLPipeline, | |
) | |
def ov_load_tiny_autoencoder( | |
pipeline: Any, | |
use_local_model: bool = False, | |
): | |
taesd_dir = snapshot_download( | |
repo_id=get_tiny_autoencoder_repo_id(pipeline.__class__.__name__), | |
local_files_only=use_local_model, | |
) | |
vae_decoder = OVModelVaeDecoder( | |
model=OVBaseModel.load_model(f"{taesd_dir}/vae_decoder/openvino_model.xml"), | |
parent_pipeline=pipeline, | |
model_name="vae_decoder", | |
) | |
vae_encoder = OVModelVaeEncoder( | |
model=OVBaseModel.load_model(f"{taesd_dir}/vae_encoder/openvino_model.xml"), | |
parent_pipeline=pipeline, | |
model_name="vae_encoder", | |
) | |
pipeline.vae = OVModelVae( | |
decoder=vae_decoder, | |
encoder=vae_encoder, | |
) | |
pipeline.vae.config.scaling_factor = 1.0 | |
def get_ov_text_to_image_pipeline( | |
model_id: str = LCM_DEFAULT_MODEL_OPENVINO, | |
use_local_model: bool = False, | |
) -> Any: | |
if "xl" in get_base_folder_name(model_id).lower(): | |
pipeline = OVStableDiffusionXLPipeline.from_pretrained( | |
model_id, | |
local_files_only=use_local_model, | |
ov_config={"CACHE_DIR": ""}, | |
device=DEVICE.upper(), | |
) | |
else: | |
pipeline = OVStableDiffusionPipeline.from_pretrained( | |
model_id, | |
local_files_only=use_local_model, | |
ov_config={"CACHE_DIR": ""}, | |
device=DEVICE.upper(), | |
) | |
return pipeline | |
def get_ov_image_to_image_pipeline( | |
model_id: str = LCM_DEFAULT_MODEL_OPENVINO, | |
use_local_model: bool = False, | |
) -> Any: | |
if "xl" in get_base_folder_name(model_id).lower(): | |
pipeline = OVStableDiffusionXLImg2ImgPipeline.from_pretrained( | |
model_id, | |
local_files_only=use_local_model, | |
ov_config={"CACHE_DIR": ""}, | |
device=DEVICE.upper(), | |
) | |
else: | |
pipeline = OVStableDiffusionImg2ImgPipeline.from_pretrained( | |
model_id, | |
local_files_only=use_local_model, | |
ov_config={"CACHE_DIR": ""}, | |
device=DEVICE.upper(), | |
) | |
return pipeline | |
def get_ov_diffusion_pipeline( | |
model_id: str, | |
use_local_model: bool = False, | |
) -> Any: | |
pipeline = OVDiffusionPipeline.from_pretrained( | |
model_id, | |
local_files_only=use_local_model, | |
ov_config={"CACHE_DIR": ""}, | |
device=DEVICE.upper(), | |
) | |
return pipeline | |