From 067695be6f4f48c9351ddb195188de35d129975b Mon Sep 17 00:00:00 2001 From: DilanBoskan Date: Wed, 2 Dec 2020 15:02:42 +0100 Subject: [PATCH 1/3] Save last selected models #36 --- VocalRemover.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/VocalRemover.py b/VocalRemover.py index f08f79e..d46de32 100644 --- a/VocalRemover.py +++ b/VocalRemover.py @@ -55,6 +55,8 @@ DEFAULT_DATA = { 'stackOnly': False, 'saveAllStacked': False, 'modelFolder': False, + 'modelInstrumentalLabel': 'model_iter26_sr33075_hl384_w512.pth', + 'modelStackedLabel': 'baseline.pth', 'aiModel': 'v4', 'useModel': 'instrumental', @@ -286,8 +288,8 @@ class MainWindow(TkinterDnD.Tk): self.tta_var = tk.BooleanVar(value=data['tta']) self.outputImage_var = tk.BooleanVar(value=data['output_image']) # Models - self.instrumentalModel_var = tk.StringVar(value='') - self.stackedModel_var = tk.StringVar(value='') + self.instrumentalModel_var = tk.StringVar(value=data['modelInstrumentalLabel']) + self.stackedModel_var = tk.StringVar(value=data['modelStackedLabel']) # Stacked Options self.stack_var = tk.BooleanVar(value=data['stack']) self.stackLoops_var = tk.StringVar(value=data['stackPasses']) @@ -956,6 +958,8 @@ class MainWindow(TkinterDnD.Tk): 'useModel': 'instrumental', 'lastDir': self.lastDir, 'modelFolder': self.modelFolder_var.get(), + 'modelInstrumentalLabel': self.instrumentalModel_var.get(), + 'modelStackedLabel': self.stackedModel_var.get(), 'aiModel': self.aiModel_var.get(), }) From 4d2326c1497d5e2175dd2aad9da068c84437fb1a Mon Sep 17 00:00:00 2001 From: DilanBoskan Date: Wed, 2 Dec 2020 15:12:27 +0100 Subject: [PATCH 2/3] Added save for last selected music files --- VocalRemover.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/VocalRemover.py b/VocalRemover.py index d46de32..d98138d 100644 --- a/VocalRemover.py +++ b/VocalRemover.py @@ -41,7 +41,8 @@ stackedModels_dir = os.path.join(base_path, 'models') banner_path = os.path.join(base_path, 'img', 'UVR-banner.png') refresh_path = os.path.join(base_path, 'img', 'refresh.png') DEFAULT_DATA = { - 'export_path': '', + 'exportPath': '', + 'inputPaths': [], 'gpu': False, 'postprocess': False, 'tta': False, @@ -55,8 +56,8 @@ DEFAULT_DATA = { 'stackOnly': False, 'saveAllStacked': False, 'modelFolder': False, - 'modelInstrumentalLabel': 'model_iter26_sr33075_hl384_w512.pth', - 'modelStackedLabel': 'baseline.pth', + 'modelInstrumentalLabel': '', + 'modelStackedLabel': '', 'aiModel': 'v4', 'useModel': 'instrumental', @@ -193,7 +194,7 @@ def drop(event, accept_mode: str = 'files'): path[-1] = path[-1].replace('}', '') # Set Variables root.inputPaths = path - root.inputPathsEntry_var.set('; '.join(path)) + root.update_inputPaths() else: # Invalid accept mode return @@ -280,8 +281,8 @@ class MainWindow(TkinterDnD.Tk): # -Tkinter Value Holders- data = load_data() # Paths - self.exportPath_var = tk.StringVar(value=data['export_path']) - self.inputPaths = [] + self.exportPath_var = tk.StringVar(value=data['exportPath']) + self.inputPaths = data['inputPaths'] # Processing Options self.gpuConversion_var = tk.BooleanVar(value=data['gpu']) self.postprocessing_var = tk.BooleanVar(value=data['postprocess']) @@ -607,7 +608,7 @@ class MainWindow(TkinterDnD.Tk): ) if paths: # Path selected self.inputPaths = paths - self.inputPathsEntry_var.set('; '.join(paths)) + self.update_inputPaths() self.lastDir = os.path.dirname(paths[0]) def open_export_filedialog(self): @@ -783,6 +784,16 @@ class MainWindow(TkinterDnD.Tk): widget.configure(state=tk.NORMAL) var.set(DEFAULT_DATA[key]) + def update_inputPaths(self): + """Update the music file entry""" + if self.inputPaths: + # Non-empty Selection + text = '; '.join(self.inputPaths) + else: + # Empty Selection + text = '' + self.inputPathsEntry_var.set(text) + def update_loop(self): """Update the dropdown menu""" self.update_available_models() @@ -889,6 +900,7 @@ class MainWindow(TkinterDnD.Tk): relx=1/3 + 1/3/2, rely=3/self.COL2_ROWS, relwidth=1/3/4, relheight=1/self.COL2_ROWS) self.decode_modelNames() + self.update_inputPaths() def deselect_models(self): """ @@ -925,7 +937,6 @@ class MainWindow(TkinterDnD.Tk): """ Save the data of the application """ - export_path = self.exportPath_var.get() # Get constants instrumental = get_model_values(self.instrumentalModel_var.get()) stacked = get_model_values(self.stackedModel_var.get()) @@ -942,7 +953,8 @@ class MainWindow(TkinterDnD.Tk): # -Save Data- save_data(data={ - 'export_path': export_path, + 'exportPath': self.exportPath_var.get(), + 'inputPaths': self.inputPaths, 'gpu': self.gpuConversion_var.get(), 'postprocess': self.postprocessing_var.get(), 'tta': self.tta_var.get(), From 3e1373cebcdf4b903eb200dbf59e9d2be068428f Mon Sep 17 00:00:00 2001 From: DilanBoskan Date: Wed, 2 Dec 2020 17:11:22 +0100 Subject: [PATCH 3/3] Attempt at fix for #34 --- inference_v2.py | 3 ++- inference_v4.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/inference_v2.py b/inference_v2.py index a9d196c..7ffb851 100644 --- a/inference_v2.py +++ b/inference_v2.py @@ -51,7 +51,7 @@ data = { # Constants 'sr': 44_100, 'hop_length': 1_024, - 'window_size': 512, + 'window_size': 320, 'n_fft': 2_048, } default_sr = data['sr'] @@ -482,4 +482,5 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress progress_var.set(0) # Update Progress text_widget.write(f'Conversion(s) Completed and Saving all Files!\n') # nopep8 Write Command Text text_widget.write(f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}') # nopep8 + torch.cuda.empty_cache() button_widget.configure(state=tk.NORMAL) # Enable Button \ No newline at end of file diff --git a/inference_v4.py b/inference_v4.py index cfd9b10..ffe6539 100644 --- a/inference_v4.py +++ b/inference_v4.py @@ -171,7 +171,7 @@ data = { # Constants 'sr': 44_100, 'hop_length': 1_024, - 'window_size': 512, + 'window_size': 320, 'n_fft': 2_048, } default_sr = data['sr'] @@ -518,4 +518,5 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress progress_var.set(0) text_widget.write(f'Conversion(s) Completed and Saving all Files!\n') text_widget.write(f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}') # nopep8 + torch.cuda.empty_cache() button_widget.configure(state=tk.NORMAL) # Enable Button \ No newline at end of file