DegMaTsu commited on
Commit
bf99de4
·
verified ·
1 Parent(s): 0756247

Upload reactor_swapper.py

Browse files
custom_nodes/comfyui-reactor-node/scripts/reactor_swapper.py CHANGED
@@ -304,7 +304,9 @@ def run_hyperswap(session, source_face, target_face, target_img):
304
 
305
  # Вычисляем аффинную матрицу
306
  M = get_affine_transform(target_landmarks_5.astype(np.float32), std_landmarks_256)
 
307
  logger.debug("Affine Matrix M (used for cropping):\n%s", M)
 
308
 
309
  # Применяем аффинное преобразование с новой матрицей M
310
  crop = cv2.warpAffine(target_img, M, (256, 256), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REFLECT)
@@ -358,6 +360,7 @@ def run_hyperswap(session, source_face, target_face, target_img):
358
  # (ваш код без изменений, но без старой денормализации)
359
  output = output.transpose(1, 2, 0) # CHW -> HWC
360
  output = output[:, :, ::-1] # RGB -> BGR (Убедитесь, что это BGR, если вход был BGR)
 
361
 
362
  # Визуализация после денормализации
363
  #### Что проверить:
@@ -367,11 +370,8 @@ def run_hyperswap(session, source_face, target_face, target_img):
367
  # cv2.imshow("Output After Denormalization", output)
368
  # cv2.waitKey(1)
369
 
370
- # 7. Возвращаем результат 256x256 И матрицу M
371
- # Мы больше не вызываем warp_and_paste_face отсюда.
372
- # return result
373
-
374
- return output, M # Возвращаем лицо (256x256) и матрицу M
375
 
376
  def sort_by_order(face, order: str):
377
  if order == "left-right":
 
304
 
305
  # Вычисляем аффинную матрицу
306
  M = get_affine_transform(target_landmarks_5.astype(np.float32), std_landmarks_256)
307
+ M_inv = cv2.invertAffineTransform(M) # Обратная для paste
308
  logger.debug("Affine Matrix M (used for cropping):\n%s", M)
309
+ logger.debug("Inverse Affine Matrix M_inv (used for paste):\n%s", M_inv)
310
 
311
  # Применяем аффинное преобразование с новой матрицей M
312
  crop = cv2.warpAffine(target_img, M, (256, 256), flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REFLECT)
 
360
  # (ваш код без изменений, но без старой денормализации)
361
  output = output.transpose(1, 2, 0) # CHW -> HWC
362
  output = output[:, :, ::-1] # RGB -> BGR (Убедитесь, что это BGR, если вход был BGR)
363
+ logger.debug("Output after denormalization: Min: %s | Max: %s", output.min(), output.max())
364
 
365
  # Визуализация после денормализации
366
  #### Что проверить:
 
370
  # cv2.imshow("Output After Denormalization", output)
371
  # cv2.waitKey(1)
372
 
373
+ # 7. Возвращаем результат 256x256 И обратную матрицу M_inv
374
+ return output, M_inv
 
 
 
375
 
376
  def sort_by_order(face, order: str):
377
  if order == "left-right":