|
import gradio as gr
|
|
from tasks.image_caption import image_captioning
|
|
from tasks.image_retrieval import image_retrieval
|
|
from tasks.visual_qa import visual_qa
|
|
|
|
caption_interface = gr.Interface(
|
|
fn=image_captioning,
|
|
inputs=gr.Image(type="pil", label="Upload Image"),
|
|
outputs=gr.Textbox(label="Generated Caption"),
|
|
title="Image Captioning",
|
|
description="Generate a caption for the uploaded image.",
|
|
allow_flagging="never"
|
|
)
|
|
|
|
retrieval_interface = gr.Interface(
|
|
fn=image_retrieval,
|
|
inputs=[
|
|
gr.Textbox(label="Image URL"),
|
|
gr.Textbox(label="Description Text")
|
|
],
|
|
outputs=[
|
|
gr.Image(label="Retrieved Image"),
|
|
gr.Textbox(label="Matching Probability")
|
|
],
|
|
title="Image Retrieval",
|
|
description="Check if the image and text match semantically.",
|
|
allow_flagging="never"
|
|
)
|
|
|
|
vqa_interface = gr.Interface(
|
|
fn=visual_qa,
|
|
inputs=[
|
|
gr.Image(type="pil", label="Upload Image"),
|
|
gr.Textbox(label="Question")
|
|
],
|
|
outputs=gr.Textbox(label="Answer"),
|
|
title="Visual Question Answering",
|
|
description="Answer questions about the uploaded image.",
|
|
allow_flagging="never"
|
|
)
|
|
|
|
|
|
app = gr.TabbedInterface(
|
|
interface_list=[caption_interface, retrieval_interface, vqa_interface],
|
|
tab_names=["Image Captioning", "Image Retrieval", "Visual Q&A"]
|
|
)
|
|
|
|
app.launch()
|
|
|