mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-08-24 15:16:21 -07:00
commit
68e591cca4
5 changed files with 14 additions and 10 deletions
|
@ -153,9 +153,9 @@ Unfortunately, there is no "make everything ok" button in DeepFaceLab. You shoul
|
||||||
||bitcoin:bc1qkhh7h0gwwhxgg6h6gpllfgstkd645fefrd5s6z|
|
||bitcoin:bc1qkhh7h0gwwhxgg6h6gpllfgstkd645fefrd5s6z|
|
||||||
|Alipay 捐款||
|
|Alipay 捐款||
|
||||||
|||
|
|||
|
||||||
|Last donations|10$ ( Mélio Mascort )|
|
|Last donations|20$ ( Michael V. )|
|
||||||
||25$ ( Maria Grasmeder )|
|
||5$ ( Boris H. )|
|
||||||
||10$ ( Amien Phillips )|
|
||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)|
|
|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)|
|
||||||
|||
|
|||
|
||||||
|
|
|
@ -1141,7 +1141,10 @@ class LoaderQSubprocessor(QSubprocessor):
|
||||||
class MainWindow(QXMainWindow):
|
class MainWindow(QXMainWindow):
|
||||||
|
|
||||||
def __init__(self, input_dirpath, cfg_root_path):
|
def __init__(self, input_dirpath, cfg_root_path):
|
||||||
|
self.loading_frame = None
|
||||||
|
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
self.input_dirpath = input_dirpath
|
self.input_dirpath = input_dirpath
|
||||||
self.cfg_root_path = cfg_root_path
|
self.cfg_root_path = cfg_root_path
|
||||||
|
|
||||||
|
|
|
@ -389,16 +389,14 @@ class DeepFakeArchi(nn.ArchiBase):
|
||||||
|
|
||||||
class ResidualBlock(nn.ModelBase):
|
class ResidualBlock(nn.ModelBase):
|
||||||
def on_build(self, ch, kernel_size=3 ):
|
def on_build(self, ch, kernel_size=3 ):
|
||||||
self.conv1 = nn.Conv2D( ch, ch*2, kernel_size=kernel_size, padding='SAME')
|
self.conv1 = nn.Conv2D( ch, ch, kernel_size=kernel_size, padding='SAME')
|
||||||
self.conv2 = nn.Conv2D( ch*2, ch, kernel_size=kernel_size, padding='SAME')
|
self.conv2 = nn.Conv2D( ch, ch, kernel_size=kernel_size, padding='SAME')
|
||||||
self.scale_add = nn.ScaleAdd(ch)
|
|
||||||
|
|
||||||
def forward(self, inp):
|
def forward(self, inp):
|
||||||
x = self.conv1(inp)
|
x = self.conv1(inp)
|
||||||
x = tf.nn.leaky_relu(x, 0.2)
|
x = tf.nn.leaky_relu(x, 0.2)
|
||||||
x = self.conv2(x)
|
x = self.conv2(x)
|
||||||
x = tf.nn.leaky_relu(x, 0.2)
|
x = tf.nn.leaky_relu(inp + x, 0.2)
|
||||||
x = self.scale_add([inp, x])
|
|
||||||
return x
|
return x
|
||||||
|
|
||||||
class Encoder(nn.ModelBase):
|
class Encoder(nn.ModelBase):
|
||||||
|
|
|
@ -393,6 +393,7 @@ class InteractiveMergerSubprocessor(Subprocessor):
|
||||||
# unable to read? recompute then
|
# unable to read? recompute then
|
||||||
cur_frame.is_done = False
|
cur_frame.is_done = False
|
||||||
else:
|
else:
|
||||||
|
image = imagelib.normalize_channels(image, 3)
|
||||||
image_mask = imagelib.normalize_channels(image_mask, 1)
|
image_mask = imagelib.normalize_channels(image_mask, 1)
|
||||||
cur_frame.image = np.concatenate([image, image_mask], -1)
|
cur_frame.image = np.concatenate([image, image_mask], -1)
|
||||||
|
|
||||||
|
|
|
@ -305,6 +305,8 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
||||||
else:
|
else:
|
||||||
alpha = cfg.color_degrade_power / 100.0
|
alpha = cfg.color_degrade_power / 100.0
|
||||||
out_img = (out_img*(1.0-alpha) + out_img_reduced*alpha)
|
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
|
out_merging_mask_a = img_face_mask_a
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue