bugfixing and added debug preview on key bind 7

This commit is contained in:
Jan 2021-11-27 18:51:13 +01:00
commit c83113ddc4
4 changed files with 30 additions and 5 deletions

View file

@ -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:

View file

@ -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())

View file

@ -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

View file

@ -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 += "================"