Spaces:
Runtime error
Runtime error
import torch | |
import numpy as np | |
from PIL import Image | |
from diffusers import ControlNetModel, StableDiffusionXLControlNetImg2ImgPipeline, DDIMScheduler | |
from hidiffusion import apply_hidiffusion, remove_hidiffusion | |
import cv2 | |
controlnet = ControlNetModel.from_pretrained( | |
"diffusers/controlnet-canny-sdxl-1.0", torch_dtype=torch.float16, variant="fp16" | |
).to("cuda") | |
scheduler = DDIMScheduler.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", subfolder="scheduler") | |
pipe = StableDiffusionXLControlNetImg2ImgPipeline.from_pretrained( | |
"stabilityai/stable-diffusion-xl-base-1.0", | |
controlnet=controlnet, | |
scheduler = scheduler, | |
torch_dtype=torch.float16, | |
).to("cuda") | |
# Apply hidiffusion with a single line of code. | |
apply_hidiffusion(pipe) | |
pipe.enable_model_cpu_offload() | |
pipe.enable_xformers_memory_efficient_attention() | |
path = './assets/lara.jpeg' | |
ori_image = Image.open(path) | |
# get canny image | |
image = np.array(ori_image) | |
image = cv2.Canny(image, 50, 120) | |
image = image[:, :, None] | |
image = np.concatenate([image, image, image], axis=2) | |
canny_image = Image.fromarray(image) | |
controlnet_conditioning_scale = 0.5 # recommended for good generalization | |
prompt = "Lara Croft with brown hair, and is wearing a tank top, a brown backpack. The room is dark and has an old-fashioned decor with a patterned floor and a wall featuring a design with arches and a dark area on the right side, muted color, high detail, 8k high definition award winning" | |
negative_prompt = "underexposed, poorly drawn hands, duplicate hands, overexposed, bad art, beginner, amateur, abstract, disfigured, deformed, close up, weird colors, watermark" | |
image = pipe(prompt, | |
image=ori_image, | |
control_image=canny_image, | |
height=1536, | |
width=2048, | |
strength=0.99, | |
num_inference_steps=50, | |
controlnet_conditioning_scale=controlnet_conditioning_scale, | |
guidance_scale=12.5, | |
negative_prompt = negative_prompt, | |
eta=1.0 | |
).images[0] | |
image.save("lara.jpg") |