Spaces:
Runtime error
Runtime error
debug
Browse files
app.py
CHANGED
|
@@ -13,6 +13,7 @@ from utils import load_img_to_array, save_array_to_img, dilate_mask, \
|
|
| 13 |
from PIL import Image
|
| 14 |
from segment_anything import SamPredictor, sam_model_registry
|
| 15 |
|
|
|
|
| 16 |
def mkstemp(suffix, dir=None):
|
| 17 |
fd, path = tempfile.mkstemp(suffix=f"{suffix}", dir=dir)
|
| 18 |
os.close(fd)
|
|
@@ -22,11 +23,13 @@ def mkstemp(suffix, dir=None):
|
|
| 22 |
def get_sam_feat(img):
|
| 23 |
# predictor.set_image(img)
|
| 24 |
model['sam'].set_image(img)
|
|
|
|
| 25 |
features = model['sam'].features
|
| 26 |
orig_h = model['sam'].orig_h
|
| 27 |
orig_w = model['sam'].orig_w
|
| 28 |
input_h = model['sam'].input_h
|
| 29 |
input_w = model['sam'].input_w
|
|
|
|
| 30 |
return features, orig_h, orig_w, input_h, input_w
|
| 31 |
|
| 32 |
|
|
@@ -36,6 +39,7 @@ def get_masked_img(img, w, h, features, orig_h, orig_w, input_h, input_w):
|
|
| 36 |
dilate_kernel_size = 15
|
| 37 |
|
| 38 |
# model['sam'].is_image_set = False
|
|
|
|
| 39 |
model['sam'].features = features
|
| 40 |
model['sam'].orig_h = orig_h
|
| 41 |
model['sam'].orig_w = orig_w
|
|
@@ -122,7 +126,6 @@ with gr.Blocks() as demo:
|
|
| 122 |
|
| 123 |
with gr.Row():
|
| 124 |
img = gr.Image(label="Image")
|
| 125 |
-
# img_pointed = gr.Image(label='Pointed Image')
|
| 126 |
img_pointed = gr.Plot(label='Pointed Image')
|
| 127 |
with gr.Column():
|
| 128 |
with gr.Row():
|
|
@@ -131,6 +134,7 @@ with gr.Blocks() as demo:
|
|
| 131 |
# sam_feat = gr.Button("Prepare for Segmentation")
|
| 132 |
sam_mask = gr.Button("Predict Mask Using SAM")
|
| 133 |
lama = gr.Button("Inpaint Image Using LaMA")
|
|
|
|
| 134 |
|
| 135 |
# todo: maybe we can delete this row, for it's unnecessary to show the original mask for customers
|
| 136 |
with gr.Row():
|
|
@@ -182,6 +186,13 @@ with gr.Blocks() as demo:
|
|
| 182 |
[img_rm_with_mask_0, img_rm_with_mask_1, img_rm_with_mask_2]
|
| 183 |
)
|
| 184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
|
| 186 |
if __name__ == "__main__":
|
| 187 |
# demo.queue(concurrency_count=4, max_size=25)
|
|
|
|
| 13 |
from PIL import Image
|
| 14 |
from segment_anything import SamPredictor, sam_model_registry
|
| 15 |
|
| 16 |
+
|
| 17 |
def mkstemp(suffix, dir=None):
|
| 18 |
fd, path = tempfile.mkstemp(suffix=f"{suffix}", dir=dir)
|
| 19 |
os.close(fd)
|
|
|
|
| 23 |
def get_sam_feat(img):
|
| 24 |
# predictor.set_image(img)
|
| 25 |
model['sam'].set_image(img)
|
| 26 |
+
# self.is_image_set = False
|
| 27 |
features = model['sam'].features
|
| 28 |
orig_h = model['sam'].orig_h
|
| 29 |
orig_w = model['sam'].orig_w
|
| 30 |
input_h = model['sam'].input_h
|
| 31 |
input_w = model['sam'].input_w
|
| 32 |
+
model['sam'].reset_image()
|
| 33 |
return features, orig_h, orig_w, input_h, input_w
|
| 34 |
|
| 35 |
|
|
|
|
| 39 |
dilate_kernel_size = 15
|
| 40 |
|
| 41 |
# model['sam'].is_image_set = False
|
| 42 |
+
model['sam'].is_image_set = True
|
| 43 |
model['sam'].features = features
|
| 44 |
model['sam'].orig_h = orig_h
|
| 45 |
model['sam'].orig_w = orig_w
|
|
|
|
| 126 |
|
| 127 |
with gr.Row():
|
| 128 |
img = gr.Image(label="Image")
|
|
|
|
| 129 |
img_pointed = gr.Plot(label='Pointed Image')
|
| 130 |
with gr.Column():
|
| 131 |
with gr.Row():
|
|
|
|
| 134 |
# sam_feat = gr.Button("Prepare for Segmentation")
|
| 135 |
sam_mask = gr.Button("Predict Mask Using SAM")
|
| 136 |
lama = gr.Button("Inpaint Image Using LaMA")
|
| 137 |
+
# clear_button_image = gr.Button(value="Clear Image", interactive=True)
|
| 138 |
|
| 139 |
# todo: maybe we can delete this row, for it's unnecessary to show the original mask for customers
|
| 140 |
with gr.Row():
|
|
|
|
| 186 |
[img_rm_with_mask_0, img_rm_with_mask_1, img_rm_with_mask_2]
|
| 187 |
)
|
| 188 |
|
| 189 |
+
# clear_button_image.click(
|
| 190 |
+
# lambda: ([], [], [], []),
|
| 191 |
+
# [],
|
| 192 |
+
# [img, img_pointed, w, h],
|
| 193 |
+
# queue=False,
|
| 194 |
+
# show_progress=False
|
| 195 |
+
# )
|
| 196 |
|
| 197 |
if __name__ == "__main__":
|
| 198 |
# demo.queue(concurrency_count=4, max_size=25)
|