File size: 3,755 Bytes
08545c6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 utils


# Araclip demo 
with gr.Blocks() as demo_araclip:

    gr.Markdown("## Input parameters")

    txt = gr.Textbox(label="Text Query (Caption)")
    num = gr.Slider(label="Number of retrieved image", value=1, minimum=1, maximum=1000)
    

    with gr.Row():
        btn = gr.Button("Retrieve images", scale=1)

    gr.Markdown("## Retrieved Images")

    gallery = gr.Gallery(
        label="Generated images", show_label=True, elem_id="gallery"
    , columns=[5], rows=[1], object_fit="contain", height="auto")


    with gr.Row():
        lables = gr.Label(label="Text image similarity") 

    with gr.Row():
        
        with gr.Column(scale=1):
            gr.Markdown("<div style='text-align: center; font-size: 24px; font-weight: bold;'>Data Retrieved based on Images Similarity</div>")

            json_output = gr.JSON()

        with gr.Column(scale=1):
            # gr.Markdown("### Data Retrieved based on Text similarity")
            # gr.Markdown("<div style='text-align: center;'> Data Retrieved based on Text similarity </div>")
            gr.Markdown("<div style='text-align: center; font-size: 24px; font-weight: bold;'>Data Retrieved based on Text similarity</div>")
            json_text = gr.JSON()


    btn.click(utils.predict, inputs=[txt, num], outputs=[gallery,lables, json_output, json_text])


    gr.Examples(
        examples=[["تخطي لاعب فريق بيتسبرج بايرتس منطقة اللوحة الرئيسية في مباراة بدوري البيسبول", 5], 
                  ["وقوف قطة بمخالبها على فأرة حاسوب على المكتب", 10],
                  ["صحن به شوربة صينية بالخضار، وإلى جانبه بطاطس مقلية وزجاجة ماء", 7]],
        inputs=[txt, num],
        outputs=[gallery,lables, json_output, json_text],
        fn=utils.predict,
        cache_examples=False,
    )

# mclip demo 
with gr.Blocks() as demo_mclip:

    gr.Markdown("## Input parameters")
    
    txt = gr.Textbox(label="Text Query (Caption)")
    num = gr.Slider(label="Number of retrieved image", value=1, minimum=1, maximum=1000)

    with gr.Row():
        btn = gr.Button("Retrieve images", scale=1)

    gr.Markdown("## Retrieved Images")

    gallery = gr.Gallery(
        label="Generated images", show_label=True, elem_id="gallery_mclip"
    , columns=[5], rows=[1], object_fit="contain", height="auto")

    
    lables = gr.Label() 

    with gr.Row():
        
        with gr.Column(scale=1):
            gr.Markdown("## Images Retrieved")
            json_output = gr.JSON()

        with gr.Column(scale=1):
            gr.Markdown("## Text Retrieved")
            json_text = gr.JSON()

    btn.click(utils.predict_mclip, inputs=[txt, num], outputs=[gallery,lables, json_output, json_text])

    


    gr.Examples(
        examples=[["تخطي لاعب فريق بيتسبرج بايرتس منطقة اللوحة الرئيسية في مباراة بدوري البيسبول", 5], 
                  ["وقوف قطة بمخالبها على فأرة حاسوب على المكتب", 10],
                  ["صحن به شوربة صينية بالخضار، وإلى جانبه بطاطس مقلية وزجاجة ماء", 7]],
        inputs=[txt, num],
        outputs=[gallery,lables, json_output, json_text],
        fn=utils.predict_mclip,
        cache_examples=False,
    )


# Group the demos in a TabbedInterface 
with gr.Blocks() as demo:

    gr.Markdown("<font color=red size=10><center>AraClip: Arabic Image Retrieval Application</center></font>")
    gr.TabbedInterface([demo_araclip, demo_mclip], ["Our Model", "Mclip model"])



if __name__ == "__main__":
    
    demo.launch()