Astridkraft commited on
Commit
8d34fc3
·
verified ·
1 Parent(s): f56d955

Update controlnet_module.py

Browse files
Files changed (1) hide show
  1. controlnet_module.py +6 -0
controlnet_module.py CHANGED
@@ -550,6 +550,7 @@ class ControlNetProcessor:
550
  # Alte Standardlogik (kann beibehalten werden)
551
  if max_val < 0.6:
552
  dynamic_threshold = 0.3
 
553
  else:
554
  dynamic_threshold = max_val * 0.8
555
  print(f" ✅ SAM ist sicher (max_val={max_val:.3f} >= 0.6)")
@@ -562,17 +563,22 @@ class ControlNetProcessor:
562
  print(f" 🚨 URSPSRUNGS-DEBUG 1: mask_np Min/Max: {mask_np.min():.3f}/{mask_np.max():.3f}")
563
  print(f" 🚨 URSPSRUNGS-DEBUG 2: mask_array Min/Max: {mask_array.min()}/{mask_array.max()}, Sum: {mask_array.sum()}")
564
  print(f" 🚨 URSPSRUNGS-DEBUG 3: Sind mask_np und mask_array gleich? {np.array_equal(mask_np > dynamic_threshold, mask_array > 0)}")
 
 
565
  print(f" 🐛 DEBUG BINÄRMASKE: Min/Max: {mask_array.min()}/{mask_array.max()}, Weiße Pixel: {np.sum(mask_array > 0)}")
566
  #mask_array = (mask_np > dynamic_threshold).astype(np.uint8) * 255
567
 
568
  # 2. Wenn die Maske immer noch leer ist, ERZwinge eine einfache Maske für den Test:
569
  if mask_array.max() == 0:
570
  print(" ⚠️ KRITISCH: Binärmaske ist leer! Erzwinge Testmaske (BBox).")
 
571
  # Erstelle eine einfache weiße Box innerhalb der BBox als Fallback
572
  test_mask = np.zeros((image.height, image.width), dtype=np.uint8)
573
  cv2.rectangle(test_mask, (x1, y1), (x2, y2), 255, -1) # -1 = ausgefüllt
 
574
  mask_array = test_mask
575
  print(f" 🐛 DEBUG ERZWUNGENE MASKE: Min/Max: {mask_array.min()}/{mask_array.max()}")
 
576
 
577
  mask_np = mask_array.astype(np.float32) / 255.0
578
  print(" ✅ Fallback-Maske wurde gesetzt und mask_np aktualisiert.")
 
550
  # Alte Standardlogik (kann beibehalten werden)
551
  if max_val < 0.6:
552
  dynamic_threshold = 0.3
553
+ print(f" ⚠️ SAM ist unsicher (max_val={max_val:.3f} < 0.6)")
554
  else:
555
  dynamic_threshold = max_val * 0.8
556
  print(f" ✅ SAM ist sicher (max_val={max_val:.3f} >= 0.6)")
 
563
  print(f" 🚨 URSPSRUNGS-DEBUG 1: mask_np Min/Max: {mask_np.min():.3f}/{mask_np.max():.3f}")
564
  print(f" 🚨 URSPSRUNGS-DEBUG 2: mask_array Min/Max: {mask_array.min()}/{mask_array.max()}, Sum: {mask_array.sum()}")
565
  print(f" 🚨 URSPSRUNGS-DEBUG 3: Sind mask_np und mask_array gleich? {np.array_equal(mask_np > dynamic_threshold, mask_array > 0)}")
566
+ print(f" 🚨 URSPSRUNGS-DEBUG 4: Weiße Pixel in mask_array: {np.sum(mask_array > 0)}")
567
+ print(f" 🚨 URSPSRUNGS-DEBUG 5: Anteil weiße Pixel: {np.sum(mask_array > 0) / mask_array.size:.1%}")
568
  print(f" 🐛 DEBUG BINÄRMASKE: Min/Max: {mask_array.min()}/{mask_array.max()}, Weiße Pixel: {np.sum(mask_array > 0)}")
569
  #mask_array = (mask_np > dynamic_threshold).astype(np.uint8) * 255
570
 
571
  # 2. Wenn die Maske immer noch leer ist, ERZwinge eine einfache Maske für den Test:
572
  if mask_array.max() == 0:
573
  print(" ⚠️ KRITISCH: Binärmaske ist leer! Erzwinge Testmaske (BBox).")
574
+ print(f" 🚨 BBox für Fallback: x1={x1}, y1={y1}, x2={x2}, y2={y2}")
575
  # Erstelle eine einfache weiße Box innerhalb der BBox als Fallback
576
  test_mask = np.zeros((image.height, image.width), dtype=np.uint8)
577
  cv2.rectangle(test_mask, (x1, y1), (x2, y2), 255, -1) # -1 = ausgefüllt
578
+
579
  mask_array = test_mask
580
  print(f" 🐛 DEBUG ERZWUNGENE MASKE: Min/Max: {mask_array.min()}/{mask_array.max()}")
581
+ print(f" 🐛 DEBUG ERZWUNGENE MASKE Weiße Pixel: {np.sum(mask_array > 0)}")
582
 
583
  mask_np = mask_array.astype(np.float32) / 255.0
584
  print(" ✅ Fallback-Maske wurde gesetzt und mask_np aktualisiert.")