Update app.py
Browse files
app.py
CHANGED
@@ -127,9 +127,8 @@ captions = []
|
|
127 |
face_btns = []
|
128 |
det_btns = []
|
129 |
vlm_btns = []
|
130 |
-
|
131 |
idip_checkboxes = []
|
132 |
-
accordion_states = []
|
133 |
|
134 |
ckpt_root = "/data/checkpoints/XVerse"
|
135 |
model.clear_modulation_adapters()
|
@@ -359,7 +358,7 @@ def create_image_input(index, open=True, indices_state=None):
|
|
359 |
with gr.Column():
|
360 |
with gr.Accordion(f"Input Image {index + 1}", open=accordion_state.value) as accordion:
|
361 |
image = gr.Image(type="filepath", label=f"Image {index + 1}")
|
362 |
-
caption = gr.Textbox(label=f"
|
363 |
id_ip_checkbox = gr.Checkbox(value=False, label=f"ID or not {index + 1}", visible=True)
|
364 |
with gr.Row():
|
365 |
vlm_btn = gr.Button("Generate Caption")
|
@@ -377,6 +376,19 @@ def create_image_input(index, open=True, indices_state=None):
|
|
377 |
)
|
378 |
return image, caption, face_btn, det_btn, vlm_btn, accordion_state, accordion, id_ip_checkbox
|
379 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
380 |
|
381 |
def merge_instances(orig_img, indices, ins_bboxes, ins_images):
|
382 |
orig_image_width, orig_image_height = orig_img.width, orig_img.height
|
@@ -460,20 +472,19 @@ if __name__ == "__main__":
|
|
460 |
with gr.Column():
|
461 |
with gr.Row():
|
462 |
for i in range(num_inputs):
|
463 |
-
image, caption, face_btn, det_btn, vlm_btn,
|
464 |
images.append(image)
|
465 |
idip_checkboxes.append(id_ip_checkbox)
|
466 |
captions.append(caption)
|
467 |
face_btns.append(face_btn)
|
468 |
det_btns.append(det_btn)
|
469 |
vlm_btns.append(vlm_btn)
|
470 |
-
accordion_states.append(accordion_state)
|
471 |
-
|
472 |
-
accordions.append(accordion)
|
473 |
|
474 |
prompt = gr.Textbox(label="Prompt", value="")
|
475 |
gen_btn = gr.Button("Generate", variant="primary")
|
476 |
-
with gr.Accordion("Advanced Settings", open=False):
|
|
|
|
|
477 |
|
478 |
with gr.Row():
|
479 |
target_height = gr.Slider(512, 1024, step=128, value=768, label="Generated Height", info="")
|
@@ -559,7 +570,7 @@ if __name__ == "__main__":
|
|
559 |
|
560 |
with gr.Column():
|
561 |
output = gr.Image(label="Result")
|
562 |
-
|
563 |
|
564 |
|
565 |
gen_btn.click(
|
@@ -583,8 +594,7 @@ if __name__ == "__main__":
|
|
583 |
face_btns[i].click(crop_face_img, inputs=[images[i]], outputs=[images[i]])
|
584 |
det_btns[i].click(det_seg_img, inputs=[images[i], captions[i]], outputs=[images[i]])
|
585 |
vlm_btns[i].click(vlm_img_caption, inputs=[images[i]], outputs=[captions[i]])
|
586 |
-
|
587 |
-
|
588 |
|
589 |
demo.queue()
|
590 |
demo.launch()
|
|
|
127 |
face_btns = []
|
128 |
det_btns = []
|
129 |
vlm_btns = []
|
130 |
+
|
131 |
idip_checkboxes = []
|
|
|
132 |
|
133 |
ckpt_root = "/data/checkpoints/XVerse"
|
134 |
model.clear_modulation_adapters()
|
|
|
358 |
with gr.Column():
|
359 |
with gr.Accordion(f"Input Image {index + 1}", open=accordion_state.value) as accordion:
|
360 |
image = gr.Image(type="filepath", label=f"Image {index + 1}")
|
361 |
+
caption = gr.Textbox(label=f"ENT{index + 1}", value="")
|
362 |
id_ip_checkbox = gr.Checkbox(value=False, label=f"ID or not {index + 1}", visible=True)
|
363 |
with gr.Row():
|
364 |
vlm_btn = gr.Button("Generate Caption")
|
|
|
376 |
)
|
377 |
return image, caption, face_btn, det_btn, vlm_btn, accordion_state, accordion, id_ip_checkbox
|
378 |
|
379 |
+
def create_min_image_input(index, open=True, indices_state=None):
|
380 |
+
|
381 |
+
with gr.Column(min_width=256):
|
382 |
+
image = gr.Image(type="filepath", label=f"Image {index + 1}")
|
383 |
+
caption = gr.Textbox(label=f"Caption {index + 1}", value="")
|
384 |
+
id_ip_checkbox = gr.Checkbox(value=True, label=f"ID or not {index + 1}", visible=True)
|
385 |
+
with gr.Row():
|
386 |
+
vlm_btn = gr.Button("Generate Caption", visible=False)
|
387 |
+
det_btn = gr.Button("Det & Seg", visible=False)
|
388 |
+
face_btn = gr.Button("Crop Face", visible=False)
|
389 |
+
|
390 |
+
return image, caption, face_btn, det_btn, vlm_btn, id_ip_checkbox
|
391 |
+
|
392 |
|
393 |
def merge_instances(orig_img, indices, ins_bboxes, ins_images):
|
394 |
orig_image_width, orig_image_height = orig_img.width, orig_img.height
|
|
|
472 |
with gr.Column():
|
473 |
with gr.Row():
|
474 |
for i in range(num_inputs):
|
475 |
+
image, caption, face_btn, det_btn, vlm_btn, id_ip_checkbox = create_min_image_input(i, open=i<2, indices_state=indices_state)
|
476 |
images.append(image)
|
477 |
idip_checkboxes.append(id_ip_checkbox)
|
478 |
captions.append(caption)
|
479 |
face_btns.append(face_btn)
|
480 |
det_btns.append(det_btn)
|
481 |
vlm_btns.append(vlm_btn)
|
|
|
|
|
|
|
482 |
|
483 |
prompt = gr.Textbox(label="Prompt", value="")
|
484 |
gen_btn = gr.Button("Generate", variant="primary")
|
485 |
+
with gr.Accordion("Advanced Settings", open=False, visible=False):
|
486 |
+
|
487 |
+
seed = gr.Number(value=42, label="Seed", info="")
|
488 |
|
489 |
with gr.Row():
|
490 |
target_height = gr.Slider(512, 1024, step=128, value=768, label="Generated Height", info="")
|
|
|
570 |
|
571 |
with gr.Column():
|
572 |
output = gr.Image(label="Result")
|
573 |
+
|
574 |
|
575 |
|
576 |
gen_btn.click(
|
|
|
594 |
face_btns[i].click(crop_face_img, inputs=[images[i]], outputs=[images[i]])
|
595 |
det_btns[i].click(det_seg_img, inputs=[images[i], captions[i]], outputs=[images[i]])
|
596 |
vlm_btns[i].click(vlm_img_caption, inputs=[images[i]], outputs=[captions[i]])
|
597 |
+
images[i].upload(vlm_img_caption, inputs=[images[i]], outputs=[captions[i]])
|
|
|
598 |
|
599 |
demo.queue()
|
600 |
demo.launch()
|