mirror of
https://github.com/Anjok07/ultimatevocalremovergui.git
synced 2024-11-28 01:10:56 +01:00
Add files via upload
This commit is contained in:
parent
d0a3942f24
commit
b6b26ea5dd
32
UVR.py
32
UVR.py
@ -216,6 +216,7 @@ except:
|
||||
banner_path = os.path.join(base_path, 'img', 'UVR-banner.png')
|
||||
credits_path = os.path.join(base_path, 'img', 'credits.png')
|
||||
demucs_opt_path = os.path.join(base_path, 'img', 'demucs_opt.png')
|
||||
donate_path = os.path.join(base_path, 'img', 'donate.png')
|
||||
download_path = os.path.join(base_path, 'img', 'download.png')
|
||||
efile_path = os.path.join(base_path, 'img', 'file.png')
|
||||
ense_opt_path = os.path.join(base_path, 'img', 'ense_opt.png')
|
||||
@ -527,6 +528,8 @@ class MainWindow(TkinterDnD.Tk):
|
||||
size=(20, 20))
|
||||
self.download_img = open_image(path=download_path,
|
||||
size=(30, 30))
|
||||
self.donate_img = open_image(path=donate_path,
|
||||
size=(30, 30))
|
||||
self.key_img = open_image(path=key_path,
|
||||
size=(30, 30))
|
||||
if GetSystemMetrics(1) >= 900:
|
||||
@ -4288,7 +4291,7 @@ class MainWindow(TkinterDnD.Tk):
|
||||
|
||||
top= Toplevel(self)
|
||||
|
||||
window_height = 750
|
||||
window_height = 780
|
||||
window_width = 500
|
||||
|
||||
top.title("Settings Guide")
|
||||
@ -4529,14 +4532,21 @@ class MainWindow(TkinterDnD.Tk):
|
||||
rlg = KThread(target=check_updates)
|
||||
rlg.start()
|
||||
|
||||
def open_bmac_m():
|
||||
top.attributes("-topmost", False)
|
||||
callback("https://www.buymeacoffee.com/uvr5")
|
||||
|
||||
l0=ttk.Button(frame0,text=update_button_var.get(), command=start_check_updates)
|
||||
l0.grid(row=14,column=0,padx=0,pady=5)
|
||||
|
||||
l0=tk.Label(frame0,textvariable=update_var,font=("Century Gothic", "12"), justify="center", relief="ridge", fg="#13a4c9")
|
||||
l0.grid(row=15,column=0,padx=0,pady=5)
|
||||
|
||||
l0=ttk.Button(frame0, image=self.donate_img, command=open_bmac_m)
|
||||
l0.grid(row=16,column=0,padx=0,pady=5)
|
||||
|
||||
l0=tk.Label(frame0,text=f"{space_small}{space_small}{space_small}{space_small}",font=("Century Gothic", "13"), justify="center", relief="flat", fg="#13a4c9")
|
||||
l0.grid(row=16,column=0,padx=0,pady=0)
|
||||
l0.grid(row=17,column=0,padx=0,pady=0)
|
||||
|
||||
frame0=Frame(tab2,highlightbackground='red',highlightthicknes=0)
|
||||
frame0.grid(row=0,column=0,padx=0,pady=0)
|
||||
@ -4590,7 +4600,7 @@ class MainWindow(TkinterDnD.Tk):
|
||||
|
||||
top_code= Toplevel()
|
||||
|
||||
window_height = 440
|
||||
window_height = 480
|
||||
window_width = 320
|
||||
|
||||
top_code.title("User Download Codes")
|
||||
@ -4639,8 +4649,12 @@ class MainWindow(TkinterDnD.Tk):
|
||||
|
||||
def open_patreon():
|
||||
top_code.attributes("-topmost", False)
|
||||
callback("https://www.patreon.com/uvr")
|
||||
|
||||
callback("https://www.patreon.com/uvr")
|
||||
|
||||
def open_bmac():
|
||||
top_code.attributes("-topmost", False)
|
||||
callback("https://www.buymeacoffee.com/uvr5")
|
||||
|
||||
def quit():
|
||||
top.attributes("-topmost", True)
|
||||
top_code.destroy()
|
||||
@ -4670,16 +4684,20 @@ class MainWindow(TkinterDnD.Tk):
|
||||
|
||||
l0.grid(row=6,column=0,padx=0,pady=5)
|
||||
|
||||
l0=tk.Label(frame0, text=f'UVR Patreon', font=("Century Gothic", "11", "underline"), foreground='#13a4c9')
|
||||
l0=tk.Label(frame0, text=f'Support UVR', font=("Century Gothic", "11", "underline"), foreground='#13a4c9')
|
||||
l0.grid(row=7,column=0,padx=0,pady=5)
|
||||
|
||||
l0=tk.Label(frame0, text=f'Obtain codes by becoming an official Patreon.\nClick the button below to open the UVR Patreon link.', font=("Century Gothic", "8"), foreground='#13a4c9')
|
||||
l0=tk.Label(frame0, text=f'Obtain codes by making a one-time donation\n via \"Buy Me a Coffee\" or by becoming a Patreon.\nClick one of the buttons below to donate or pledge!', font=("Century Gothic", "8"), foreground='#13a4c9')
|
||||
l0.grid(row=8,column=0,padx=0,pady=5)
|
||||
|
||||
l0=ttk.Button(frame0, text='UVR Patreon Link', command=open_patreon)
|
||||
|
||||
l0.grid(row=9,column=0,padx=0,pady=5)
|
||||
|
||||
l0=ttk.Button(frame0, text='UVR \"Buy Me a Coffee\" Link', command=open_bmac)
|
||||
|
||||
l0.grid(row=10,column=0,padx=0,pady=5)
|
||||
|
||||
def download_code():
|
||||
"""
|
||||
Input Download Code
|
||||
|
@ -366,8 +366,19 @@ class Predictor():
|
||||
#Main Save Path
|
||||
save_path = os.path.dirname(_basename)
|
||||
|
||||
inst_only = data['inst_only']
|
||||
voc_only = data['voc_only']
|
||||
|
||||
#print('stemset_n: ', stemset_n)
|
||||
|
||||
if stemset_n == '(Instrumental)':
|
||||
if data['inst_only'] == True:
|
||||
voc_only = True
|
||||
inst_only = False
|
||||
if data['voc_only'] == True:
|
||||
inst_only = True
|
||||
voc_only = False
|
||||
|
||||
#Vocal Path
|
||||
if stemset_n == '(Vocals)':
|
||||
vocal_name = '(Vocals)'
|
||||
@ -511,7 +522,7 @@ class Predictor():
|
||||
c += 1
|
||||
|
||||
if not data['demucsmodel']:
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
widget_text.write(base_text + f'Preparing to save {stem_text_b}...')
|
||||
else:
|
||||
widget_text.write(base_text + f'Saving {stem_text_a}... ')
|
||||
@ -531,7 +542,7 @@ class Predictor():
|
||||
update_progress(**progress_kwargs,
|
||||
step=(0.95))
|
||||
else:
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
widget_text.write(base_text + f'Preparing {stem_text_b}...')
|
||||
else:
|
||||
widget_text.write(base_text + f'Saving {stem_text_a}... ')
|
||||
@ -562,7 +573,7 @@ class Predictor():
|
||||
c += 1
|
||||
|
||||
if not data['demucsmodel']:
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
widget_text.write(base_text + f'Preparing {stem_text_b}...')
|
||||
else:
|
||||
widget_text.write(base_text + f'Saving {stem_text_a}... ')
|
||||
@ -571,7 +582,7 @@ class Predictor():
|
||||
step=(0.9))
|
||||
widget_text.write('Done!\n')
|
||||
else:
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
widget_text.write(base_text + f'Preparing {stem_text_b}...')
|
||||
else:
|
||||
widget_text.write(base_text + f'Saving {stem_text_a}... ')
|
||||
@ -591,7 +602,7 @@ class Predictor():
|
||||
step=(0.9))
|
||||
widget_text.write('Done!\n')
|
||||
|
||||
if data['voc_only'] and not data['inst_only']:
|
||||
if voc_only and not inst_only:
|
||||
pass
|
||||
else:
|
||||
if not data['noisereduc_s'] == 'None':
|
||||
@ -673,7 +684,7 @@ class Predictor():
|
||||
else:
|
||||
sf.write(Instrumental_path, normalization_set(spec_utils.cmb_spectrogram_to_wave(-v_spec, mp)), mp.param['sr'], subtype=wav_type_set)
|
||||
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
if file_exists_v == 'there':
|
||||
pass
|
||||
else:
|
||||
@ -687,7 +698,7 @@ class Predictor():
|
||||
if data['saveFormat'] == 'Mp3':
|
||||
try:
|
||||
|
||||
if data['inst_only'] == True:
|
||||
if inst_only == True:
|
||||
if data['non_red'] == True:
|
||||
if not data['nophaseinst']:
|
||||
pass
|
||||
@ -713,7 +724,7 @@ class Predictor():
|
||||
if not data['nophaseinst']:
|
||||
pass
|
||||
else:
|
||||
if data['voc_only'] == True:
|
||||
if voc_only == True:
|
||||
pass
|
||||
else:
|
||||
musfile = pydub.AudioSegment.from_wav(non_reduced_Instrumental_path)
|
||||
@ -725,7 +736,7 @@ class Predictor():
|
||||
os.remove(non_reduced_Instrumental_path)
|
||||
except:
|
||||
pass
|
||||
if data['voc_only'] == True:
|
||||
if voc_only == True:
|
||||
if data['non_red'] == True:
|
||||
musfile = pydub.AudioSegment.from_wav(non_reduced_vocal_path)
|
||||
musfile.export(non_reduced_vocal_path_mp3, format="mp3", bitrate=mp3_bit_set)
|
||||
@ -745,7 +756,7 @@ class Predictor():
|
||||
except:
|
||||
pass
|
||||
if data['non_red'] == True:
|
||||
if data['inst_only'] == True:
|
||||
if inst_only == True:
|
||||
pass
|
||||
else:
|
||||
musfile = pydub.AudioSegment.from_wav(non_reduced_vocal_path)
|
||||
@ -783,7 +794,7 @@ class Predictor():
|
||||
|
||||
if data['saveFormat'] == 'Flac':
|
||||
try:
|
||||
if data['inst_only'] == True:
|
||||
if inst_only == True:
|
||||
if data['non_red'] == True:
|
||||
if not data['nophaseinst']:
|
||||
pass
|
||||
@ -809,7 +820,7 @@ class Predictor():
|
||||
if not data['nophaseinst']:
|
||||
pass
|
||||
else:
|
||||
if data['voc_only'] == True:
|
||||
if voc_only == True:
|
||||
pass
|
||||
else:
|
||||
musfile = pydub.AudioSegment.from_wav(non_reduced_Instrumental_path)
|
||||
@ -821,7 +832,7 @@ class Predictor():
|
||||
os.remove(non_reduced_Instrumental_path)
|
||||
except:
|
||||
pass
|
||||
if data['voc_only'] == True:
|
||||
if voc_only == True:
|
||||
if data['non_red'] == True:
|
||||
musfile = pydub.AudioSegment.from_wav(non_reduced_vocal_path)
|
||||
musfile.export(non_reduced_vocal_path_flac, format="flac")
|
||||
@ -841,7 +852,7 @@ class Predictor():
|
||||
except:
|
||||
pass
|
||||
if data['non_red'] == True:
|
||||
if data['inst_only'] == True:
|
||||
if inst_only == True:
|
||||
pass
|
||||
else:
|
||||
musfile = pydub.AudioSegment.from_wav(non_reduced_vocal_path)
|
||||
@ -880,7 +891,7 @@ class Predictor():
|
||||
if data['noisereduc_s'] == 'None':
|
||||
pass
|
||||
elif data['non_red'] == True:
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
if file_exists_n == 'there':
|
||||
pass
|
||||
else:
|
||||
@ -889,7 +900,7 @@ class Predictor():
|
||||
except:
|
||||
pass
|
||||
pass
|
||||
elif data['inst_only']:
|
||||
elif inst_only:
|
||||
if file_exists_n == 'there':
|
||||
pass
|
||||
else:
|
||||
@ -1313,8 +1324,9 @@ def main(window: tk.Wm,
|
||||
global widget_button
|
||||
global stime
|
||||
global model_hash
|
||||
|
||||
global demucs_switch
|
||||
global inst_only
|
||||
global voc_only
|
||||
|
||||
|
||||
# Update default settings
|
||||
@ -1338,6 +1350,7 @@ def main(window: tk.Wm,
|
||||
ffmp_err = """audioread\__init__.py", line 116, in audio_open"""
|
||||
sf_write_err = "sf.write"
|
||||
model_adv_set_err = "Got invalid dimensions for input"
|
||||
demucs_model_missing_err = "is neither a single pre-trained model or a bag of models."
|
||||
|
||||
try:
|
||||
with open('errorlog.txt', 'w') as f:
|
||||
@ -1523,6 +1536,8 @@ def main(window: tk.Wm,
|
||||
#print(dim_f_set)
|
||||
#print(demucs_model_set_name)
|
||||
|
||||
inst_only = data['inst_only']
|
||||
voc_only = data['voc_only']
|
||||
|
||||
stime = time.perf_counter()
|
||||
progress_var.set(0)
|
||||
@ -1956,6 +1971,28 @@ def main(window: tk.Wm,
|
||||
button_widget.configure(state=tk.NORMAL) # Enable Button
|
||||
return
|
||||
|
||||
if demucs_model_missing_err in message:
|
||||
text_widget.write("\n" + base_text + f'Separation failed for the following audio file:\n')
|
||||
text_widget.write(base_text + f'"{os.path.basename(music_file)}"\n')
|
||||
text_widget.write(f'\nError Received:\n\n')
|
||||
text_widget.write(f'The selected Demucs model is missing.\n\n')
|
||||
text_widget.write(f'Please download the model or make sure it is in the correct directory.\n\n')
|
||||
text_widget.write(f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}')
|
||||
try:
|
||||
with open('errorlog.txt', 'w') as f:
|
||||
f.write(f'Last Error Received:\n\n' +
|
||||
f'Error Received while processing "{os.path.basename(music_file)}":\n' +
|
||||
f'Process Method: MDX-Net\n\n' +
|
||||
f'The selected Demucs model is missing.\n\n' +
|
||||
f'Please download the model or make sure it is in the correct directory.\n\n' +
|
||||
message + f'\nError Time Stamp [{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}]\n')
|
||||
except:
|
||||
pass
|
||||
torch.cuda.empty_cache()
|
||||
progress_var.set(0)
|
||||
button_widget.configure(state=tk.NORMAL) # Enable Button
|
||||
return
|
||||
|
||||
|
||||
print(traceback_text)
|
||||
print(type(e).__name__, e)
|
||||
|
@ -363,6 +363,17 @@ class Predictor():
|
||||
|
||||
c = -1
|
||||
|
||||
inst_only = data['inst_only']
|
||||
voc_only = data['voc_only']
|
||||
|
||||
if stemset_n == '(Instrumental)':
|
||||
if data['inst_only'] == True:
|
||||
voc_only = True
|
||||
inst_only = False
|
||||
if data['voc_only'] == True:
|
||||
inst_only = True
|
||||
voc_only = False
|
||||
|
||||
#Main Save Path
|
||||
save_path = os.path.dirname(base_name)
|
||||
|
||||
@ -437,7 +448,7 @@ class Predictor():
|
||||
if not data['noisereduc_s'] == 'None':
|
||||
c += 1
|
||||
if demucs_switch == 'off':
|
||||
if data['inst_only'] and not data['voc_only']:
|
||||
if inst_only and not voc_only:
|
||||
widget_text.write(base_text + f'Preparing to save {stem_text_b}...')
|
||||
else:
|
||||
widget_text.write(base_text + f'Saving {stem_text_a}... ')
|
||||
@ -456,7 +467,7 @@ class Predictor():
|
||||
update_progress(**progress_kwargs,
|
||||
step=(0.95))
|
||||
else:
|
||||
if data['inst_only'] and not data['voc_only']:
|
||||
if inst_only and not voc_only:
|
||||
widget_text.write(base_text + f'Preparing to save {stem_text_b}...')
|
||||
else:
|
||||
widget_text.write(base_text + f'Saving {stem_text_a}... ')
|
||||
@ -507,7 +518,7 @@ class Predictor():
|
||||
step=(0.9))
|
||||
widget_text.write('Done!\n')
|
||||
|
||||
if data['voc_only'] and not data['inst_only']:
|
||||
if voc_only and not inst_only:
|
||||
pass
|
||||
else:
|
||||
finalfiles = [
|
||||
@ -554,7 +565,7 @@ class Predictor():
|
||||
update_progress(**progress_kwargs,
|
||||
step=(0.95))
|
||||
sf.write(Instrumental_path, normalization_set(spec_utils.cmb_spectrogram_to_wave(-v_spec, mp)), mp.param['sr'], subtype=wav_type_set)
|
||||
if data['inst_only']:
|
||||
if inst_only:
|
||||
if file_exists == 'there':
|
||||
pass
|
||||
else:
|
||||
@ -567,7 +578,7 @@ class Predictor():
|
||||
|
||||
if data['noisereduc_s'] == 'None':
|
||||
pass
|
||||
elif data['inst_only']:
|
||||
elif inst_only:
|
||||
if file_exists_n == 'there':
|
||||
pass
|
||||
else:
|
||||
@ -1113,6 +1124,7 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress
|
||||
file_err = "FileNotFoundError"
|
||||
ffmp_err = """audioread\__init__.py", line 116, in audio_open"""
|
||||
sf_write_err = "sf.write"
|
||||
demucs_model_missing_err = "is neither a single pre-trained model or a bag of models."
|
||||
|
||||
try:
|
||||
with open('errorlog.txt', 'w') as f:
|
||||
@ -4260,6 +4272,28 @@ def main(window: tk.Wm, text_widget: tk.Text, button_widget: tk.Button, progress
|
||||
button_widget.configure(state=tk.NORMAL) # Enable Button
|
||||
return
|
||||
|
||||
if demucs_model_missing_err in message:
|
||||
text_widget.write("\n" + base_text + f'Separation failed for the following audio file:\n')
|
||||
text_widget.write(base_text + f'"{os.path.basename(music_file)}"\n')
|
||||
text_widget.write(f'\nError Received:\n\n')
|
||||
text_widget.write(f'The selected Demucs model is missing.\n\n')
|
||||
text_widget.write(f'Please download the model or make sure it is in the correct directory.\n\n')
|
||||
text_widget.write(f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}')
|
||||
try:
|
||||
with open('errorlog.txt', 'w') as f:
|
||||
f.write(f'Last Error Received:\n\n' +
|
||||
f'Error Received while processing "{os.path.basename(music_file)}":\n' +
|
||||
f'Process Method: Ensemble Mode\n\n' +
|
||||
f'The selected Demucs model is missing.\n\n' +
|
||||
f'Please download the model or make sure it is in the correct directory.\n\n' +
|
||||
message + f'\nError Time Stamp [{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}]\n')
|
||||
except:
|
||||
pass
|
||||
torch.cuda.empty_cache()
|
||||
progress_var.set(0)
|
||||
button_widget.configure(state=tk.NORMAL) # Enable Button
|
||||
return
|
||||
|
||||
print(traceback_text)
|
||||
print(type(e).__name__, e)
|
||||
print(message)
|
||||
|
Loading…
Reference in New Issue
Block a user