File size: 2,720 Bytes
372f297
13cb3ce
 
 
eff32bf
1cd414e
ff7142e
26987c4
13cb3ce
 
 
 
 
 
 
 
 
 
eff32bf
405f281
 
8a5a456
26987c4
 
405f281
f59e95f
1cd414e
 
28471f6
af3627e
c1dd8ce
 
13cb3ce
1cd414e
 
 
 
 
26987c4
1cd414e
 
f59e95f
bc435a1
 
 
8a5a456
28471f6
1cd414e
 
 
 
 
 
 
 
db1433d
 
 
e9f68f0
13cb3ce
405f281
c1dd8ce
13cb3ce
c1dd8ce
8a5a456
7bff278
 
 
 
13cb3ce
e9f68f0
 
 
 
 
 
 
 
 
 
 
13cb3ce
c1dd8ce
 
 
 
405f281
8a5a456
c1dd8ce
405f281
 
 
 
 
 
 
13cb3ce
372f297
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
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)