Spaces:
Running
Running
Update UI
Browse filesTook time to figure this out in Gradio's playground instead of committing here every three minutes, lol
app.py
CHANGED
@@ -51,6 +51,11 @@ def answer_question(img, prompt):
|
|
51 |
|
52 |
|
53 |
def detect_objects(img: Image.Image):
|
|
|
|
|
|
|
|
|
|
|
54 |
inputs = yolos_processor(img, return_tensors="pt")
|
55 |
outputs = yolos_model(**inputs)
|
56 |
|
@@ -115,22 +120,27 @@ if __name__ == "__main__":
|
|
115 |
with gr.Group():
|
116 |
yolos_gallery = gr.Gallery(label="Detected Objects", object_fit="scale-down", columns=3,
|
117 |
show_share_button=False, selected_index=None, allow_preview=False,
|
118 |
-
type="pil", interactive=False
|
119 |
proceed_button = gr.Button("To Moondream", interactive=False)
|
120 |
|
121 |
with gr.Tab("Inference", id='moondream'):
|
122 |
with gr.Row(equal_height=False):
|
123 |
-
with gr.
|
124 |
moon_img = gr.Image(label="Image", type="pil", interactive=True, mirror_webcam=False)
|
125 |
-
|
126 |
-
|
127 |
-
|
|
|
|
|
128 |
|
129 |
# --- YOLOS --- #
|
130 |
yolos_input.upload(lambda: gr.Button(interactive=True), None, yolos_submit)
|
131 |
yolos_input.clear(lambda: gr.Button(interactive=False), None, yolos_submit)
|
132 |
|
133 |
-
yolos_submit.click(detect_objects,
|
|
|
|
|
|
|
134 |
yolos_gallery.select(gallery_selected, None, [selected_image, proceed_button])
|
135 |
proceed_button.click(to_moondream, [yolos_gallery, selected_image], [tabs, moon_img, moon_submit])
|
136 |
|
|
|
51 |
|
52 |
|
53 |
def detect_objects(img: Image.Image):
|
54 |
+
"""
|
55 |
+
Submits an image to the YOLOS-Small-300 model for object detection.
|
56 |
+
:param img:
|
57 |
+
:return:
|
58 |
+
"""
|
59 |
inputs = yolos_processor(img, return_tensors="pt")
|
60 |
outputs = yolos_model(**inputs)
|
61 |
|
|
|
120 |
with gr.Group():
|
121 |
yolos_gallery = gr.Gallery(label="Detected Objects", object_fit="scale-down", columns=3,
|
122 |
show_share_button=False, selected_index=None, allow_preview=False,
|
123 |
+
type="pil", interactive=False)
|
124 |
proceed_button = gr.Button("To Moondream", interactive=False)
|
125 |
|
126 |
with gr.Tab("Inference", id='moondream'):
|
127 |
with gr.Row(equal_height=False):
|
128 |
+
with gr.Column():
|
129 |
moon_img = gr.Image(label="Image", type="pil", interactive=True, mirror_webcam=False)
|
130 |
+
with gr.Group():
|
131 |
+
moon_prompt = gr.Textbox(label="Ask a question about the image:",
|
132 |
+
value="What is this food item? Include any text on labels.")
|
133 |
+
moon_submit = gr.Button("Submit", interactive=False, variant="primary")
|
134 |
+
moon_output = gr.TextArea(label="Answer", interactive=False)
|
135 |
|
136 |
# --- YOLOS --- #
|
137 |
yolos_input.upload(lambda: gr.Button(interactive=True), None, yolos_submit)
|
138 |
yolos_input.clear(lambda: gr.Button(interactive=False), None, yolos_submit)
|
139 |
|
140 |
+
yolos_submit.click(detect_objects, yolos_input, yolos_gallery)
|
141 |
+
yolos_submit.click(lambda: (gr.Button(variant="secondary"), gr.Button(variant="primary")), None,
|
142 |
+
[yolos_submit, proceed_button])
|
143 |
+
|
144 |
yolos_gallery.select(gallery_selected, None, [selected_image, proceed_button])
|
145 |
proceed_button.click(to_moondream, [yolos_gallery, selected_image], [tabs, moon_img, moon_submit])
|
146 |
|