|  |  | 
					
						
						|  | import torch | 
					
						
						|  | import os | 
					
						
						|  | from huggingface_hub import HfApi | 
					
						
						|  | from pathlib import Path | 
					
						
						|  | from diffusers.utils import load_image | 
					
						
						|  | from PIL import Image | 
					
						
						|  | import numpy as np | 
					
						
						|  | from controlnet_aux import MLSDdetector | 
					
						
						|  |  | 
					
						
						|  | from diffusers import ( | 
					
						
						|  | ControlNetModel, | 
					
						
						|  | StableDiffusionControlNetPipeline, | 
					
						
						|  | UniPCMultistepScheduler, | 
					
						
						|  | ) | 
					
						
						|  | import sys | 
					
						
						|  |  | 
					
						
						|  | checkpoint = sys.argv[1] | 
					
						
						|  |  | 
					
						
						|  | image = load_image("https://huggingface.co/lllyasviel/sd-controlnet-mlsd/resolve/main/images/room.png") | 
					
						
						|  |  | 
					
						
						|  | prompt = "royal chamber with fancy bed" | 
					
						
						|  |  | 
					
						
						|  | mlsd = MLSDdetector.from_pretrained('lllyasviel/ControlNet') | 
					
						
						|  | image = mlsd(image) | 
					
						
						|  |  | 
					
						
						|  | controlnet = ControlNetModel.from_pretrained(checkpoint, torch_dtype=torch.float16) | 
					
						
						|  | pipe = StableDiffusionControlNetPipeline.from_pretrained( | 
					
						
						|  | "runwayml/stable-diffusion-v1-5", controlnet=controlnet, torch_dtype=torch.float16 | 
					
						
						|  | ) | 
					
						
						|  |  | 
					
						
						|  | pipe.scheduler = UniPCMultistepScheduler.from_config(pipe.scheduler.config) | 
					
						
						|  | pipe.enable_model_cpu_offload() | 
					
						
						|  |  | 
					
						
						|  | generator = torch.manual_seed(0) | 
					
						
						|  | out_image = pipe(prompt, num_inference_steps=30, generator=generator, image=image).images[0] | 
					
						
						|  |  | 
					
						
						|  | path = os.path.join(Path.home(), "images", "aa.png") | 
					
						
						|  | out_image.save(path) | 
					
						
						|  |  | 
					
						
						|  | api = HfApi() | 
					
						
						|  |  | 
					
						
						|  | api.upload_file( | 
					
						
						|  | path_or_fileobj=path, | 
					
						
						|  | path_in_repo=path.split("/")[-1], | 
					
						
						|  | repo_id="patrickvonplaten/images", | 
					
						
						|  | repo_type="dataset", | 
					
						
						|  | ) | 
					
						
						|  | print("https://huggingface.co/datasets/patrickvonplaten/images/blob/main/aa.png") | 
					
						
						|  |  |