michaelapplydesign's picture
up 8
1cd414e
raw
history blame
No virus
2.72 kB
import gradio as gr
import io
from PIL import Image
import numpy as np
# from config import setResoluton
from models import make_image_controlnet, make_inpainting
from preprocessing import 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,
resolution
):
print("predict")
# bla bla
# input_img1 = Image.fromarray(input_img1)
# input_img2 = Image.fromarray(input_img2)
# setResoluton(resolution)
HEIGHT = resolution
WIDTH = resolution
# WIDTH = resolution
# HEIGHT = resolution
input_img1 = input_img1.resize((resolution, resolution))
input_img2 = input_img2.resize((resolution, resolution))
canvas_mask = np.array(input_img2)
mask = get_mask(canvas_mask)
print(input_img1, mask, positive_prompt, negative_prompt)
retList= make_inpainting(positive_prompt=positive_prompt,
image=input_img1,
mask_image=mask,
negative_prompt=negative_prompt,
num_of_images=num_of_images,
resolution=resolution
)
# add the rest up to 10
while (len(retList)<10):
retList.append(None)
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",value="empty room"),
gr.Textbox(label="negative_prompt",value=""),
gr.Number(label="num_of_images",value=2),
gr.Number(label="resolution",value=512)
],
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)