diff --git a/core/imagelib/color_transfer.py b/core/imagelib/color_transfer.py index 175920b..0c1760e 100644 --- a/core/imagelib/color_transfer.py +++ b/core/imagelib/color_transfer.py @@ -366,8 +366,8 @@ def color_hist_match(src_im, tar_im, hist_match_threshold=255): return matched def color_transfer_mix(img_src,img_trg): - img_src = (img_src*255.0).astype(np.uint8) - img_trg = (img_trg*255.0).astype(np.uint8) + img_src = np.clip(img_src*255.0, 0, 255).astype(np.uint8) + img_trg = np.clip(img_trg*255.0, 0, 255).astype(np.uint8) img_src_lab = cv2.cvtColor(img_src, cv2.COLOR_BGR2LAB) img_trg_lab = cv2.cvtColor(img_trg, cv2.COLOR_BGR2LAB) diff --git a/merger/MergeMasked.py b/merger/MergeMasked.py index 928d234..1f113dd 100644 --- a/merger/MergeMasked.py +++ b/merger/MergeMasked.py @@ -248,8 +248,8 @@ def MergeMaskedFace (predictor_func, predictor_input_shape, cfg, frame_info, img if 'seamless' in cfg.mode and cfg.color_transfer_mode != 0: if cfg.color_transfer_mode == 1: - out_face_bgr = imagelib.reinhard_color_transfer ( (out_face_bgr*prd_face_mask_area_a*255).astype(np.uint8), - (dst_face_bgr*prd_face_mask_area_a*255).astype(np.uint8) ) + out_face_bgr = imagelib.reinhard_color_transfer ( np.clip(out_face_bgr*prd_face_mask_area_a*255, 0, 255).astype(np.uint8), + np.clip(dst_face_bgr*prd_face_mask_area_a*255, 0, 255).astype(np.uint8) ) out_face_bgr = np.clip( out_face_bgr.astype(np.float32) / 255.0, 0.0, 1.0) elif cfg.color_transfer_mode == 2: #lct out_face_bgr = imagelib.linear_color_transfer (out_face_bgr, dst_face_bgr) diff --git a/models/Model_SAEHD/Model.py b/models/Model_SAEHD/Model.py index d4c402f..1b279d0 100644 --- a/models/Model_SAEHD/Model.py +++ b/models/Model_SAEHD/Model.py @@ -33,8 +33,8 @@ class SAEHDModel(ModelBase): default_archi = self.options['archi'] = self.load_or_def_option('archi', 'df') default_ae_dims = self.options['ae_dims'] = self.load_or_def_option('ae_dims', 256) default_e_dims = self.options['e_dims'] = self.load_or_def_option('e_dims', 64) - self.options['d_dims'] = None - self.options['d_mask_dims'] = None + default_d_dims = self.options['d_dims'] = self.options.get('d_dims', None) + default_d_mask_dims = self.options['d_mask_dims'] = self.options.get('d_mask_dims', None) default_learn_mask = self.options['learn_mask'] = self.load_or_def_option('learn_mask', True) default_eyes_prio = self.options['eyes_prio'] = self.load_or_def_option('eyes_prio', False) default_lr_dropout = self.options['lr_dropout'] = self.load_or_def_option('lr_dropout', False) @@ -65,6 +65,7 @@ class SAEHDModel(ModelBase): default_d_dims = 48 if self.options['archi'] == 'dfhd' else 64 default_d_dims = self.options['d_dims'] = self.load_or_def_option('d_dims', default_d_dims) + default_d_mask_dims = default_d_dims // 3 default_d_mask_dims += default_d_mask_dims % 2 default_d_mask_dims = self.options['d_mask_dims'] = self.load_or_def_option('d_mask_dims', default_d_mask_dims)