Update app.py
Browse files
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:")
|