aiinference222 / controlnettest.py
mustava1259
m
72dddd7
# !pip install transformers accelerate
from diffusers import StableDiffusionControlNetInpaintPipeline, ControlNetModel, DDIMScheduler
from diffusers.utils import load_image
import numpy as np
import torch
from dw_pose.main import dwpose
from PIL import Image
init_image = load_image(
"https://huggingface.co/datasets/diffusers/test-arrays/resolve/main/stable_diffusion_inpaint/boy.png"
)
# init_image = init_image.resize((512, 512))
init_image = Image.open("./girl.png")
generator = torch.Generator(device="cpu").manual_seed(1)
mask_image = load_image(
"https://huggingface.co/datasets/diffusers/test-arrays/resolve/main/stable_diffusion_inpaint/boy_mask.png"
)
# mask_image = mask_image.resize((512, 512))
mask_image = Image.open("./girlmask.png")
print("doing dwpose")
control_image = dwpose(init_image, 512)
print("done dwpose")
control_image.save("thecontrolfucking.png")
print("loading openpose")
controlnet = ControlNetModel.from_pretrained(
"lllyasviel/control_v11p_sd15_openpose", torch_dtype=torch.float16
)
pipe = StableDiffusionControlNetInpaintPipeline.from_pretrained(
"runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16
)
print("loaded openpsoe")
# speed up diffusion process with faster scheduler and memory optimization
pipe.scheduler = DDIMScheduler.from_config(pipe.scheduler.config)
pipe.enable_model_cpu_offload()
pipe.safety_checker = None
init_image_width, init_image_height = init_image.size
from main import resize
new_size = resize(
init_image_width, init_image_height, 1500)
init_image_resized = init_image.resize((int(new_size['width']), int(new_size['height'])))
mask_image_resized = mask_image.resize((int(new_size['width']), int(new_size['height'])))
control_image_resized = control_image.resize((int(new_size['width']), int(new_size['height'])))
print("ccreating image")
# generate image
image = pipe(
"a fucking sexy girl naked",
num_inference_steps=20,
generator=generator,
guidance_scale=6.0,
eta=1.0,
image=init_image_resized,
mask_image=mask_image_resized,
control_image=control_image_resized,
).images[0].save("aha.png")
print("created image and saved")