Astridkraft commited on
Commit
eee301c
·
verified ·
1 Parent(s): 6179a37

Update sam_module.py

Browse files
Files changed (1) hide show
  1. sam_module.py +4 -4
sam_module.py CHANGED
@@ -351,7 +351,7 @@ def create_sam_mask(self, image, bbox_coords, mode):
351
 
352
  # Alle 3 Masken analysieren
353
  for i in range(num_masks):
354
- # Maske in Original-SAM-Größe (256x256) analysieren
355
 
356
  mask_np_temp = all_masks[i]
357
 
@@ -409,7 +409,7 @@ def create_sam_mask(self, image, bbox_coords, mode):
409
 
410
  print(f"✅ Beste Maske: Nr. {best_mask_idx+1} mit Score {best_score:.3f}")
411
 
412
- # NUR DIE BESTE MASKE AUF 512x512 SKALIEREN -Für Inpaint
413
  best_mask_256 = outputs.pred_masks[:, :, best_mask_idx, :, :]
414
  resized_mask = F.interpolate(
415
  best_mask_256,
@@ -418,7 +418,7 @@ def create_sam_mask(self, image, bbox_coords, mode):
418
  align_corners=False
419
  ).squeeze()
420
 
421
- mask_np = resized_mask.sigmoid().cpu().numpy()
422
  print(f" 🔄 Beste Maske skaliert auf 512×512 für ControlNet")
423
 
424
  # ============================================================
@@ -428,7 +428,7 @@ def create_sam_mask(self, image, bbox_coords, mode):
428
  # wie "wahrscheinlich gehört dieser Pixel zur Person"), wird diese Maske binarisiert (0 oder 1), indem alle
429
  # Pixel unter 0.05 auf 0 gesetzt werden, alle darüber auf 1.
430
  # ============================================================
431
- mask_max = mask_np.max()
432
  if best_score < 0.7: # Schlechte Maskenqualität
433
  dynamic_threshold = 0.05 # SEHR NIEDRIG für maximale Abdeckung
434
  print(f" ⚠️ Masken-Score niedrig ({best_score:.3f}). "
 
351
 
352
  # Alle 3 Masken analysieren
353
  for i in range(num_masks):
354
+ # Maske in Original-Bildgröße -vorher interpolate- analysieren
355
 
356
  mask_np_temp = all_masks[i]
357
 
 
409
 
410
  print(f"✅ Beste Maske: Nr. {best_mask_idx+1} mit Score {best_score:.3f}")
411
 
412
+ # NUR DIE BESTE MASKE AUF 512x512 HERUNTERSKALIEREN -Für Inpaint
413
  best_mask_256 = outputs.pred_masks[:, :, best_mask_idx, :, :]
414
  resized_mask = F.interpolate(
415
  best_mask_256,
 
418
  align_corners=False
419
  ).squeeze()
420
 
421
+ mask_np = resized_mask.cpu().numpy()
422
  print(f" 🔄 Beste Maske skaliert auf 512×512 für ControlNet")
423
 
424
  # ============================================================
 
428
  # wie "wahrscheinlich gehört dieser Pixel zur Person"), wird diese Maske binarisiert (0 oder 1), indem alle
429
  # Pixel unter 0.05 auf 0 gesetzt werden, alle darüber auf 1.
430
  # ============================================================
431
+ mask_max = mask_np.max() #höchster Wahrscheinlichkeitswert in SAM-Maske
432
  if best_score < 0.7: # Schlechte Maskenqualität
433
  dynamic_threshold = 0.05 # SEHR NIEDRIG für maximale Abdeckung
434
  print(f" ⚠️ Masken-Score niedrig ({best_score:.3f}). "