Spaces:
Runtime error
Runtime error
Commit
Β·
f1bfd5b
1
Parent(s):
4120bef
Update app.py
Browse files
app.py
CHANGED
|
@@ -191,7 +191,6 @@ def visualize_all_bbox_together(image, generation):
|
|
| 191 |
return None, ''
|
| 192 |
|
| 193 |
generation = html.unescape(generation)
|
| 194 |
-
# print('gen begin', generation)
|
| 195 |
|
| 196 |
image_width, image_height = image.size
|
| 197 |
image = image.resize([500, int(500 / image_width * image_height)])
|
|
@@ -207,7 +206,7 @@ def visualize_all_bbox_together(image, generation):
|
|
| 207 |
try:
|
| 208 |
obj, string = string.split('</p>')
|
| 209 |
except ValueError:
|
| 210 |
-
|
| 211 |
continue
|
| 212 |
bbox_list = string.split('<delim>')
|
| 213 |
flag = False
|
|
@@ -372,9 +371,7 @@ def visualize_all_bbox_together(image, generation):
|
|
| 372 |
color = next(color_gen)
|
| 373 |
return f'<span style="color:rgb{color}">{phrase}</span>'
|
| 374 |
|
| 375 |
-
# print('gen before', generation)
|
| 376 |
generation = re.sub(r'{<\d+><\d+><\d+><\d+>}|<delim>', '', generation)
|
| 377 |
-
# print('gen after', generation)
|
| 378 |
generation_colored = re.sub(r'<p>(.*?)</p>', colored_phrases, generation)
|
| 379 |
else:
|
| 380 |
generation_colored = ''
|
|
@@ -395,31 +392,28 @@ def gradio_reset(chat_state, img_list):
|
|
| 395 |
def image_upload_trigger(upload_flag, replace_flag, img_list):
|
| 396 |
# set the upload flag to true when receive a new image.
|
| 397 |
# if there is an old image (and old conversation), set the replace flag to true to reset the conv later.
|
| 398 |
-
# print('flag', upload_flag, replace_flag)
|
| 399 |
-
# print("SET UPLOAD FLAG!")
|
| 400 |
upload_flag = 1
|
| 401 |
if img_list:
|
| 402 |
-
# print("SET REPLACE FLAG!")
|
| 403 |
replace_flag = 1
|
| 404 |
-
# print('flag', upload_flag, replace_flag)
|
| 405 |
return upload_flag, replace_flag
|
| 406 |
|
| 407 |
|
| 408 |
def example_trigger(text_input, image, upload_flag, replace_flag, img_list):
|
| 409 |
# set the upload flag to true when receive a new image.
|
| 410 |
# if there is an old image (and old conversation), set the replace flag to true to reset the conv later.
|
| 411 |
-
# print('flag', upload_flag, replace_flag)
|
| 412 |
-
# print("SET UPLOAD FLAG!")
|
| 413 |
upload_flag = 1
|
| 414 |
if img_list or replace_flag == 1:
|
| 415 |
-
# print("SET REPLACE FLAG!")
|
| 416 |
replace_flag = 1
|
| 417 |
|
| 418 |
-
# print('flag', upload_flag, replace_flag)
|
| 419 |
return upload_flag, replace_flag
|
| 420 |
|
| 421 |
|
| 422 |
def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag, replace_flag):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 423 |
if isinstance(gr_img, dict):
|
| 424 |
gr_img, mask = gr_img['image'], gr_img['mask']
|
| 425 |
else:
|
|
@@ -432,20 +426,14 @@ def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag,
|
|
| 432 |
bbox = mask2bbox(mask)
|
| 433 |
user_message = user_message + bbox
|
| 434 |
|
| 435 |
-
if len(user_message) == 0:
|
| 436 |
-
return gr.update(interactive=True, placeholder='Input should not be empty!'), chatbot, chat_state
|
| 437 |
-
|
| 438 |
if chat_state is None:
|
| 439 |
chat_state = CONV_VISION.copy()
|
| 440 |
|
| 441 |
-
# print('upload flag: {}'.format(upload_flag))
|
| 442 |
if upload_flag:
|
| 443 |
if replace_flag:
|
| 444 |
-
print('RESET!!!!!!!')
|
| 445 |
chat_state = CONV_VISION.copy() # new image, reset everything
|
| 446 |
replace_flag = 0
|
| 447 |
chatbot = []
|
| 448 |
-
# print('UPLOAD IMAGE!!')
|
| 449 |
img_list = []
|
| 450 |
llm_message = chat.upload_img(gr_img, chat_state, img_list)
|
| 451 |
upload_flag = 0
|
|
@@ -457,11 +445,10 @@ def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag,
|
|
| 457 |
if '[identify]' in user_message:
|
| 458 |
visual_img, _ = visualize_all_bbox_together(gr_img, user_message)
|
| 459 |
if visual_img is not None:
|
| 460 |
-
# print('Visualizing the input')
|
| 461 |
file_path = save_tmp_img(visual_img)
|
| 462 |
chatbot = chatbot + [[(file_path,), None]]
|
| 463 |
|
| 464 |
-
return
|
| 465 |
|
| 466 |
|
| 467 |
def gradio_answer(chatbot, chat_state, img_list, temperature):
|
|
@@ -489,7 +476,6 @@ def gradio_stream_answer(chatbot, chat_state, img_list, temperature):
|
|
| 489 |
output += escapped
|
| 490 |
chatbot[-1][1] = output
|
| 491 |
yield chatbot, chat_state
|
| 492 |
-
# print('message: ', chat_state.messages)
|
| 493 |
chat_state.messages[-1][1] = '</s>'
|
| 494 |
return chatbot, chat_state
|
| 495 |
|
|
@@ -501,7 +487,6 @@ def gradio_visualize(chatbot, gr_img):
|
|
| 501 |
unescaped = reverse_escape(chatbot[-1][1])
|
| 502 |
visual_img, generation_color = visualize_all_bbox_together(gr_img, unescaped)
|
| 503 |
if visual_img is not None:
|
| 504 |
-
# print('Visualizing the output')
|
| 505 |
if len(generation_color):
|
| 506 |
chatbot[-1][1] = generation_color
|
| 507 |
file_path = save_tmp_img(visual_img)
|
|
@@ -659,4 +644,4 @@ with gr.Blocks() as demo:
|
|
| 659 |
|
| 660 |
clear.click(gradio_reset, [chat_state, img_list], [chatbot, image, text_input, chat_state, img_list], queue=False)
|
| 661 |
|
| 662 |
-
demo.launch(enable_queue=True)
|
|
|
|
| 191 |
return None, ''
|
| 192 |
|
| 193 |
generation = html.unescape(generation)
|
|
|
|
| 194 |
|
| 195 |
image_width, image_height = image.size
|
| 196 |
image = image.resize([500, int(500 / image_width * image_height)])
|
|
|
|
| 206 |
try:
|
| 207 |
obj, string = string.split('</p>')
|
| 208 |
except ValueError:
|
| 209 |
+
print('wrong string: ', string)
|
| 210 |
continue
|
| 211 |
bbox_list = string.split('<delim>')
|
| 212 |
flag = False
|
|
|
|
| 371 |
color = next(color_gen)
|
| 372 |
return f'<span style="color:rgb{color}">{phrase}</span>'
|
| 373 |
|
|
|
|
| 374 |
generation = re.sub(r'{<\d+><\d+><\d+><\d+>}|<delim>', '', generation)
|
|
|
|
| 375 |
generation_colored = re.sub(r'<p>(.*?)</p>', colored_phrases, generation)
|
| 376 |
else:
|
| 377 |
generation_colored = ''
|
|
|
|
| 392 |
def image_upload_trigger(upload_flag, replace_flag, img_list):
|
| 393 |
# set the upload flag to true when receive a new image.
|
| 394 |
# if there is an old image (and old conversation), set the replace flag to true to reset the conv later.
|
|
|
|
|
|
|
| 395 |
upload_flag = 1
|
| 396 |
if img_list:
|
|
|
|
| 397 |
replace_flag = 1
|
|
|
|
| 398 |
return upload_flag, replace_flag
|
| 399 |
|
| 400 |
|
| 401 |
def example_trigger(text_input, image, upload_flag, replace_flag, img_list):
|
| 402 |
# set the upload flag to true when receive a new image.
|
| 403 |
# if there is an old image (and old conversation), set the replace flag to true to reset the conv later.
|
|
|
|
|
|
|
| 404 |
upload_flag = 1
|
| 405 |
if img_list or replace_flag == 1:
|
|
|
|
| 406 |
replace_flag = 1
|
| 407 |
|
|
|
|
| 408 |
return upload_flag, replace_flag
|
| 409 |
|
| 410 |
|
| 411 |
def gradio_ask(user_message, chatbot, chat_state, gr_img, img_list, upload_flag, replace_flag):
|
| 412 |
+
if len(user_message) == 0:
|
| 413 |
+
text_box_show = 'Input should not be empty!'
|
| 414 |
+
else:
|
| 415 |
+
text_box_show = ''
|
| 416 |
+
|
| 417 |
if isinstance(gr_img, dict):
|
| 418 |
gr_img, mask = gr_img['image'], gr_img['mask']
|
| 419 |
else:
|
|
|
|
| 426 |
bbox = mask2bbox(mask)
|
| 427 |
user_message = user_message + bbox
|
| 428 |
|
|
|
|
|
|
|
|
|
|
| 429 |
if chat_state is None:
|
| 430 |
chat_state = CONV_VISION.copy()
|
| 431 |
|
|
|
|
| 432 |
if upload_flag:
|
| 433 |
if replace_flag:
|
|
|
|
| 434 |
chat_state = CONV_VISION.copy() # new image, reset everything
|
| 435 |
replace_flag = 0
|
| 436 |
chatbot = []
|
|
|
|
| 437 |
img_list = []
|
| 438 |
llm_message = chat.upload_img(gr_img, chat_state, img_list)
|
| 439 |
upload_flag = 0
|
|
|
|
| 445 |
if '[identify]' in user_message:
|
| 446 |
visual_img, _ = visualize_all_bbox_together(gr_img, user_message)
|
| 447 |
if visual_img is not None:
|
|
|
|
| 448 |
file_path = save_tmp_img(visual_img)
|
| 449 |
chatbot = chatbot + [[(file_path,), None]]
|
| 450 |
|
| 451 |
+
return text_box_show, chatbot, chat_state, img_list, upload_flag, replace_flag
|
| 452 |
|
| 453 |
|
| 454 |
def gradio_answer(chatbot, chat_state, img_list, temperature):
|
|
|
|
| 476 |
output += escapped
|
| 477 |
chatbot[-1][1] = output
|
| 478 |
yield chatbot, chat_state
|
|
|
|
| 479 |
chat_state.messages[-1][1] = '</s>'
|
| 480 |
return chatbot, chat_state
|
| 481 |
|
|
|
|
| 487 |
unescaped = reverse_escape(chatbot[-1][1])
|
| 488 |
visual_img, generation_color = visualize_all_bbox_together(gr_img, unescaped)
|
| 489 |
if visual_img is not None:
|
|
|
|
| 490 |
if len(generation_color):
|
| 491 |
chatbot[-1][1] = generation_color
|
| 492 |
file_path = save_tmp_img(visual_img)
|
|
|
|
| 644 |
|
| 645 |
clear.click(gradio_reset, [chat_state, img_list], [chatbot, image, text_input, chat_state, img_list], queue=False)
|
| 646 |
|
| 647 |
+
demo.launch(enable_queue=True)
|