Skip to content

Commit 81fc99a

Browse files
committed
fixed progress bar update in controlnet-pose, added model caching for other plugins and updated model setup
1 parent d554a78 commit 81fc99a

File tree

6 files changed

+38
-47
lines changed

6 files changed

+38
-47
lines changed

choose_sd_model.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,20 @@
1414

1515

1616

17-
print("=========Chose SD-1.5 models to download and convert=========")
18-
print("1 - Square (512x512 output image) ")
19-
print("2 - Landscape (640x360 output image, 16:9) ")
20-
print("3 - Portrait (360x640 output image, 9:16) ")
21-
print("4 - Portrait_512x768 (512x768 output image), will take time since model is large ")
22-
print("5 - Landscape_768x512 (768x512 output image), will take time since model is large ")
23-
print("6 - SD-1.5 Inapinting model (512x512 output image) ")
24-
print("7 - SD-1.5 Controlnet-Openpose model (512x512 output image) ")
25-
print("8 - ALL the above SD-1.5 models ")
26-
print("9 - Only Square, Landscape, Portrait")
27-
print("10 - Skip All SD-1.5 Model setup ")
28-
17+
2918
while True:
19+
20+
print("=========Chose SD-1.5 models to download and convert=========")
21+
print("1 - Square (512x512 output image) ")
22+
print("2 - Landscape (640x360 output image, 16:9) ")
23+
print("3 - Portrait (360x640 output image, 9:16) ")
24+
print("4 - Portrait_512x768 (512x768 output image), will take time since model is large ")
25+
print("5 - Landscape_768x512 (768x512 output image), will take time since model is large ")
26+
print("6 - SD-1.5 Inapinting model (512x512 output image) ")
27+
print("7 - SD-1.5 Controlnet-Openpose model (512x512 output image) ")
28+
print("8 - ALL the above SD-1.5 models ")
29+
print("9 - Only Square, Landscape, Portrait")
30+
print("10 - Skip All SD-1.5 Model setup ")
3031
choice = input("Enter the Number for the model you want to download & convert: ")
3132

3233
# setup all the SD1.5 models
@@ -53,7 +54,7 @@
5354

5455
subprocess.call([sd_python_path, chose_model_controlnet, choice])
5556

56-
break
57+
#break
5758

5859
else:
5960
print("Wrong option selected.")

gimpopenvino/tools/openvino_common/models_ov/controlnet_openpose.py

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -163,27 +163,22 @@ def __init__(
163163
tokenizer="openai/clip-vit-large-patch14",
164164
device=["CPU","CPU","CPU"],
165165
):
166+
167+
super().__init__()
168+
169+
self.set_progress_bar_config(disable=False)
166170

167171
try:
168172
self.tokenizer = CLIPTokenizer.from_pretrained(model,local_files_only=True)
169173
except:
170174
self.tokenizer = CLIPTokenizer.from_pretrained(tokenizer)
171175
self.tokenizer.save_pretrained(model)
172176

173-
# self.swap = swap
174-
# models
175-
#controlnet = ControlNetModel.from_pretrained("C:\\Users\\lab_admin\\openvino-ai-plugins-gimp\\weights\\stable-diffusion-ov\\controlnet-openpose\\models--lllyasviel--control_v11p_sd15_openpose", torch_dtype=torch.float32) #lllyasviel/control_v11p_sd15_openpose"
176-
#pipe = StableDiffusionControlNetPipeline.from_pretrained(
177-
# "runwayml/stable-diffusion-v1-5", controlnet=controlnet
178-
#)
179-
180-
#scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config)
181-
#scheduler.save_config("C:\\Users\\lab_admin\\openvino-ai-plugins-gimp\\weights\\stable-diffusion-ov\\controlnet-openpose\\scheduler_config")
177+
182178

183179
self.scheduler = UniPCMultistepScheduler.from_pretrained(os.path.join(model,"..","UniPCMultistepScheduler_config"))
184180

185-
#"C:\\Users\\lab_admin\\openvino-ai-plugins-gimp\\weights\\stable-diffusion-ov\\controlnet-openpose\\scheduler_config")
186-
#del pipe
181+
187182

