Astridkraft commited on
Commit
d14c9c7
·
verified ·
1 Parent(s): 0845230

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -5
app.py CHANGED
@@ -422,20 +422,28 @@ def enhanced_composite_with_sam(original_image, inpaint_result, original_mask,
422
  # damit wird auf den neu generirten BBox-Bereich in Originalgröße eine Folie gezogen
423
  edited_rgba = edited_region_fullsize.convert("RGBA")
424
  # Dadurch werden in die Folie der weichen SAM-Maske wieder an den Stellen schwarze/transparente Löcher
425
- # gerissen wo der Hintergrund innerhalb der BBox bleiben muß!
426
  mask_inverted = Image.eval(soft_mask, lambda x: 255 - x) #invertieren
427
- mask_rgba = mask_inverted.convert("L") # SAM-Maske als Alpha-Kanal also als Löcherfolie
 
 
 
 
 
 
 
428
 
429
  print(f"🔍 Alpha-Maske Werte: min={np.array(mask_rgba).min()}, max={np.array(mask_rgba).max()}")
430
  print(f"🔍 Generierte Person Alpha: {edited_rgba.getchannel('A').getextrema()}")
431
 
432
  # generiere hiermit ein neues transparantes Bild in original BBox-Größe (unsichtbare Trägerfolie)
433
- temp_image = Image.new("RGBA", original_bbox_size, (0, 0, 0, 0))
434
  # darauf klebe ich die neu generierte Person edited_rgba und SAM-Maske als Löcher-Folie-mask_rgba
435
- temp_image.paste(edited_rgba, (0, 0), mask_rgba)
436
 
437
  # hiermit hole ich mir den Hintergrund außerhalb der BBox zurück!
438
- final_image.paste(temp_image, (bbox_coords[0], bbox_coords[1]), temp_image)
 
439
 
440
  # Debug-Info
441
  print(f"🔍 DEBUG COMPOSITING:")
 
422
  # damit wird auf den neu generirten BBox-Bereich in Originalgröße eine Folie gezogen
423
  edited_rgba = edited_region_fullsize.convert("RGBA")
424
  # Dadurch werden in die Folie der weichen SAM-Maske wieder an den Stellen schwarze/transparente Löcher
425
+ # gerissen wo der Hintergrund innerhalb der BBox bleiben muß! In den Löchern bleibt das Originalbild!
426
  mask_inverted = Image.eval(soft_mask, lambda x: 255 - x) #invertieren
427
+
428
+ mask_alpha = mask_inverted.convert("L")
429
+
430
+ edited_rgba.putalpha(mask_alpha)
431
+
432
+ #mask_rgba = mask_inverted.convert("L") # SAM-Maske als Alpha-Kanal also als Löcherfolie
433
+
434
+
435
 
436
  print(f"🔍 Alpha-Maske Werte: min={np.array(mask_rgba).min()}, max={np.array(mask_rgba).max()}")
437
  print(f"🔍 Generierte Person Alpha: {edited_rgba.getchannel('A').getextrema()}")
438
 
439
  # generiere hiermit ein neues transparantes Bild in original BBox-Größe (unsichtbare Trägerfolie)
440
+ #temp_image = Image.new("RGBA", original_bbox_size, (0, 0, 0, 0))
441
  # darauf klebe ich die neu generierte Person edited_rgba und SAM-Maske als Löcher-Folie-mask_rgba
442
+ #temp_image.paste(edited_rgba, (0, 0), mask_rgba)
443
 
444
  # hiermit hole ich mir den Hintergrund außerhalb der BBox zurück!
445
+ #final_image.paste(temp_image, (bbox_coords[0], bbox_coords[1]), temp_image)
446
+ final_image.paste(edited_rgba, (bbox_coords[0], bbox_coords[1]), edited_rgba)
447
 
448
  # Debug-Info
449
  print(f"🔍 DEBUG COMPOSITING:")