Update controlnet_module.py
Browse files- 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")
|