Skip to content

Commit e38579a

Browse files
authored
Merge pull request #177 from intel/testcase_update
Testcase update
2 parents 270956a + 0653856 commit e38579a

File tree

1 file changed

+57
-35
lines changed

1 file changed

+57
-35
lines changed

testscases/StableDiffusion/stable_diffusion_engine_tc.py

Lines changed: 57 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
from gimpopenvino.plugins.openvino_utils.tools.tools_utils import get_weight_path
2323
from gimpopenvino.plugins.openvino_utils.tools.openvino_common.models_ov import (
2424
stable_diffusion_engine,
25+
stable_diffusion_engine_genai,
26+
stable_diffusion_engine_inpainting_genai,
2527
stable_diffusion_engine_inpainting,
2628
stable_diffusion_engine_inpainting_advanced,
2729
stable_diffusion_3,
@@ -128,9 +130,9 @@ def initialize_engine(model_name, model_path, device_list):
128130
log.info('Device list: %s', device_list)
129131
return stable_diffusion_3.StableDiffusionThreeEngine(model=model_path, device=device_list)
130132
if model_name == "sd_1.5_inpainting":
131-
return stable_diffusion_engine_inpainting.StableDiffusionEngineInpainting(model=model_path, device=device_list)
132-
if model_name == "sd_1.5_square_lcm":
133-
return stable_diffusion_engine.LatentConsistencyEngine(model=model_path, device=device_list)
133+
return stable_diffusion_engine_inpainting_genai.StableDiffusionEngineInpaintingGenai(model=model_path, device=device_list[0])
134+
if model_name in ("sd_1.5_square_lcm","sdxl_base_1.0_square","sdxl_turbo_square","sd_3.0_med_diffuser_square","sd_3.5_med_turbo_square"):
135+
return stable_diffusion_engine_genai.StableDiffusionEngineGenai(model=model_path,model_name=model_name,device=device_list)
134136
if model_name == "sd_1.5_inpainting_int8":
135137
log.info('Advanced Inpainting Device list: %s', device_list)
136138
return stable_diffusion_engine_inpainting_advanced.StableDiffusionEngineInpaintingAdvanced(model=model_path, device=device_list)
@@ -139,7 +141,7 @@ def initialize_engine(model_name, model_path, device_list):
139141
return controlnet_openpose_advanced.ControlNetOpenPoseAdvanced(model=model_path, device=device_list)
140142
if model_name == "controlnet_canny_int8":
141143
log.info('Device list: %s', device_list)
142-
return controlnet_canny_edge_advanced.ControlNetCannyEdgeAdvanced(model=model_path, device=device_list)
144+
return controlnet_cannyedge_advanced.ControlNetCannyEdgeAdvanced(model=model_path, device=device_list)
143145
if model_name == "controlnet_scribble_int8":
144146
log.info('Device list: %s', device_list)
145147
return controlnet_scribble.ControlNetScribbleAdvanced(model=model_path, device=device_list)
@@ -227,10 +229,14 @@ def main():
227229
model_paths = {
228230
"sd_1.4": ["stable-diffusion-ov", "stable-diffusion-1.4"],
229231
"sd_1.5_square_lcm": ["stable-diffusion-ov", "stable-diffusion-1.5", "square_lcm"],
232+
"sdxl_base_1.0_square": ["stable-diffusion-ov", "stable-diffusion-xl", "square_base"],
233+
"sdxl_turbo_square": ["stable-diffusion-ov", "stable-diffusion-xl", "square_turbo"],
230234
"sd_1.5_portrait": ["stable-diffusion-ov", "stable-diffusion-1.5", "portrait"],
231235
"sd_1.5_square": ["stable-diffusion-ov", "stable-diffusion-1.5", "square"],
232236
"sd_1.5_square_int8": ["stable-diffusion-ov", "stable-diffusion-1.5", "square_int8"],
233237
"sd_1.5_square_int8a16": ["stable-diffusion-ov", "stable-diffusion-1.5", "square_int8"],
238+
"sd_3.0_med_diffuser_square": ["stable-diffusion-ov", "stable-diffusion-3.0-medium", "square_diffusers" ],
239+
"sd_3.5_med_turbo_square": ["stable-diffusion-ov", "stable-diffusion-3.5-medium", "square_turbo" ],
234240
"sd_1.5_landscape": ["stable-diffusion-ov", "stable-diffusion-1.5", "landscape"],
235241
"sd_1.5_portrait_512x768": ["stable-diffusion-ov", "stable-diffusion-1.5", "portrait_512x768"],
236242
"sd_1.5_landscape_768x512": ["stable-diffusion-ov", "stable-diffusion-1.5", "landscape_768x512"],
@@ -247,6 +253,7 @@ def main():
247253
"controlnet_canny_int8": ["stable-diffusion-ov", "controlnet-canny-int8"],
248254
"controlnet_scribble_int8": ["stable-diffusion-ov", "controlnet-scribble-int8"],
249255
}
256+
250257
model_name = args.model_name
251258
model_path = os.path.join(weight_path, *model_paths.get(model_name))
252259
model_config_file_name = os.path.join(model_path, "config.json")
@@ -329,24 +336,21 @@ def main():
329336

330337

331338
start_time = time.time()
332-
339+
333340
if model_name == "sd_1.5_inpainting" or model_name == "sd_1.5_inpainting_int8":
334341
output = engine(
335342
prompt=prompt,
336343
negative_prompt=negative_prompt,
337-
image=Image.open(os.path.join(weight_path, "..", "cache1.png")),
338-
mask_image=Image.open(os.path.join(weight_path, "..", "cache0.png")),
344+
image_path=os.path.join(weight_path, "..", "cache1.png"),
345+
mask_path=os.path.join(weight_path, "..", "cache0.png"),
339346
scheduler=scheduler,
340347
strength=strength,
341348
num_inference_steps=num_infer_steps,
342349
guidance_scale=guidance_scale,
343-
eta=0.0,
344-
create_gif=bool(create_gif),
345-
model=model_path,
346350
callback=progress_callback,
347351
callback_userdata=conn
348352
)
349-
elif "controlnet" in model_name:
353+
elif model_name == "controlnet_referenceonly":
350354
output = engine(
351355
prompt=prompt,
352356
negative_prompt=negative_prompt,
@@ -360,38 +364,54 @@ def main():
360364
callback=progress_callback,
361365
callback_userdata=conn
362366
)
363-
364-
elif model_name == "sd_1.5_square_lcm":
365-
scheduler = LCMScheduler(
366-
beta_start=0.00085,
367-
beta_end=0.012,
368-
beta_schedule="scaled_linear"
369-
)
367+
elif "controlnet" in model_name:
370368
output = engine(
371369
prompt=prompt,
370+
negative_prompt=negative_prompt,
371+
image=Image.open(init_image),
372+
scheduler=scheduler,
372373
num_inference_steps=num_infer_steps,
373374
guidance_scale=guidance_scale,
374-
scheduler=scheduler,
375-
lcm_origin_steps=50,
375+
eta=0.0,
376+
create_gif=bool(create_gif),
376377
model=model_path,
377378
callback=progress_callback,
378-
callback_userdata=conn,
379-
seed=ran_seed
379+
callback_userdata=conn
380+
)
381+
elif model_name == "sd_1.5_square_lcm":
382+
output = engine(
383+
prompt=prompt,
384+
negative_prompt=None,
385+
num_inference_steps=num_infer_steps,
386+
guidance_scale=guidance_scale,
387+
seed=ran_seed,
388+
callback=progress_callback,
389+
callback_userdata=conn,
380390
)
381-
elif "sd_3.0" in model_name:
391+
elif "sdxl" in model_name:
382392
output = engine(
383-
prompt = prompt,
384-
negative_prompt = negative_prompt,
385-
num_inference_steps = num_infer_steps,
386-
guidance_scale = 0,
387-
callback=progress_callback,
388-
callback_userdata=conn,
389-
generator=torch.Generator().manual_seed(seed),
390-
# callback_on_step_end = progress_callback,
391-
# callback_on_step_end_tensor_inputs = conn,
392-
393-
).images[0]
394-
else: # Covers SD 1.5 Square, Square INT8, SD 2.0
393+
prompt=prompt,
394+
negative_prompt=None,
395+
num_inference_steps=num_infer_steps,
396+
guidance_scale=guidance_scale,
397+
seed=ran_seed,
398+
callback=progress_callback,
399+
callback_userdata=conn,
400+
)
401+
elif "sd_3.0_med" in model_name or "sd_3.5_med" in model_name:
402+
if model_name =="sd_3.5_med_turbo_square":
403+
negative_prompt=None
404+
405+
output = engine(
406+
prompt=prompt,
407+
negative_prompt=negative_prompt,
408+
num_inference_steps=num_infer_steps,
409+
guidance_scale=guidance_scale,
410+
seed=ran_seed,
411+
callback=progress_callback,
412+
callback_userdata=conn,
413+
)
414+
else:
395415
if model_name == "sd_2.1_square":
396416
scheduler = EulerDiscreteScheduler(
397417
beta_start=0.00085,
@@ -417,6 +437,8 @@ def main():
417437
callback=progress_callback,
418438
callback_userdata=conn
419439
)
440+
441+
420442
gen_time = time.time() - start_time
421443
print (f"Image Generation Time: {round(gen_time,2)} seconds")
422444
results.append([output,model_name

0 commit comments

Comments
 (0)