Spaces:
Running
Running
Commit
·
f73b71e
1
Parent(s):
8997d74
Update app.py
Browse files
app.py
CHANGED
@@ -71,6 +71,91 @@ def get_image_ext(img_bytes):
|
|
71 |
def diffuser_callback(i, t, latents):
|
72 |
pass
|
73 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74 |
model = ModelManager(
|
75 |
name='lama',
|
76 |
device=device,
|
@@ -101,9 +186,11 @@ def read_content(file_path: str) -> str:
|
|
101 |
return content
|
102 |
|
103 |
def predict(dict, prompt=""):
|
104 |
-
init_image = dict["image"].convert("RGB")
|
105 |
-
mask = dict["mask"].convert("RGB")
|
106 |
-
output =
|
|
|
|
|
107 |
return output.images[0], gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
|
108 |
|
109 |
|
|
|
71 |
def diffuser_callback(i, t, latents):
|
72 |
pass
|
73 |
|
74 |
+
def process(init_image, mask):
|
75 |
+
global model
|
76 |
+
'''
|
77 |
+
input = request.files
|
78 |
+
# RGB
|
79 |
+
origin_image_bytes = input["image"].read()
|
80 |
+
'''
|
81 |
+
|
82 |
+
# image, alpha_channel = load_img(origin_image_bytes)
|
83 |
+
original_shape = init_image.shape
|
84 |
+
interpolation = cv2.INTER_CUBIC
|
85 |
+
|
86 |
+
'''
|
87 |
+
form = request.form
|
88 |
+
'''
|
89 |
+
size_limit = 1080 # : Union[int, str] = form.get("sizeLimit", "1080")
|
90 |
+
if size_limit == "Original":
|
91 |
+
size_limit = max(image.shape)
|
92 |
+
else:
|
93 |
+
size_limit = int(size_limit)
|
94 |
+
|
95 |
+
config = Config(
|
96 |
+
'''
|
97 |
+
ldm_steps=form["ldmSteps"],
|
98 |
+
ldm_sampler=form["ldmSampler"],
|
99 |
+
hd_strategy=form["hdStrategy"],
|
100 |
+
zits_wireframe=form["zitsWireframe"],
|
101 |
+
hd_strategy_crop_margin=form["hdStrategyCropMargin"],
|
102 |
+
hd_strategy_crop_trigger_size=form["hdStrategyCropTrigerSize"],
|
103 |
+
hd_strategy_resize_limit=form["hdStrategyResizeLimit"],
|
104 |
+
prompt=form["prompt"],
|
105 |
+
use_croper=form["useCroper"],
|
106 |
+
croper_x=form["croperX"],
|
107 |
+
croper_y=form["croperY"],
|
108 |
+
croper_height=form["croperHeight"],
|
109 |
+
croper_width=form["croperWidth"],
|
110 |
+
sd_mask_blur=form["sdMaskBlur"],
|
111 |
+
sd_strength=form["sdStrength"],
|
112 |
+
sd_steps=form["sdSteps"],
|
113 |
+
sd_guidance_scale=form["sdGuidanceScale"],
|
114 |
+
sd_sampler=form["sdSampler"],
|
115 |
+
sd_seed=form["sdSeed"],
|
116 |
+
cv2_flag=form["cv2Flag"],
|
117 |
+
cv2_radius=form['cv2Radius']
|
118 |
+
'''
|
119 |
+
)
|
120 |
+
|
121 |
+
if config.sd_seed == -1:
|
122 |
+
config.sd_seed = random.randint(1, 999999999)
|
123 |
+
|
124 |
+
logger.info(f"Origin image shape: {original_shape}")
|
125 |
+
image = resize_max_size(image, size_limit=size_limit, interpolation=interpolation)
|
126 |
+
logger.info(f"Resized image shape: {image.shape}")
|
127 |
+
|
128 |
+
mask, _ = load_img(input["mask"].read(), gray=True)
|
129 |
+
mask = resize_max_size(mask, size_limit=size_limit, interpolation=interpolation)
|
130 |
+
|
131 |
+
start = time.time()
|
132 |
+
res_np_img = model(image, mask, config)
|
133 |
+
logger.info(f"process time: {(time.time() - start) * 1000}ms")
|
134 |
+
|
135 |
+
torch.cuda.empty_cache()
|
136 |
+
|
137 |
+
if alpha_channel is not None:
|
138 |
+
if alpha_channel.shape[:2] != res_np_img.shape[:2]:
|
139 |
+
alpha_channel = cv2.resize(
|
140 |
+
alpha_channel, dsize=(res_np_img.shape[1], res_np_img.shape[0])
|
141 |
+
)
|
142 |
+
res_np_img = np.concatenate(
|
143 |
+
(res_np_img, alpha_channel[:, :, np.newaxis]), axis=-1
|
144 |
+
)
|
145 |
+
|
146 |
+
ext = get_image_ext(origin_image_bytes)
|
147 |
+
return ext
|
148 |
+
'''
|
149 |
+
response = make_response(
|
150 |
+
send_file(
|
151 |
+
io.BytesIO(numpy_to_bytes(res_np_img, ext)),
|
152 |
+
mimetype=f"image/{ext}",
|
153 |
+
)
|
154 |
+
)
|
155 |
+
response.headers["X-Seed"] = str(config.sd_seed)
|
156 |
+
return response
|
157 |
+
'''
|
158 |
+
|
159 |
model = ModelManager(
|
160 |
name='lama',
|
161 |
device=device,
|
|
|
186 |
return content
|
187 |
|
188 |
def predict(dict, prompt=""):
|
189 |
+
init_image = dict["image"].convert("RGB") #.resize((512, 512))
|
190 |
+
mask = dict["mask"].convert("RGB") #.resize((512, 512))
|
191 |
+
output = process(init_image, mask)
|
192 |
+
# output = pipe(prompt = prompt, image=init_image, mask_image=mask,guidance_scale=7.5)
|
193 |
+
|
194 |
return output.images[0], gr.update(visible=True), gr.update(visible=True), gr.update(visible=True)
|
195 |
|
196 |
|