Spaces:
Running
on
Zero
Running
on
Zero
Update
Browse files
app.py
CHANGED
|
@@ -70,11 +70,11 @@ def binarize_mask(mask: np.ndarray) -> np.ndarray:
|
|
| 70 |
return mask
|
| 71 |
|
| 72 |
|
| 73 |
-
def update_trimap(
|
| 74 |
-
foreground =
|
| 75 |
foreground = binarize_mask(foreground)
|
| 76 |
|
| 77 |
-
unknown =
|
| 78 |
unknown = binarize_mask(unknown)
|
| 79 |
|
| 80 |
trimap = np.zeros_like(foreground)
|
|
@@ -161,25 +161,17 @@ with gr.Blocks(css_paths="style.css") as demo:
|
|
| 161 |
with gr.Tab(label="Trimap"):
|
| 162 |
trimap = gr.Image(label="Trimap", type="pil", image_mode="L")
|
| 163 |
with gr.Tab(label="Draw trimap"):
|
| 164 |
-
|
| 165 |
-
label="
|
| 166 |
type="numpy",
|
| 167 |
sources=("upload",),
|
| 168 |
transforms=(),
|
| 169 |
image_mode="L",
|
| 170 |
height=500,
|
| 171 |
brush=gr.Brush(default_color=("#00ff00", 0.6)),
|
| 172 |
-
layers=gr.LayerOptions(
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
label="Unknown",
|
| 176 |
-
type="numpy",
|
| 177 |
-
sources=("upload",),
|
| 178 |
-
transforms=(),
|
| 179 |
-
image_mode="L",
|
| 180 |
-
height=500,
|
| 181 |
-
brush=gr.Brush(default_color=("#00ff00", 0.6)),
|
| 182 |
-
layers=gr.LayerOptions(allow_additional_layers=False, layers=["Unknown mask"]),
|
| 183 |
)
|
| 184 |
generate_trimap_button = gr.Button("Generate trimap")
|
| 185 |
apply_background_replacement = gr.Checkbox(label="Replace background", value=False)
|
|
@@ -219,14 +211,14 @@ with gr.Blocks(css_paths="style.css") as demo:
|
|
| 219 |
outputs=image,
|
| 220 |
api_name=False,
|
| 221 |
).then(
|
| 222 |
-
fn=lambda image:
|
| 223 |
inputs=image,
|
| 224 |
-
outputs=
|
| 225 |
api_name=False,
|
| 226 |
)
|
| 227 |
generate_trimap_button.click(
|
| 228 |
fn=update_trimap,
|
| 229 |
-
inputs=
|
| 230 |
outputs=trimap,
|
| 231 |
api_name=False,
|
| 232 |
)
|
|
|
|
| 70 |
return mask
|
| 71 |
|
| 72 |
|
| 73 |
+
def update_trimap(mask_editor: dict) -> np.ndarray:
|
| 74 |
+
foreground = mask_editor["layers"][0]
|
| 75 |
foreground = binarize_mask(foreground)
|
| 76 |
|
| 77 |
+
unknown = mask_editor["layers"][1]
|
| 78 |
unknown = binarize_mask(unknown)
|
| 79 |
|
| 80 |
trimap = np.zeros_like(foreground)
|
|
|
|
| 161 |
with gr.Tab(label="Trimap"):
|
| 162 |
trimap = gr.Image(label="Trimap", type="pil", image_mode="L")
|
| 163 |
with gr.Tab(label="Draw trimap"):
|
| 164 |
+
mask_editor = gr.ImageEditor(
|
| 165 |
+
label="Masks",
|
| 166 |
type="numpy",
|
| 167 |
sources=("upload",),
|
| 168 |
transforms=(),
|
| 169 |
image_mode="L",
|
| 170 |
height=500,
|
| 171 |
brush=gr.Brush(default_color=("#00ff00", 0.6)),
|
| 172 |
+
layers=gr.LayerOptions(
|
| 173 |
+
allow_additional_layers=False, layers=["Foreground mask", "Unknown mask"]
|
| 174 |
+
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
)
|
| 176 |
generate_trimap_button = gr.Button("Generate trimap")
|
| 177 |
apply_background_replacement = gr.Checkbox(label="Replace background", value=False)
|
|
|
|
| 211 |
outputs=image,
|
| 212 |
api_name=False,
|
| 213 |
).then(
|
| 214 |
+
fn=lambda image: image,
|
| 215 |
inputs=image,
|
| 216 |
+
outputs=mask_editor,
|
| 217 |
api_name=False,
|
| 218 |
)
|
| 219 |
generate_trimap_button.click(
|
| 220 |
fn=update_trimap,
|
| 221 |
+
inputs=mask_editor,
|
| 222 |
outputs=trimap,
|
| 223 |
api_name=False,
|
| 224 |
)
|