| from PIL import Image | |
| import numpy as np | |
| from diffusers import DEISMultistepScheduler | |
| from pipeline_onnx_stable_diffusion_controlnet import OnnxStableDiffusionControlNetPipeline | |
| import onnxruntime as ort | |
| pose_image = Image.open(r"dance_pose.png") | |
| opts = ort.SessionOptions() | |
| opts.enable_cpu_mem_arena = False | |
| opts.enable_mem_pattern = False | |
| pipe = OnnxStableDiffusionControlNetPipeline.from_pretrained( | |
| "model/anyv3-fp16-autoslicing-cn_openpose", | |
| sess_options=opts, | |
| provider="DmlExecutionProvider", | |
| ) | |
| pipe.scheduler = DEISMultistepScheduler.from_config(pipe.scheduler.config) | |
| prompt = "1girl, blonde, long dress, dancing, best quality" | |
| seed=25 | |
| generator = np.random.RandomState(seed) | |
| images = pipe( | |
| prompt, | |
| pose_image, | |
| width=512, | |
| height=512, | |
| negative_prompt="monochrome, lowres, bad anatomy, worst quality, low quality", | |
| num_inference_steps=30, | |
| generator=generator, | |
| ).images[0] | |
| images.save("controlnet-openpose-test.png") | |