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("
Data Retrieved based on Images Similarity
")
json_output = gr.JSON()
with gr.Column(scale=1):
# gr.Markdown("### Data Retrieved based on Text similarity")
# gr.Markdown(" Data Retrieved based on Text similarity
")
gr.Markdown("Data Retrieved based on Text similarity
")
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("AraClip: Arabic Image Retrieval Application")
gr.TabbedInterface([demo_araclip, demo_mclip], ["Our Model", "Mclip model"])
if __name__ == "__main__":
demo.launch()