Spaces:
Runtime error
Runtime error
#!/usr/bin/env python | |
from __future__ import annotations | |
import os | |
import pathlib | |
import gradio as gr | |
from prismer_model import Model | |
def create_demo() -> gr.Blocks: | |
model = Model() | |
with gr.Blocks() as demo: | |
with gr.Row(): | |
with gr.Column(): | |
image = gr.Image(label='Input', type='filepath') | |
model_name = gr.Dropdown(label='Model', choices=['Prismer-Base', 'Prismer-Large'], value='Prismer-Base') | |
question = gr.Text(label='Question') | |
run_button = gr.Button('Run') | |
with gr.Column(scale=1.5): | |
answer = gr.Text(label='Model Prediction') | |
with gr.Row(): | |
depth = gr.Image(label='Depth') | |
edge = gr.Image(label='Edge') | |
normals = gr.Image(label='Normals') | |
with gr.Row(): | |
segmentation = gr.Image(label='Segmentation') | |
object_detection = gr.Image(label='Object Detection') | |
ocr = gr.Image(label='OCR Detection') | |
inputs = [image, model_name, question] | |
outputs = [answer, depth, edge, normals, segmentation, object_detection, ocr] | |
paths = sorted(pathlib.Path('prismer/images').glob('*')) | |
ex_questions = ['What is the man on the left doing?', | |
'What is this person doing?', | |
'How many cows are in this image?', | |
'What is the type of animal in this image?', | |
'What toy is it?'] | |
examples = [[path.as_posix(), 'Prismer-Base', ex_questions[i]] for i, path in enumerate(paths)] | |
gr.Examples(examples=examples, | |
inputs=inputs, | |
outputs=outputs, | |
fn=model.run_vqa, | |
cache_examples=os.getenv('SYSTEM') == 'spaces') | |
run_button.click(fn=model.run_vqa, inputs=inputs, outputs=outputs) | |
return demo | |
if __name__ == '__main__': | |
demo = create_demo() | |
demo.queue().launch() | |