mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-14 00:53:48 -07:00
fixes and optimizations,
converters: added new option sharpen_mode and sharpen_amount
This commit is contained in:
parent
c39ed9d9c9
commit
63d30c49ae
12 changed files with 120 additions and 78 deletions
|
@ -84,6 +84,23 @@ class ConvertSubprocessor(Subprocessor):
|
|||
#therefore forcing active_DeviceConfig to CPU only
|
||||
nnlib.active_DeviceConfig = nnlib.DeviceConfig (cpu_only=True)
|
||||
|
||||
def sharpen_func (img, sharpen_mode=0, radius=0.003, amount=150):
|
||||
h,w,c = img.shape
|
||||
radius = max(1, round(w * radius))
|
||||
kernel_size = int((radius * 2) + 1)
|
||||
if sharpen_mode == 1: #box
|
||||
kernel = np.zeros( (kernel_size, kernel_size), dtype=np.float32)
|
||||
kernel[ kernel_size//2, kernel_size//2] = 1.0
|
||||
box_filter = np.ones( (kernel_size, kernel_size), dtype=np.float32) / (kernel_size**2)
|
||||
kernel = kernel + (kernel - box_filter) * amount
|
||||
return cv2.filter2D(img, -1, kernel)
|
||||
elif sharpen_mode == 2: #gaussian
|
||||
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
|
||||
return img
|
||||
self.sharpen_func = sharpen_func
|
||||
|
||||
self.fanseg_by_face_type = {}
|
||||
self.fanseg_input_size = 256
|
||||
|
||||
|
@ -103,6 +120,7 @@ class ConvertSubprocessor(Subprocessor):
|
|||
def process_data(self, pf): #pf=ProcessingFrame
|
||||
cfg = pf.cfg.copy()
|
||||
cfg.predictor_func = self.predictor_func
|
||||
cfg.sharpen_func = self.sharpen_func
|
||||
cfg.superres_func = self.superres_func
|
||||
|
||||
frame_info = pf.frame_info
|
||||
|
@ -239,8 +257,8 @@ class ConvertSubprocessor(Subprocessor):
|
|||
io.progress_bar_close()
|
||||
|
||||
cfg_change_keys = ['`','1', '2', '3', '4', '5', '6', '7', '8', '9',
|
||||
'q', 'a', 'w', 's', 'e', 'd', 'r', 'f', 't', 'g','y','h',
|
||||
'z', 'x', 'c', 'v', 'b' ]
|
||||
'q', 'a', 'w', 's', 'e', 'd', 'r', 'f', 't', 'g','y','h','u','j',
|
||||
'z', 'x', 'c', 'v', 'b','n' ]
|
||||
#override
|
||||
def on_tick(self):
|
||||
self.predictor_func_host.process_messages()
|
||||
|
@ -324,8 +342,12 @@ class ConvertSubprocessor(Subprocessor):
|
|||
elif chr_key == 'g':
|
||||
cfg.add_color_degrade_power(-1 if not shift_pressed else -5)
|
||||
elif chr_key == 'y':
|
||||
cfg.add_output_face_scale(1 if not shift_pressed else 5)
|
||||
cfg.add_sharpen_amount(1 if not shift_pressed else 5)
|
||||
elif chr_key == 'h':
|
||||
cfg.add_sharpen_amount(-1 if not shift_pressed else -5)
|
||||
elif chr_key == 'u':
|
||||
cfg.add_output_face_scale(1 if not shift_pressed else 5)
|
||||
elif chr_key == 'j':
|
||||
cfg.add_output_face_scale(-1 if not shift_pressed else -5)
|
||||
|
||||
elif chr_key == 'z':
|
||||
|
@ -338,11 +360,20 @@ class ConvertSubprocessor(Subprocessor):
|
|||
cfg.toggle_super_resolution_mode()
|
||||
elif chr_key == 'b':
|
||||
cfg.toggle_export_mask_alpha()
|
||||
elif chr_key == 'n':
|
||||
cfg.toggle_sharpen_mode()
|
||||
|
||||
else:
|
||||
if chr_key == 's':
|
||||
if chr_key == 'y':
|
||||
cfg.add_sharpen_amount(1 if not shift_pressed else 5)
|
||||
elif chr_key == 'h':
|
||||
cfg.add_sharpen_amount(-1 if not shift_pressed else -5)
|
||||
elif chr_key == 's':
|
||||
cfg.toggle_add_source_image()
|
||||
elif chr_key == 'v':
|
||||
cfg.toggle_super_resolution_mode()
|
||||
elif chr_key == 'n':
|
||||
cfg.toggle_sharpen_mode()
|
||||
|
||||
if prev_cfg != cfg:
|
||||
io.log_info (cfg)
|
||||
|
@ -368,16 +399,13 @@ class ConvertSubprocessor(Subprocessor):
|
|||
if go_prev_frame:
|
||||
if cur_frame is not None and cur_frame.is_done:
|
||||
cur_frame.image = None
|
||||
|
||||
|
||||
if len(self.frames_done_idxs) > 0:
|
||||
prev_frame = self.frames[self.frames_done_idxs.pop()]
|
||||
self.frames_idxs.insert(0, prev_frame.idx)
|
||||
prev_frame.is_shown = False
|
||||
io.progress_bar_inc(-1)
|
||||
|
||||
if go_prev_frame_overriding_cfg:
|
||||
if cur_frame is not None:
|
||||
if len(self.frames_done_idxs) > 0:
|
||||
prev_frame = self.frames[self.frames_done_idxs.pop()]
|
||||
self.frames_idxs.insert(0, prev_frame.idx)
|
||||
prev_frame.is_shown = False
|
||||
io.progress_bar_inc(-1)
|
||||
|
||||
if go_prev_frame_overriding_cfg:
|
||||
if prev_frame.cfg != cur_frame.cfg:
|
||||
prev_frame.cfg = cur_frame.cfg
|
||||
prev_frame.is_done = False
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue