File size: 4,138 Bytes
ebb703c
 
 
 
 
3be08ba
 
ebb703c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
100
101
102
103
104
105
106
107
108
109
110
import gradio as gr
import os
import requests
import random
import time
name2 = "dreamlike-art/dreamlike-photoreal-2.0"
#name2 = "runwayml/stable-diffusion-v1-5"

models=[
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
    gr.Interface.load(f"models/{name2}"),
]
#o = os.getenv("P")
o = "V"

m_out = ("""
<div id="restart">
<h3 id="head">Loading Time Limit Reached.</h3><br>
<h4 id="cont">Please choose a Simpler Prompt, or <b>Upgrade</b> for faster loading.</h4>
</div>
""")
loading=("""
<div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div>""")
def ac():
    def clear():
        return gr.update(value=0),gr.update(value=0)
    def start():
        stamp = time.time()
        return gr.update(value=stamp),gr.update(value=0)
    def end(stamp):
        ts = stamp + 120
        ti = time.time()
        if ti > ts and stamp != 0:
            return gr.update(value=1),gr.HTML.update(f"{m_out}",visible=True)
        else:
            return gr.update(value=0),None
    def im_fn(put,fac="",h=None):
        try:
            if h == o:
                put = f"{put}{fac}"
                fac = f"{fac} "
                rn = random.randint(0, 19)
                model=models[rn]
                return model(put),fac
            elif h != o:
                return(None,None)
        except Exception:
            return None, None 
    def cl_fac():
        return "",gr.HTML.update(f"{loading}")
    with gr.Blocks() as b:
        with gr.Row():
            with gr.Column():
                put = gr.Textbox()     
            with gr.Column():
                with gr.Row():
                    btn1 = gr.Button("Run")
                    btn2 = gr.Button("Clear")
        message=gr.HTML("<div></div>")
        message2=gr.HTML("",visible=False)

        with gr.Row():
            out1 = gr.Image()
            out2 = gr.Image()
        with gr.Row():
            out3 = gr.Image()
            out4 = gr.Image()

        with gr.Row(visible=False):
            h=gr.Textbox(value="V")
            t_state=gr.Number()
            t_switch=gr.Textbox(value=0)
        def clear_all():
            return "",None,None,None,None,None,None,1,gr.HTML.update("<div></div>")
        fac_b = gr.Textbox(value="",visible=False)

        def noth():
            return gr.HTML.update("<div></div>")
        #a1=btn1.click(noth,None,btn1,every=1)
        btn1.click(cl_fac,None,[fac_b,message],show_progress=False)
        b1=btn1.click(start,None,[t_state,t_switch],show_progress=True)
        sta = t_state.change(end,t_state,[t_switch,message2],every=1,show_progress=True)
        b2=btn1.click(im_fn,[put,fac_b,h],[out1,fac_b], show_progress=True)
        b3=out1.change(im_fn,[put,fac_b,h],[out2,fac_b], show_progress=True)        
        b4=out2.change(im_fn,[put,fac_b,h],[out3,fac_b], show_progress=True)        
        b5=out3.change(im_fn,[put,fac_b,h],[out4,fac_b], show_progress=True)
        b6=out4.change(noth,None,message, show_progress=False)
        swi=t_switch.change(clear,None,[t_switch,fac_b], cancels=[sta,b2,b3,b4,b5],show_progress=False)
        #btn2.click(noth,None,message,cancels=[b1,sta,b2,b3,b4,b5,swi],show_progress=False)
        btn2.click(clear_all, None,[fac_b,put,out1,out2,out3,out4,t_state,t_switch,message],cancels=[b1,sta,b2,b3,b4,b5,swi],show_progress=False)
    b.queue(concurrency_count=100).launch(show_api=False)
ac()