|
|
|
def main(): |
|
from diffusers.utils import load_image |
|
|
|
pipe = StableDiffusionMultiControlNetPipeline.from_pretrained( |
|
"runwayml/stable-diffusion-v1-5", safety_checker=None, torch_dtype=torch.float16 |
|
).to("cuda") |
|
pipe.enable_xformers_memory_efficient_attention() |
|
|
|
controlnet_canny = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-canny", torch_dtype=torch.float16).to( |
|
"cuda" |
|
) |
|
controlnet_pose = ControlNetModel.from_pretrained( |
|
"lllyasviel/sd-controlnet-openpose", torch_dtype=torch.float16 |
|
).to("cuda") |
|
|
|
canny_left = load_image("https://huggingface.co/takuma104/controlnet_dev/resolve/main/vermeer_left.png") |
|
canny_right = load_image("https://huggingface.co/takuma104/controlnet_dev/resolve/main/vermeer_right.png") |
|
pose_right = load_image("https://huggingface.co/takuma104/controlnet_dev/resolve/main/pose_right.png") |
|
|
|
image = pipe( |
|
prompt="best quality, extremely detailed", |
|
negative_prompt="monochrome, lowres, bad anatomy, worst quality, low quality", |
|
processors=[ |
|
ControlNetProcessor(controlnet_canny, canny_left), |
|
ControlNetProcessor(controlnet_canny, canny_right), |
|
], |
|
generator=torch.Generator(device="cpu").manual_seed(0), |
|
num_inference_steps=30, |
|
width=512, |
|
height=512, |
|
).images[0] |
|
image.save("/tmp/canny_left_right.png") |
|
|
|
image = pipe( |
|
prompt="best quality, extremely detailed", |
|
negative_prompt="monochrome, lowres, bad anatomy, worst quality, low quality", |
|
processors=[ |
|
ControlNetProcessor(controlnet_canny, canny_left), |
|
ControlNetProcessor(controlnet_pose, pose_right), |
|
], |
|
generator=torch.Generator(device="cpu").manual_seed(0), |
|
num_inference_steps=30, |
|
width=512, |
|
height=512, |
|
).images[0] |
|
image.save("/tmp/canny_left_pose_right.png") |
|
|
|
|
|
if __name__ == "__main__": |
|
main() |