Spaces:
Runtime error
Runtime error
from PIL import Image | |
import gradio as gr | |
import numpy as np | |
import random, os, gc, base64, io | |
import cv2 | |
import torch | |
from accelerate import Accelerator | |
from transformers import pipeline | |
from diffusers.utils import load_image | |
from diffusers import KandinskyV22PriorPipeline, KandinskyV22ControlnetPipeline | |
from gradio_client import Client | |
accelerator = Accelerator(cpu=True) | |
depth_estimator = accelerator.prepare(pipeline("depth-estimation", model="Intel/dpt-hybrid-midas")) | |
pipe_prior = accelerator.prepare(KandinskyV22PriorPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-prior", torch_dtype=torch.float32)) | |
pipe_prior = accelerator.prepare(pipe_prior.to("cpu")) | |
pipe = accelerator.prepare(KandinskyV22ControlnetPipeline.from_pretrained("kandinsky-community/kandinsky-2-2-controlnet-depth", torch_dtype=torch.float32)) | |
pipe = accelerator.prepare(pipe.to("cpu")) | |
generator = torch.Generator("cpu").manual_seed(random.randint(1, 867346)) | |
apol=[] | |
def make_hint(ipage, depth_estimator): | |
imak = depth_estimator(ipage)["depth"] | |
apol.append(imak) | |
imak = np.array(imak) | |
imak = imak[:, :, None] | |
imak = np.concatenate([imak, imak, imak], axis=2) | |
detected_map = torch.from_numpy(imak).float() / 255.0 | |
hint = detected_map.permute(2, 0, 1) | |
return hint | |
def plex(goof,prompt): | |
gc.collect() | |
apol=[] | |
goof = load_image(goof).resize((512, 512)) | |
goof = goof.convert("RGB") | |
goof.save('./gf.png', 'PNG') | |
##base64_string = '' | |
##with open('./gf.png', 'rb') as image_file: | |
## base64_string = base64.b64encode(image_file.read()).decode('utf-8') | |
hint = make_hint(goof, depth_estimator).unsqueeze(0).to("cpu") | |
negative_prior_prompt = "lowres,text,bad quality,jpeg artifacts,ugly,bad face,extra fingers,blurry,bad anatomy,extra limbs,fused fingers,long neck,watermark,signature" | |
image_emb, zero_image_emb = pipe_prior(prompt=prompt, negative_prompt=negative_prior_prompt, num_inference_steps=5,generator=generator).to_tuple() | |
imags = pipe(image_embeds=image_emb,negative_image_embeds=zero_image_emb,hint=hint,num_inference_steps=5,width=512,height=512,generator=generator).images[0] | |
apol.append(imags) | |
return apol | |
iface = gr.Interface(fn=plex,inputs=[gr.Image(type="filepath"),gr.Textbox()], outputs=gr.Gallery(columns=2), title="Img2Img_SkyV22CntrlNet_CPU", description="Running on CPU, very slow!") | |
iface.queue(max_size=1,api_open=False) | |
iface.launch(max_threads=1) |