Update controlnet_module.py
Browse files- controlnet_module.py +19 -2
controlnet_module.py
CHANGED
|
@@ -1121,6 +1121,12 @@ class ControlNetProcessor:
|
|
| 1121 |
kernel_dilate = np.ones((21,21), np.uint8) # Größerer Kernel für Gesicht
|
| 1122 |
mask_array = cv2.dilate(mask_array, kernel_dilate, iterations=1)
|
| 1123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1124 |
# WEICHER GAUSSIAN BLUR FÜR NATÜRLICHE ÜBERGÄNGE
|
| 1125 |
print(" 🔷 Gaussian Blur für weiche Hautübergänge (15x15, sigma=3.0)")
|
| 1126 |
mask_array = cv2.GaussianBlur(mask_array, (31,31), 6.0)
|
|
@@ -1173,6 +1179,15 @@ class ControlNetProcessor:
|
|
| 1173 |
raw_mask_crop_pil = Image.fromarray(raw_mask_array).convert("L")
|
| 1174 |
raw_mask_original = Image.new("L", original_image.size, 0)
|
| 1175 |
raw_mask_original.paste(raw_mask_crop_pil, (crop_x1, crop_y1))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1176 |
|
| 1177 |
# ============================================================
|
| 1178 |
# ABSCHLIESSENDE STATISTIK
|
|
@@ -1224,9 +1239,11 @@ class ControlNetProcessor:
|
|
| 1224 |
print("#" * 80)
|
| 1225 |
|
| 1226 |
|
| 1227 |
-
|
|
|
|
|
|
|
| 1228 |
|
| 1229 |
-
#Maske
|
| 1230 |
|
| 1231 |
# ============================================================
|
| 1232 |
# UNBEKANNTER MODUS
|
|
|
|
| 1121 |
kernel_dilate = np.ones((21,21), np.uint8) # Größerer Kernel für Gesicht
|
| 1122 |
mask_array = cv2.dilate(mask_array, kernel_dilate, iterations=1)
|
| 1123 |
|
| 1124 |
+
|
| 1125 |
+
#Speicherung der Binärmaske für Inpaint da keine Graupixel
|
| 1126 |
+
inpaint_binary_mask = mask_array.copy() # ← Bereinigt, aber scharfkantig
|
| 1127 |
+
print(f"🔳 [FACE] Inpainting-Maske gespeichert: {np.unique(inpaint_binary_mask)}")
|
| 1128 |
+
|
| 1129 |
+
|
| 1130 |
# WEICHER GAUSSIAN BLUR FÜR NATÜRLICHE ÜBERGÄNGE
|
| 1131 |
print(" 🔷 Gaussian Blur für weiche Hautübergänge (15x15, sigma=3.0)")
|
| 1132 |
mask_array = cv2.GaussianBlur(mask_array, (31,31), 6.0)
|
|
|
|
| 1179 |
raw_mask_crop_pil = Image.fromarray(raw_mask_array).convert("L")
|
| 1180 |
raw_mask_original = Image.new("L", original_image.size, 0)
|
| 1181 |
raw_mask_original.paste(raw_mask_crop_pil, (crop_x1, crop_y1))
|
| 1182 |
+
|
| 1183 |
+
#Binärmaske für Inpaint auf Originalgröße bringen
|
| 1184 |
+
#konvertieren zu PIL-Image
|
| 1185 |
+
inpaint_binary_crop_pil = Image.fromarray(inpaint_binary_mask).convert("L")
|
| 1186 |
+
#Leeres schwarzes Bild in Originalgröße erstellen
|
| 1187 |
+
inpaint_binary_original = Image.new("L", original_image.size, 0)
|
| 1188 |
+
#Klebe Crop-SAM-Maske auf schwarzes Bild in Originalgröße
|
| 1189 |
+
inpaint_binary_original.paste(inpaint_binary_crop_pil, (crop_x1, crop_y1))
|
| 1190 |
+
|
| 1191 |
|
| 1192 |
# ============================================================
|
| 1193 |
# ABSCHLIESSENDE STATISTIK
|
|
|
|
| 1239 |
print("#" * 80)
|
| 1240 |
|
| 1241 |
|
| 1242 |
+
|
| 1243 |
+
|
| 1244 |
+
return mask_original, raw_mask_original, inpaint_binary_original
|
| 1245 |
|
| 1246 |
+
#Maske, Raw_mask und Binärmaske in Originalgröße zurück!
|
| 1247 |
|
| 1248 |
# ============================================================
|
| 1249 |
# UNBEKANNTER MODUS
|