Spaces:
				
			
			
	
			
			
					
		Running
		
	
	
	
			
			
	
	
	
	
		
		
					
		Running
		
	| import torch | |
| import os | |
| import numpy as np | |
| from hashlib import md5 | |
| def hash_img(img): | |
| return md5(np.array(img).tobytes()).hexdigest() | |
| def hash_any(obj): | |
| return md5(str(obj).encode()).hexdigest() | |
| def refine_lr_with_sd(pil_image_list, concept_img_list, control_image_list, prompt_list, pipe=None, strength=0.35, neg_prompt_list="", output_size=(512, 512), controlnet_conditioning_scale=1.): | |
| with torch.no_grad(): | |
| images = pipe( | |
| image=pil_image_list, | |
| ip_adapter_image=concept_img_list, | |
| prompt=prompt_list, | |
| neg_prompt=neg_prompt_list, | |
| num_inference_steps=50, | |
| strength=strength, | |
| height=output_size[0], | |
| width=output_size[1], | |
| control_image=control_image_list, | |
| guidance_scale=5.0, | |
| controlnet_conditioning_scale=controlnet_conditioning_scale, | |
| generator=torch.manual_seed(233), | |
| ).images | |
| return images | |
| SR_cache = None | |
| def run_sr_fast(source_pils, scale=4): | |
| from PIL import Image | |
| from scripts.upsampler import RealESRGANer | |
| import numpy as np | |
| global SR_cache | |
| if SR_cache is not None: | |
| upsampler = SR_cache | |
| else: | |
| upsampler = RealESRGANer( | |
| scale=4, | |
| onnx_path="ckpt/realesrgan-x4.onnx", | |
| tile=0, | |
| tile_pad=10, | |
| pre_pad=0, | |
| half=True, | |
| gpu_id=0, | |
| ) | |
| ret_pils = [] | |
| for idx, img_pils in enumerate(source_pils): | |
| np_in = isinstance(img_pils, np.ndarray) | |
| assert isinstance(img_pils, (Image.Image, np.ndarray)) | |
| img = np.array(img_pils) | |
| output, _ = upsampler.enhance(img, outscale=scale) | |
| if np_in: | |
| ret_pils.append(output) | |
| else: | |
| ret_pils.append(Image.fromarray(output)) | |
| if SR_cache is None: | |
| SR_cache = upsampler | |
| return ret_pils | |

