|
|
|
|
|
|
|
|
|
|
|
import gradio as gr
|
|
from src.model import describe_video
|
|
|
|
|
|
|
|
video = gr.Video(type="file", label="Video")
|
|
query = gr.Textbox(label="Query", placeholder="Type your query here")
|
|
|
|
|
|
response = gr.Textbox(label="Response", show_label=True, show_copy_button=True)
|
|
|
|
|
|
examples = [
|
|
[
|
|
"./videos/sample_video_1.mp4",
|
|
"Here are some frames of a video. Describe this video in detail",
|
|
],
|
|
[
|
|
"./videos/sample_video_2.mp4",
|
|
"Which are the animals in this video, and how many are there?",
|
|
],
|
|
["./videos/sample_video_3.mp4", "What is happening in this video?"],
|
|
]
|
|
|
|
|
|
title = "Video Understanding & Question Answering"
|
|
description = "This Gradio demo uses the MiniCPM-V-2_6 model for video understanding tasks. Upload a video and type a question to get a detailed description or specific information from the video."
|
|
article = "<p style='text-align: center'><a href='https://arxiv.org/abs/2407.03320' target='_blank'>InternLM-XComposer-2.5: A Versatile Large Vision Language Model Supporting Long-Contextual Input and Output</a> | <a href='https://huggingface.co/internlm/internlm-xcomposer2d5-7b' target='_blank'>Model Page</a></p>"
|
|
|
|
|
|
|
|
interface = gr.Interface(
|
|
fn=describe_video,
|
|
inputs=[video, query],
|
|
outputs=response,
|
|
examples=examples,
|
|
title=title,
|
|
description=description,
|
|
article=article,
|
|
theme="Soft",
|
|
allow_flagging="never",
|
|
)
|
|
interface.launch(debug=False)
|
|
|