mirror of
https://github.com/iperov/DeepFaceLab.git
synced 2025-07-06 13:02:15 -07:00
added option 'Choose image for the preview history? (y/n skip:'
This commit is contained in:
parent
9e05e58ac4
commit
836693d64f
6 changed files with 81 additions and 8 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -31,6 +31,10 @@ class InteractBase(object):
|
|||
self.mouse_events = {}
|
||||
self.key_events = {}
|
||||
self.pg_bar = None
|
||||
self.focus_wnd_name = None
|
||||
|
||||
def is_support_windows(self):
|
||||
return False
|
||||
|
||||
def is_colab(self):
|
||||
return False
|
||||
|
@ -41,6 +45,9 @@ class InteractBase(object):
|
|||
def on_create_window (self, wnd_name):
|
||||
raise NotImplemented
|
||||
|
||||
def on_destroy_window (self, wnd_name):
|
||||
raise NotImplemented
|
||||
|
||||
def on_show_image (self, wnd_name, img):
|
||||
raise NotImplemented
|
||||
|
||||
|
@ -66,6 +73,7 @@ class InteractBase(object):
|
|||
if wnd_name not in self.named_windows:
|
||||
#we will show window only on first show_image
|
||||
self.named_windows[wnd_name] = 0
|
||||
self.focus_wnd_name = wnd_name
|
||||
else: print("named_window: ", wnd_name, " already created.")
|
||||
|
||||
def destroy_all_windows(self):
|
||||
|
@ -76,6 +84,27 @@ class InteractBase(object):
|
|||
self.capture_keys_windows = {}
|
||||
self.mouse_events = {}
|
||||
self.key_events = {}
|
||||
self.focus_wnd_name = None
|
||||
|
||||
def destroy_window(self, wnd_name):
|
||||
if wnd_name in self.named_windows:
|
||||
self.on_destroy_window(wnd_name)
|
||||
self.named_windows.pop(wnd_name)
|
||||
|
||||
if wnd_name == self.focus_wnd_name:
|
||||
self.focus_wnd_name = list(self.named_windows.keys())[-1] if len( self.named_windows ) != 0 else None
|
||||
|
||||
if wnd_name in self.capture_mouse_windows:
|
||||
self.capture_mouse_windows.pop(wnd_name)
|
||||
|
||||
if wnd_name in self.capture_keys_windows:
|
||||
self.capture_keys_windows.pop(wnd_name)
|
||||
|
||||
if wnd_name in self.mouse_events:
|
||||
self.mouse_events.pop(wnd_name)
|
||||
|
||||
if wnd_name in self.key_events:
|
||||
self.key_events.pop(wnd_name)
|
||||
|
||||
def show_image(self, wnd_name, img):
|
||||
if wnd_name in self.named_windows:
|
||||
|
@ -249,12 +278,18 @@ class InteractBase(object):
|
|||
|
||||
class InteractDesktop(InteractBase):
|
||||
|
||||
def is_support_windows(self):
|
||||
return True
|
||||
|
||||
def on_destroy_all_windows(self):
|
||||
cv2.destroyAllWindows()
|
||||
|
||||
def on_create_window (self, wnd_name):
|
||||
cv2.namedWindow(wnd_name)
|
||||
|
||||
def on_destroy_window (self, wnd_name):
|
||||
cv2.destroyWindow(wnd_name)
|
||||
|
||||
def on_show_image (self, wnd_name, img):
|
||||
cv2.imshow (wnd_name, img)
|
||||
|
||||
|
@ -305,14 +340,16 @@ class InteractDesktop(InteractBase):
|
|||
time.sleep(sleep_time)
|
||||
|
||||
if has_capture_keys and ord_key != -1:
|
||||
for wnd_name in self.capture_keys_windows:
|
||||
self.add_key_event (wnd_name, ord_key, False, False, shift_pressed)
|
||||
self.add_key_event ( self.focus_wnd_name, ord_key, False, False, shift_pressed)
|
||||
|
||||
def on_wait_any_key(self):
|
||||
cv2.waitKey(0)
|
||||
|
||||
class InteractColab(InteractBase):
|
||||
|
||||
def is_support_windows(self):
|
||||
return False
|
||||
|
||||
def is_colab(self):
|
||||
return True
|
||||
|
||||
|
@ -324,6 +361,9 @@ class InteractColab(InteractBase):
|
|||
pass
|
||||
#clear_output()
|
||||
|
||||
def on_destroy_window (self, wnd_name):
|
||||
pass
|
||||
|
||||
def on_show_image (self, wnd_name, img):
|
||||
pass
|
||||
# # cv2 stores colors as BGR; convert to RGB
|
||||
|
|
|
@ -85,6 +85,11 @@ class ModelBase(object):
|
|||
else:
|
||||
self.options['write_preview_history'] = self.options.get('write_preview_history', False)
|
||||
|
||||
if self.iter == 0 and self.options['write_preview_history'] and io.is_support_windows():
|
||||
choose_preview_history = io.input_bool("Choose image for the preview history? (y/n skip:%s) : " % (yn_str[False]) , False)
|
||||
else:
|
||||
choose_preview_history = False
|
||||
|
||||
if ask_target_iter:
|
||||
if (self.iter == 0 or ask_override):
|
||||
self.options['target_iter'] = max(0, io.input_int("Target iteration (skip:unlimited/default) : ", 0))
|
||||
|
@ -168,6 +173,34 @@ class ModelBase(object):
|
|||
raise ValueError('training data generator is not subclass of SampleGeneratorBase')
|
||||
|
||||
if (self.sample_for_preview is None) or (self.iter == 0):
|
||||
|
||||
if self.iter == 0:
|
||||
if choose_preview_history and io.is_support_windows():
|
||||
wnd_name = "[p] - next. [enter] - confirm."
|
||||
io.named_window(wnd_name)
|
||||
io.capture_keys(wnd_name)
|
||||
choosed = False
|
||||
while not choosed:
|
||||
self.sample_for_preview = self.generate_next_sample()
|
||||
preview = self.get_static_preview()
|
||||
io.show_image( wnd_name, (preview*255).astype(np.uint8) )
|
||||
|
||||
while True:
|
||||
key_events = io.get_key_events(wnd_name)
|
||||
key, chr_key, ctrl_pressed, alt_pressed, shift_pressed = key_events[-1] if len(key_events) > 0 else (0,0,False,False,False)
|
||||
if key == ord('\n') or key == ord('\r'):
|
||||
choosed = True
|
||||
break
|
||||
elif key == ord('p'):
|
||||
break
|
||||
|
||||
try:
|
||||
io.process_messages(0.1)
|
||||
except KeyboardInterrupt:
|
||||
choosed = True
|
||||
|
||||
io.destroy_window(wnd_name)
|
||||
else:
|
||||
self.sample_for_preview = self.generate_next_sample()
|
||||
|
||||
model_summary_text = []
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue