Spaces:
Running
on
Zero
Running
on
Zero
Add traceback
Browse files
app.py
CHANGED
@@ -12,6 +12,7 @@ import spaces
|
|
12 |
from gradio_imageslider import ImageSlider
|
13 |
from torchvision.transforms.functional import to_pil_image, to_tensor
|
14 |
from PIL import ImageFilter
|
|
|
15 |
|
16 |
|
17 |
def preprocess_image(input_image, device):
|
@@ -73,49 +74,52 @@ if is_cpu_offload_enabled:
|
|
73 |
|
74 |
@spaces.GPU
|
75 |
def remove(gradio_image, rm_guidance_scale=9, num_inference_steps=50, seed=42, strength=0.8):
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
119 |
|
120 |
|
121 |
title = """<h1 align="center">Object Remove</h1>"""
|
|
|
12 |
from gradio_imageslider import ImageSlider
|
13 |
from torchvision.transforms.functional import to_pil_image, to_tensor
|
14 |
from PIL import ImageFilter
|
15 |
+
import traceback
|
16 |
|
17 |
|
18 |
def preprocess_image(input_image, device):
|
|
|
74 |
|
75 |
@spaces.GPU
|
76 |
def remove(gradio_image, rm_guidance_scale=9, num_inference_steps=50, seed=42, strength=0.8):
|
77 |
+
try:
|
78 |
+
generator = torch.Generator('cuda').manual_seed(seed)
|
79 |
+
prompt = "" # Set prompt to null
|
80 |
+
|
81 |
+
source_image_pure = gradio_image["background"]
|
82 |
+
mask_image_pure = gradio_image["layers"][0]
|
83 |
+
source_image = preprocess_image(source_image_pure.convert('RGB'), device)
|
84 |
+
mask = preprocess_mask(mask_image_pure, device)
|
85 |
+
|
86 |
+
START_STEP = 0 # AAS start step
|
87 |
+
END_STEP = int(strength * num_inference_steps) # AAS end step
|
88 |
+
LAYER = 34 # 0~23down,24~33mid,34~69up /AAS start layer
|
89 |
+
END_LAYER = 70 # AAS end layer
|
90 |
+
ss_steps = 9 # similarity suppression steps
|
91 |
+
ss_scale = 0.3 # similarity suppression scale
|
92 |
+
|
93 |
+
image = pipeline(
|
94 |
+
prompt=prompt,
|
95 |
+
image=source_image,
|
96 |
+
mask_image=mask,
|
97 |
+
height=1024,
|
98 |
+
width=1024,
|
99 |
+
AAS=True, # enable AAS
|
100 |
+
strength=strength, # inpainting strength
|
101 |
+
rm_guidance_scale=rm_guidance_scale, # removal guidance scale
|
102 |
+
ss_steps = ss_steps, # similarity suppression steps
|
103 |
+
ss_scale = ss_scale, # similarity suppression scale
|
104 |
+
AAS_start_step=START_STEP, # AAS start step
|
105 |
+
AAS_start_layer=LAYER, # AAS start layer
|
106 |
+
AAS_end_layer=END_LAYER, # AAS end layer
|
107 |
+
num_inference_steps=num_inference_steps, # number of inference steps # AAS_end_step = int(strength*num_inference_steps)
|
108 |
+
generator=generator,
|
109 |
+
guidance_scale=1
|
110 |
+
).images[0]
|
111 |
+
print('Inferece: DONE.')
|
112 |
+
|
113 |
+
# pil_mask = to_pil_image(mask.squeeze(0))
|
114 |
+
# pil_mask_blurred = pil_mask.filter(ImageFilter.GaussianBlur(radius=15))
|
115 |
+
# mask_blurred = to_tensor(pil_mask_blurred).unsqueeze_(0).to(mask.device)
|
116 |
+
# mask_f = 1-(1 - mask) * (1 - mask_blurred)
|
117 |
+
|
118 |
+
# image_1 = image.unsqueeze(0)
|
119 |
+
|
120 |
+
return source_image, image
|
121 |
+
except:
|
122 |
+
print(traceback.format_exc())
|
123 |
|
124 |
|
125 |
title = """<h1 align="center">Object Remove</h1>"""
|