diff --git a/README.md b/README.md index 96680ed..b767314 100644 --- a/README.md +++ b/README.md @@ -153,9 +153,9 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul ||bitcoin:bc1qkhh7h0gwwhxgg6h6gpllfgstkd645fefrd5s6z| |Alipay 捐款|![](doc/Alipay_donation.jpg)| ||| -|Last donations|10$ ( Mélio Mascort )| -||25$ ( Maria Grasmeder )| -||10$ ( Amien Phillips )| +|Last donations|20$ ( Michael V. )| +||5$ ( Boris H. )| +||10$ ( John R. )| ||| |Collect facesets|You can collect faceset of any celebrity that can be used in DeepFaceLab and share it [in the community](https://mrdeepfakes.com/forums/forum-celebrity-facesets)| ||| diff --git a/XSegEditor/XSegEditor.py b/XSegEditor/XSegEditor.py index d40f4dc..0e06b10 100644 --- a/XSegEditor/XSegEditor.py +++ b/XSegEditor/XSegEditor.py @@ -1141,7 +1141,10 @@ class LoaderQSubprocessor(QSubprocessor): class MainWindow(QXMainWindow): def __init__(self, input_dirpath, cfg_root_path): + self.loading_frame = None + super().__init__() + self.input_dirpath = input_dirpath self.cfg_root_path = cfg_root_path @@ -1367,7 +1370,7 @@ def start(input_dirpath): returns exit_code """ io.log_info("Running XSeg editor.") - + if PackedFaceset.path_contains(input_dirpath): io.log_info (f'\n{input_dirpath} contains packed faceset! Unpack it first.\n') return 1 diff --git a/core/leras/archis/DeepFakeArchi.py b/core/leras/archis/DeepFakeArchi.py index dcd7017..8f82aaa 100644 --- a/core/leras/archis/DeepFakeArchi.py +++ b/core/leras/archis/DeepFakeArchi.py @@ -389,16 +389,14 @@ class DeepFakeArchi(nn.ArchiBase): class ResidualBlock(nn.ModelBase): def on_build(self, ch, kernel_size=3 ): - self.conv1 = nn.Conv2D( ch, ch*2, kernel_size=kernel_size, padding='SAME') - self.conv2 = nn.Conv2D( ch*2, ch, kernel_size=kernel_size, padding='SAME') - self.scale_add = nn.ScaleAdd(ch) + self.conv1 = nn.Conv2D( ch, ch, kernel_size=kernel_size, padding='SAME') + self.conv2 = nn.Conv2D( ch, ch, kernel_size=kernel_size, padding='SAME') def forward(self, inp): x = self.conv1(inp) x = tf.nn.leaky_relu(x, 0.2) x = self.conv2(x) - x = tf.nn.leaky_relu(x, 0.2) - x = self.scale_add([inp, x]) + x = tf.nn.leaky_relu(inp + x, 0.2) return x class Encoder(nn.ModelBase): diff --git a/merger/InteractiveMergerSubprocessor.py b/merger/InteractiveMergerSubprocessor.py index bbec108..47c8a38 100644 --- a/merger/InteractiveMergerSubprocessor.py +++ b/merger/InteractiveMergerSubprocessor.py @@ -393,6 +393,7 @@ class InteractiveMergerSubprocessor(Subprocessor): # unable to read? recompute then cur_frame.is_done = False else: + image = imagelib.normalize_channels(image, 3) image_mask = imagelib.normalize_channels(image_mask, 1) cur_frame.image = np.concatenate([image, image_mask], -1) diff --git a/merger/MergeMasked.py b/merger/MergeMasked.py index 47d117f..aaea66a 100644 --- a/merger/MergeMasked.py +++ b/merger/MergeMasked.py @@ -305,7 +305,9 @@ def MergeMaskedFace (predictor_func, predictor_input_shape, else: alpha = cfg.color_degrade_power / 100.0 out_img = (out_img*(1.0-alpha) + out_img_reduced*alpha) - + else: + out_img = img_bgr.copy() + out_merging_mask_a = img_face_mask_a return out_img, out_merging_mask_a