Spaces:
Runtime error
Runtime error
liuyizhang
commited on
Commit
•
b902809
1
Parent(s):
779c33a
update app.py
Browse files
app.py
CHANGED
@@ -323,10 +323,10 @@ mask_source_segment = "type what to detect below"
|
|
323 |
|
324 |
def run_grounded_sam(input_image, text_prompt, task_type, inpaint_prompt, box_threshold, text_threshold,
|
325 |
iou_threshold, inpaint_mode, mask_source_radio, remove_mode, remove_mask_extend):
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
|
331 |
file_temp = int(time.time())
|
332 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_[{text_prompt}]_1_')
|
@@ -361,6 +361,9 @@ def run_grounded_sam(input_image, text_prompt, task_type, inpaint_prompt, box_th
|
|
361 |
boxes_filt, pred_phrases = get_grounding_output(
|
362 |
groundingdino_model, image, text_prompt, box_threshold, text_threshold, device=groundingdino_device
|
363 |
)
|
|
|
|
|
|
|
364 |
boxes_filt_ori = copy.deepcopy(boxes_filt)
|
365 |
|
366 |
pred_dict = {
|
@@ -414,7 +417,7 @@ def run_grounded_sam(input_image, text_prompt, task_type, inpaint_prompt, box_th
|
|
414 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_3_')
|
415 |
if task_type == 'detection' or task_type == 'segment':
|
416 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_9_')
|
417 |
-
return output_images
|
418 |
elif task_type == 'inpainting' or task_type == 'remove':
|
419 |
if inpaint_prompt.strip() == '' and mask_source_radio == mask_source_segment:
|
420 |
task_type = 'remove'
|
@@ -488,11 +491,11 @@ def run_grounded_sam(input_image, text_prompt, task_type, inpaint_prompt, box_th
|
|
488 |
os.remove(image_path)
|
489 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_9_')
|
490 |
output_images.append(image_result)
|
491 |
-
return output_images
|
492 |
else:
|
493 |
logger.info(f"task_type:{task_type} error!")
|
494 |
logger.info(f'run_grounded_sam_[{file_temp}]_9_9_')
|
495 |
-
return output_images
|
496 |
|
497 |
def change_radio_display(task_type, mask_source_radio):
|
498 |
text_prompt_visible = True
|
@@ -524,7 +527,7 @@ if __name__ == "__main__":
|
|
524 |
mask_source_radio = gr.Radio([mask_source_draw, mask_source_segment],
|
525 |
value=mask_source_segment, label="Mask from",
|
526 |
interactive=True, visible=False)
|
527 |
-
text_prompt = gr.Textbox(label="Detection Prompt[To detect multiple objects, seperating each name with '.'
|
528 |
inpaint_prompt = gr.Textbox(label="Inpaint Prompt (if this is empty, then remove)", visible=False)
|
529 |
run_button = gr.Button(label="Run")
|
530 |
with gr.Accordion("Advanced options", open=False):
|
@@ -546,11 +549,11 @@ if __name__ == "__main__":
|
|
546 |
|
547 |
with gr.Column():
|
548 |
gallery = gr.Gallery(
|
549 |
-
label="
|
550 |
).style(grid=[2], full_width=True, full_height=True)
|
551 |
|
552 |
run_button.click(fn=run_grounded_sam, inputs=[
|
553 |
-
input_image, text_prompt, task_type, inpaint_prompt, box_threshold, text_threshold, iou_threshold, inpaint_mode, mask_source_radio, remove_mode, remove_mask_extend], outputs=[gallery])
|
554 |
task_type.change(fn=change_radio_display, inputs=[task_type, mask_source_radio], outputs=[text_prompt, inpaint_prompt, mask_source_radio])
|
555 |
mask_source_radio.change(fn=change_radio_display, inputs=[task_type, mask_source_radio], outputs=[text_prompt, inpaint_prompt, mask_source_radio])
|
556 |
|
|
|
323 |
|
324 |
def run_grounded_sam(input_image, text_prompt, task_type, inpaint_prompt, box_threshold, text_threshold,
|
325 |
iou_threshold, inpaint_mode, mask_source_radio, remove_mode, remove_mask_extend):
|
326 |
+
text_prompt = text_prompt.strip()
|
327 |
+
if not ((task_type == 'inpainting' or task_type == 'remove') and mask_source_radio == mask_source_draw):
|
328 |
+
if text_prompt == '':
|
329 |
+
return [], gr.Gallery.update(label='Detection prompt is not found!')
|
330 |
|
331 |
file_temp = int(time.time())
|
332 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_[{text_prompt}]_1_')
|
|
|
361 |
boxes_filt, pred_phrases = get_grounding_output(
|
362 |
groundingdino_model, image, text_prompt, box_threshold, text_threshold, device=groundingdino_device
|
363 |
)
|
364 |
+
if boxes_filt.size(0) == 0:
|
365 |
+
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_[{text_prompt}]_1_[No objects detected]_')
|
366 |
+
return [], gr.Gallery.update(label='No objects detected, please try others.')
|
367 |
boxes_filt_ori = copy.deepcopy(boxes_filt)
|
368 |
|
369 |
pred_dict = {
|
|
|
417 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_3_')
|
418 |
if task_type == 'detection' or task_type == 'segment':
|
419 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_9_')
|
420 |
+
return output_images, gr.Gallery.update(label='result images')
|
421 |
elif task_type == 'inpainting' or task_type == 'remove':
|
422 |
if inpaint_prompt.strip() == '' and mask_source_radio == mask_source_segment:
|
423 |
task_type = 'remove'
|
|
|
491 |
os.remove(image_path)
|
492 |
logger.info(f'run_grounded_sam_[{file_temp}]_{task_type}_9_')
|
493 |
output_images.append(image_result)
|
494 |
+
return output_images, gr.Gallery.update(label='result images')
|
495 |
else:
|
496 |
logger.info(f"task_type:{task_type} error!")
|
497 |
logger.info(f'run_grounded_sam_[{file_temp}]_9_9_')
|
498 |
+
return output_images, gr.Gallery.update(label='result images')
|
499 |
|
500 |
def change_radio_display(task_type, mask_source_radio):
|
501 |
text_prompt_visible = True
|
|
|
527 |
mask_source_radio = gr.Radio([mask_source_draw, mask_source_segment],
|
528 |
value=mask_source_segment, label="Mask from",
|
529 |
interactive=True, visible=False)
|
530 |
+
text_prompt = gr.Textbox(label="Detection Prompt[To detect multiple objects, seperating each name with '.', like this: cat . dog . chair ]", placeholder="Cannot be empty")
|
531 |
inpaint_prompt = gr.Textbox(label="Inpaint Prompt (if this is empty, then remove)", visible=False)
|
532 |
run_button = gr.Button(label="Run")
|
533 |
with gr.Accordion("Advanced options", open=False):
|
|
|
549 |
|
550 |
with gr.Column():
|
551 |
gallery = gr.Gallery(
|
552 |
+
label="result images", show_label=True, elem_id="gallery"
|
553 |
).style(grid=[2], full_width=True, full_height=True)
|
554 |
|
555 |
run_button.click(fn=run_grounded_sam, inputs=[
|
556 |
+
input_image, text_prompt, task_type, inpaint_prompt, box_threshold, text_threshold, iou_threshold, inpaint_mode, mask_source_radio, remove_mode, remove_mask_extend], outputs=[gallery, gallery])
|
557 |
task_type.change(fn=change_radio_display, inputs=[task_type, mask_source_radio], outputs=[text_prompt, inpaint_prompt, mask_source_radio])
|
558 |
mask_source_radio.change(fn=change_radio_display, inputs=[task_type, mask_source_radio], outputs=[text_prompt, inpaint_prompt, mask_source_radio])
|
559 |
|