Add files via upload
This commit is contained in:
@@ -41,6 +41,7 @@ if getattr(sys, 'frozen', False):
|
||||
base_path = sys._MEIPASS
|
||||
else:
|
||||
base_path = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
os.chdir(base_path) # Change the current working directory to the base path
|
||||
|
||||
instrumentalModels_dir = os.path.join(base_path, 'models')
|
||||
@@ -64,7 +65,6 @@ DEFAULT_DATA = {
|
||||
'lastDir': None,
|
||||
}
|
||||
|
||||
|
||||
def open_image(path: str, size: tuple = None, keep_aspect: bool = True, rotate: int = 0) -> ImageTk.PhotoImage:
|
||||
"""
|
||||
Open the image on the path and apply given settings\n
|
||||
@@ -94,7 +94,6 @@ def open_image(path: str, size: tuple = None, keep_aspect: bool = True, rotate:
|
||||
img = img.resize(size, Image.ANTIALIAS)
|
||||
return ImageTk.PhotoImage(img)
|
||||
|
||||
|
||||
def save_data(data):
|
||||
"""
|
||||
Saves given data as a .pkl (pickle) file
|
||||
@@ -107,7 +106,6 @@ def save_data(data):
|
||||
with open('data.pkl', 'wb') as data_file:
|
||||
pickle.dump(data, data_file)
|
||||
|
||||
|
||||
def load_data() -> dict:
|
||||
"""
|
||||
Loads saved pkl file and returns the stored data
|
||||
@@ -126,7 +124,6 @@ def load_data() -> dict:
|
||||
|
||||
return load_data()
|
||||
|
||||
|
||||
def drop(event, accept_mode: str = 'files'):
|
||||
"""
|
||||
Drag & Drop verification process
|
||||
@@ -153,12 +150,10 @@ def drop(event, accept_mode: str = 'files'):
|
||||
# Invalid accept mode
|
||||
return
|
||||
|
||||
|
||||
class ThreadSafeConsole(tk.Text):
|
||||
"""
|
||||
Text Widget which is thread safe for tkinter
|
||||
"""
|
||||
|
||||
def __init__(self, master, **options):
|
||||
tk.Text.__init__(self, master, **options)
|
||||
self.queue = queue.Queue()
|
||||
@@ -186,7 +181,6 @@ class ThreadSafeConsole(tk.Text):
|
||||
self.configure(state=tk.DISABLED)
|
||||
self.after(100, self.update_me)
|
||||
|
||||
|
||||
class MainWindow(TkinterDnD.Tk):
|
||||
# --Constants--
|
||||
# Layout
|
||||
@@ -248,9 +242,10 @@ class MainWindow(TkinterDnD.Tk):
|
||||
# Constants
|
||||
self.winSize_var = tk.StringVar(value=data['window_size'])
|
||||
self.agg_var = tk.StringVar(value=data['agg'])
|
||||
# AI model
|
||||
# Choose Conversion Method
|
||||
self.aiModel_var = tk.StringVar(value=data['aiModel'])
|
||||
self.last_aiModel = self.aiModel_var.get()
|
||||
# Choose Ensemble
|
||||
self.ensChoose_var = tk.StringVar(value=data['ensChoose'])
|
||||
self.last_ensChoose = self.ensChoose_var.get()
|
||||
# Other
|
||||
@@ -264,7 +259,6 @@ class MainWindow(TkinterDnD.Tk):
|
||||
self.configure_widgets()
|
||||
self.bind_widgets()
|
||||
self.place_widgets()
|
||||
|
||||
self.update_available_models()
|
||||
self.update_states()
|
||||
self.update_loop()
|
||||
@@ -403,6 +397,22 @@ class MainWindow(TkinterDnD.Tk):
|
||||
variable=self.modelFolder_var,
|
||||
)
|
||||
# -Column 2-
|
||||
|
||||
# Choose Conversion Method
|
||||
self.options_aiModel_Label = tk.Label(master=self.options_Frame,
|
||||
text='Choose Conversion Method', anchor=tk.CENTER,
|
||||
background='#404040', font=self.font, foreground='white', relief="groove")
|
||||
self.options_aiModel_Optionmenu = ttk.OptionMenu(self.options_Frame,
|
||||
self.aiModel_var,
|
||||
None, 'Single Model', 'Ensemble Mode')
|
||||
# Ensemble Mode
|
||||
self.options_ensChoose_Label = tk.Label(master=self.options_Frame,
|
||||
text='Choose Ensemble', anchor=tk.CENTER,
|
||||
background='#404040', font=self.font, foreground='white', relief="groove")
|
||||
self.options_ensChoose_Optionmenu = ttk.OptionMenu(self.options_Frame,
|
||||
self.ensChoose_var,
|
||||
None, 'HP1 Models', 'HP2 Models', 'All HP Models', 'Vocal Models')
|
||||
# -Column 3-
|
||||
|
||||
# WINDOW SIZE
|
||||
self.options_winSize_Label = tk.Label(master=self.options_Frame,
|
||||
@@ -418,23 +428,6 @@ class MainWindow(TkinterDnD.Tk):
|
||||
self.options_agg_Label = tk.Label(master=self.options_Frame,
|
||||
text='Aggression Setting',
|
||||
background='#404040', font=self.font, foreground='white', relief="groove")
|
||||
|
||||
# AI model
|
||||
self.options_aiModel_Label = tk.Label(master=self.options_Frame,
|
||||
text='Choose Conversion Method', anchor=tk.CENTER,
|
||||
background='#404040', font=self.font, foreground='white', relief="groove")
|
||||
self.options_aiModel_Optionmenu = ttk.OptionMenu(self.options_Frame,
|
||||
self.aiModel_var,
|
||||
None, 'Single Model', 'Ensemble Mode')
|
||||
# Ensemble Mode
|
||||
self.options_ensChoose_Label = tk.Label(master=self.options_Frame,
|
||||
text='Choose Ensemble', anchor=tk.CENTER,
|
||||
background='#404040', font=self.font, foreground='white', relief="groove")
|
||||
self.options_ensChoose_Optionmenu = ttk.OptionMenu(self.options_Frame,
|
||||
self.ensChoose_var,
|
||||
None, 'HP1 Models', 'HP2 Models', 'All HP Models', 'Vocal Models')
|
||||
|
||||
|
||||
|
||||
# "Save to", "Select Your Audio File(s)"", and "Start Conversion" Button Style
|
||||
s = ttk.Style()
|
||||
@@ -448,12 +441,8 @@ class MainWindow(TkinterDnD.Tk):
|
||||
self.options_instrumentalModel_Optionmenu = ttk.OptionMenu(self.options_Frame,
|
||||
self.instrumentalModel_var)
|
||||
|
||||
# Add Open Export Directory Button
|
||||
# self.options_export_Button = ttk.Button(master=self.options_Frame,
|
||||
# text='Open Export Directory',
|
||||
# style="Bold.TButton",
|
||||
# command=self.open_newModel_filedialog)
|
||||
# -Place Widgets-
|
||||
|
||||
# -Column 1-
|
||||
self.options_gpu_Checkbutton.place(x=0, y=0, width=0, height=0,
|
||||
relx=0, rely=0, relwidth=1/3, relheight=1/self.COL1_ROWS)
|
||||
@@ -469,8 +458,6 @@ class MainWindow(TkinterDnD.Tk):
|
||||
relx=0, rely=4/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS)
|
||||
|
||||
# -Column 2-
|
||||
|
||||
|
||||
self.options_instrumentalModel_Label.place(x=-15, y=6, width=0, height=-10,
|
||||
relx=1/3, rely=2/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
self.options_instrumentalModel_Optionmenu.place(x=-15, y=6, width=0, height=-10,
|
||||
@@ -481,14 +468,15 @@ class MainWindow(TkinterDnD.Tk):
|
||||
relx=1/3, rely=0/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
self.options_ensChoose_Optionmenu.place(x=-15, y=6, width=0, height=-10,
|
||||
relx=1/3, rely=1/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
|
||||
|
||||
|
||||
# self.options_export_Button.place(x=0, y=0, width=-30, height=-8,
|
||||
# relx=2/3, rely=4/self.COL3_ROWS, relwidth=1/3, relheight=1/self.COL3_ROWS)
|
||||
|
||||
# Conversion Method
|
||||
self.options_aiModel_Label.place(x=-15, y=6, width=0, height=-10,
|
||||
relx=1/3, rely=0/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
self.options_aiModel_Optionmenu.place(x=-15, y=4, width=0, height=-10,
|
||||
relx=1/3, rely=1/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
|
||||
# -Column 3-
|
||||
|
||||
|
||||
# WINDOW
|
||||
self.options_winSize_Label.place(x=35, y=6, width=-40, height=-10,
|
||||
relx=2/3, rely=0, relwidth=1/3, relheight=1/self.COL3_ROWS)
|
||||
@@ -501,15 +489,6 @@ class MainWindow(TkinterDnD.Tk):
|
||||
self.options_agg_Entry.place(x=80, y=6, width=-133, height=-10,
|
||||
relx=2/3, rely=3/self.COL3_ROWS, relwidth=1/3, relheight=1/self.COL3_ROWS)
|
||||
|
||||
|
||||
# Conversion Method
|
||||
self.options_aiModel_Label.place(x=-15, y=6, width=0, height=-10,
|
||||
relx=1/3, rely=0/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
self.options_aiModel_Optionmenu.place(x=-15, y=4, width=0, height=-10,
|
||||
relx=1/3, rely=1/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)
|
||||
|
||||
|
||||
|
||||
# Model deselect
|
||||
self.aiModel_var.trace_add('write',
|
||||
lambda *args: self.deselect_models())
|
||||
@@ -640,7 +619,6 @@ class MainWindow(TkinterDnD.Tk):
|
||||
).start()
|
||||
|
||||
# Models
|
||||
|
||||
def update_inputPaths(self):
|
||||
"""Update the music file entry"""
|
||||
if self.inputPaths:
|
||||
@@ -665,7 +643,7 @@ class MainWindow(TkinterDnD.Tk):
|
||||
#temp_instrumentalModels_dir = os.path.join(instrumentalModels_dir, self.aiModel_var.get(), 'Main Models') # nopep8
|
||||
temp_instrumentalModels_dir = os.path.join(instrumentalModels_dir, 'Main Models') # nopep8
|
||||
|
||||
# Instrumental models
|
||||
# Main models
|
||||
new_InstrumentalModels = os.listdir(temp_instrumentalModels_dir)
|
||||
if new_InstrumentalModels != self.lastInstrumentalModels:
|
||||
self.instrumentalLabel_to_path.clear()
|
||||
@@ -679,13 +657,11 @@ class MainWindow(TkinterDnD.Tk):
|
||||
self.instrumentalLabel_to_path[file_name] = os.path.join(temp_instrumentalModels_dir, file_name) # nopep8
|
||||
self.lastInstrumentalModels = new_InstrumentalModels
|
||||
|
||||
|
||||
def update_states(self):
|
||||
"""
|
||||
Vary the states for all widgets based
|
||||
on certain selections
|
||||
"""
|
||||
|
||||
if self.aiModel_var.get() == 'Single Model':
|
||||
self.options_ensChoose_Label.place_forget()
|
||||
self.options_ensChoose_Optionmenu.place_forget()
|
||||
@@ -804,7 +780,6 @@ class MainWindow(TkinterDnD.Tk):
|
||||
|
||||
self.destroy()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
root = MainWindow()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user