Spaces:
Runtime error
Runtime error
| from sd.utils.utils import * | |
| from utils.utils import sketch_process, prompt_preprocess | |
| #from controlnet_aux.pidi import PidiNetDetector | |
| import spaces | |
| class Controller(): | |
| def __init__(self, | |
| models_names=["cagliostrolab/animagine-xl-3.1", | |
| "stabilityai/stable-diffusion-xl-base-1.0"], | |
| lora_path='sd/lora/lora.safetensors'): | |
| self.models_names=models_names | |
| self.lora_path=lora_path | |
| self.vae=get_vae() | |
| self.controlnet=get_controlnet() | |
| self.adapter=get_adapter() | |
| self.scheduler=get_scheduler(model_name=self.models_names[1]) | |
| self.detector=get_detector() | |
| self.first_pipe=get_pipe(vae=self.vae, | |
| model_name=self.models_names[0], | |
| controlnet=self.controlnet, | |
| lora_path=self.lora_path) | |
| self.second_pipe=get_pipe(vae=self.vae, | |
| model_name=self.models_names[1], | |
| adapter=self.adapter, | |
| scheduler=self.scheduler) | |
| def get_first_result(self, img, prompt, negative_prompt, | |
| controlnet_scale=0.5, strength=1.0,n_steps=30,eta=1.0): | |
| substrate, resized_image = sketch_process(input_image) | |
| prompt=prompt_preprocess(prompt) | |
| result=self.first_pipe(image=substrate, | |
| control_image=resized_image, | |
| strength=strength, | |
| prompt=prompt, | |
| negative_prompt = negative_prompt, | |
| controlnet_conditioning_scale=float(controlnet_scale), | |
| generator=torch.manual_seed(0), | |
| num_inference_steps=n_steps, | |
| eta=eta) | |
| return result.images[0] | |
| def get_second_result(self, img, prompt, negative_prompt, | |
| g_scale=7.5, n_steps=25, | |
| adapter_scale=0.9, adapter_factor=1.0): | |
| preprocessed_img=self.detector(img, | |
| detect_resolution=1024, | |
| image_resolution=1024, | |
| apply_filter=True).convert("L") | |
| result=self.second_pipe(prompt=prompt, | |
| negative_prompt=negative_prompt, | |
| image=preprocessed_img, | |
| guidance_scale=g_scale, | |
| num_inference_steps=n_steps, | |
| adapter_conditioning_scale=adapter_scale, | |
| adapter_conditioning_factor=adapter_factor, | |
| generator = torch.manual_seed(42)) | |
| return result.images[0] | |