goryhon commited on
Commit
8366761
·
verified ·
1 Parent(s): e50721f

Update web-demos/hugging_face/inpainter/base_inpainter.py

Browse files
web-demos/hugging_face/inpainter/base_inpainter.py CHANGED
@@ -196,33 +196,38 @@ class ProInpainter:
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
- size = frames[0].size
205
- # Применяем ratio, если не 1.0
 
 
206
  if ratio != 1.0:
207
  size = (int(ratio * size[0]) // 2 * 2, int(ratio * size[1]) // 2 * 2)
208
  else:
209
- size = (size[0] // 2 * 2, size[1] // 2 * 2) # просто округление до чётного
210
-
211
- # ⚠️ УБРАНО авто-уменьшение до 720p
212
- # frames останутся оригинального (или заданного ratio) размера
213
 
214
  frames_len = len(frames)
 
 
215
  frames, size, out_size = resize_frames(frames, size)
 
216
  flow_masks, masks_dilated = read_mask_demo(masks, frames_len, size, dilate_radius, dilate_radius)
217
  w, h = size
218
 
219
  frames_inp = [np.array(f).astype(np.uint8) for f in frames]
220
- frames = to_tensors()(frames).unsqueeze(0) * 2 - 1
 
221
  flow_masks = to_tensors()(flow_masks).unsqueeze(0)
222
  masks_dilated = to_tensors()(masks_dilated).unsqueeze(0)
223
- frames, flow_masks, masks_dilated = frames.to(self.device), flow_masks.to(self.device), masks_dilated.to(self.device)
224
 
225
-
 
 
 
226
  ##############################################
227
  # ProPainter inference
228
  ##############################################
 
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
233
  ##############################################