inverse mask option
Browse files
app.py
CHANGED
@@ -52,14 +52,16 @@ def extract_image(img, pos_prompts, neg_prompts, threshold):
|
|
52 |
pos_mask = np.any(np.stack(positive_masks), axis=0)
|
53 |
neg_mask = np.any(np.stack(negative_masks), axis=0)
|
54 |
final_mask = pos_mask & ~neg_mask
|
|
|
55 |
|
56 |
# extract the final image
|
57 |
final_mask = Image.fromarray(final_mask.astype(np.uint8) * 255, "L")
|
|
|
58 |
output_image = Image.new("RGBA", img.size, (0, 0, 0, 0))
|
59 |
output_image.paste(img, mask=final_mask)
|
60 |
|
61 |
orig_image = img
|
62 |
-
return output_image, final_mask, orig_image
|
63 |
|
64 |
|
65 |
title = "Interactive demo: zero-shot image segmentation with CLIPSeg"
|
@@ -91,6 +93,8 @@ with gr.Blocks() as demo:
|
|
91 |
output_image = gr.Image(label="Result")
|
92 |
output_mask = gr.Image(label="Mask")
|
93 |
orig_image = gr.Image(label="Orig")
|
|
|
|
|
94 |
|
95 |
btn_process.click(
|
96 |
extract_image,
|
@@ -100,7 +104,7 @@ with gr.Blocks() as demo:
|
|
100 |
negative_prompts,
|
101 |
input_slider_T,
|
102 |
],
|
103 |
-
outputs=[output_image, output_mask, orig_image],
|
104 |
api_name="mask"
|
105 |
)
|
106 |
|
|
|
52 |
pos_mask = np.any(np.stack(positive_masks), axis=0)
|
53 |
neg_mask = np.any(np.stack(negative_masks), axis=0)
|
54 |
final_mask = pos_mask & ~neg_mask
|
55 |
+
inverse_mask = pos_mask
|
56 |
|
57 |
# extract the final image
|
58 |
final_mask = Image.fromarray(final_mask.astype(np.uint8) * 255, "L")
|
59 |
+
inverse_mask = Image.fromarray(pos_mask.astype(np.uint8) * 255, "L")
|
60 |
output_image = Image.new("RGBA", img.size, (0, 0, 0, 0))
|
61 |
output_image.paste(img, mask=final_mask)
|
62 |
|
63 |
orig_image = img
|
64 |
+
return output_image, final_mask, orig_image, inverse_mask
|
65 |
|
66 |
|
67 |
title = "Interactive demo: zero-shot image segmentation with CLIPSeg"
|
|
|
93 |
output_image = gr.Image(label="Result")
|
94 |
output_mask = gr.Image(label="Mask")
|
95 |
orig_image = gr.Image(label="Orig")
|
96 |
+
inverse_mask = gr.Image(label="Inverse")
|
97 |
+
|
98 |
|
99 |
btn_process.click(
|
100 |
extract_image,
|
|
|
104 |
negative_prompts,
|
105 |
input_slider_T,
|
106 |
],
|
107 |
+
outputs=[output_image, output_mask, orig_image, inverse_mask],
|
108 |
api_name="mask"
|
109 |
)
|
110 |
|