188183
self.core = Core()
189184
self.core.set_property({'CACHE_DIR': os.path.join(model, 'cache')}) #adding caching to reduce init time
@@ -193,25 +188,24 @@ def __init__(
193188
OPENPOSE_OV_PATH = os.path.join(model, "openpose.xml")
194189
self.pose_estimator = OpenposeDetector.from_pretrained(os.path.join(model, "lllyasviel_ControlNet"))
195190

196-
#"C:\\Users\\lab_admin\\openvino-ai-plugins-gimp\\weights\\stable-diffusion-ov\\controlnet-openpose\\models--lllyasviel--ControlNet") #"lllyasviel/ControlNet")
191+
197192

198193
ov_openpose = OpenPoseOVModel(self.core, OPENPOSE_OV_PATH, device="CPU")
199194
self.pose_estimator.body_estimation.model = ov_openpose
200195

201196

202197

203198

204-
#self.vae_scale_factor = 8
205-
# self.scheduler = scheduler
199+
206200
controlnet = os.path.join(model, "controlnet-pose.xml")
207201
text_encoder = os.path.join(model, "text_encoder.xml")
208202
unet = os.path.join(model, "unet_controlnet.xml")
209-
#unet_neg = os.path.join(model, "unet_controlnet.xml")
203+
210204
vae_decoder = os.path.join(model, "vae_decoder.xml")
211205

212206
####################
213207
self.load_models(self.core, device, controlnet, text_encoder, unet, vae_decoder)
214-
# self.set_progress_bar_config(disable=True)
208+
215209

216210
# encoder
217211
self.vae_encoder = None
@@ -221,17 +215,7 @@ def __init__(
221215
self.height = self.unet.input(0).shape[2] * 8
222216
self.width = self.unet.input(0).shape[3] * 8
223217

224-
#if self.unet.input("sample").shape[1] == 4:
225-
# self.height = self.unet.input("sample").shape[2] * 8
226-
# self.width = self.unet.input("sample").shape[3] * 8
227-
#else:
228-
229-
# self.height = self.unet.input("sample").shape[1] * 8
230-
# self.width = self.unet.input("sample").shape[2] * 8
231-
232-
#self.infer_request_neg = self.unet_neg.create_infer_request()
233-
#self.infer_request = self.unet.create_infer_request()
234-
218+
235219
def load_models(self, core: Core, device: str, controlnet:Model, text_encoder: Model, unet: Model, vae_decoder: Model):
236220
"""
237221
Function for loading models on device using OpenVINO
@@ -352,9 +336,7 @@ def __call__(
352336
latent_model_input = self.scheduler.scale_model_input(latent_model_input, t)
353337
#print("latent_model_input", latent_model_input)
354338

355-
#print("TTTTTTTTTTTTTTTTTTTTTTTT :", t)
356-
#print("text_embeddings:", text_embeddings)
357-
#print("pose-------",pose)
339+
358340

359341
result = self.controlnet([latent_model_input, t, text_embeddings, pose])
360342
#print("result", result)
@@ -376,6 +358,10 @@ def __call__(
376358

377359
if create_gif:
378360
frames.append(latents)
361+
362+
# update progress
363+
if i == len(timesteps) - 1 or ((i + 1) > num_warmup_steps and (i + 1) % self.scheduler.order == 0):
364+
progress_bar.update()
379365

380366
if callback:
381367
callback(num_inference_steps, callback_userdata)

gimpopenvino/tools/openvino_common/pipelines/async_pipeline.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import threading
1919
from collections import deque
2020
from typing import Dict, Set
21+
import os
2122

2223

2324
def parse_devices(device_string):
@@ -81,9 +82,12 @@ def get_user_config(flags_d: str, flags_nstreams: str, flags_nthreads: int)-> Di
8182

8283

8384
class AsyncPipeline:
84-
def __init__(self, ie, model, plugin_config, device='CPU', max_num_requests=1):
85+
def __init__(self, ie, model, model_path, plugin_config, device='CPU', max_num_requests=1):
8586
self.model = model
8687
self.logger = logging.getLogger()
88+
89+
ie.set_config(config={"CACHE_DIR": os.path.join(model_path, '..', 'cache')}, device_name=device)
90+
self.logger.info('Model Cached')
8791

8892
self.logger.info('Loading network to {} plugin...'.format(device))
8993
self.exec_net = ie.load_network(network=self.model.net, device_name=device,

gimpopenvino/tools/openvino_common/semseg_run_ov.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def run(frame, model_path, device):
120120
model, visualizer = get_model(ie, model_path)
121121
log.info('Loading network: %s',model_path )
122122
log.info('Device: %s',device)
123-
pipeline = AsyncPipeline(ie, model, plugin_config, device, 1)
123+
pipeline = AsyncPipeline(ie, model, model_path, plugin_config, device, 1)
124124
log.info('Starting inference...')
125125

126126
if pipeline.is_ready():

gimpopenvino/tools/openvino_common/styletransfer_run_ov.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def run(frame, model_path, device):
4747
log.info('Device: %s',device)
4848

4949
model = StyleTransfer(ie, model_path, frame.shape)
50-
pipeline = AsyncPipeline(ie, model, plugin_config, device, 1)
50+
pipeline = AsyncPipeline(ie, model, model_path, plugin_config, device, 1)
5151

5252
log.info('Starting inference...')
5353

gimpopenvino/tools/openvino_common/superes_run_ov.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def run(frame, model_path, device, model_name):
4545
log.info('Device: %s',device)
4646

4747
model = SuperResolution(ie, model_path, frame.shape, model_name)
48-
pipeline = AsyncPipeline(ie, model, plugin_config, device, 1)
48+
pipeline = AsyncPipeline(ie, model, model_path, plugin_config, device, 1)
4949

5050
log.info('Starting inference...')
5151

0 commit comments

Comments
 (0)