Update controlnet_module.py
Browse files- controlnet_module.py +14 -2
controlnet_module.py
CHANGED
|
@@ -620,7 +620,7 @@ class ControlNetProcessor:
|
|
| 620 |
mask_array = cv2.morphologyEx(mask_array, cv2.MORPH_CLOSE, kernel_close, iterations=3)
|
| 621 |
|
| 622 |
# 2. Dann Dilation für bessere Abdeckung
|
| 623 |
-
kernel_dilate = np.ones((
|
| 624 |
mask_array = cv2.dilate(mask_array, kernel_dilate, iterations=1)
|
| 625 |
|
| 626 |
# Mittelstarker Blur für natürliche Übergänge:
|
|
@@ -629,9 +629,21 @@ class ControlNetProcessor:
|
|
| 629 |
# Alternativen:
|
| 630 |
# Sanfter: (7, 7), 1.5 → subtiler Übergang
|
| 631 |
# Stärker: (11, 11), 2.5 → sehr weiche Übergänge
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 632 |
|
| 633 |
print(" ✅ MORPH_CLOSE füllt schwarze Löcher in der Person")
|
| 634 |
-
print(" ✅ Dilation für bessere Personenabdeckung")
|
|
|
|
|
|
|
|
|
|
| 635 |
|
| 636 |
elif mode == "environment_change":
|
| 637 |
print("🌳 ENVIRONMENT-CHANGE POSTPROCESSING")
|
|
|
|
| 620 |
mask_array = cv2.morphologyEx(mask_array, cv2.MORPH_CLOSE, kernel_close, iterations=3)
|
| 621 |
|
| 622 |
# 2. Dann Dilation für bessere Abdeckung
|
| 623 |
+
kernel_dilate = np.ones((9,9), np.uint8)
|
| 624 |
mask_array = cv2.dilate(mask_array, kernel_dilate, iterations=1)
|
| 625 |
|
| 626 |
# Mittelstarker Blur für natürliche Übergänge:
|
|
|
|
| 629 |
# Alternativen:
|
| 630 |
# Sanfter: (7, 7), 1.5 → subtiler Übergang
|
| 631 |
# Stärker: (11, 11), 2.5 → sehr weiche Übergänge
|
| 632 |
+
|
| 633 |
+
# Mittelstarker Blur für natürliche Übergänge:
|
| 634 |
+
mask_array = cv2.GaussianBlur(mask_array, (9, 9), 2.0)
|
| 635 |
+
|
| 636 |
+
# GAMMA-KORREKTUR gegen milchige Ränder (Float-Bereich 0-1 nötig)
|
| 637 |
+
mask_array = mask_array.astype(np.float32) / 255.0 # <-- WICHTIG: ZUERST in 0-1 konvertieren
|
| 638 |
+
mask_array = np.clip(mask_array, 0.0, 1.0)
|
| 639 |
+
mask_array = mask_array ** 0.85 # Gamma-Korrektur anwenden
|
| 640 |
+
mask_array = (mask_array * 255).astype(np.uint8) # Zurück in 0-255
|
| 641 |
|
| 642 |
print(" ✅ MORPH_CLOSE füllt schwarze Löcher in der Person")
|
| 643 |
+
print(" ✅ Dilation für bessere Personenabdeckung")
|
| 644 |
+
print(f" 🔄 Konvertiert zu Float32 im Bereich [0, 1]. Neuer min/max: {mask_array.min():.3f}/{mask_array.max():.3f}")
|
| 645 |
+
print(f" ⚙️ Gamma-Korrektur (0.85) angewendet. Neuer min/max: {mask_array.min():.3f}/{mask_array.max():.3f}")
|
| 646 |
+
print(f" ✅ Zurück zu uint8 [0, 255]. Final min/max: {mask_array.min()}/{mask_array.max()}")
|
| 647 |
|
| 648 |
elif mode == "environment_change":
|
| 649 |
print("🌳 ENVIRONMENT-CHANGE POSTPROCESSING")
|