zeenai2025 commited on
Commit
18caa41
·
verified ·
1 Parent(s): b8f1f73

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -84
app.py CHANGED
@@ -220,25 +220,12 @@ image_mask_list.sort()
220
 
221
 
222
  @spaces.GPU
223
- def run_local(base_image, base_mask, reference_image, ref_mask, seed, base_mask_option, ref_mask_option, text_prompt):
224
-
225
-
226
- if base_mask_option == "Draw Mask":
227
- tar_image = base_image["background"]
228
- tar_mask = base_image["layers"][0]
229
- else:
230
- tar_image = base_image["background"]
231
- tar_mask = base_mask["background"]
232
-
233
- if ref_mask_option == "Draw Mask":
234
- ref_image = reference_image["background"]
235
- ref_mask = reference_image["layers"][0]
236
- elif ref_mask_option == "Upload with Mask":
237
- ref_image = reference_image["background"]
238
- ref_mask = ref_mask["background"]
239
- else:
240
- ref_image = reference_image["background"]
241
- ref_mask = get_mask(ref_image, text_prompt)
242
 
243
  tar_image = tar_image.convert("RGB")
244
  tar_mask = tar_mask.convert("L")
@@ -348,7 +335,7 @@ def run_local(base_image, base_mask, reference_image, ref_mask, seed, base_mask_
348
  edited_image = Image.fromarray(edited_image)
349
 
350
 
351
- return [edited_image,image_to_base64(edited_image)]
352
 
353
  def update_ui(option):
354
  if option == "Draw Mask":
@@ -358,71 +345,21 @@ def update_ui(option):
358
 
359
 
360
  with gr.Blocks() as demo:
 
361
 
 
 
 
 
 
362
 
363
- gr.Markdown("# Insert-Anything")
364
- gr.Markdown("### Make sure to select the correct mask button!!")
365
- gr.Markdown("### Click the output image to toggle between Diptych and final results!!")
366
 
367
- with gr.Row():
368
- with gr.Column(scale=1):
369
- with gr.Row():
370
- base_image = gr.ImageEditor(label="Background Image", sources="upload", type="pil", brush=gr.Brush(colors=["#FFFFFF"],default_size = 30,color_mode = "fixed"),
371
- layers = False,
372
- interactive=True)
373
-
374
- base_mask = gr.ImageEditor(label="Background Mask", sources="upload", type="pil", layers = False, brush=False, eraser=False)
375
-
376
- with gr.Row():
377
- base_mask_option = gr.Radio(["Draw Mask", "Upload with Mask"], label="Background Mask Input Option", value="Upload with Mask")
378
-
379
- with gr.Row():
380
- ref_image = gr.ImageEditor(label="Reference Image", sources="upload", type="pil", brush=gr.Brush(colors=["#FFFFFF"],default_size = 30,color_mode = "fixed"),
381
- layers = False,
382
- interactive=True)
383
-
384
- ref_mask = gr.ImageEditor(label="Reference Mask", sources="upload", type="pil", layers = False, brush=False, eraser=False)
385
-
386
- with gr.Row():
387
- ref_mask_option = gr.Radio(["Draw Mask", "Upload with Mask", "Label to Mask"], label="Reference Mask Input Option", value="Upload with Mask")
388
-
389
- with gr.Row():
390
- text_prompt = gr.Textbox(label="Label", placeholder="Enter the category of the reference object, e.g., car, dress, toy, etc.")
391
-
392
- with gr.Column(scale=1):
393
- baseline_gallery = gr.Gallery(label='Output', show_label=True, elem_id="gallery", height=695, columns=1)
394
- base64_box = gr.Textbox(label="Base64 Output", visible=False)
395
- with gr.Accordion("Advanced Option", open=True):
396
- seed = gr.Slider(label="Seed", minimum=-1, maximum=999999999, step=1, value=666)
397
- gr.Markdown("### Guidelines")
398
- gr.Markdown(" Users can try using different seeds. For example, seeds like 42 and 123456 may produce different effects.")
399
- gr.Markdown(" Draw Mask means manually drawing a mask on the original image.")
400
- gr.Markdown(" Upload with Mask means uploading a mask file.")
401
- gr.Markdown(" Label to Mask means simply inputting a label to automatically extract the mask and obtain the result.")
402
-
403
-
404
- run_local_button = gr.Button(value="Run")
405
-
406
- # #### example #####
407
- num_examples = len(image_list)
408
- for i in range(num_examples):
409
- with gr.Row():
410
- if i == 0:
411
- gr.Examples([image_list[i]], inputs=[base_image], label="Examples - Background Image", examples_per_page=1)
412
- gr.Examples([image_mask_list[i]], inputs=[base_mask], label="Examples - Background Mask", examples_per_page=1)
413
- gr.Examples([ref_list[i]], inputs=[ref_image], label="Examples - Reference Object", examples_per_page=1)
414
- gr.Examples([ref_mask_list[i]], inputs=[ref_mask], label="Examples - Reference Mask", examples_per_page=1)
415
- else:
416
- gr.Examples([image_list[i]], inputs=[base_image], examples_per_page=1, label="")
417
- gr.Examples([image_mask_list[i]], inputs=[base_mask], examples_per_page=1, label="")
418
- gr.Examples([ref_list[i]], inputs=[ref_image], examples_per_page=1, label="")
419
- gr.Examples([ref_mask_list[i]], inputs=[ref_mask], examples_per_page=1, label="")
420
- if i < num_examples - 1:
421
- gr.HTML("<hr>")
422
- # #### example #####
423
-
424
- run_local_button.click(fn=run_local,
425
- inputs=[base_image, base_mask, ref_image, ref_mask, seed, base_mask_option, ref_mask_option, text_prompt],
426
- outputs=[baseline_gallery, base64_box]
427
- )
428
  demo.launch()
 
220
 
221
 
222
  @spaces.GPU
223
+ def run_local(base_image, base_mask, reference_image, ref_mask):
224
+ seed = 666
225
+ tar_image = base_image
226
+ tar_mask = base_mask
227
+ ref_image = reference_image
228
+ ref_mask = ref_mask
 
 
 
 
 
 
 
 
 
 
 
 
 
229
 
230
  tar_image = tar_image.convert("RGB")
231
  tar_mask = tar_mask.convert("L")
 
335
  edited_image = Image.fromarray(edited_image)
336
 
337
 
338
+ return image_to_base64(edited_image)
339
 
340
  def update_ui(option):
341
  if option == "Draw Mask":
 
345
 
346
 
347
  with gr.Blocks() as demo:
348
+ gr.Markdown("## Upload 4 Images to Combine into a 2x2 Grid and Return Base64")
349
 
350
+ with gr.Row():
351
+ base_image = gr.Image(type="pil", label="base_image")
352
+ base_mask = gr.Image(type="pil", label="base_mask")
353
+ ref_image = gr.Image(type="pil", label="ref_image")
354
+ ref_mask = gr.Image(type="pil", label="ref_mask")
355
 
356
+ output_base64 = gr.Textbox(label="Output Image (Base64 PNG)")
 
 
357
 
358
+ submit_btn = gr.Button("Process Images")
359
+
360
+ submit_btn.click(
361
+ fn=run_local,
362
+ inputs=[base_image, base_mask, ref_image, ref_mask, ],
363
+ outputs=output_base64
364
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  demo.launch()