From 77fce3e8c804e1216fc47ffbe03e3b020974d546 Mon Sep 17 00:00:00 2001 From: Disty0 Date: Thu, 31 Aug 2023 12:58:39 +0300 Subject: [PATCH] Fix OpenVINO on Windows --- modules/intel/openvino/__init__.py | 7 ------- modules/processing_diffusers.py | 2 +- modules/sd_models.py | 13 +++++++++++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/modules/intel/openvino/__init__.py b/modules/intel/openvino/__init__.py index 4bf914d3d..0dea0706d 100644 --- a/modules/intel/openvino/__init__.py +++ b/modules/intel/openvino/__init__.py @@ -9,13 +9,6 @@ from torch.fx.experimental.proxy_tensor import make_fx from torch._inductor.compile_fx import compile_fx from hashlib import sha256 -class ModelState: - def __init__(self): - self.height = 512 - self.width = 512 - self.batch_size = 1 - self.first_pass = True - @register_backend @fake_tensor_unsupported def openvino_fx(subgraph, example_inputs): diff --git a/modules/processing_diffusers.py b/modules/processing_diffusers.py index 69089f717..8347f3c30 100644 --- a/modules/processing_diffusers.py +++ b/modules/processing_diffusers.py @@ -215,7 +215,7 @@ def process_diffusers(p: StableDiffusionProcessing, seeds, prompts, negative_pro shared.sd_model.compiled_model_state.batch_size = p.batch_size shared.sd_model.compiled_model_state.first_pass = False else: - pass #Can be implemented for normal compile or TensorRT + pass #Can be implemented for TensorRT or Olive else: pass #Do nothing if compile is disabled diff --git a/modules/sd_models.py b/modules/sd_models.py index adb0a7193..f54e3c84c 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -113,6 +113,14 @@ class CheckpointInfo: return self.shorthash +#Used by OpenVINO, can be used with TensorRT or Olive +class CompiledModelState: + def __init__(self): + self.height = 512 + self.width = 512 + self.batch_size = 1 + self.first_pass = True + class NoWatermark: def apply_watermark(self, img): return img @@ -812,9 +820,10 @@ def load_diffuser(checkpoint_info=None, already_loaded_state_dict=None, timer=No import torch._dynamo # pylint: disable=unused-import,redefined-outer-name if shared.opts.cuda_compile_backend == "openvino_fx": torch._dynamo.reset() # pylint: disable=protected-access - from modules.intel.openvino import openvino_fx, openvino_clear_caches, ModelState # pylint: disable=unused-import + from modules.intel.openvino import openvino_fx, openvino_clear_caches # pylint: disable=unused-import openvino_clear_caches() - sd_model.compiled_model_state = ModelState() + torch._dynamo.eval_frame.check_if_dynamo_supported = lambda: True # pylint: disable=protected-access + sd_model.compiled_model_state = CompiledModelState() sd_model.compiled_model_state.first_pass = True if not shared.opts.cuda_compile_precompile else False log_level = logging.WARNING if shared.opts.cuda_compile_verbose else logging.CRITICAL # pylint: disable=protected-access if hasattr(torch, '_logging'):