Spaces:
Sleeping
Sleeping
import gradio as gr | |
import io | |
from PIL import Image | |
import numpy as np | |
from config import WIDTH, HEIGHT | |
from models import make_image_controlnet, make_inpainting | |
from preprocessing import preprocess_seg_mask, get_image, get_mask | |
def image_to_byte_array(image: Image) -> bytes: | |
# BytesIO is a fake file stored in memory | |
imgByteArr = io.BytesIO() | |
# image.save expects a file as a argument, passing a bytes io ins | |
image.save(imgByteArr, format='png') # image.format | |
# Turn the BytesIO object back into a bytes object | |
imgByteArr = imgByteArr.getvalue() | |
return imgByteArr | |
def predict(input_img1, | |
input_img2, | |
positive_prompt, | |
negative_prompt, | |
num_of_images | |
): | |
print("predict") | |
# input_img1 = Image.fromarray(input_img1) | |
# input_img2 = Image.fromarray(input_img2) | |
input_img1 = input_img1.resize((WIDTH, HEIGHT)) | |
input_img2 = input_img2.resize((WIDTH, WIDTH)) | |
canvas_mask = np.array(input_img2) | |
mask = get_mask(canvas_mask) | |
print(input_img1, mask, positive_prompt, negative_prompt) | |
retList=[] | |
for x in range(num_of_images): | |
result_image = make_inpainting(positive_prompt=positive_prompt, | |
image=input_img1, | |
mask_image=mask, | |
negative_prompt=negative_prompt, | |
) | |
retList.append(result_image) | |
return retList | |
app = gr.Interface( | |
predict, | |
inputs=[gr.Image(label="img", sources=['upload'], type="pil"), | |
gr.Image(label="mask", sources=['upload'], type="pil"), | |
gr.Textbox(label="positive_prompt"), | |
gr.Textbox(label="negative_prompt"), | |
gr.Number(label="num_of_images") | |
], | |
outputs= [ | |
gr.Image(label="resp0"), | |
gr.Image(label="resp1"), | |
gr.Image(label="resp2"), | |
gr.Image(label="resp3"), | |
gr.Image(label="resp4"), | |
gr.Image(label="resp5"), | |
gr.Image(label="resp6"), | |
gr.Image(label="resp7"), | |
gr.Image(label="resp8"), | |
gr.Image(label="resp9")], | |
title="rem fur 1", | |
) | |
app.launch(share=True) | |
# | |
# gr.Interface( | |
# test1, | |
# inputs=[gr.Textbox(label="param1")], | |
# outputs= gr.Textbox(label="result"), | |
# title="rem fur 1", | |
# ).launch(share=True) | |