Astridkraft commited on
Commit
65b7c45
·
verified ·
1 Parent(s): 3cc6e89

Update controlnet_module.py

Browse files
Files changed (1) hide show
  1. controlnet_module.py +6 -0
controlnet_module.py CHANGED
@@ -664,15 +664,18 @@ class ControlNetProcessor:
664
  largest_component = np.argmax(sizes) + 1
665
  mask_array = np.where(labeled_array == largest_component, mask_array, 0)
666
  print(f" ✅ Behalte größte Person-Komponente ({num_features} → 1 Komponente)")
 
667
 
668
 
669
  # 1. Zuerst CLOSE, um schwarze Löcher IN der Person zu füllen
670
  kernel_close = np.ones((5,5), np.uint8)
671
  mask_array = cv2.morphologyEx(mask_array, cv2.MORPH_CLOSE, kernel_close, iterations=3)
 
672
 
673
  # 2. Dann Dilation für bessere Abdeckung
674
  kernel_dilate = np.ones((9,9), np.uint8)
675
  mask_array = cv2.dilate(mask_array, kernel_dilate, iterations=1)
 
676
 
677
  # Mittelstarker Blur für natürliche Übergänge:
678
  mask_array = cv2.GaussianBlur(mask_array, (9, 9), 2.0)
@@ -686,9 +689,12 @@ class ControlNetProcessor:
686
 
687
  # GAMMA-KORREKTUR gegen milchige Ränder (Float-Bereich 0-1 nötig)
688
  mask_array = mask_array.astype(np.float32) / 255.0 # <-- WICHTIG: ZUERST in 0-1 konvertieren
 
689
  mask_array = np.clip(mask_array, 0.0, 1.0)
690
  mask_array = mask_array ** 0.85 # Gamma-Korrektur anwenden
 
691
  mask_array = (mask_array * 255).astype(np.uint8) # Zurück in 0-255
 
692
 
693
  print(" ✅ MORPH_CLOSE füllt schwarze Löcher in der Person")
694
  print(" ✅ Dilation für bessere Personenabdeckung")
 
664
  largest_component = np.argmax(sizes) + 1
665
  mask_array = np.where(labeled_array == largest_component, mask_array, 0)
666
  print(f" ✅ Behalte größte Person-Komponente ({num_features} → 1 Komponente)")
667
+ print(f" DEBUG NACH Komponentenfilter - Min/Max: {mask_array.min()}/{mask_array.max()}")
668
 
669
 
670
  # 1. Zuerst CLOSE, um schwarze Löcher IN der Person zu füllen
671
  kernel_close = np.ones((5,5), np.uint8)
672
  mask_array = cv2.morphologyEx(mask_array, cv2.MORPH_CLOSE, kernel_close, iterations=3)
673
+ print(f" DEBUG NACH MORPH_CLOSE - Min/Max: {mask_array.min()}/{mask_array.max()}")
674
 
675
  # 2. Dann Dilation für bessere Abdeckung
676
  kernel_dilate = np.ones((9,9), np.uint8)
677
  mask_array = cv2.dilate(mask_array, kernel_dilate, iterations=1)
678
+ print(f" DEBUG NACH DILATION - Min/Max: {mask_array.min()}/{mask_array.max()}")
679
 
680
  # Mittelstarker Blur für natürliche Übergänge:
681
  mask_array = cv2.GaussianBlur(mask_array, (9, 9), 2.0)
 
689
 
690
  # GAMMA-KORREKTUR gegen milchige Ränder (Float-Bereich 0-1 nötig)
691
  mask_array = mask_array.astype(np.float32) / 255.0 # <-- WICHTIG: ZUERST in 0-1 konvertieren
692
+ print(f" DEBUG NACH Float-Konvertierung - Min/Max: {mask_array.min():.3f}/{mask_array.max():.3f}, Typ: {mask_array.dtype}")
693
  mask_array = np.clip(mask_array, 0.0, 1.0)
694
  mask_array = mask_array ** 0.85 # Gamma-Korrektur anwenden
695
+ print(f" DEBUG NACH Gamma-Korrektur - Min/Max: {mask_array.min():.3f}/{mask_array.max():.3f}")
696
  mask_array = (mask_array * 255).astype(np.uint8) # Zurück in 0-255
697
+ print(f" DEBUG NACH Rückkonvertierung - Min/Max: {mask_array.min()}/{mask_array.max()}, Typ: {mask_array.dtype}")
698
 
699
  print(" ✅ MORPH_CLOSE füllt schwarze Löcher in der Person")
700
  print(" ✅ Dilation für bessere Personenabdeckung")