Update app.py
Browse files
app.py
CHANGED
|
@@ -321,12 +321,15 @@ def enhanced_composite_with_sam(original_image, inpaint_result, original_mask,
|
|
| 321 |
)
|
| 322 |
|
| 323 |
# Originalbild wird kopiert und mit transparenter Folie überzogen (.convert)
|
|
|
|
| 324 |
original_with_alpha = original_image.copy().convert("RGBA")
|
| 325 |
|
| 326 |
-
# Invertierte Maske
|
|
|
|
| 327 |
mask_inverted = Image.eval(original_mask, lambda x: 255 - x)
|
| 328 |
|
| 329 |
-
# Weiche Kanten für natürlichen Übergang
|
|
|
|
| 330 |
soft_mask = mask_inverted.filter(ImageFilter.GaussianBlur(3))
|
| 331 |
original_with_alpha.putalpha(soft_mask)
|
| 332 |
|
|
|
|
| 321 |
)
|
| 322 |
|
| 323 |
# Originalbild wird kopiert und mit transparenter Folie überzogen (.convert)
|
| 324 |
+
# Diese Folie wird an den Stellen ausgestanzt an denen die Maske schwarz ist.
|
| 325 |
original_with_alpha = original_image.copy().convert("RGBA")
|
| 326 |
|
| 327 |
+
# Invertierte Maske (BBox, SAM-Maske=original_mask) kommt von SAM zurück!
|
| 328 |
+
# Invertierung nötig weil für Alpha-Kanal die Logik andersherum ist. schwarz-weg, weiß-behalten
|
| 329 |
mask_inverted = Image.eval(original_mask, lambda x: 255 - x)
|
| 330 |
|
| 331 |
+
# Weiche Kanten für natürlichen Übergang, damit werden 1,5 Pixel von Person grau
|
| 332 |
+
# und 1,5 Pixel von Umgebung. Effektiv können damit 6-8 Pixel sanft überbrückt werden.
|
| 333 |
soft_mask = mask_inverted.filter(ImageFilter.GaussianBlur(3))
|
| 334 |
original_with_alpha.putalpha(soft_mask)
|
| 335 |
|