Spaces:
Paused
Paused
Update web-demos/hugging_face/inpainter/base_inpainter.py
Browse files
web-demos/hugging_face/inpainter/base_inpainter.py
CHANGED
@@ -196,37 +196,37 @@ class ProInpainter:
|
|
196 |
inpainted_frames: numpy array, T, H, W, 3
|
197 |
"""
|
198 |
|
199 |
-
|
200 |
-
|
201 |
frames.append(Image.fromarray(npframes[i].astype('uint8'), mode="RGB"))
|
202 |
-
|
203 |
|
204 |
-
|
205 |
-
|
206 |
|
207 |
-
|
208 |
-
|
209 |
size = (int(ratio * size[0]) // 2 * 2, int(ratio * size[1]) // 2 * 2)
|
210 |
-
|
211 |
size = (size[0] // 2 * 2, size[1] // 2 * 2) # просто округляем до ближайшего чётного
|
212 |
|
213 |
-
|
214 |
|
215 |
-
|
216 |
-
|
217 |
|
218 |
-
|
219 |
-
|
220 |
|
221 |
-
|
222 |
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
|
231 |
##############################################
|
232 |
# ProPainter inference
|
|
|
196 |
inpainted_frames: numpy array, T, H, W, 3
|
197 |
"""
|
198 |
|
199 |
+
frames = []
|
200 |
+
for i in range(len(npframes)):
|
201 |
frames.append(Image.fromarray(npframes[i].astype('uint8'), mode="RGB"))
|
202 |
+
del npframes
|
203 |
|
204 |
+
# Получаем оригинальный размер
|
205 |
+
size = frames[0].size # (width, height)
|
206 |
|
207 |
+
# Применяем ratio, только если он отличается от 1.0
|
208 |
+
if ratio != 1.0:
|
209 |
size = (int(ratio * size[0]) // 2 * 2, int(ratio * size[1]) // 2 * 2)
|
210 |
+
else:
|
211 |
size = (size[0] // 2 * 2, size[1] // 2 * 2) # просто округляем до ближайшего чётного
|
212 |
|
213 |
+
frames_len = len(frames)
|
214 |
|
215 |
+
# ⚠️ resize_frames больше не меняет разрешение, если оно уже чётное
|
216 |
+
frames, size, out_size = resize_frames(frames, size)
|
217 |
|
218 |
+
flow_masks, masks_dilated = read_mask_demo(masks, frames_len, size, dilate_radius, dilate_radius)
|
219 |
+
w, h = size
|
220 |
|
221 |
+
frames_inp = [np.array(f).astype(np.uint8) for f in frames]
|
222 |
|
223 |
+
frames = to_tensors()(frames).unsqueeze(0) * 2 - 1
|
224 |
+
flow_masks = to_tensors()(flow_masks).unsqueeze(0)
|
225 |
+
masks_dilated = to_tensors()(masks_dilated).unsqueeze(0)
|
226 |
|
227 |
+
frames = frames.to(self.device)
|
228 |
+
flow_masks = flow_masks.to(self.device)
|
229 |
+
masks_dilated = masks_dilated.to(self.device)
|
230 |
|
231 |
##############################################
|
232 |
# ProPainter inference
|