mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-08-19 13:09:56 -07:00
bugfixing and added debug preview on key bind 7
This commit is contained in:
parent
e9f923b582
commit
c83113ddc4
4 changed files with 30 additions and 5 deletions
|
@ -22,6 +22,8 @@ def blursharpen (img, sharpen_mode=0, kernel_size=3, amount=100):
|
|||
blur = cv2.GaussianBlur(img, (kernel_size, kernel_size) , 0)
|
||||
img = cv2.addWeighted(img, 1.0 + (0.5 * amount), blur, -(0.5 * amount), 0)
|
||||
return img
|
||||
elif sharpen_mode == 3: #unsharpen_mask
|
||||
img = unsharpen_mask(img, amount=amount)
|
||||
elif amount < 0:
|
||||
n = -amount
|
||||
while n > 0:
|
||||
|
|
|
@ -336,6 +336,7 @@ class InteractiveMergerSubprocessor(Subprocessor):
|
|||
'(' : lambda cfg,shift_pressed: cfg.add_morph_power(1),
|
||||
'*' : lambda cfg,shift_pressed: cfg.add_morph_power(-1),
|
||||
'b' : lambda cfg,shift_pressed: cfg.toggle_two_pass(),
|
||||
'7' : lambda cfg,shift_pressed: cfg.toggle_debug_mode(),
|
||||
}
|
||||
self.masked_keys = list(self.masked_keys_funcs.keys())
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
|||
dst_face_mask_a_0 = cv2.warpAffine( img_face_mask_a, face_mat, (output_size, output_size), flags=cv2.INTER_CUBIC )
|
||||
dst_face_mask_a_0 = np.clip(dst_face_mask_a_0, 0, 1)
|
||||
|
||||
|
||||
if cfg.pre_sharpen_mode > 0 and cfg.pre_sharpen_power != 0:
|
||||
if cfg.pre_sharpen_mode==1:
|
||||
dst_face_bgr = imagelib.gaussian_sharpen(dst_face_bgr, amount=cfg.pre_sharpen_power)
|
||||
|
@ -79,12 +80,17 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
|||
prd_face_mask_a_0 = np.clip (predicted[1], 0, 1.0)
|
||||
prd_face_dst_mask_a_0 = np.clip (predicted[2], 0, 1.0)
|
||||
|
||||
|
||||
|
||||
if cfg.two_pass:
|
||||
predicted_2 = predictor_func (prd_face_bgr, func_morph_factor = 1.0) if cfg.is_morphable else predictor_func (prd_face_bgr)
|
||||
predicted_2 = predictor_func (prd_face_bgr, func_morph_factor = 1) if cfg.is_morphable else predictor_func (prd_face_bgr)
|
||||
prd_face_bgr = np.clip (predicted_2[0], 0, 1.0)
|
||||
prd_face_mask_a_0 = np.clip (predicted_2[1], 0, 1.0)
|
||||
prd_face_dst_mask_a_0 = np.clip (predicted_2[2], 0, 1.0)
|
||||
|
||||
if cfg.debug_mode:
|
||||
prd_face_bgr_unchanged = prd_face_bgr.copy()
|
||||
|
||||
if cfg.super_resolution_power != 0:
|
||||
prd_face_bgr_enhanced = face_enhancer_func(prd_face_bgr, is_tanh=True, preserve_size=False)
|
||||
mod = cfg.super_resolution_power / 100.0
|
||||
|
@ -350,6 +356,15 @@ def MergeMaskedFace (predictor_func, predictor_input_shape,
|
|||
if out_img is None:
|
||||
out_img = img_bgr.copy()
|
||||
|
||||
|
||||
if 'raw' not in cfg.mode and cfg.debug_mode:
|
||||
ph, pw = predictor_input_bgr.shape[:2]
|
||||
oh, ow = out_img.shape[:2]
|
||||
out_img[oh-ph:,ow-pw:] = predictor_input_bgr
|
||||
ph, pw = prd_face_bgr_unchanged.shape[:2]
|
||||
out_img[oh-ph:,0:pw] = prd_face_bgr_unchanged
|
||||
|
||||
|
||||
return out_img, out_merging_mask_a
|
||||
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ class MergerConfig(object):
|
|||
):
|
||||
self.type = type
|
||||
|
||||
self.sharpen_dict = {0:"None", 1:'box', 2:'gaussian'}
|
||||
self.sharpen_dict = {0:"None", 1:'box', 2:'gaussian', 3:'unsharpen'}
|
||||
|
||||
#default changeable params
|
||||
self.sharpen_mode = sharpen_mode
|
||||
|
@ -122,6 +122,7 @@ class MergerConfigMasked(MergerConfig):
|
|||
two_pass = False,
|
||||
morph_power = 100,
|
||||
is_morphable = False,
|
||||
debug_mode = False,
|
||||
**kwargs
|
||||
):
|
||||
|
||||
|
@ -155,6 +156,7 @@ class MergerConfigMasked(MergerConfig):
|
|||
self.pre_sharpen_mode = pre_sharpen_mode
|
||||
self.morph_power = morph_power
|
||||
self.is_morphable = is_morphable
|
||||
self.debug_mode = debug_mode
|
||||
|
||||
def copy(self):
|
||||
return copy.copy(self)
|
||||
|
@ -169,6 +171,9 @@ class MergerConfigMasked(MergerConfig):
|
|||
def toggle_two_pass(self):
|
||||
self.two_pass = not self.two_pass
|
||||
|
||||
def toggle_debug_mode(self):
|
||||
self.debug_mode = not self.debug_mode
|
||||
|
||||
|
||||
def toggle_sharpen_mode_multi(self, pre_sharpen=False):
|
||||
if pre_sharpen:
|
||||
|
@ -296,7 +301,8 @@ class MergerConfigMasked(MergerConfig):
|
|||
self.pre_sharpen_mode == other.pre_sharpen_mode and \
|
||||
self.two_pass == other.two_pass and \
|
||||
self.morph_power == other.morph_power and \
|
||||
self.is_morphable == other.is_morphable
|
||||
self.is_morphable == other.is_morphable and \
|
||||
self.debug_mode == other.debug_mode
|
||||
|
||||
return False
|
||||
|
||||
|
@ -337,6 +343,7 @@ class MergerConfigMasked(MergerConfig):
|
|||
r += f"""two_pass: {self.two_pass}\n"""
|
||||
r += f"""morph_power: {self.morph_power}\n"""
|
||||
#r += f"""is_morphable: {self.is_morphable}\n"""
|
||||
r += f"""debug_mode: {self.debug_mode}\n"""
|
||||
|
||||
r += "================"
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue