Vision-CAIR commited on
Commit
47ad041
1 Parent(s): 69b03ec

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -8
app.py CHANGED
@@ -382,11 +382,14 @@ def visualize_all_bbox_together(image, generation):
382
  return pil_image, generation_colored
383
 
384
 
385
- def gradio_reset(chat_state, img_list):
386
  if chat_state is not None:
387
  chat_state.messages = []
388
  if img_list is not None:
389
  img_list = []
 
 
 
390
  return None, gr.update(value=None, interactive=True), gr.update(placeholder='Upload your image and chat',
391
  interactive=True), chat_state, img_list
392
 
@@ -410,7 +413,7 @@ def example_trigger(text_input, image, upload_flag, replace_flag, img_list):
410
  return upload_flag, replace_flag
411
 
412
 
413
- def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag, replace_flag):
414
  if len(user_message) == 0:
415
  text_box_show = 'Input should not be empty!'
416
  else:
@@ -448,6 +451,7 @@ def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag,
448
  visual_img, _ = visualize_all_bbox_together(gr_img, user_message)
449
  if visual_img is not None:
450
  file_path = save_tmp_img(visual_img)
 
451
  chatbot = chatbot + [[(file_path,), None]]
452
 
453
  return text_box_show, chatbot, chat_state, img_list, upload_flag, replace_flag
@@ -483,7 +487,7 @@ def gradio_stream_answer(chatbot, chat_state, img_list, temperature):
483
  return chatbot, chat_state
484
 
485
 
486
- def gradio_visualize(chatbot, gr_img):
487
  if isinstance(gr_img, dict):
488
  gr_img, mask = gr_img['image'], gr_img['mask']
489
 
@@ -493,6 +497,7 @@ def gradio_visualize(chatbot, gr_img):
493
  if len(generation_color):
494
  chatbot[-1][1] = generation_color
495
  file_path = save_tmp_img(visual_img)
 
496
  chatbot = chatbot + [[None, (file_path,)]]
497
 
498
  return chatbot
@@ -581,6 +586,7 @@ with gr.Blocks() as demo:
581
 
582
  upload_flag = gr.State(value=0)
583
  replace_flag = gr.State(value=0)
 
584
  image.upload(image_upload_trigger, [upload_flag, replace_flag, img_list], [upload_flag, replace_flag])
585
 
586
  with gr.Row():
@@ -617,7 +623,7 @@ with gr.Blocks() as demo:
617
 
618
  text_input.submit(
619
  gradio_ask,
620
- [text_input, chatbot, chat_state, image, img_list, upload_flag, replace_flag],
621
  [text_input, chatbot, chat_state, img_list, upload_flag, replace_flag], queue=False
622
  ).success(
623
  gradio_stream_answer,
@@ -625,14 +631,14 @@ with gr.Blocks() as demo:
625
  [chatbot, chat_state]
626
  ).success(
627
  gradio_visualize,
628
- [chatbot, image],
629
  [chatbot],
630
  queue=False,
631
  )
632
 
633
  send.click(
634
  gradio_ask,
635
- [text_input, chatbot, chat_state, image, img_list, upload_flag, replace_flag],
636
  [text_input, chatbot, chat_state, img_list, upload_flag, replace_flag]
637
  ).success(
638
  gradio_stream_answer,
@@ -640,10 +646,10 @@ with gr.Blocks() as demo:
640
  [chatbot, chat_state]
641
  ).success(
642
  gradio_visualize,
643
- [chatbot, image],
644
  [chatbot],
645
  )
646
 
647
- clear.click(gradio_reset, [chat_state, img_list], [chatbot, image, text_input, chat_state, img_list], queue=False)
648
 
649
  demo.launch(enable_queue=True)
 
382
  return pil_image, generation_colored
383
 
384
 
385
+ def gradio_reset(chat_state, img_list, path_list):
386
  if chat_state is not None:
387
  chat_state.messages = []
388
  if img_list is not None:
389
  img_list = []
390
+ for path in path_list:
391
+ os.remove(path)
392
+ path_list.clear()
393
  return None, gr.update(value=None, interactive=True), gr.update(placeholder='Upload your image and chat',
394
  interactive=True), chat_state, img_list
395
 
 
413
  return upload_flag, replace_flag
414
 
415
 
416
+ def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag, replace_flag, path_list):
417
  if len(user_message) == 0:
418
  text_box_show = 'Input should not be empty!'
419
  else:
 
451
  visual_img, _ = visualize_all_bbox_together(gr_img, user_message)
452
  if visual_img is not None:
453
  file_path = save_tmp_img(visual_img)
454
+ path_list.append(file_path)
455
  chatbot = chatbot + [[(file_path,), None]]
456
 
457
  return text_box_show, chatbot, chat_state, img_list, upload_flag, replace_flag
 
487
  return chatbot, chat_state
488
 
489
 
490
+ def gradio_visualize(chatbot, gr_img, path_list):
491
  if isinstance(gr_img, dict):
492
  gr_img, mask = gr_img['image'], gr_img['mask']
493
 
 
497
  if len(generation_color):
498
  chatbot[-1][1] = generation_color
499
  file_path = save_tmp_img(visual_img)
500
+ path_list.append(file_path)
501
  chatbot = chatbot + [[None, (file_path,)]]
502
 
503
  return chatbot
 
586
 
587
  upload_flag = gr.State(value=0)
588
  replace_flag = gr.State(value=0)
589
+ path_list = gr.State(value=[])
590
  image.upload(image_upload_trigger, [upload_flag, replace_flag, img_list], [upload_flag, replace_flag])
591
 
592
  with gr.Row():
 
623
 
624
  text_input.submit(
625
  gradio_ask,
626
+ [text_input, chatbot, chat_state, image, img_list, upload_flag, replace_flag, path_list],
627
  [text_input, chatbot, chat_state, img_list, upload_flag, replace_flag], queue=False
628
  ).success(
629
  gradio_stream_answer,
 
631
  [chatbot, chat_state]
632
  ).success(
633
  gradio_visualize,
634
+ [chatbot, image, path_list],
635
  [chatbot],
636
  queue=False,
637
  )
638
 
639
  send.click(
640
  gradio_ask,
641
+ [text_input, chatbot, chat_state, image, img_list, upload_flag, replace_flag, path_list],
642
  [text_input, chatbot, chat_state, img_list, upload_flag, replace_flag]
643
  ).success(
644
  gradio_stream_answer,
 
646
  [chatbot, chat_state]
647
  ).success(
648
  gradio_visualize,
649
+ [chatbot, image, path_list],
650
  [chatbot],
651
  )
652
 
653
+ clear.click(gradio_reset, [chat_state, img_list], [chatbot, image, text_input, chat_state, img_list, path_list], queue=False)
654
 
655
  demo.launch(enable_queue=True)