From 99b0f19553537a2f396a730455c9ea3a23623509 Mon Sep 17 00:00:00 2001
From: Art Gourieff <85128026+Gourieff@users.noreply.github.com>
Date: Sat, 9 Mar 2024 02:36:11 +0700
Subject: [PATCH] UPDATE: RGBA support for Extras Single Image
+VersionUP (0.7.0 beta6)
---
README.md | 2 +-
README_RU.md | 2 +-
scripts/reactor_faceswap.py | 16 ++++++++++++++++
scripts/reactor_version.py | 2 +-
4 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index 1ec67aa..f8ab9ff 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
- 
+ 
diff --git a/README_RU.md b/README_RU.md
index 6e398de..c592320 100644
--- a/README_RU.md
+++ b/README_RU.md
@@ -2,7 +2,7 @@
- 
+ 
diff --git a/scripts/reactor_faceswap.py b/scripts/reactor_faceswap.py
index 88e8b3c..df0239b 100644
--- a/scripts/reactor_faceswap.py
+++ b/scripts/reactor_faceswap.py
@@ -651,6 +651,15 @@ class FaceSwapScriptExtras(scripts_postprocessing.ScriptPostprocessing):
logger.status("Working: source face index %s, target face index %s", self.source_faces_index, self.faces_index)
# if self.select_source != 2:
image: Image.Image = pp.image
+
+ # Extract alpha channel
+ logger.debug(f"image = {image}")
+ if image.mode == 'RGBA':
+ _, _, _, alpha = image.split()
+ else:
+ alpha = None
+ logger.debug(f"alpha = {alpha}")
+
result, output, swapped = swap_face(
self.source,
image,
@@ -686,6 +695,13 @@ class FaceSwapScriptExtras(scripts_postprocessing.ScriptPostprocessing):
else:
try:
pp.info["ReActor"] = True
+
+ if alpha is not None:
+ logger.debug(f"result = {result}")
+ result = result.convert("RGBA")
+ result.putalpha(alpha)
+ logger.debug(f"result_alpha = {result}")
+
pp.image = result
logger.status("---Done!---")
except Exception:
diff --git a/scripts/reactor_version.py b/scripts/reactor_version.py
index 695a098..a7e30a7 100644
--- a/scripts/reactor_version.py
+++ b/scripts/reactor_version.py
@@ -1,5 +1,5 @@
app_title = "ReActor"
-version_flag = "v0.7.0-b5"
+version_flag = "v0.7.0-b6"
from scripts.reactor_logger import logger, get_Run, set_Run
from scripts.reactor_globals import DEVICE