From 04e03decc3148f9725cfa4fae90fcd3db45212a4 Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Sun, 8 Oct 2023 18:09:59 +0800 Subject: [PATCH 01/15] Update mdxnet.py --- infer/modules/uvr5/mdxnet.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infer/modules/uvr5/mdxnet.py b/infer/modules/uvr5/mdxnet.py index 86a0668..e6ed653 100644 --- a/infer/modules/uvr5/mdxnet.py +++ b/infer/modules/uvr5/mdxnet.py @@ -242,5 +242,5 @@ class MDXNetDereverb: self.pred = Predictor(self) self.device = device - def path_audio(self, input, vocal_root, others_root, format): + def _path_audio_(self, input, vocal_root, others_root, format): self.pred.prediction(input, vocal_root, others_root, format) From 330ea00e5c7ed06fac575b8197a7f4ee45144075 Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Sun, 8 Oct 2023 18:11:48 +0800 Subject: [PATCH 02/15] Update modules.py --- infer/modules/uvr5/modules.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infer/modules/uvr5/modules.py b/infer/modules/uvr5/modules.py index f63ac6a..566609f 100644 --- a/infer/modules/uvr5/modules.py +++ b/infer/modules/uvr5/modules.py @@ -70,7 +70,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format inp_path = tmp_path try: if done == 0: - pre_fun.path_audio( + pre_fun._path_audio_( inp_path, save_root_ins, save_root_vocal, format0 ) infos.append("%s->Success" % (os.path.basename(inp_path))) From 361e67405492df7a19df4cdb523dbdb1802de580 Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Sun, 8 Oct 2023 18:30:54 +0800 Subject: [PATCH 03/15] Rename preprocess.py to vr.py --- infer/modules/uvr5/{preprocess.py => vr.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename infer/modules/uvr5/{preprocess.py => vr.py} (100%) diff --git a/infer/modules/uvr5/preprocess.py b/infer/modules/uvr5/vr.py similarity index 100% rename from infer/modules/uvr5/preprocess.py rename to infer/modules/uvr5/vr.py From ec29cf8d6559acae5cf5bb7e4b9bd3005fe3bdfe Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Sun, 8 Oct 2023 18:31:09 +0800 Subject: [PATCH 04/15] Add files via upload --- infer/modules/uvr5/mdxnet.py | 16 +++++++++--- infer/modules/uvr5/modules.py | 7 ++--- infer/modules/uvr5/vr.py | 48 ++++++++++++++++++++++++++--------- 3 files changed, 53 insertions(+), 18 deletions(-) diff --git a/infer/modules/uvr5/mdxnet.py b/infer/modules/uvr5/mdxnet.py index e6ed653..c6d0e25 100644 --- a/infer/modules/uvr5/mdxnet.py +++ b/infer/modules/uvr5/mdxnet.py @@ -216,16 +216,26 @@ class Predictor: path_other = "%s/%s_others.wav" % (others_root, basename) sf.write(path_vocal, mix - opt, rate) sf.write(path_other, opt, rate) + opt_path_vocal=path_vocal[:-4] + ".%s" % format + opt_path_other=path_other[:-4] + ".%s" % format if os.path.exists(path_vocal): os.system( "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path_vocal, path_vocal[:-4] + ".%s" % format) + % (path_vocal, opt_path_vocal) ) + if(os.path.exists(opt_path_vocal)): + try: + os.remove(path_vocal) + except:pass if os.path.exists(path_other): os.system( "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path_other, path_other[:-4] + ".%s" % format) + % (path_other, opt_path_other) ) + if(os.path.exists(opt_path_other)): + try: + os.remove(path_other) + except:pass class MDXNetDereverb: @@ -242,5 +252,5 @@ class MDXNetDereverb: self.pred = Predictor(self) self.device = device - def _path_audio_(self, input, vocal_root, others_root, format): + def _path_audio_(self, input, vocal_root, others_root, format,is_hp3=False): self.pred.prediction(input, vocal_root, others_root, format) diff --git a/infer/modules/uvr5/modules.py b/infer/modules/uvr5/modules.py index 566609f..151176c 100644 --- a/infer/modules/uvr5/modules.py +++ b/infer/modules/uvr5/modules.py @@ -9,7 +9,7 @@ import torch from configs.config import Config from infer.modules.uvr5.mdxnet import MDXNetDereverb -from infer.modules.uvr5.preprocess import AudioPre, AudioPreDeEcho +from infer.modules.uvr5.vr import AudioPre, AudioPreDeEcho config = Config() @@ -34,8 +34,9 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format os.getenv("weight_uvr5_root"), model_name + ".pth" ), device=config.device, - is_half=config.is_half, + is_half=config.is_half ) + is_hp3 = "HP3" in model_name if inp_root != "": paths = [os.path.join(inp_root, name) for name in os.listdir(inp_root)] else: @@ -52,7 +53,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format ): need_reformat = 0 pre_fun._path_audio_( - inp_path, save_root_ins, save_root_vocal, format0 + inp_path, save_root_ins, save_root_vocal, format0,is_hp3=is_hp3 ) done = 1 except: diff --git a/infer/modules/uvr5/vr.py b/infer/modules/uvr5/vr.py index c22b291..acd165a 100644 --- a/infer/modules/uvr5/vr.py +++ b/infer/modules/uvr5/vr.py @@ -16,7 +16,7 @@ from infer.lib.uvr5_pack.utils import inference class AudioPre: - def __init__(self, agg, model_path, device, is_half, tta=False): + def __init__(self, agg, model_path, device, is_half, tta = False): self.model_path = model_path self.device = device self.data = { @@ -41,7 +41,7 @@ class AudioPre: self.mp = mp self.model = model - def _path_audio_(self, music_file, ins_root=None, vocal_root=None, format="flac"): + def _path_audio_(self, music_file, ins_root=None, vocal_root=None, format="flac",is_hp3=False): if ins_root is None and vocal_root is None: return "No save root." name = os.path.basename(music_file) @@ -120,18 +120,20 @@ class AudioPre: else: wav_instrument = spec_utils.cmb_spectrogram_to_wave(y_spec_m, self.mp) logger.info("%s instruments done" % name) + if(is_hp3==True):head="vocal_" + else:head="instrument_" if format in ["wav", "flac"]: sf.write( os.path.join( ins_root, - "instrument_{}_{}.{}".format(name, self.data["agg"], format), + head+"{}_{}.{}".format(name, self.data["agg"], format), ), (np.array(wav_instrument) * 32768).astype("int16"), self.mp.param["sr"], ) # else: path = os.path.join( - ins_root, "instrument_{}_{}.wav".format(name, self.data["agg"]) + ins_root, head+"{}_{}.wav".format(name, self.data["agg"]) ) sf.write( path, @@ -139,11 +141,18 @@ class AudioPre: self.mp.param["sr"], ) if os.path.exists(path): + opt_format_path=path[:-4] + ".%s" % format os.system( "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, path[:-4] + ".%s" % format) + % (path, opt_format_path) ) + if os.path.exists(opt_format_path): + try: + os.remove(path) + except:pass if vocal_root is not None: + if(is_hp3==True):head="instrument_" + else:head="vocal_" if self.data["high_end_process"].startswith("mirroring"): input_high_end_ = spec_utils.mirroring( self.data["high_end_process"], v_spec_m, input_high_end, self.mp @@ -158,14 +167,14 @@ class AudioPre: sf.write( os.path.join( vocal_root, - "vocal_{}_{}.{}".format(name, self.data["agg"], format), + head+"{}_{}.{}".format(name, self.data["agg"], format), ), (np.array(wav_vocals) * 32768).astype("int16"), self.mp.param["sr"], ) else: path = os.path.join( - vocal_root, "vocal_{}_{}.wav".format(name, self.data["agg"]) + vocal_root, head+"{}_{}.wav".format(name, self.data["agg"]) ) sf.write( path, @@ -173,14 +182,19 @@ class AudioPre: self.mp.param["sr"], ) if os.path.exists(path): + opt_format_path=path[:-4] + ".%s" % format os.system( "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, path[:-4] + ".%s" % format) + % (path, opt_format_path) ) + if os.path.exists(opt_format_path): + try: + os.remove(path) + except:pass class AudioPreDeEcho: - def __init__(self, agg, model_path, device, is_half, tta=False): + def __init__(self, agg, model_path, device, is_half, tta = False): self.model_path = model_path self.device = device self.data = { @@ -207,7 +221,7 @@ class AudioPreDeEcho: self.model = model def _path_audio_( - self, music_file, vocal_root=None, ins_root=None, format="flac" + self, music_file, vocal_root=None, ins_root=None, format="flac",is_hp3=False ): # 3个VR模型vocal和ins是反的 if ins_root is None and vocal_root is None: return "No save root." @@ -306,10 +320,15 @@ class AudioPreDeEcho: self.mp.param["sr"], ) if os.path.exists(path): + opt_format_path=path[:-4] + ".%s" % format os.system( "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, path[:-4] + ".%s" % format) + % (path, opt_format_path) ) + if os.path.exists(opt_format_path): + try: + os.remove(path) + except:pass if vocal_root is not None: if self.data["high_end_process"].startswith("mirroring"): input_high_end_ = spec_utils.mirroring( @@ -340,7 +359,12 @@ class AudioPreDeEcho: self.mp.param["sr"], ) if os.path.exists(path): + opt_format_path=path[:-4] + ".%s" % format os.system( "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, path[:-4] + ".%s" % format) + % (path, opt_format_path) ) + if os.path.exists(opt_format_path): + try: + os.remove(path) + except:pass From 891a81cd8d2fcbbd3c1d764afe725f0d22898cbe Mon Sep 17 00:00:00 2001 From: Hiroto N Date: Sun, 8 Oct 2023 19:31:39 +0900 Subject: [PATCH 05/15] deps: add av lib (#1391) --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index fd67580..6a91a9c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,7 @@ uvicorn = "^0.21.1" colorama = "^0.4.6" torchcrepe = "0.0.20" python-dotenv = "^1.0.0" +av = "^10.0.0" [tool.poetry.dev-dependencies] From 5c609190a2e1d7634747c7683b71becbfbf0115c Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Sun, 8 Oct 2023 18:40:45 +0800 Subject: [PATCH 06/15] Add files via upload --- infer/lib/audio.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/infer/lib/audio.py b/infer/lib/audio.py index 56acbdc..2c8de5c 100644 --- a/infer/lib/audio.py +++ b/infer/lib/audio.py @@ -1,3 +1,6 @@ +import os +import traceback + import librosa import numpy as np import av @@ -47,10 +50,12 @@ def audio2(i, o, format, sr): def load_audio(file, sr): + file = ( + file.strip(" ").strip('"').strip("\n").strip('"').strip(" ") + ) # 防止小白拷路径头尾带了空格和"和回车 + if(os.path.exists(file)==False): + raise RuntimeError("You input a wrong audio path that does not exists, please fix it!") try: - file = ( - file.strip(" ").strip('"').strip("\n").strip('"').strip(" ") - ) # 防止小白拷路径头尾带了空格和"和回车 with open(file, "rb") as f: with BytesIO() as out: audio2(f, out, "f32le", sr) @@ -62,5 +67,5 @@ def load_audio(file, sr): audio = np.mean(audio, -1) return librosa.resample(audio, orig_sr=file[0], target_sr=16000) - except Exception as e: - raise RuntimeError(f"Failed to load audio: {e}") + except: + raise RuntimeError(traceback.format_exc()) From 634ba76cfa31881cc93ecfc81d6356c7d7c36830 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 8 Oct 2023 18:54:15 +0800 Subject: [PATCH 07/15] chore(format): run black on dev (#1398) Co-authored-by: github-actions[bot] --- infer/lib/audio.py | 6 ++- infer/modules/uvr5/mdxnet.py | 22 +++++------ infer/modules/uvr5/modules.py | 4 +- infer/modules/uvr5/vr.py | 70 +++++++++++++++++------------------ 4 files changed, 51 insertions(+), 51 deletions(-) diff --git a/infer/lib/audio.py b/infer/lib/audio.py index 2c8de5c..13c12f5 100644 --- a/infer/lib/audio.py +++ b/infer/lib/audio.py @@ -53,8 +53,10 @@ def load_audio(file, sr): file = ( file.strip(" ").strip('"').strip("\n").strip('"').strip(" ") ) # 防止小白拷路径头尾带了空格和"和回车 - if(os.path.exists(file)==False): - raise RuntimeError("You input a wrong audio path that does not exists, please fix it!") + if os.path.exists(file) == False: + raise RuntimeError( + "You input a wrong audio path that does not exists, please fix it!" + ) try: with open(file, "rb") as f: with BytesIO() as out: diff --git a/infer/modules/uvr5/mdxnet.py b/infer/modules/uvr5/mdxnet.py index c6d0e25..2f246db 100644 --- a/infer/modules/uvr5/mdxnet.py +++ b/infer/modules/uvr5/mdxnet.py @@ -216,26 +216,26 @@ class Predictor: path_other = "%s/%s_others.wav" % (others_root, basename) sf.write(path_vocal, mix - opt, rate) sf.write(path_other, opt, rate) - opt_path_vocal=path_vocal[:-4] + ".%s" % format - opt_path_other=path_other[:-4] + ".%s" % format + opt_path_vocal = path_vocal[:-4] + ".%s" % format + opt_path_other = path_other[:-4] + ".%s" % format if os.path.exists(path_vocal): os.system( - "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path_vocal, opt_path_vocal) + "ffmpeg -i %s -vn %s -q:a 2 -y" % (path_vocal, opt_path_vocal) ) - if(os.path.exists(opt_path_vocal)): + if os.path.exists(opt_path_vocal): try: os.remove(path_vocal) - except:pass + except: + pass if os.path.exists(path_other): os.system( - "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path_other, opt_path_other) + "ffmpeg -i %s -vn %s -q:a 2 -y" % (path_other, opt_path_other) ) - if(os.path.exists(opt_path_other)): + if os.path.exists(opt_path_other): try: os.remove(path_other) - except:pass + except: + pass class MDXNetDereverb: @@ -252,5 +252,5 @@ class MDXNetDereverb: self.pred = Predictor(self) self.device = device - def _path_audio_(self, input, vocal_root, others_root, format,is_hp3=False): + def _path_audio_(self, input, vocal_root, others_root, format, is_hp3=False): self.pred.prediction(input, vocal_root, others_root, format) diff --git a/infer/modules/uvr5/modules.py b/infer/modules/uvr5/modules.py index 151176c..bce3cef 100644 --- a/infer/modules/uvr5/modules.py +++ b/infer/modules/uvr5/modules.py @@ -34,7 +34,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format os.getenv("weight_uvr5_root"), model_name + ".pth" ), device=config.device, - is_half=config.is_half + is_half=config.is_half, ) is_hp3 = "HP3" in model_name if inp_root != "": @@ -53,7 +53,7 @@ def uvr(model_name, inp_root, save_root_vocal, paths, save_root_ins, agg, format ): need_reformat = 0 pre_fun._path_audio_( - inp_path, save_root_ins, save_root_vocal, format0,is_hp3=is_hp3 + inp_path, save_root_ins, save_root_vocal, format0, is_hp3=is_hp3 ) done = 1 except: diff --git a/infer/modules/uvr5/vr.py b/infer/modules/uvr5/vr.py index acd165a..d3fbac4 100644 --- a/infer/modules/uvr5/vr.py +++ b/infer/modules/uvr5/vr.py @@ -16,7 +16,7 @@ from infer.lib.uvr5_pack.utils import inference class AudioPre: - def __init__(self, agg, model_path, device, is_half, tta = False): + def __init__(self, agg, model_path, device, is_half, tta=False): self.model_path = model_path self.device = device self.data = { @@ -41,7 +41,9 @@ class AudioPre: self.mp = mp self.model = model - def _path_audio_(self, music_file, ins_root=None, vocal_root=None, format="flac",is_hp3=False): + def _path_audio_( + self, music_file, ins_root=None, vocal_root=None, format="flac", is_hp3=False + ): if ins_root is None and vocal_root is None: return "No save root." name = os.path.basename(music_file) @@ -120,20 +122,22 @@ class AudioPre: else: wav_instrument = spec_utils.cmb_spectrogram_to_wave(y_spec_m, self.mp) logger.info("%s instruments done" % name) - if(is_hp3==True):head="vocal_" - else:head="instrument_" + if is_hp3 == True: + head = "vocal_" + else: + head = "instrument_" if format in ["wav", "flac"]: sf.write( os.path.join( ins_root, - head+"{}_{}.{}".format(name, self.data["agg"], format), + head + "{}_{}.{}".format(name, self.data["agg"], format), ), (np.array(wav_instrument) * 32768).astype("int16"), self.mp.param["sr"], ) # else: path = os.path.join( - ins_root, head+"{}_{}.wav".format(name, self.data["agg"]) + ins_root, head + "{}_{}.wav".format(name, self.data["agg"]) ) sf.write( path, @@ -141,18 +145,18 @@ class AudioPre: self.mp.param["sr"], ) if os.path.exists(path): - opt_format_path=path[:-4] + ".%s" % format - os.system( - "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, opt_format_path) - ) + opt_format_path = path[:-4] + ".%s" % format + os.system("ffmpeg -i %s -vn %s -q:a 2 -y" % (path, opt_format_path)) if os.path.exists(opt_format_path): try: os.remove(path) - except:pass + except: + pass if vocal_root is not None: - if(is_hp3==True):head="instrument_" - else:head="vocal_" + if is_hp3 == True: + head = "instrument_" + else: + head = "vocal_" if self.data["high_end_process"].startswith("mirroring"): input_high_end_ = spec_utils.mirroring( self.data["high_end_process"], v_spec_m, input_high_end, self.mp @@ -167,14 +171,14 @@ class AudioPre: sf.write( os.path.join( vocal_root, - head+"{}_{}.{}".format(name, self.data["agg"], format), + head + "{}_{}.{}".format(name, self.data["agg"], format), ), (np.array(wav_vocals) * 32768).astype("int16"), self.mp.param["sr"], ) else: path = os.path.join( - vocal_root, head+"{}_{}.wav".format(name, self.data["agg"]) + vocal_root, head + "{}_{}.wav".format(name, self.data["agg"]) ) sf.write( path, @@ -182,19 +186,17 @@ class AudioPre: self.mp.param["sr"], ) if os.path.exists(path): - opt_format_path=path[:-4] + ".%s" % format - os.system( - "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, opt_format_path) - ) + opt_format_path = path[:-4] + ".%s" % format + os.system("ffmpeg -i %s -vn %s -q:a 2 -y" % (path, opt_format_path)) if os.path.exists(opt_format_path): try: os.remove(path) - except:pass + except: + pass class AudioPreDeEcho: - def __init__(self, agg, model_path, device, is_half, tta = False): + def __init__(self, agg, model_path, device, is_half, tta=False): self.model_path = model_path self.device = device self.data = { @@ -221,7 +223,7 @@ class AudioPreDeEcho: self.model = model def _path_audio_( - self, music_file, vocal_root=None, ins_root=None, format="flac",is_hp3=False + self, music_file, vocal_root=None, ins_root=None, format="flac", is_hp3=False ): # 3个VR模型vocal和ins是反的 if ins_root is None and vocal_root is None: return "No save root." @@ -320,15 +322,13 @@ class AudioPreDeEcho: self.mp.param["sr"], ) if os.path.exists(path): - opt_format_path=path[:-4] + ".%s" % format - os.system( - "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, opt_format_path) - ) + opt_format_path = path[:-4] + ".%s" % format + os.system("ffmpeg -i %s -vn %s -q:a 2 -y" % (path, opt_format_path)) if os.path.exists(opt_format_path): try: os.remove(path) - except:pass + except: + pass if vocal_root is not None: if self.data["high_end_process"].startswith("mirroring"): input_high_end_ = spec_utils.mirroring( @@ -359,12 +359,10 @@ class AudioPreDeEcho: self.mp.param["sr"], ) if os.path.exists(path): - opt_format_path=path[:-4] + ".%s" % format - os.system( - "ffmpeg -i %s -vn %s -q:a 2 -y" - % (path, opt_format_path) - ) + opt_format_path = path[:-4] + ".%s" % format + os.system("ffmpeg -i %s -vn %s -q:a 2 -y" % (path, opt_format_path)) if os.path.exists(opt_format_path): try: os.remove(path) - except:pass + except: + pass From d91cbec9f74939ae05f4f0f4b526f657745f9828 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BA=90=E6=96=87=E9=9B=A8?= <41315874+fumiama@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:23:11 +0900 Subject: [PATCH 08/15] chore: sync dev to mian (#1404) --- poetry.lock | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index edc45ea..33aac40 100644 --- a/poetry.lock +++ b/poetry.lock @@ -583,6 +583,7 @@ files = [ {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18a64814ae7bce73925131381603fff0116e2df25230dfc80d6d690aa6e20b37"}, {file = "contourpy-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90c81f22b4f572f8a2110b0b741bb64e5a6427e0a198b2cdc1fbaf85f352a3aa"}, {file = "contourpy-1.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:53cc3a40635abedbec7f1bde60f8c189c49e84ac180c665f2cd7c162cc454baa"}, + {file = "contourpy-1.1.0-cp310-cp310-win32.whl", hash = "sha256:9b2dd2ca3ac561aceef4c7c13ba654aaa404cf885b187427760d7f7d4c57cff8"}, {file = "contourpy-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:1f795597073b09d631782e7245016a4323cf1cf0b4e06eef7ea6627e06a37ff2"}, {file = "contourpy-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0b7b04ed0961647691cfe5d82115dd072af7ce8846d31a5fac6c142dcce8b882"}, {file = "contourpy-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:27bc79200c742f9746d7dd51a734ee326a292d77e7d94c8af6e08d1e6c15d545"}, @@ -591,6 +592,7 @@ files = [ {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e5cec36c5090e75a9ac9dbd0ff4a8cf7cecd60f1b6dc23a374c7d980a1cd710e"}, {file = "contourpy-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f0cbd657e9bde94cd0e33aa7df94fb73c1ab7799378d3b3f902eb8eb2e04a3a"}, {file = "contourpy-1.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:181cbace49874f4358e2929aaf7ba84006acb76694102e88dd15af861996c16e"}, + {file = "contourpy-1.1.0-cp311-cp311-win32.whl", hash = "sha256:edb989d31065b1acef3828a3688f88b2abb799a7db891c9e282df5ec7e46221b"}, {file = "contourpy-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:fb3b7d9e6243bfa1efb93ccfe64ec610d85cfe5aec2c25f97fbbd2e58b531256"}, {file = "contourpy-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bcb41692aa09aeb19c7c213411854402f29f6613845ad2453d30bf421fe68fed"}, {file = "contourpy-1.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5d123a5bc63cd34c27ff9c7ac1cd978909e9c71da12e05be0231c608048bb2ae"}, @@ -599,6 +601,7 @@ files = [ {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317267d915490d1e84577924bd61ba71bf8681a30e0d6c545f577363157e5e94"}, {file = "contourpy-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d551f3a442655f3dcc1285723f9acd646ca5858834efeab4598d706206b09c9f"}, {file = "contourpy-1.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e7a117ce7df5a938fe035cad481b0189049e8d92433b4b33aa7fc609344aafa1"}, + {file = "contourpy-1.1.0-cp38-cp38-win32.whl", hash = "sha256:108dfb5b3e731046a96c60bdc46a1a0ebee0760418951abecbe0fc07b5b93b27"}, {file = "contourpy-1.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:d4f26b25b4f86087e7d75e63212756c38546e70f2a92d2be44f80114826e1cd4"}, {file = "contourpy-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc00bb4225d57bff7ebb634646c0ee2a1298402ec10a5fe7af79df9a51c1bfd9"}, {file = "contourpy-1.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:189ceb1525eb0655ab8487a9a9c41f42a73ba52d6789754788d1883fb06b2d8a"}, @@ -607,6 +610,7 @@ files = [ {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:143dde50520a9f90e4a2703f367cf8ec96a73042b72e68fcd184e1279962eb6f"}, {file = "contourpy-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e94bef2580e25b5fdb183bf98a2faa2adc5b638736b2c0a4da98691da641316a"}, {file = "contourpy-1.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ed614aea8462735e7d70141374bd7650afd1c3f3cb0c2dbbcbe44e14331bf002"}, + {file = "contourpy-1.1.0-cp39-cp39-win32.whl", hash = "sha256:71551f9520f008b2950bef5f16b0e3587506ef4f23c734b71ffb7b89f8721999"}, {file = "contourpy-1.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:438ba416d02f82b692e371858143970ed2eb6337d9cdbbede0d8ad9f3d7dd17d"}, {file = "contourpy-1.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a698c6a7a432789e587168573a864a7ea374c6be8d4f31f9d87c001d5a843493"}, {file = "contourpy-1.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:397b0ac8a12880412da3551a8cb5a187d3298a72802b45a3bd1805e204ad8439"}, @@ -1755,6 +1759,16 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, + {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -2137,6 +2151,7 @@ files = [ {file = "orjson-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a39c2529d75373b7167bf84c814ef9b8f3737a339c225ed6c0df40736df8748"}, {file = "orjson-3.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:84ebd6fdf138eb0eb4280045442331ee71c0aab5e16397ba6645f32f911bfb37"}, {file = "orjson-3.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a60a1cfcfe310547a1946506dd4f1ed0a7d5bd5b02c8697d9d5dcd8d2e9245e"}, + {file = "orjson-3.9.2-cp310-none-win32.whl", hash = "sha256:2ae61f5d544030a6379dbc23405df66fea0777c48a0216d2d83d3e08b69eb676"}, {file = "orjson-3.9.2-cp310-none-win_amd64.whl", hash = "sha256:c290c4f81e8fd0c1683638802c11610b2f722b540f8e5e858b6914b495cf90c8"}, {file = "orjson-3.9.2-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:02ef014f9a605e84b675060785e37ec9c0d2347a04f1307a9d6840ab8ecd6f55"}, {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:992af54265ada1c1579500d6594ed73fe333e726de70d64919cf37f93defdd06"}, @@ -2146,6 +2161,7 @@ files = [ {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:275b5a18fd9ed60b2720543d3ddac170051c43d680e47d04ff5203d2c6d8ebf1"}, {file = "orjson-3.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b9aea6dcb99fcbc9f6d1dd84fca92322fda261da7fb014514bb4689c7c2097a8"}, {file = "orjson-3.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d74ae0e101d17c22ef67b741ba356ab896fc0fa64b301c2bf2bb0a4d874b190"}, + {file = "orjson-3.9.2-cp311-none-win32.whl", hash = "sha256:a9a7d618f99b2d67365f2b3a588686195cb6e16666cd5471da603a01315c17cc"}, {file = "orjson-3.9.2-cp311-none-win_amd64.whl", hash = "sha256:6320b28e7bdb58c3a3a5efffe04b9edad3318d82409e84670a9b24e8035a249d"}, {file = "orjson-3.9.2-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:368e9cc91ecb7ac21f2aa475e1901204110cf3e714e98649c2502227d248f947"}, {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58e9e70f0dcd6a802c35887f306b555ff7a214840aad7de24901fc8bd9cf5dde"}, @@ -2155,6 +2171,7 @@ files = [ {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e46e9c5b404bb9e41d5555762fd410d5466b7eb1ec170ad1b1609cbebe71df21"}, {file = "orjson-3.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8170157288714678ffd64f5de33039e1164a73fd8b6be40a8a273f80093f5c4f"}, {file = "orjson-3.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e3e2f087161947dafe8319ea2cfcb9cea4bb9d2172ecc60ac3c9738f72ef2909"}, + {file = "orjson-3.9.2-cp37-none-win32.whl", hash = "sha256:373b7b2ad11975d143556fdbd2c27e1150b535d2c07e0b48dc434211ce557fe6"}, {file = "orjson-3.9.2-cp37-none-win_amd64.whl", hash = "sha256:d7de3dbbe74109ae598692113cec327fd30c5a30ebca819b21dfa4052f7b08ef"}, {file = "orjson-3.9.2-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8cd4385c59bbc1433cad4a80aca65d2d9039646a9c57f8084897549b55913b17"}, {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a74036aab1a80c361039290cdbc51aa7adc7ea13f56e5ef94e9be536abd227bd"}, @@ -2164,6 +2181,7 @@ files = [ {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1882a70bb69595b9ec5aac0040a819e94d2833fe54901e2b32f5e734bc259a8b"}, {file = "orjson-3.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:fc05e060d452145ab3c0b5420769e7356050ea311fc03cb9d79c481982917cca"}, {file = "orjson-3.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f8bc2c40d9bb26efefb10949d261a47ca196772c308babc538dd9f4b73e8d386"}, + {file = "orjson-3.9.2-cp38-none-win32.whl", hash = "sha256:302d80198d8d5b658065627da3a356cbe5efa082b89b303f162f030c622e0a17"}, {file = "orjson-3.9.2-cp38-none-win_amd64.whl", hash = "sha256:3164fc20a585ec30a9aff33ad5de3b20ce85702b2b2a456852c413e3f0d7ab09"}, {file = "orjson-3.9.2-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7a6ccadf788531595ed4728aa746bc271955448d2460ff0ef8e21eb3f2a281ba"}, {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3245d230370f571c945f69aab823c279a868dc877352817e22e551de155cb06c"}, @@ -2173,6 +2191,7 @@ files = [ {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03fb36f187a0c19ff38f6289418863df8b9b7880cdbe279e920bef3a09d8dab1"}, {file = "orjson-3.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:20925d07a97c49c6305bff1635318d9fc1804aa4ccacb5fb0deb8a910e57d97a"}, {file = "orjson-3.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:eebfed53bec5674e981ebe8ed2cf00b3f7bcda62d634733ff779c264307ea505"}, + {file = "orjson-3.9.2-cp39-none-win32.whl", hash = "sha256:ba60f09d735f16593950c6adf033fbb526faa94d776925579a87b777db7d0838"}, {file = "orjson-3.9.2-cp39-none-win_amd64.whl", hash = "sha256:869b961df5fcedf6c79f4096119b35679b63272362e9b745e668f0391a892d39"}, {file = "orjson-3.9.2.tar.gz", hash = "sha256:24257c8f641979bf25ecd3e27251b5cc194cdd3a6e96004aac8446f5e63d9664"}, ] @@ -2806,6 +2825,7 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -2813,8 +2833,15 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -2831,6 +2858,7 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -2838,6 +2866,7 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -3635,17 +3664,17 @@ test = ["coverage", "pytest", "pytest-cov"] [[package]] name = "urllib3" -version = "1.26.16" +version = "1.26.17" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ - {file = "urllib3-1.26.16-py2.py3-none-any.whl", hash = "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f"}, - {file = "urllib3-1.26.16.tar.gz", hash = "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14"}, + {file = "urllib3-1.26.17-py2.py3-none-any.whl", hash = "sha256:94a757d178c9be92ef5539b8840d48dc9cf1b2709c9d6b588232a055c524458b"}, + {file = "urllib3-1.26.17.tar.gz", hash = "sha256:24d6a242c28d29af46c3fae832c36db3bbebcc533dd1bb549172cd739c82df21"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] From 03ccd53ffe819cb061019fea9df9b536f95aa46b Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Mon, 9 Oct 2023 15:38:59 +0800 Subject: [PATCH 09/15] Add files via upload --- infer/modules/vc/pipeline.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/infer/modules/vc/pipeline.py b/infer/modules/vc/pipeline.py index 0c22584..9e3e387 100644 --- a/infer/modules/vc/pipeline.py +++ b/infer/modules/vc/pipeline.py @@ -321,14 +321,14 @@ class Pipeline(object): if audio_pad.shape[0] > self.t_max: audio_sum = np.zeros_like(audio) for i in range(self.window): - audio_sum += audio_pad[i : i - self.window] + audio_sum += np.abs(audio_pad[i : i - self.window]) for t in range(self.t_center, audio.shape[0], self.t_center): opt_ts.append( t - self.t_query + np.where( - np.abs(audio_sum[t - self.t_query : t + self.t_query]) - == np.abs(audio_sum[t - self.t_query : t + self.t_query]).min() + audio_sum[t - self.t_query : t + self.t_query] + == audio_sum[t - self.t_query : t + self.t_query].min() )[0][0] ) s = 0 From 392e5ac493991779058ac58d21ace578cf69bed3 Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Mon, 9 Oct 2023 21:21:35 +0800 Subject: [PATCH 10/15] Update rvc_for_realtime.py --- tools/rvc_for_realtime.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/rvc_for_realtime.py b/tools/rvc_for_realtime.py index 378c40b..e71c3f2 100644 --- a/tools/rvc_for_realtime.py +++ b/tools/rvc_for_realtime.py @@ -373,7 +373,7 @@ class RVC: else: printt("Index search FAILED or disabled") except: - traceback.printt_exc() + traceback.print_exc() printt("Index search FAILED") feats = F.interpolate(feats.permute(0, 2, 1), scale_factor=2).permute(0, 2, 1) t3 = ttime() From 87f814659d606c65001413c18008b951ac496f37 Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:54:54 +0800 Subject: [PATCH 11/15] Add files via upload --- infer-web.py | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/infer-web.py b/infer-web.py index 57c8845..e3fbbbb 100644 --- a/infer-web.py +++ b/infer-web.py @@ -16,16 +16,6 @@ from configs.config import Config from sklearn.cluster import MiniBatchKMeans from dotenv import load_dotenv import torch - -try: - import intel_extension_for_pytorch as ipex # pylint: disable=import-error, unused-import - - if torch.xpu.is_available(): - from infer.modules.ipex import ipex_init - - ipex_init() -except Exception: # pylint: disable=broad-exception-caught - pass import numpy as np import gradio as gr import faiss @@ -42,6 +32,7 @@ import shutil import logging + logging.getLogger("numba").setLevel(logging.WARNING) logger = logging.getLogger(__name__) @@ -448,8 +439,8 @@ def change_version19(sr2, if_f0_3, version19): def change_f0(if_f0_3, sr2, version19): # f0method8,pretrained_G14,pretrained_D15 path_str = "" if version19 == "v1" else "_v2" return ( - {"visible": if_f0_3, "__type__": "update"}, - *get_pretrained_models(path_str, "f0", sr2), + {"visible": if_f0_3, "__type__": "update"},{"visible": if_f0_3, "__type__": "update"}, + *get_pretrained_models(path_str, "f0"if if_f0_3==True else "", sr2), ) @@ -790,7 +781,9 @@ with gr.Blocks(title="RVC WebUI") as app: with gr.Row(): sid0 = gr.Dropdown(label=i18n("推理音色"), choices=sorted(names)) with gr.Column(): - refresh_button = gr.Button(i18n("刷新音色列表和索引路径"), variant="primary") + refresh_button = gr.Button( + i18n("刷新音色列表和索引路径"), variant="primary" + ) clean_button = gr.Button(i18n("卸载音色省显存"), variant="primary") spk_item = gr.Slider( minimum=0, @@ -880,8 +873,7 @@ with gr.Blocks(title="RVC WebUI") as app: interactive=True, ) f0_file = gr.File( - label=i18n("F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调"), - visible=False, + label=i18n("F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调"),visible=False ) refresh_button.click( @@ -1291,7 +1283,7 @@ with gr.Blocks(title="RVC WebUI") as app: if_f0_3.change( change_f0, [if_f0_3, sr2, version19], - [f0method8, pretrained_G14, pretrained_D15], + [f0method8, gpus_rmvpe,pretrained_G14, pretrained_D15], ) gpus16 = gr.Textbox( label=i18n("以-分隔输入使用的卡号, 例如 0-1-2 使用卡0和卡1和卡2"), From 9cdc185c3a11f5b18d6132004b46e555795d3cf4 Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:56:07 +0800 Subject: [PATCH 12/15] Add files via upload --- infer/lib/infer_pack/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infer/lib/infer_pack/models.py b/infer/lib/infer_pack/models.py index a60ced6..bfba064 100644 --- a/infer/lib/infer_pack/models.py +++ b/infer/lib/infer_pack/models.py @@ -1125,7 +1125,7 @@ class SynthesizerTrnMs768NSFsid_nono(nn.Module): sr=None, **kwargs ): - super(self, SynthesizerTrnMs768NSFsid_nono).__init__() + super(SynthesizerTrnMs768NSFsid_nono,self).__init__() self.spec_channels = spec_channels self.inter_channels = inter_channels self.hidden_channels = hidden_channels From 1e2648804c122498e4cb02f4c3126dd1402e3e95 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 10 Oct 2023 10:57:00 +0800 Subject: [PATCH 13/15] chore(format): run black on dev (#1407) Co-authored-by: github-actions[bot] --- infer-web.py | 15 +++++++-------- infer/lib/infer_pack/models.py | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/infer-web.py b/infer-web.py index e3fbbbb..3759d52 100644 --- a/infer-web.py +++ b/infer-web.py @@ -32,7 +32,6 @@ import shutil import logging - logging.getLogger("numba").setLevel(logging.WARNING) logger = logging.getLogger(__name__) @@ -439,8 +438,9 @@ def change_version19(sr2, if_f0_3, version19): def change_f0(if_f0_3, sr2, version19): # f0method8,pretrained_G14,pretrained_D15 path_str = "" if version19 == "v1" else "_v2" return ( - {"visible": if_f0_3, "__type__": "update"},{"visible": if_f0_3, "__type__": "update"}, - *get_pretrained_models(path_str, "f0"if if_f0_3==True else "", sr2), + {"visible": if_f0_3, "__type__": "update"}, + {"visible": if_f0_3, "__type__": "update"}, + *get_pretrained_models(path_str, "f0" if if_f0_3 == True else "", sr2), ) @@ -781,9 +781,7 @@ with gr.Blocks(title="RVC WebUI") as app: with gr.Row(): sid0 = gr.Dropdown(label=i18n("推理音色"), choices=sorted(names)) with gr.Column(): - refresh_button = gr.Button( - i18n("刷新音色列表和索引路径"), variant="primary" - ) + refresh_button = gr.Button(i18n("刷新音色列表和索引路径"), variant="primary") clean_button = gr.Button(i18n("卸载音色省显存"), variant="primary") spk_item = gr.Slider( minimum=0, @@ -873,7 +871,8 @@ with gr.Blocks(title="RVC WebUI") as app: interactive=True, ) f0_file = gr.File( - label=i18n("F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调"),visible=False + label=i18n("F0曲线文件, 可选, 一行一个音高, 代替默认F0及升降调"), + visible=False, ) refresh_button.click( @@ -1283,7 +1282,7 @@ with gr.Blocks(title="RVC WebUI") as app: if_f0_3.change( change_f0, [if_f0_3, sr2, version19], - [f0method8, gpus_rmvpe,pretrained_G14, pretrained_D15], + [f0method8, gpus_rmvpe, pretrained_G14, pretrained_D15], ) gpus16 = gr.Textbox( label=i18n("以-分隔输入使用的卡号, 例如 0-1-2 使用卡0和卡1和卡2"), diff --git a/infer/lib/infer_pack/models.py b/infer/lib/infer_pack/models.py index bfba064..1d43061 100644 --- a/infer/lib/infer_pack/models.py +++ b/infer/lib/infer_pack/models.py @@ -1125,7 +1125,7 @@ class SynthesizerTrnMs768NSFsid_nono(nn.Module): sr=None, **kwargs ): - super(SynthesizerTrnMs768NSFsid_nono,self).__init__() + super(SynthesizerTrnMs768NSFsid_nono, self).__init__() self.spec_channels = spec_channels self.inter_channels = inter_channels self.hidden_channels = hidden_channels From 7e4992eb2239ffe851327edc3d9c191e8f4bd37c Mon Sep 17 00:00:00 2001 From: RVC-Boss <129054828+RVC-Boss@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:10:18 +0800 Subject: [PATCH 14/15] Add files via upload --- infer/modules/train/train.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/infer/modules/train/train.py b/infer/modules/train/train.py index ad9a5b5..b03d572 100644 --- a/infer/modules/train/train.py +++ b/infer/modules/train/train.py @@ -23,16 +23,14 @@ try: if torch.xpu.is_available(): from infer.modules.ipex import ipex_init - - ipex_init() - - from torch.xpu.amp import autocast from infer.modules.ipex.gradscaler import gradscaler_init + from torch.xpu.amp import autocast GradScaler = gradscaler_init() + ipex_init() else: from torch.cuda.amp import GradScaler, autocast -except Exception: # pylint: disable=broad-exception-caught +except Exception: from torch.cuda.amp import GradScaler, autocast torch.backends.cudnn.deterministic = False @@ -106,11 +104,10 @@ def main(): os.environ["MASTER_ADDR"] = "localhost" os.environ["MASTER_PORT"] = str(randint(20000, 55555)) children = [] - logger = utils.get_logger(hps.model_dir) for i in range(n_gpus): subproc = mp.Process( target=run, - args=(i, n_gpus, hps, logger), + args=(i, n_gpus, hps), ) children.append(subproc) subproc.start() @@ -119,10 +116,10 @@ def main(): children[i].join() -def run(rank, n_gpus, hps, logger: logging.Logger): +def run(rank, n_gpus, hps,): global global_step if rank == 0: - # logger = utils.get_logger(hps.model_dir) + logger = utils.get_logger(hps.model_dir) logger.info(hps) # utils.check_git_hash(hps.model_dir) writer = SummaryWriter(log_dir=hps.model_dir) From 886eeb0547763e426bf629bf686d1fd1398dee52 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 10 Oct 2023 09:10:46 +0000 Subject: [PATCH 15/15] chore(format): run black on dev --- infer/modules/train/train.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/infer/modules/train/train.py b/infer/modules/train/train.py index b03d572..b81a0d2 100644 --- a/infer/modules/train/train.py +++ b/infer/modules/train/train.py @@ -116,7 +116,11 @@ def main(): children[i].join() -def run(rank, n_gpus, hps,): +def run( + rank, + n_gpus, + hps, +): global global_step if rank == 0: logger = utils.get_logger(hps.model_dir)