lainlives commited on
Commit
34d5737
·
verified ·
1 Parent(s): e907b25

Add files using upload-large-folder tool

Browse files
assets/__pycache__/model_tools.cpython-313.pyc ADDED
Binary file (18.7 kB). View file
 
assets/calculate-model-hashes.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+
3
+ import hashlib
4
+ import json
5
+ import os
6
+ import sys
7
+
8
+ import requests
9
+
10
+ import model_tools as mt
11
+
12
+ MODEL_CACHE_PATH = "/tmp/audio-separator-models"
13
+ VR_MODEL_DATA_LOCAL_PATH = f"{MODEL_CACHE_PATH}/vr_model_data.json"
14
+ MDX_MODEL_DATA_LOCAL_PATH = f"{MODEL_CACHE_PATH}/mdx_model_data.json"
15
+
16
+ MODEL_DATA_URL_PREFIX = "https://raw.githubusercontent.com/TRvlvr/application_data/main"
17
+ VR_MODEL_DATA_URL = f"{MODEL_DATA_URL_PREFIX}/vr_model_data/model_data_new.json"
18
+ MDX_MODEL_DATA_URL = f"{MODEL_DATA_URL_PREFIX}/mdx_model_data/model_data_new.json"
19
+
20
+ OUTPUT_PATH = f"{MODEL_CACHE_PATH}/model_hashes.json"
21
+
22
+ if __name__ == "__main__":
23
+ mt.iterate_and_hash(MODEL_CACHE_PATH)
assets/delete_duplicate_models.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import hashlib
2
+ import os
3
+ from collections import defaultdict
4
+
5
+ import model_tools as mt
6
+
7
+ if __name__ == "__main__":
8
+ print(f"Scanning directory: {os.getcwd()}")
9
+ mt.find_and_remove_duplicates()
assets/download_models.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import os
3
+
4
+ import requests
5
+ from huggingface_hub import snapshot_download
6
+
7
+ from model_tools import download_files_from_txt, download_hf_repo
8
+
9
+ REPO_OWNER = "lainlives"
10
+ REPO_NAME = "audio-separator-models"
11
+ repo_type = "model"
12
+
13
+
14
+ if __name__ == "__main__":
15
+ token = os.getenv("HF_TOKEN")
16
+ repo_id = f"{REPO_OWNER}/{REPO_NAME}"
17
+ parser = argparse.ArgumentParser(description="Model Download Tool")
18
+ local_dir = os.getcwd()
19
+ parser.add_argument(
20
+ "--fromtxt",
21
+ action="store_true",
22
+ help="Download or process based on a text file instead of cloning Hugging Face repo",
23
+ )
24
+ args = parser.parse_args()
25
+ if args.fromtxt:
26
+ download_files_from_txt("assets/links.txt", local_dir)
27
+ else:
28
+ download_hf_repo(repo_id, local_dir, token)
assets/json_link_processor.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import os
3
+ import urllib.request
4
+
5
+ import model_tools as mt
6
+
7
+ if __name__ == "__main__":
8
+ mt.get_links_from_json("models.json")
assets/list_duplicate_remove.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from model_tools import remove_duplicate_lines
2
+
3
+ input_filename = "file.txt"
4
+ output_filename = "processed_links.txt"
5
+
6
+ if __name__ == "__main__":
7
+ remove_duplicate_lines(input_filename, output_filename)
assets/luvr5-ui/models.json ADDED
@@ -0,0 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "roformer_models": {
3
+ "BS-Roformer-Viperx-1297": "model_bs_roformer_ep_317_sdr_12.9755.ckpt",
4
+ "BS-Roformer-Viperx-1296": "model_bs_roformer_ep_368_sdr_12.9628.ckpt",
5
+ "BS-Roformer-Viperx-1053": "model_bs_roformer_ep_937_sdr_10.5309.ckpt",
6
+ "Mel-Roformer-Viperx-1143": "model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt",
7
+ "BS-Roformer-De-Reverb": "deverb_bs_roformer_8_384dim_10depth.ckpt",
8
+ "Mel-Roformer-Crowd-Aufr33-Viperx": "mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt",
9
+ "Mel-Roformer-Denoise-Aufr33": "denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt",
10
+ "Mel-Roformer-Denoise-Aufr33-Aggr": "denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt",
11
+ "MelBand Roformer | Denoise-Debleed by Gabox": "mel_band_roformer_denoise_debleed_gabox.ckpt",
12
+ "Mel-Roformer-Karaoke-Aufr33-Viperx": "mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt",
13
+ "MelBand Roformer | Karaoke by Gabox": "mel_band_roformer_karaoke_gabox.ckpt",
14
+ "MelBand Roformer | Karaoke by becruily": "mel_band_roformer_karaoke_becruily.ckpt",
15
+ "MelBand Roformer | Vocals by Kimberley Jensen": "vocals_mel_band_roformer.ckpt",
16
+ "MelBand Roformer Kim | FT by unwa": "mel_band_roformer_kim_ft_unwa.ckpt",
17
+ "MelBand Roformer Kim | FT 2 by unwa": "mel_band_roformer_kim_ft2_unwa.ckpt",
18
+ "MelBand Roformer Kim | FT 2 Bleedless by unwa": "mel_band_roformer_kim_ft2_bleedless_unwa.ckpt",
19
+ "MelBand Roformer Kim | FT 3 by unwa": "mel_band_roformer_kim_ft3_unwa.ckpt",
20
+ "MelBand Roformer Kim | Inst V1 by Unwa": "melband_roformer_inst_v1.ckpt",
21
+ "MelBand Roformer Kim | Inst V1 Plus by Unwa": "melband_roformer_inst_v1_plus.ckpt",
22
+ "MelBand Roformer Kim | Inst V1 (E) by Unwa": "melband_roformer_inst_v1e.ckpt",
23
+ "MelBand Roformer Kim | Inst V1 (E) Plus by Unwa": "melband_roformer_inst_v1e_plus.ckpt",
24
+ "MelBand Roformer Kim | Inst V2 by Unwa": "melband_roformer_inst_v2.ckpt",
25
+ "MelBand Roformer Kim | InstVoc Duality V1 by Unwa": "melband_roformer_instvoc_duality_v1.ckpt",
26
+ "MelBand Roformer Kim | InstVoc Duality V2 by Unwa": "melband_roformer_instvox_duality_v2.ckpt",
27
+ "MelBand Roformer | Vocals by becruily": "mel_band_roformer_vocals_becruily.ckpt",
28
+ "MelBand Roformer | Instrumental by becruily": "mel_band_roformer_instrumental_becruily.ckpt",
29
+ "MelBand Roformer | Vocals Fullness by Aname": "mel_band_roformer_vocal_fullness_aname.ckpt",
30
+ "BS Roformer | Vocals by Gabox": "bs_roformer_vocals_gabox.ckpt",
31
+ "MelBand Roformer | Vocals by Gabox": "mel_band_roformer_vocals_gabox.ckpt",
32
+ "MelBand Roformer | Vocals FV1 by Gabox": "mel_band_roformer_vocals_fv1_gabox.ckpt",
33
+ "MelBand Roformer | Vocals FV2 by Gabox": "mel_band_roformer_vocals_fv2_gabox.ckpt",
34
+ "MelBand Roformer | Vocals FV3 by Gabox": "mel_band_roformer_vocals_fv3_gabox.ckpt",
35
+ "MelBand Roformer | Vocals FV4 by Gabox": "mel_band_roformer_vocals_fv4_gabox.ckpt",
36
+ "MelBand Roformer | Instrumental by Gabox": "mel_band_roformer_instrumental_gabox.ckpt",
37
+ "MelBand Roformer | Instrumental 2 by Gabox": "mel_band_roformer_instrumental_2_gabox.ckpt",
38
+ "MelBand Roformer | Instrumental 3 by Gabox": "mel_band_roformer_instrumental_3_gabox.ckpt",
39
+ "MelBand Roformer | Instrumental Bleedless V1 by Gabox": "mel_band_roformer_instrumental_bleedless_v1_gabox.ckpt",
40
+ "MelBand Roformer | Instrumental Bleedless V2 by Gabox": "mel_band_roformer_instrumental_bleedless_v2_gabox.ckpt",
41
+ "MelBand Roformer | Instrumental Bleedless V3 by Gabox": "mel_band_roformer_instrumental_bleedless_v3_gabox.ckpt",
42
+ "MelBand Roformer | Instrumental Fullness V1 by Gabox": "mel_band_roformer_instrumental_fullness_v1_gabox.ckpt",
43
+ "MelBand Roformer | Instrumental Fullness V2 by Gabox": "mel_band_roformer_instrumental_fullness_v2_gabox.ckpt",
44
+ "MelBand Roformer | Instrumental Fullness V3 by Gabox": "mel_band_roformer_instrumental_fullness_v3_gabox.ckpt",
45
+ "MelBand Roformer | Instrumental Fullness Noisy V4 by Gabox": "mel_band_roformer_instrumental_fullness_noise_v4_gabox.ckpt",
46
+ "MelBand Roformer | INSTV5 by Gabox": "mel_band_roformer_instrumental_instv5_gabox.ckpt",
47
+ "MelBand Roformer | INSTV5N by Gabox": "mel_band_roformer_instrumental_instv5n_gabox.ckpt",
48
+ "MelBand Roformer | INSTV6 by Gabox": "mel_band_roformer_instrumental_instv6_gabox.ckpt",
49
+ "MelBand Roformer | INSTV6N by Gabox": "mel_band_roformer_instrumental_instv6n_gabox.ckpt",
50
+ "MelBand Roformer | INSTV7 by Gabox": "mel_band_roformer_instrumental_instv7_gabox.ckpt",
51
+ "MelBand Roformer | INSTV7N by Gabox": "mel_band_roformer_instrumental_instv7n_gabox.ckpt",
52
+ "MelBand Roformer | INSTV8 by Gabox": "mel_band_roformer_instrumental_instv8_gabox.ckpt",
53
+ "MelBand Roformer | INSTV8N by Gabox": "mel_band_roformer_instrumental_instv8n_gabox.ckpt",
54
+ "MelBand Roformer | FVX by Gabox": "mel_band_roformer_instrumental_fvx_gabox.ckpt",
55
+ "MelBand Roformer | De-Reverb by anvuew": "dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt",
56
+ "MelBand Roformer | De-Reverb Less Aggressive by anvuew": "dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt",
57
+ "MelBand Roformer | De-Reverb Mono by anvuew": "dereverb_mel_band_roformer_mono_anvuew.ckpt",
58
+ "MelBand Roformer | De-Reverb Big by Sucial": "dereverb_big_mbr_ep_362.ckpt",
59
+ "MelBand Roformer | De-Reverb Super Big by Sucial": "dereverb_super_big_mbr_ep_346.ckpt",
60
+ "MelBand Roformer | De-Reverb-Echo by Sucial": "dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt",
61
+ "MelBand Roformer | De-Reverb-Echo V2 by Sucial": "dereverb-echo_mel_band_roformer_sdr_13.4843_v2.ckpt",
62
+ "MelBand Roformer | De-Reverb-Echo Fused by Sucial": "dereverb_echo_mbr_fused.ckpt",
63
+ "MelBand Roformer Kim | SYHFT by SYH99999": "MelBandRoformerSYHFT.ckpt",
64
+ "MelBand Roformer Kim | SYHFT V2 by SYH99999": "MelBandRoformerSYHFTV2.ckpt",
65
+ "MelBand Roformer Kim | SYHFT V2.5 by SYH99999": "MelBandRoformerSYHFTV2.5.ckpt",
66
+ "MelBand Roformer Kim | SYHFT V3 by SYH99999": "MelBandRoformerSYHFTV3Epsilon.ckpt",
67
+ "MelBand Roformer Kim | Big SYHFT V1 by SYH99999": "MelBandRoformerBigSYHFTV1.ckpt",
68
+ "MelBand Roformer Kim | Big Beta 4 FT by unwa": "melband_roformer_big_beta4.ckpt",
69
+ "MelBand Roformer Kim | Big Beta 5e FT by unwa": "melband_roformer_big_beta5e.ckpt",
70
+ "MelBand Roformer | Big Beta 6 by unwa": "melband_roformer_big_beta6.ckpt",
71
+ "MelBand Roformer | Big Beta 6X by unwa": "melband_roformer_big_beta6x.ckpt",
72
+ "BS Roformer | Chorus Male-Female by Sucial": "model_chorus_bs_roformer_ep_267_sdr_24.1275.ckpt",
73
+ "BS Roformer | Male-Female by aufr33": "bs_roformer_male_female_by_aufr33_sdr_7.2889.ckpt",
74
+ "MelBand Roformer | Aspiration by Sucial": "aspiration_mel_band_roformer_sdr_18.9845.ckpt",
75
+ "MelBand Roformer | Aspiration Less Aggressive by Sucial": "aspiration_mel_band_roformer_less_aggr_sdr_18.1201.ckpt",
76
+ "MelBand Roformer | Bleed Suppressor V1 by unwa-97chris": "mel_band_roformer_bleed_suppressor_v1.ckpt",
77
+ "MDX23C |": "MDX23C_D1581.ckpt",
78
+ "MDX23C | InstVoc HQ": "MDX23C-8KFFT-InstVoc_HQ.ckpt",
79
+ "MDX23C | InstVoc HQ v2": "MDX23C-8KFFT-InstVoc_HQ_2.ckpt",
80
+ "MDX23C | De-Reverb": "MDX23C-De-Reverb-aufr33-jarredou.ckpt",
81
+ "MDX23C | Drum Seperator": "MDX23C-DrumSep-aufr33-jarredou.ckpt"
82
+ },
83
+ "mdx23c_models": [
84
+ "MDX23C_D1581.ckpt",
85
+ "MDX23C-8KFFT-InstVoc_HQ.ckpt",
86
+ "MDX23C-8KFFT-InstVoc_HQ_2.ckpt",
87
+ "MDX23C-De-Reverb-aufr33-jarredou.ckpt",
88
+ "MDX23C-DrumSep-aufr33-jarredou.ckpt",
89
+ "model_bs_roformer_ep_317_sdr_12.9755.ckpt",
90
+ "model_bs_roformer_ep_368_sdr_12.9628.ckpt",
91
+ "model_bs_roformer_ep_937_sdr_10.5309.ckpt",
92
+ "model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt",
93
+ "deverb_bs_roformer_8_384dim_10depth.ckpt",
94
+ "mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt",
95
+ "denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt",
96
+ "denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt",
97
+ "mel_band_roformer_denoise_debleed_gabox.ckpt",
98
+ "mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt",
99
+ "mel_band_roformer_karaoke_gabox.ckpt",
100
+ "mel_band_roformer_karaoke_becruily.ckpt",
101
+ "vocals_mel_band_roformer.ckpt",
102
+ "mel_band_roformer_kim_ft_unwa.ckpt",
103
+ "mel_band_roformer_kim_ft2_unwa.ckpt",
104
+ "mel_band_roformer_kim_ft2_bleedless_unwa.ckpt",
105
+ "mel_band_roformer_kim_ft3_unwa.ckpt",
106
+ "melband_roformer_inst_v1.ckpt",
107
+ "melband_roformer_inst_v1_plus.ckpt",
108
+ "melband_roformer_inst_v1e.ckpt",
109
+ "melband_roformer_inst_v1e_plus.ckpt",
110
+ "melband_roformer_inst_v2.ckpt",
111
+ "melband_roformer_instvoc_duality_v1.ckpt",
112
+ "melband_roformer_instvox_duality_v2.ckpt",
113
+ "mel_band_roformer_vocals_becruily.ckpt",
114
+ "mel_band_roformer_instrumental_becruily.ckpt",
115
+ "mel_band_roformer_vocal_fullness_aname.ckpt",
116
+ "mel_band_roformer_vocals_gabox.ckpt",
117
+ "mel_band_roformer_vocals_gabox.ckpt",
118
+ "mel_band_roformer_vocals_fv1_gabox.ckpt",
119
+ "mel_band_roformer_vocals_fv2_gabox.ckpt",
120
+ "mel_band_roformer_vocals_fv3_gabox.ckpt",
121
+ "mel_band_roformer_vocals_fv4_gabox.ckpt",
122
+ "mel_band_roformer_instrumental_gabox.ckpt",
123
+ "mel_band_roformer_instrumental_2_gabox.ckpt",
124
+ "mel_band_roformer_instrumental_3_gabox.ckpt",
125
+ "mel_band_roformer_instrumental_bleedless_v1_gabox.ckpt",
126
+ "mel_band_roformer_instrumental_bleedless_v2_gabox.ckpt",
127
+ "mel_band_roformer_instrumental_bleedless_v3_gabox.ckpt",
128
+ "mel_band_roformer_instrumental_fullness_v1_gabox.ckpt",
129
+ "mel_band_roformer_instrumental_fullness_v2_gabox.ckpt",
130
+ "mel_band_roformer_instrumental_fullness_v3_gabox.ckpt",
131
+ "mel_band_roformer_instrumental_fullness_noise_v4_gabox.ckpt",
132
+ "mel_band_roformer_instrumental_instv5_gabox.ckpt",
133
+ "mel_band_roformer_instrumental_instv5n_gabox.ckpt",
134
+ "mel_band_roformer_instrumental_instv6_gabox.ckpt",
135
+ "mel_band_roformer_instrumental_instv6n_gabox.ckpt",
136
+ "mel_band_roformer_instrumental_instv7_gabox.ckpt",
137
+ "mel_band_roformer_instrumental_instv7n_gabox.ckpt",
138
+ "mel_band_roformer_instrumental_instv8_gabox.ckpt",
139
+ "mel_band_roformer_instrumental_instv8n_gabox.ckpt",
140
+ "mel_band_roformer_instrumental_fvx_gabox.ckpt",
141
+ "dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt",
142
+ "dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt",
143
+ "dereverb_mel_band_roformer_mono_anvuew.ckpt",
144
+ "dereverb_big_mbr_ep_362.ckpt",
145
+ "dereverb_super_big_mbr_ep_346.ckpt",
146
+ "dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt",
147
+ "dereverb-echo_mel_band_roformer_sdr_13.4843_v2.ckpt",
148
+ "dereverb_echo_mbr_fused.ckpt",
149
+ "MelBandRoformerSYHFT.ckpt",
150
+ "MelBandRoformerSYHFTV2.ckpt",
151
+ "MelBandRoformerSYHFTV2.5.ckpt",
152
+ "MelBandRoformerSYHFTV3Epsilon.ckpt",
153
+ "MelBandRoformerBigSYHFTV1.ckpt",
154
+ "melband_roformer_big_beta4.ckpt",
155
+ "melband_roformer_big_beta5e.ckpt",
156
+ "melband_roformer_big_beta6.ckpt",
157
+ "melband_roformer_big_beta6x.ckpt",
158
+ "model_chorus_bs_roformer_ep_267_sdr_24.1275.ckpt",
159
+ "bs_roformer_male_female_by_aufr33_sdr_7.2889.ckpt",
160
+ "aspiration_mel_band_roformer_sdr_18.9845.ckpt",
161
+ "aspiration_mel_band_roformer_less_aggr_sdr_18.1201.ckpt",
162
+ "mel_band_roformer_bleed_suppressor_v1.ckpt"
163
+ ],
164
+ "mdxnet_models": [
165
+ "UVR-MDX-NET-Inst_full_292.onnx",
166
+ "UVR-MDX-NET_Inst_187_beta.onnx",
167
+ "UVR-MDX-NET_Inst_82_beta.onnx",
168
+ "UVR-MDX-NET_Inst_90_beta.onnx",
169
+ "UVR-MDX-NET_Main_340.onnx",
170
+ "UVR-MDX-NET_Main_390.onnx",
171
+ "UVR-MDX-NET_Main_406.onnx",
172
+ "UVR-MDX-NET_Main_427.onnx",
173
+ "UVR-MDX-NET_Main_438.onnx",
174
+ "UVR-MDX-NET-Inst_HQ_1.onnx",
175
+ "UVR-MDX-NET-Inst_HQ_2.onnx",
176
+ "UVR-MDX-NET-Inst_HQ_3.onnx",
177
+ "UVR-MDX-NET-Inst_HQ_4.onnx",
178
+ "UVR-MDX-NET-Inst_HQ_5.onnx",
179
+ "UVR_MDXNET_Main.onnx",
180
+ "UVR-MDX-NET-Inst_Main.onnx",
181
+ "UVR_MDXNET_1_9703.onnx",
182
+ "UVR_MDXNET_2_9682.onnx",
183
+ "UVR_MDXNET_3_9662.onnx",
184
+ "UVR-MDX-NET-Inst_1.onnx",
185
+ "UVR-MDX-NET-Inst_2.onnx",
186
+ "UVR-MDX-NET-Inst_3.onnx",
187
+ "UVR_MDXNET_KARA.onnx",
188
+ "UVR_MDXNET_KARA_2.onnx",
189
+ "UVR_MDXNET_9482.onnx",
190
+ "UVR-MDX-NET-Voc_FT.onnx",
191
+ "Kim_Vocal_1.onnx",
192
+ "Kim_Vocal_2.onnx",
193
+ "Kim_Inst.onnx",
194
+ "Reverb_HQ_By_FoxJoy.onnx",
195
+ "UVR-MDX-NET_Crowd_HQ_1.onnx",
196
+ "kuielab_a_vocals.onnx",
197
+ "kuielab_a_other.onnx",
198
+ "kuielab_a_bass.onnx",
199
+ "kuielab_a_drums.onnx",
200
+ "kuielab_b_vocals.onnx",
201
+ "kuielab_b_other.onnx",
202
+ "kuielab_b_bass.onnx",
203
+ "kuielab_b_drums.onnx"
204
+ ],
205
+ "vrarch_models": [
206
+ "1_HP-UVR.pth",
207
+ "2_HP-UVR.pth",
208
+ "3_HP-Vocal-UVR.pth",
209
+ "4_HP-Vocal-UVR.pth",
210
+ "5_HP-Karaoke-UVR.pth",
211
+ "6_HP-Karaoke-UVR.pth",
212
+ "7_HP2-UVR.pth",
213
+ "8_HP2-UVR.pth",
214
+ "9_HP2-UVR.pth",
215
+ "10_SP-UVR-2B-32000-1.pth",
216
+ "11_SP-UVR-2B-32000-2.pth",
217
+ "12_SP-UVR-3B-44100.pth",
218
+ "13_SP-UVR-4B-44100-1.pth",
219
+ "14_SP-UVR-4B-44100-2.pth",
220
+ "15_SP-UVR-MID-44100-1.pth",
221
+ "16_SP-UVR-MID-44100-2.pth",
222
+ "17_HP-Wind_Inst-UVR.pth",
223
+ "UVR-De-Echo-Aggressive.pth",
224
+ "UVR-De-Echo-Normal.pth",
225
+ "UVR-DeEcho-DeReverb.pth",
226
+ "UVR-De-Reverb-aufr33-jarredou.pth",
227
+ "UVR-DeNoise-Lite.pth",
228
+ "UVR-DeNoise.pth",
229
+ "UVR-BVE-4B_SN-44100-1.pth",
230
+ "MGM_HIGHEND_v4.pth",
231
+ "MGM_LOWEND_A_v4.pth",
232
+ "MGM_LOWEND_B_v4.pth",
233
+ "MGM_MAIN_v4.pth"
234
+ ],
235
+ "demucs_models": [
236
+ "htdemucs_ft.yaml",
237
+ "htdemucs_6s.yaml",
238
+ "htdemucs.yaml",
239
+ "hdemucs_mmi.yaml"
240
+ ]
241
+ }
assets/luvr5-ui/models.txt ADDED
@@ -0,0 +1,248 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_aspiration_mel_band_roformer.yaml
2
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_aspiration_mel_band_roformer.yaml
3
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_bs_roformer_instrumental_resurrection_unwa.yaml
4
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_bs_roformer_vocals_gabox.yaml
5
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_bs_roformer_vocals_resurrection_unwa.yaml
6
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_bs_roformer_vocals_revive_unwa.yaml
7
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_bs_roformer_vocals_revive_unwa.yaml
8
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_bs_roformer_vocals_revive_unwa.yaml
9
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_chorus_male_female_bs_roformer.yaml
10
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_chorus_male_female_bs_roformer.yaml
11
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_dereverb-echo_mel_band_roformer.yaml
12
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_dereverb-echo_mel_band_roformer_sdr_13.4843_v2.yaml
13
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_dereverb_echo_mel_band_roformer_v2.yaml
14
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_dereverb_echo_mel_band_roformer_v2.yaml
15
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_dereverb_echo_mel_band_roformer_v2.yaml
16
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_dereverb_mdx23c.yaml
17
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_drumsep_mdx23c.yaml
18
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_bleed_suppressor_v1.yaml
19
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_becruily.yaml
20
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
21
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
22
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
23
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
24
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
25
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
26
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
27
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
28
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
29
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
30
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
31
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
32
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
33
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
34
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
35
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
36
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
37
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
38
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
39
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
40
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
41
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_instrumental_gabox.yaml
42
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_karaoke_becruily.yaml
43
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_karaoke_gabox.yaml
44
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_karaoke_gabox.yaml
45
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_kim_ft_unwa.yaml
46
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_kim_ft_unwa.yaml
47
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_kim_ft_unwa.yaml
48
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_kim_ft_unwa.yaml
49
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocal_fullness_aname.yaml
50
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_becruily.yaml
51
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
52
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
53
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
54
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
55
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
56
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
57
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
58
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_mel_band_roformer_vocals_gabox.yaml
59
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melband_roformer_big_beta5e.yaml
60
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_big_beta4.yaml
61
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_big_beta6.yaml
62
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_big_beta6x.yaml
63
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.yaml
64
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.yaml
65
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.yaml
66
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.yaml
67
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst_v2.yaml
68
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_instvoc_duality.yaml
69
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_instvoc_duality.yaml
70
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_vocals_mel_band_roformer_big_v1_ft.yaml
71
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_vocals_mel_band_roformer_ft.yaml
72
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_vocals_mel_band_roformer_ft.yaml
73
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_vocals_mel_band_roformer_ft.yaml
74
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_vocals_mel_band_roformer_ft.yaml
75
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768_config.yaml
76
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/denoise_mel_band_roformer_aufr33_sdr_27.9959_config.yaml
77
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_mel_band_roformer_anvuew.yaml
78
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_mel_band_roformer_anvuew.yaml
79
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_mel_band_roformer_anvuew.yaml
80
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/deverb_bs_roformer_8_384dim_10depth_config.yaml
81
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144_config.yaml
82
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956_config.yaml
83
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_2_stem_061321.yaml
84
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_2_stem_full_band_8k.yaml
85
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_2_stem_full_band_8k.yaml
86
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_317_sdr_12.9755.yaml
87
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_368_sdr_12.9628.yaml
88
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_937_sdr_10.5309.yaml
89
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_mel_band_roformer_ep_3005_sdr_11.4360.yaml
90
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/vocals_mel_band_roformer.yaml
91
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/10_SP-UVR-2B-32000-1.pth
92
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/11_SP-UVR-2B-32000-2.pth
93
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/12_SP-UVR-3B-44100.pth
94
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/13_SP-UVR-4B-44100-1.pth
95
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/14_SP-UVR-4B-44100-2.pth
96
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/15_SP-UVR-MID-44100-1.pth
97
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/16_SP-UVR-MID-44100-2.pth
98
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/17_HP-Wind_Inst-UVR.pth
99
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/1_HP-UVR.pth
100
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/2_HP-UVR.pth
101
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/3_HP-Vocal-UVR.pth
102
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/4_HP-Vocal-UVR.pth
103
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/5_HP-Karaoke-UVR.pth
104
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/6_HP-Karaoke-UVR.pth
105
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/7_HP2-UVR.pth
106
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/8_HP2-UVR.pth
107
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/9_HP2-UVR.pth
108
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_HIGHEND_v4.pth
109
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_LOWEND_A_v4.pth
110
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_LOWEND_B_v4.pth
111
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_MAIN_v4.pth
112
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-BVE-4B_SN-44100-1.pth
113
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-BVE-4B_SN-44100-2.pth
114
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-De-Echo-Aggressive.pth
115
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-De-Echo-Normal.pth
116
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-De-Reverb-aufr33-jarredou.pth
117
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-DeEcho-DeReverb.pth
118
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-DeNoise-Lite.pth
119
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-DeNoise.pth
120
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C-8KFFT-InstVoc_HQ.ckpt
121
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C-8KFFT-InstVoc_HQ_2.ckpt
122
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C-De-Reverb-aufr33-jarredou.ckpt
123
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C-DrumSep-aufr33-jarredou.ckpt
124
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C_D1581.ckpt
125
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MelBandRoformerBigSYHFTV1.ckpt
126
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MelBandRoformerSYHFT.ckpt
127
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MelBandRoformerSYHFTV2.5.ckpt
128
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MelBandRoformerSYHFTV2.ckpt
129
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/MelBandRoformerSYHFTV3Epsilon.ckpt
130
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/aspiration_mel_band_roformer_less_aggr_sdr_18.1201.ckpt
131
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/aspiration_mel_band_roformer_sdr_18.9845.ckpt
132
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_instrumental_resurrection_unwa.ckpt
133
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_male_female_by_aufr33_sdr_7.2889.ckpt
134
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_vocals_gabox.ckpt
135
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_vocals_resurrection_unwa.ckpt
136
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_vocals_revive_unwa.ckpt
137
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_vocals_revive_v2_unwa.ckpt
138
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/bs_roformer_vocals_revive_v3e_unwa.ckpt
139
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt
140
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt
141
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt
142
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb-echo_mel_band_roformer_sdr_13.4843_v2.ckpt
143
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_big_mbr_ep_362.ckpt
144
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_echo_mbr_fused.ckpt
145
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt
146
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt
147
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_mel_band_roformer_mono_anvuew.ckpt
148
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/dereverb_super_big_mbr_ep_346.ckpt
149
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/deverb_bs_roformer_8_384dim_10depth.ckpt
150
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_bleed_suppressor_v1.ckpt
151
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt
152
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_denoise_debleed_gabox.ckpt
153
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_2_gabox.ckpt
154
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_3_gabox.ckpt
155
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_becruily.ckpt
156
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_bleedless_v1_gabox.ckpt
157
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_bleedless_v2_gabox.ckpt
158
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_bleedless_v3_gabox.ckpt
159
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fullness_noise_v4_gabox.ckpt
160
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fullness_v1_gabox.ckpt
161
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fullness_v2_gabox.ckpt
162
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fullness_v3_gabox.ckpt
163
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fv7z_gabox.ckpt
164
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fv8_gabox.ckpt
165
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_fvx_gabox.ckpt
166
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_gabox.ckpt
167
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv5_gabox.ckpt
168
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv5n_gabox.ckpt
169
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv6_gabox.ckpt
170
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv6n_gabox.ckpt
171
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv7_gabox.ckpt
172
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv7n_gabox.ckpt
173
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv8_gabox.ckpt
174
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_instrumental_instv8n_gabox.ckpt
175
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt
176
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_karaoke_becruily.ckpt
177
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_karaoke_gabox.ckpt
178
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_karaoke_gabox_v2.ckpt
179
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_kim_ft2_bleedless_unwa.ckpt
180
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_kim_ft2_unwa.ckpt
181
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_kim_ft3_unwa.ckpt
182
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_kim_ft_unwa.ckpt
183
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocal_fullness_aname.ckpt
184
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_becruily.ckpt
185
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_fv1_gabox.ckpt
186
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_fv2_gabox.ckpt
187
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_fv3_gabox.ckpt
188
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_fv4_gabox.ckpt
189
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_fv5_gabox.ckpt
190
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_fv6_gabox.ckpt
191
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_gabox.ckpt
192
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/mel_band_roformer_vocals_v2_gabox.ckpt
193
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_big_beta4.ckpt
194
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_big_beta5e.ckpt
195
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_big_beta6.ckpt
196
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_big_beta6x.ckpt
197
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_inst_v1.ckpt
198
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_inst_v1_plus.ckpt
199
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_inst_v1e.ckpt
200
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_inst_v1e_plus.ckpt
201
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_inst_v2.ckpt
202
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_instvoc_duality_v1.ckpt
203
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/melband_roformer_instvox_duality_v2.ckpt
204
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_317_sdr_12.9755.ckpt
205
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_368_sdr_12.9628.ckpt
206
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_937_sdr_10.5309.ckpt
207
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_chorus_bs_roformer_ep_267_sdr_24.1275.ckpt
208
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt
209
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/vocals_mel_band_roformer.ckpt
210
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/Kim_Inst.onnx
211
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/Kim_Vocal_1.onnx
212
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/Kim_Vocal_2.onnx
213
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/Reverb_HQ_By_FoxJoy.onnx
214
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_1.onnx
215
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_2.onnx
216
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_3.onnx
217
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_1.onnx
218
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_2.onnx
219
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_3.onnx
220
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_4.onnx
221
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_5.onnx
222
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_Main.onnx
223
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_full_292.onnx
224
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Voc_FT.onnx
225
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Crowd_HQ_1.onnx
226
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Inst_187_beta.onnx
227
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Inst_82_beta.onnx
228
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Inst_90_beta.onnx
229
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_340.onnx
230
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_390.onnx
231
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_406.onnx
232
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_427.onnx
233
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_438.onnx
234
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_1_9703.onnx
235
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_2_9682.onnx
236
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_3_9662.onnx
237
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_9482.onnx
238
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_KARA.onnx
239
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_KARA_2.onnx
240
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_Main.onnx
241
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_bass.onnx
242
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_drums.onnx
243
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_other.onnx
244
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_vocals.onnx
245
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_bass.onnx
246
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_drums.onnx
247
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_other.onnx
248
+ https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_vocals.onnx
assets/model_data/mdx_model_data.json ADDED
@@ -0,0 +1,384 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "0ddfc0eb5792638ad5dc27850236c246": {
3
+ "compensate": 1.035,
4
+ "mdx_dim_f_set": 2048,
5
+ "mdx_dim_t_set": 8,
6
+ "mdx_n_fft_scale_set": 6144,
7
+ "primary_stem": "Vocals"
8
+ },
9
+ "26d308f91f3423a67dc69a6d12a8793d": {
10
+ "compensate": 1.035,
11
+ "mdx_dim_f_set": 2048,
12
+ "mdx_dim_t_set": 9,
13
+ "mdx_n_fft_scale_set": 8192,
14
+ "primary_stem": "Other"
15
+ },
16
+ "2cdd429caac38f0194b133884160f2c6": {
17
+ "compensate": 1.045,
18
+ "mdx_dim_f_set": 3072,
19
+ "mdx_dim_t_set": 8,
20
+ "mdx_n_fft_scale_set": 7680,
21
+ "primary_stem": "Instrumental"
22
+ },
23
+ "2f5501189a2f6db6349916fabe8c90de": {
24
+ "compensate": 1.035,
25
+ "mdx_dim_f_set": 2048,
26
+ "mdx_dim_t_set": 8,
27
+ "mdx_n_fft_scale_set": 6144,
28
+ "primary_stem": "Vocals",
29
+ "is_karaoke": true
30
+ },
31
+ "398580b6d5d973af3120df54cee6759d": {
32
+ "compensate": 1.75,
33
+ "mdx_dim_f_set": 3072,
34
+ "mdx_dim_t_set": 8,
35
+ "mdx_n_fft_scale_set": 7680,
36
+ "primary_stem": "Vocals"
37
+ },
38
+ "488b3e6f8bd3717d9d7c428476be2d75": {
39
+ "compensate": 1.035,
40
+ "mdx_dim_f_set": 3072,
41
+ "mdx_dim_t_set": 8,
42
+ "mdx_n_fft_scale_set": 7680,
43
+ "primary_stem": "Instrumental"
44
+ },
45
+ "4910e7827f335048bdac11fa967772f9": {
46
+ "compensate": 1.035,
47
+ "mdx_dim_f_set": 2048,
48
+ "mdx_dim_t_set": 7,
49
+ "mdx_n_fft_scale_set": 4096,
50
+ "primary_stem": "Drums"
51
+ },
52
+ "53c4baf4d12c3e6c3831bb8f5b532b93": {
53
+ "compensate": 1.043,
54
+ "mdx_dim_f_set": 3072,
55
+ "mdx_dim_t_set": 8,
56
+ "mdx_n_fft_scale_set": 7680,
57
+ "primary_stem": "Vocals"
58
+ },
59
+ "5d343409ef0df48c7d78cce9f0106781": {
60
+ "compensate": 1.075,
61
+ "mdx_dim_f_set": 3072,
62
+ "mdx_dim_t_set": 8,
63
+ "mdx_n_fft_scale_set": 7680,
64
+ "primary_stem": "Vocals"
65
+ },
66
+ "5f6483271e1efb9bfb59e4a3e6d4d098": {
67
+ "compensate": 1.035,
68
+ "mdx_dim_f_set": 2048,
69
+ "mdx_dim_t_set": 9,
70
+ "mdx_n_fft_scale_set": 6144,
71
+ "primary_stem": "Vocals"
72
+ },
73
+ "65ab5919372a128e4167f5e01a8fda85": {
74
+ "compensate": 1.035,
75
+ "mdx_dim_f_set": 2048,
76
+ "mdx_dim_t_set": 8,
77
+ "mdx_n_fft_scale_set": 8192,
78
+ "primary_stem": "Other"
79
+ },
80
+ "6703e39f36f18aa7855ee1047765621d": {
81
+ "compensate": 1.035,
82
+ "mdx_dim_f_set": 2048,
83
+ "mdx_dim_t_set": 9,
84
+ "mdx_n_fft_scale_set": 16384,
85
+ "primary_stem": "Bass"
86
+ },
87
+ "6b31de20e84392859a3d09d43f089515": {
88
+ "compensate": 1.035,
89
+ "mdx_dim_f_set": 2048,
90
+ "mdx_dim_t_set": 8,
91
+ "mdx_n_fft_scale_set": 6144,
92
+ "primary_stem": "Vocals"
93
+ },
94
+ "867595e9de46f6ab699008295df62798": {
95
+ "compensate": 1.03,
96
+ "mdx_dim_f_set": 3072,
97
+ "mdx_dim_t_set": 8,
98
+ "mdx_n_fft_scale_set": 7680,
99
+ "primary_stem": "Vocals"
100
+ },
101
+ "a3cd63058945e777505c01d2507daf37": {
102
+ "compensate": 1.03,
103
+ "mdx_dim_f_set": 2048,
104
+ "mdx_dim_t_set": 8,
105
+ "mdx_n_fft_scale_set": 6144,
106
+ "primary_stem": "Vocals"
107
+ },
108
+ "b33d9b3950b6cbf5fe90a32608924700": {
109
+ "compensate": 1.03,
110
+ "mdx_dim_f_set": 3072,
111
+ "mdx_dim_t_set": 8,
112
+ "mdx_n_fft_scale_set": 7680,
113
+ "primary_stem": "Vocals"
114
+ },
115
+ "c3b29bdce8c4fa17ec609e16220330ab": {
116
+ "compensate": 1.035,
117
+ "mdx_dim_f_set": 2048,
118
+ "mdx_dim_t_set": 8,
119
+ "mdx_n_fft_scale_set": 16384,
120
+ "primary_stem": "Bass"
121
+ },
122
+ "ceed671467c1f64ebdfac8a2490d0d52": {
123
+ "compensate": 1.035,
124
+ "mdx_dim_f_set": 3072,
125
+ "mdx_dim_t_set": 8,
126
+ "mdx_n_fft_scale_set": 7680,
127
+ "primary_stem": "Instrumental"
128
+ },
129
+ "d2a1376f310e4f7fa37fb9b5774eb701": {
130
+ "compensate": 1.035,
131
+ "mdx_dim_f_set": 3072,
132
+ "mdx_dim_t_set": 8,
133
+ "mdx_n_fft_scale_set": 7680,
134
+ "primary_stem": "Instrumental"
135
+ },
136
+ "d7bff498db9324db933d913388cba6be": {
137
+ "compensate": 1.035,
138
+ "mdx_dim_f_set": 2048,
139
+ "mdx_dim_t_set": 8,
140
+ "mdx_n_fft_scale_set": 6144,
141
+ "primary_stem": "Vocals"
142
+ },
143
+ "d94058f8c7f1fae4164868ae8ae66b20": {
144
+ "compensate": 1.035,
145
+ "mdx_dim_f_set": 2048,
146
+ "mdx_dim_t_set": 8,
147
+ "mdx_n_fft_scale_set": 6144,
148
+ "primary_stem": "Vocals"
149
+ },
150
+ "dc41ede5961d50f277eb846db17f5319": {
151
+ "compensate": 1.035,
152
+ "mdx_dim_f_set": 2048,
153
+ "mdx_dim_t_set": 9,
154
+ "mdx_n_fft_scale_set": 4096,
155
+ "primary_stem": "Drums"
156
+ },
157
+ "e5572e58abf111f80d8241d2e44e7fa4": {
158
+ "compensate": 1.028,
159
+ "mdx_dim_f_set": 3072,
160
+ "mdx_dim_t_set": 8,
161
+ "mdx_n_fft_scale_set": 7680,
162
+ "primary_stem": "Instrumental"
163
+ },
164
+ "e7324c873b1f615c35c1967f912db92a": {
165
+ "compensate": 1.03,
166
+ "mdx_dim_f_set": 3072,
167
+ "mdx_dim_t_set": 8,
168
+ "mdx_n_fft_scale_set": 7680,
169
+ "primary_stem": "Vocals"
170
+ },
171
+ "1c56ec0224f1d559c42fd6fd2a67b154": {
172
+ "compensate": 1.025,
173
+ "mdx_dim_f_set": 2048,
174
+ "mdx_dim_t_set": 8,
175
+ "mdx_n_fft_scale_set": 5120,
176
+ "primary_stem": "Instrumental"
177
+ },
178
+ "f2df6d6863d8f435436d8b561594ff49": {
179
+ "compensate": 1.035,
180
+ "mdx_dim_f_set": 3072,
181
+ "mdx_dim_t_set": 8,
182
+ "mdx_n_fft_scale_set": 7680,
183
+ "primary_stem": "Instrumental"
184
+ },
185
+ "b06327a00d5e5fbc7d96e1781bbdb596": {
186
+ "compensate": 1.035,
187
+ "mdx_dim_f_set": 3072,
188
+ "mdx_dim_t_set": 8,
189
+ "mdx_n_fft_scale_set": 6144,
190
+ "primary_stem": "Instrumental"
191
+ },
192
+ "94ff780b977d3ca07c7a343dab2e25dd": {
193
+ "compensate": 1.039,
194
+ "mdx_dim_f_set": 3072,
195
+ "mdx_dim_t_set": 8,
196
+ "mdx_n_fft_scale_set": 6144,
197
+ "primary_stem": "Instrumental"
198
+ },
199
+ "73492b58195c3b52d34590d5474452f6": {
200
+ "compensate": 1.043,
201
+ "mdx_dim_f_set": 3072,
202
+ "mdx_dim_t_set": 8,
203
+ "mdx_n_fft_scale_set": 7680,
204
+ "primary_stem": "Vocals"
205
+ },
206
+ "970b3f9492014d18fefeedfe4773cb42": {
207
+ "compensate": 1.009,
208
+ "mdx_dim_f_set": 3072,
209
+ "mdx_dim_t_set": 8,
210
+ "mdx_n_fft_scale_set": 7680,
211
+ "primary_stem": "Vocals"
212
+ },
213
+ "1d64a6d2c30f709b8c9b4ce1366d96ee": {
214
+ "compensate": 1.065,
215
+ "mdx_dim_f_set": 2048,
216
+ "mdx_dim_t_set": 8,
217
+ "mdx_n_fft_scale_set": 5120,
218
+ "primary_stem": "Instrumental",
219
+ "is_karaoke": true
220
+ },
221
+ "203f2a3955221b64df85a41af87cf8f0": {
222
+ "compensate": 1.035,
223
+ "mdx_dim_f_set": 3072,
224
+ "mdx_dim_t_set": 8,
225
+ "mdx_n_fft_scale_set": 6144,
226
+ "primary_stem": "Instrumental"
227
+ },
228
+ "291c2049608edb52648b96e27eb80e95": {
229
+ "compensate": 1.035,
230
+ "mdx_dim_f_set": 3072,
231
+ "mdx_dim_t_set": 8,
232
+ "mdx_n_fft_scale_set": 6144,
233
+ "primary_stem": "Instrumental"
234
+ },
235
+ "ead8d05dab12ec571d67549b3aab03fc": {
236
+ "compensate": 1.035,
237
+ "mdx_dim_f_set": 3072,
238
+ "mdx_dim_t_set": 8,
239
+ "mdx_n_fft_scale_set": 6144,
240
+ "primary_stem": "Instrumental"
241
+ },
242
+ "cc63408db3d80b4d85b0287d1d7c9632": {
243
+ "compensate": 1.033,
244
+ "mdx_dim_f_set": 3072,
245
+ "mdx_dim_t_set": 8,
246
+ "mdx_n_fft_scale_set": 6144,
247
+ "primary_stem": "Instrumental"
248
+ },
249
+ "cd5b2989ad863f116c855db1dfe24e39": {
250
+ "compensate": 1.035,
251
+ "mdx_dim_f_set": 3072,
252
+ "mdx_dim_t_set": 9,
253
+ "mdx_n_fft_scale_set": 6144,
254
+ "primary_stem": "Reverb"
255
+ },
256
+ "55657dd70583b0fedfba5f67df11d711": {
257
+ "compensate": 1.022,
258
+ "mdx_dim_f_set": 3072,
259
+ "mdx_dim_t_set": 8,
260
+ "mdx_n_fft_scale_set": 6144,
261
+ "primary_stem": "Instrumental"
262
+ },
263
+ "b6bccda408a436db8500083ef3491e8b": {
264
+ "compensate": 1.02,
265
+ "mdx_dim_f_set": 3072,
266
+ "mdx_dim_t_set": 8,
267
+ "mdx_n_fft_scale_set": 7680,
268
+ "primary_stem": "Instrumental"
269
+ },
270
+ "8a88db95c7fb5dbe6a095ff2ffb428b1": {
271
+ "compensate": 1.026,
272
+ "mdx_dim_f_set": 2048,
273
+ "mdx_dim_t_set": 8,
274
+ "mdx_n_fft_scale_set": 5120,
275
+ "primary_stem": "Instrumental"
276
+ },
277
+ "b78da4afc6512f98e4756f5977f5c6b9": {
278
+ "compensate": 1.021,
279
+ "mdx_dim_f_set": 3072,
280
+ "mdx_dim_t_set": 8,
281
+ "mdx_n_fft_scale_set": 7680,
282
+ "primary_stem": "Instrumental"
283
+ },
284
+ "77d07b2667ddf05b9e3175941b4454a0": {
285
+ "compensate": 1.021,
286
+ "mdx_dim_f_set": 3072,
287
+ "mdx_dim_t_set": 8,
288
+ "mdx_n_fft_scale_set": 7680,
289
+ "primary_stem": "Vocals"
290
+ },
291
+ "0f2a6bc5b49d87d64728ee40e23bceb1": {
292
+ "compensate": 1.019,
293
+ "mdx_dim_f_set": 2560,
294
+ "mdx_dim_t_set": 8,
295
+ "mdx_n_fft_scale_set": 5120,
296
+ "primary_stem": "Instrumental"
297
+ },
298
+ "b02be2d198d4968a121030cf8950b492": {
299
+ "compensate": 1.020,
300
+ "mdx_dim_f_set": 2560,
301
+ "mdx_dim_t_set": 8,
302
+ "mdx_n_fft_scale_set": 5120,
303
+ "primary_stem": "No Crowd"
304
+ },
305
+ "2154254ee89b2945b97a7efed6e88820": {
306
+ "config_yaml": "model_2_stem_061321.yaml"
307
+ },
308
+ "063aadd735d58150722926dcbf5852a9": {
309
+ "config_yaml": "model_2_stem_061321.yaml"
310
+ },
311
+ "c09f714d978b41d718facfe3427e6001": {
312
+ "config_yaml": "model_2_stem_061321.yaml"
313
+ },
314
+ "fe96801369f6a148df2720f5ced88c19": {
315
+ "config_yaml": "model3.yaml"
316
+ },
317
+ "02e8b226f85fb566e5db894b9931c640": {
318
+ "config_yaml": "model2.yaml"
319
+ },
320
+ "e3de6d861635ab9c1d766149edd680d6": {
321
+ "config_yaml": "model1.yaml"
322
+ },
323
+ "3f2936c554ab73ce2e396d54636bd373": {
324
+ "config_yaml": "modelB.yaml"
325
+ },
326
+ "890d0f6f82d7574bca741a9e8bcb8168": {
327
+ "config_yaml": "modelB.yaml"
328
+ },
329
+ "63a3cb8c37c474681049be4ad1ba8815": {
330
+ "config_yaml": "modelB.yaml"
331
+ },
332
+ "a7fc5d719743c7fd6b61bd2b4d48b9f0": {
333
+ "config_yaml": "modelA.yaml"
334
+ },
335
+ "3567f3dee6e77bf366fcb1c7b8bc3745": {
336
+ "config_yaml": "modelA.yaml"
337
+ },
338
+ "a28f4d717bd0d34cd2ff7a3b0a3d065e": {
339
+ "config_yaml": "modelA.yaml"
340
+ },
341
+ "c9971a18da20911822593dc81caa8be9": {
342
+ "config_yaml": "sndfx.yaml"
343
+ },
344
+ "57d94d5ed705460d21c75a5ac829a605": {
345
+ "config_yaml": "sndfx.yaml"
346
+ },
347
+ "e7a25f8764f25a52c1b96c4946e66ba2": {
348
+ "config_yaml": "sndfx.yaml"
349
+ },
350
+ "104081d24e37217086ce5fde09147ee1": {
351
+ "config_yaml": "model_2_stem_061321.yaml"
352
+ },
353
+ "1e6165b601539f38d0a9330f3facffeb": {
354
+ "config_yaml": "model_2_stem_061321.yaml"
355
+ },
356
+ "fe0108464ce0d8271be5ab810891bd7c": {
357
+ "config_yaml": "model_2_stem_full_band.yaml"
358
+ },
359
+ "e9b82ec90ee56c507a3a982f1555714c": {
360
+ "config_yaml": "model_2_stem_full_band_2.yaml"
361
+ },
362
+ "99b6ceaae542265a3b6d657bf9fde79f": {
363
+ "config_yaml": "model_2_stem_full_band_8k.yaml"
364
+ },
365
+ "116f6f9dabb907b53d847ed9f7a9475f": {
366
+ "config_yaml": "model_2_stem_full_band_8k.yaml"
367
+ },
368
+ "53f707017bfcbb56f5e1bfac420d6732": {
369
+ "config_yaml": "model_bs_roformer_ep_317_sdr_12.9755.yaml",
370
+ "is_roformer": true
371
+ },
372
+ "63e41acc264bf681a73aa9f7e5f606cc": {
373
+ "config_yaml": "model_mel_band_roformer_ep_3005_sdr_11.4360.yaml",
374
+ "is_roformer": true
375
+ },
376
+ "e733736763234047587931fc35322fd9": {
377
+ "config_yaml": "model_bs_roformer_ep_937_sdr_10.5309.yaml",
378
+ "is_roformer": true
379
+ },
380
+ "d789065adfd747d6f585b27b495bcdae": {
381
+ "config_yaml": "model_bs_roformer_ep_368_sdr_12.9628.yaml",
382
+ "is_roformer": true
383
+ }
384
+ }
assets/model_data/vr_model_data.json ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "0d0e6d143046b0eecc41a22e60224582": {
3
+ "vr_model_param": "3band_44100_mid",
4
+ "primary_stem": "Instrumental"
5
+ },
6
+ "18b52f873021a0af556fb4ecd552bb8e": {
7
+ "vr_model_param": "2band_32000",
8
+ "primary_stem": "Instrumental"
9
+ },
10
+ "1fc66027c82b499c7d8f55f79e64cadc": {
11
+ "vr_model_param": "2band_32000",
12
+ "primary_stem": "Instrumental"
13
+ },
14
+ "2aa34fbc01f8e6d2bf509726481e7142": {
15
+ "vr_model_param": "4band_44100",
16
+ "primary_stem": "No Piano"
17
+ },
18
+ "3e18f639b11abea7361db1a4a91c2559": {
19
+ "vr_model_param": "4band_44100",
20
+ "primary_stem": "Instrumental"
21
+ },
22
+ "570b5f50054609a17741369a35007ddd": {
23
+ "vr_model_param": "4band_v3",
24
+ "primary_stem": "Instrumental"
25
+ },
26
+ "5a6e24c1b530f2dab045a522ef89b751": {
27
+ "vr_model_param": "1band_sr44100_hl512",
28
+ "primary_stem": "Instrumental"
29
+ },
30
+ "6b5916069a49be3fe29d4397ecfd73fa": {
31
+ "vr_model_param": "3band_44100_msb2",
32
+ "primary_stem": "Instrumental",
33
+ "is_karaoke": true
34
+ },
35
+ "74b3bc5fa2b69f29baf7839b858bc679": {
36
+ "vr_model_param": "4band_44100",
37
+ "primary_stem": "Instrumental"
38
+ },
39
+ "827213b316df36b52a1f3d04fec89369": {
40
+ "vr_model_param": "4band_44100",
41
+ "primary_stem": "Instrumental"
42
+ },
43
+ "911d4048eee7223eca4ee0efb7d29256": {
44
+ "vr_model_param": "4band_44100",
45
+ "primary_stem": "Vocals"
46
+ },
47
+ "941f3f7f0b0341f12087aacdfef644b1": {
48
+ "vr_model_param": "4band_v2",
49
+ "primary_stem": "Instrumental"
50
+ },
51
+ "a02827cf69d75781a35c0e8a327f3195": {
52
+ "vr_model_param": "1band_sr33075_hl384",
53
+ "primary_stem": "Instrumental"
54
+ },
55
+ "b165fbff113c959dba5303b74c6484bc": {
56
+ "vr_model_param": "3band_44100",
57
+ "primary_stem": "Instrumental"
58
+ },
59
+ "b5f988cd3e891dca7253bf5f0f3427c7": {
60
+ "vr_model_param": "4band_44100",
61
+ "primary_stem": "Instrumental"
62
+ },
63
+ "b99c35723bc35cb11ed14a4780006a80": {
64
+ "vr_model_param": "1band_sr44100_hl1024",
65
+ "primary_stem": "Instrumental"
66
+ },
67
+ "ba02fd25b71d620eebbdb49e18e4c336": {
68
+ "vr_model_param": "3band_44100_mid",
69
+ "primary_stem": "Instrumental"
70
+ },
71
+ "c4476ef424d8cba65f38d8d04e8514e2": {
72
+ "vr_model_param": "3band_44100_msb2",
73
+ "primary_stem": "Instrumental"
74
+ },
75
+ "da2d37b8be2972e550a409bae08335aa": {
76
+ "vr_model_param": "4band_44100",
77
+ "primary_stem": "Vocals"
78
+ },
79
+ "db57205d3133e39df8e050b435a78c80": {
80
+ "vr_model_param": "4band_44100",
81
+ "primary_stem": "Instrumental"
82
+ },
83
+ "ea83b08e32ec2303456fe50659035f69": {
84
+ "vr_model_param": "4band_v3",
85
+ "primary_stem": "Instrumental"
86
+ },
87
+ "f6ea8473ff86017b5ebd586ccacf156b": {
88
+ "vr_model_param": "4band_v2_sn",
89
+ "primary_stem": "Instrumental",
90
+ "is_karaoke": true
91
+ },
92
+ "fd297a61eafc9d829033f8b987c39a3d": {
93
+ "vr_model_param": "1band_sr32000_hl512",
94
+ "primary_stem": "Instrumental"
95
+ },
96
+ "0ec76fd9e65f81d8b4fbd13af4826ed8": {
97
+ "vr_model_param": "4band_v3",
98
+ "primary_stem": "No Woodwinds"
99
+ },
100
+ "0fb9249ffe4ffc38d7b16243f394c0ff": {
101
+ "vr_model_param": "4band_v3",
102
+ "primary_stem": "No Reverb"
103
+ },
104
+ "6857b2972e1754913aad0c9a1678c753": {
105
+ "vr_model_param": "4band_v3",
106
+ "primary_stem": "No Echo",
107
+ "nout": 48,
108
+ "nout_lstm": 128
109
+ },
110
+ "f200a145434efc7dcf0cd093f517ed52": {
111
+ "vr_model_param": "4band_v3",
112
+ "primary_stem": "No Echo",
113
+ "nout": 48,
114
+ "nout_lstm": 128
115
+ },
116
+ "44c55d8b5d2e3edea98c2b2bf93071c7": {
117
+ "vr_model_param": "4band_v3",
118
+ "primary_stem": "Noise",
119
+ "nout": 48,
120
+ "nout_lstm": 128
121
+ },
122
+ "51ea8c43a6928ed3c10ef5cb2707d57b": {
123
+ "vr_model_param": "1band_sr44100_hl1024",
124
+ "primary_stem": "Noise",
125
+ "nout": 16,
126
+ "nout_lstm": 128
127
+ },
128
+ "944950a9c5963a5eb70b445d67b7068a": {
129
+ "vr_model_param": "4band_v3_sn",
130
+ "primary_stem": "Vocals",
131
+ "nout": 64,
132
+ "nout_lstm": 128,
133
+ "is_karaoke": false,
134
+ "is_bv_model": true,
135
+ "is_bv_model_rebalanced": 0.9
136
+ }
137
+ }
assets/model_index.json ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "current_version": "ll-2025-12-29",
3
+ "vr_download_list": {
4
+ "VR Arch Single Model v5: 1_HP-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/1_HP-UVR.pth",
5
+ "VR Arch Single Model v5: 2_HP-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/2_HP-UVR.pth",
6
+ "VR Arch Single Model v5: 3_HP-Vocal-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/3_HP-Vocal-UVR.pth",
7
+ "VR Arch Single Model v5: 4_HP-Vocal-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/4_HP-Vocal-UVR.pth",
8
+ "VR Arch Single Model v5: 5_HP-Karaoke-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/5_HP-Karaoke-UVR.pth",
9
+ "VR Arch Single Model v5: 6_HP-Karaoke-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/6_HP-Karaoke-UVR.pth",
10
+ "VR Arch Single Model v5: 7_HP2-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/7_HP2-UVR.pth",
11
+ "VR Arch Single Model v5: 8_HP2-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/8_HP2-UVR.pth",
12
+ "VR Arch Single Model v5: 9_HP2-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/9_HP2-UVR.pth",
13
+ "VR Arch Single Model v5: 10_SP-UVR-2B-32000-1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/10_SP-UVR-2B-32000-1.pth",
14
+ "VR Arch Single Model v5: 11_SP-UVR-2B-32000-2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/11_SP-UVR-2B-32000-2.pth",
15
+ "VR Arch Single Model v5: 12_SP-UVR-3B-44100": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/12_SP-UVR-3B-44100.pth",
16
+ "VR Arch Single Model v5: 13_SP-UVR-4B-44100-1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/13_SP-UVR-4B-44100-1.pth",
17
+ "VR Arch Single Model v5: 14_SP-UVR-4B-44100-2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/14_SP-UVR-4B-44100-2.pth",
18
+ "VR Arch Single Model v5: 15_SP-UVR-MID-44100-1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/15_SP-UVR-MID-44100-1.pth",
19
+ "VR Arch Single Model v5: 16_SP-UVR-MID-44100-2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/16_SP-UVR-MID-44100-2.pth",
20
+ "VR Arch Single Model v5: 17_HP-Wind_Inst-UVR": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/17_HP-Wind_Inst-UVR.pth",
21
+ "VR Arch Single Model v5: UVR-De-Echo-Aggressive by FoxJoy": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-De-Echo-Aggressive.pth",
22
+ "VR Arch Single Model v5: UVR-De-Echo-Normal by FoxJoy": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-De-Echo-Normal.pth",
23
+ "VR Arch Single Model v5: UVR-DeEcho-DeReverb by FoxJoy": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-DeEcho-DeReverb.pth",
24
+ "VR Arch Single Model v5: UVR-DeNoise-Lite by FoxJoy": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-DeNoise-Lite.pth",
25
+ "VR Arch Single Model v5: UVR-DeNoise by FoxJoy": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-DeNoise.pth",
26
+ "VR Arch Single Model v5: UVR-BVE-4B_SN-44100-1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-BVE-4B_SN-44100-1.pth",
27
+ "VR Arch Single Model v4: MGM_HIGHEND_v4": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_HIGHEND_v4.pth",
28
+ "VR Arch Single Model v4: MGM_LOWEND_A_v4": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_LOWEND_A_v4.pth",
29
+ "VR Arch Single Model v4: MGM_LOWEND_B_v4": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_LOWEND_B_v4.pth",
30
+ "VR Arch Single Model v4: MGM_MAIN_v4": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MGM_MAIN_v4.pth"
31
+ },
32
+ "mdx_download_list": {
33
+ "MDX-Net Model: UVR-MDX-NET Inst HQ 1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_1.onnx",
34
+ "MDX-Net Model: UVR-MDX-NET Inst HQ 2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_2.onnx",
35
+ "MDX-Net Model: UVR-MDX-NET Inst HQ 3": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_3.onnx",
36
+ "MDX-Net Model: UVR-MDX-NET Inst HQ 4": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_4.onnx",
37
+ "MDX-Net Model: UVR-MDX-NET Main": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_Main.onnx",
38
+ "MDX-Net Model: UVR-MDX-NET Inst Main": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_Main.onnx",
39
+ "MDX-Net Model: UVR-MDX-NET 1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_1_9703.onnx",
40
+ "MDX-Net Model: UVR-MDX-NET 2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_2_9682.onnx",
41
+ "MDX-Net Model: UVR-MDX-NET 3": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_3_9662.onnx",
42
+ "MDX-Net Model: UVR-MDX-NET Inst 1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_1.onnx",
43
+ "MDX-Net Model: UVR-MDX-NET Inst 2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_2.onnx",
44
+ "MDX-Net Model: UVR-MDX-NET Inst 3": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_3.onnx",
45
+ "MDX-Net Model: UVR-MDX-NET Karaoke": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_KARA.onnx",
46
+ "MDX-Net Model: UVR-MDX-NET Karaoke 2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_KARA_2.onnx",
47
+ "MDX-Net Model: UVR_MDXNET_9482": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_MDXNET_9482.onnx",
48
+ "MDX-Net Model: UVR-MDX-NET Voc FT": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Voc_FT.onnx",
49
+ "MDX-Net Model: Kim Vocal 1": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/Kim_Vocal_1.onnx",
50
+ "MDX-Net Model: Kim Vocal 2": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/Kim_Vocal_2.onnx",
51
+ "MDX-Net Model: Kim Inst": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/Kim_Inst.onnx",
52
+ "MDX-Net Model: Reverb HQ By FoxJoy": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/Reverb_HQ_By_FoxJoy.onnx",
53
+ "MDX-Net Model: UVR-MDX-NET Crowd HQ 1 By Aufr33": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Crowd_HQ_1.onnx",
54
+ "MDX-Net Model: kuielab_a_vocals": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_vocals.onnx",
55
+ "MDX-Net Model: kuielab_a_other": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_other.onnx",
56
+ "MDX-Net Model: kuielab_a_bass": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_bass.onnx",
57
+ "MDX-Net Model: kuielab_a_drums": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_a_drums.onnx",
58
+ "MDX-Net Model: kuielab_b_vocals": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_vocals.onnx",
59
+ "MDX-Net Model: kuielab_b_other": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_other.onnx",
60
+ "MDX-Net Model: kuielab_b_bass": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_bass.onnx",
61
+ "MDX-Net Model: kuielab_b_drums": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/kuielab_b_drums.onnx",
62
+ "MDX-Net Model: UVR-MDX-NET Inst HQ 5": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_HQ_5.onnx",
63
+ "MDX-Net Model VIP: UVR-MDX-NET_Main_340": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_340.onnx",
64
+ "MDX-Net Model VIP: UVR-MDX-NET_Main_390": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_390.onnx",
65
+ "MDX-Net Model VIP: UVR-MDX-NET_Main_406": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_406.onnx",
66
+ "MDX-Net Model VIP: UVR-MDX-NET_Main_427": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_427.onnx",
67
+ "MDX-Net Model VIP: UVR-MDX-NET_Main_438": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Main_438.onnx",
68
+ "MDX-Net Model VIP: UVR-MDX-NET_Inst_82_beta": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Inst_82_beta.onnx",
69
+ "MDX-Net Model VIP: UVR-MDX-NET_Inst_90_beta": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Inst_90_beta.onnx",
70
+ "MDX-Net Model VIP: UVR-MDX-NET_Inst_187_beta": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET_Inst_187_beta.onnx",
71
+ "MDX-Net Model VIP: UVR-MDX-NET-Inst_full_292": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR-MDX-NET-Inst_full_292.onnx"
72
+ },
73
+ "demucs_download_list": {
74
+ "Demucs v4: htdemucs_ft": {
75
+ "f7e0c4bc-ba3fe64a.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/f7e0c4bc-ba3fe64a.th",
76
+ "d12395a8-e57c48e6.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/d12395a8-e57c48e6.th",
77
+ "92cfc3b6-ef3bcb9c.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/92cfc3b6-ef3bcb9c.th",
78
+ "04573f0d-f3cf25b2.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/04573f0d-f3cf25b2.th",
79
+ "htdemucs_ft.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/htdemucs_ft.yaml"
80
+ },
81
+ "Demucs v4: htdemucs": {
82
+ "955717e8-8726e21a.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/955717e8-8726e21a.th",
83
+ "htdemucs.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/htdemucs.yaml"
84
+ },
85
+ "Demucs v4: hdemucs_mmi": {
86
+ "75fc33f5-1941ce65.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/75fc33f5-1941ce65.th",
87
+ "hdemucs_mmi.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/hdemucs_mmi.yaml"
88
+ },
89
+ "Demucs v4: htdemucs_6s": {
90
+ "5c90dfd2-34c22ccb.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/5c90dfd2-34c22ccb.th",
91
+ "htdemucs_6s.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/htdemucs_6s.yaml"
92
+ },
93
+ "Demucs v3: mdx": {
94
+ "0d19c1c6-0f06f20e.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/0d19c1c6-0f06f20e.th",
95
+ "7ecf8ec1-70f50cc9.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/7ecf8ec1-70f50cc9.th",
96
+ "c511e2ab-fe698775.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/c511e2ab-fe698775.th",
97
+ "7d865c68-3d5dd56b.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/7d865c68-3d5dd56b.th",
98
+ "mdx.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/mdx.yaml"
99
+ },
100
+ "Demucs v3: mdx_q": {
101
+ "6b9c2ca1-3fd82607.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/6b9c2ca1-3fd82607.th",
102
+ "b72baf4e-8778635e.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/b72baf4e-8778635e.th",
103
+ "42e558d4-196e0e1b.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/42e558d4-196e0e1b.th",
104
+ "305bc58f-18378783.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/305bc58f-18378783.th",
105
+ "mdx_q.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/mdx_q.yaml"
106
+ },
107
+ "Demucs v3: mdx_extra": {
108
+ "e51eebcc-c1b80bdd.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/e51eebcc-c1b80bdd.th",
109
+ "a1d90b5c-ae9d2452.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/a1d90b5c-ae9d2452.th",
110
+ "5d2d6c55-db83574e.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/5d2d6c55-db83574e.th",
111
+ "cfa93e08-61801ae1.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/cfa93e08-61801ae1.th",
112
+ "mdx_extra.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/mdx_extra.yaml"
113
+ },
114
+ "Demucs v3: mdx_extra_q": {
115
+ "83fc094f-4a16d450.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/83fc094f-4a16d450.th",
116
+ "464b36d7-e5a9386e.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/464b36d7-e5a9386e.th",
117
+ "14fc6a69-a89dd0ee.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/14fc6a69-a89dd0ee.th",
118
+ "7fd6ef75-a905dd85.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/7fd6ef75-a905dd85.th",
119
+ "mdx_extra_q.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/mdx_extra_q.yaml"
120
+ },
121
+ "Demucs v3: UVR Model": {
122
+ "ebf34a2db.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/ebf34a2db.th",
123
+ "UVR_Demucs_Model_1.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/UVR_Demucs_Model_1.yaml"
124
+ },
125
+ "Demucs v3: repro_mdx_a": {
126
+ "9a6b4851-03af0aa6.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/9a6b4851-03af0aa6.th",
127
+ "1ef250f1-592467ce.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/1ef250f1-592467ce.th",
128
+ "fa0cb7f9-100d8bf4.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/fa0cb7f9-100d8bf4.th",
129
+ "902315c2-b39ce9c9.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/902315c2-b39ce9c9.th",
130
+ "repro_mdx_a.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/repro_mdx_a.yaml"
131
+ },
132
+ "Demucs v3: repro_mdx_a_time_only": {
133
+ "9a6b4851-03af0aa6.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/9a6b4851-03af0aa6.th",
134
+ "1ef250f1-592467ce.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/1ef250f1-592467ce.th",
135
+ "repro_mdx_a_time_only.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/repro_mdx_a_time_only.yaml"
136
+ },
137
+ "Demucs v3: repro_mdx_a_hybrid_only": {
138
+ "fa0cb7f9-100d8bf4.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/fa0cb7f9-100d8bf4.th",
139
+ "902315c2-b39ce9c9.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/902315c2-b39ce9c9.th",
140
+ "repro_mdx_a_hybrid_only.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/repro_mdx_a_hybrid_only.yaml"
141
+ },
142
+ "Demucs v2: demucs": {
143
+ "demucs-e07c671f.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/demucs-e07c671f.th"
144
+ },
145
+ "Demucs v2: demucs_extra": {
146
+ "demucs_extra-3646af93.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/demucs_extra-3646af93.th"
147
+ },
148
+ "Demucs v2: demucs48_hq": {
149
+ "demucs48_hq-28a1282c.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/demucs48_hq-28a1282c.th"
150
+ },
151
+ "Demucs v2: tasnet": {
152
+ "tasnet-beb46fac.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/tasnet-beb46fac.th"
153
+ },
154
+ "Demucs v2: tasnet_extra": {
155
+ "tasnet_extra-df3777b2.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/tasnet_extra-df3777b2.th"
156
+ },
157
+ "Demucs v2: demucs_unittest": {
158
+ "demucs_unittest-09ebc15f.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/demucs_unittest-09ebc15f.th"
159
+ },
160
+ "Demucs v1: demucs": {
161
+ "demucs.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/demucs.th"
162
+ },
163
+ "Demucs v1: demucs_extra": {
164
+ "demucs_extra.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/demucs_extra.th"
165
+ },
166
+ "Demucs v1: light": {
167
+ "light.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/light.th"
168
+ },
169
+ "Demucs v1: light_extra": {
170
+ "light_extra.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/light_extra.th"
171
+ },
172
+ "Demucs v1: tasnet": {
173
+ "tasnet.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/tasnet.th"
174
+ },
175
+ "Demucs v1: tasnet_extra": {
176
+ "tasnet_extra.th": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/tasnet_extra.th"
177
+ }
178
+ },
179
+ "mdx23_download_list": {
180
+
181
+ "MDX23C-8KFFT-InstVoc_HQ": {
182
+ "MDX23C-8KFFT-InstVoc_HQ.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C-8KFFT-InstVoc_HQ.ckpt",
183
+ "model_2_stem_full_band_8k.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_2_stem_full_band_8k.yaml"
184
+ },
185
+ "MDX23C-8KFFT-InstVoc_HQ_2": {
186
+ "model_bs_roformer_ep_317_sdr_12.9755.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C-8KFFT-InstVoc_HQ_2.ckpt",
187
+ "model_2_stem_full_band_8k.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_2_stem_full_band_8k.yaml"
188
+ },
189
+ "MDX23C_D1581": {
190
+ "model_bs_roformer_ep_317_sdr_12.9755.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MDX23C_D1581.ckpt",
191
+ "model_bs_roformer_ep_317_sdr_12.9755.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_2_stem_061321.yaml"
192
+ },
193
+ "Roformer Model: BS-Roformer-Viperx-1297": {
194
+ "model_bs_roformer_ep_317_sdr_12.9755.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_317_sdr_12.9755.ckpt",
195
+ "model_bs_roformer_ep_317_sdr_12.9755.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_317_sdr_12.9755.yaml"
196
+ },
197
+
198
+
199
+ "roformer_download_list": {
200
+ "Roformer Model: BS-Roformer-Viperx-1297": {
201
+ "model_bs_roformer_ep_317_sdr_12.9755.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_317_sdr_12.9755.ckpt",
202
+ "model_bs_roformer_ep_317_sdr_12.9755.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_317_sdr_12.9755.yaml"
203
+ },
204
+ "Roformer Model: BS-Roformer-Viperx-1296": {
205
+ "model_bs_roformer_ep_368_sdr_12.9628.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_368_sdr_12.9628.ckpt",
206
+ "model_bs_roformer_ep_368_sdr_12.9628.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_368_sdr_12.9628.yaml"
207
+ },
208
+ "Roformer Model: BS-Roformer-Viperx-1053": {
209
+ "model_bs_roformer_ep_937_sdr_10.5309.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_937_sdr_10.5309.ckpt",
210
+ "model_bs_roformer_ep_937_sdr_10.5309.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_bs_roformer_ep_937_sdr_10.5309.yaml"
211
+ },
212
+ "Roformer Model: Mel-Roformer-Viperx-1143": {
213
+ "model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_mel_band_roformer_ep_3005_sdr_11.4360.ckpt",
214
+ "model_mel_band_roformer_ep_3005_sdr_11.4360.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/model_mel_band_roformer_ep_3005_sdr_11.4360.yaml"
215
+ },
216
+ "Roformer Model: MelBand Roformer Kim | Inst V1 by Unwa": {
217
+ "melband_roformer_inst_v1.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.ckpt",
218
+ "melband_roformer_inst_v1.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.yaml"
219
+ },
220
+ "Roformer Model: MelBand Roformer Kim | Inst V2 by Unwa": {
221
+ "melband_roformer_inst_v1.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.ckpt",
222
+ "melband_roformer_inst_v1.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_melbandroformer_inst.yaml"
223
+ },
224
+ "Roformer Model: MelBand Roformer Kim": {
225
+ "MelBandRoformer.ckpt": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/MelBandRoformer.ckpt",
226
+ "config_vocals_mel_band_roformer_kim.yaml": "https://huggingface.co/lainlives/audio-separator-models/resolve/main/config_vocals_mel_band_roformer_kim.yaml"
227
+ }
228
+ }
assets/model_tools.py ADDED
@@ -0,0 +1,444 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import hashlib
2
+ import json
3
+ import os
4
+ import re
5
+ import subprocess
6
+ import sys
7
+ from collections import defaultdict
8
+ from concurrent.futures import ThreadPoolExecutor
9
+
10
+ import requests
11
+ from huggingface_hub import HfApi, snapshot_download
12
+
13
+
14
+ def extract_urls_from_file(input_filename, output_filename):
15
+ """
16
+ Extracts all URLs from an input text file and writes them to an output file.
17
+ """
18
+ # A general regular expression for finding URLs
19
+ # It looks for strings starting with http:// or https://, followed by non-whitespace characters
20
+ URL_REGEX = r"https?://\S+|www\.\S+"
21
+
22
+ try:
23
+ # 1. Read the contents of the input file
24
+ with open(input_filename, "r", encoding="utf-8") as f_in:
25
+ content = f_in.read()
26
+
27
+ # 2. Find all URLs in the content using re.findall()
28
+ urls = re.findall(URL_REGEX, content)
29
+
30
+ # Ensure only unique URLs are written by converting the list to a set and back to a list
31
+ unique_urls = sorted(list(set(urls)))
32
+
33
+ # 3. Write the extracted URLs to the output file, each on a new line
34
+ with open(output_filename, "w", encoding="utf-8") as f_out:
35
+ for url in unique_urls:
36
+ f_out.write(url + "\n")
37
+
38
+ print(
39
+ f"Found {len(unique_urls)} unique URLs and saved them to {output_filename}"
40
+ )
41
+
42
+ except FileNotFoundError:
43
+ print(f"Error: The file '{input_filename}' was not found.")
44
+ except Exception as e:
45
+ print(f"An error occurred: {e}")
46
+
47
+
48
+ def remove_chars_from_file(input_filename, chars_to_remove):
49
+ """
50
+ Reads a text file, removes specified characters, and writes the changes back to the file.
51
+
52
+ Args:
53
+ input_filename (str): The name of the input text file.
54
+ chars_to_remove (list): A list of characters to be removed (e.g., [',', '"', '}']).
55
+ """
56
+ try:
57
+ # Read the file content
58
+ with open(input_filename, "r") as file:
59
+ content = file.read()
60
+
61
+ # Remove the characters
62
+ for char in chars_to_remove:
63
+ content = content.replace(char, "")
64
+
65
+ # Write the modified content back to the file
66
+ with open(input_filename, "w") as file:
67
+ file.write(content)
68
+
69
+ print(
70
+ f"Successfully removed characters {chars_to_remove} from {input_filename}"
71
+ )
72
+
73
+ except FileNotFoundError:
74
+ print(f"Error: The file '{input_filename}' was not found.")
75
+ except Exception as e:
76
+ print(f"An error occurred: {e}")
77
+
78
+
79
+ def calculate_file_hash(filepath, block_size=65536):
80
+ """Calculates the SHA256 hash of a file's content."""
81
+ sha256 = hashlib.sha256()
82
+ try:
83
+ with open(filepath, "rb") as f:
84
+ while chunk := f.read(block_size):
85
+ sha256.update(chunk)
86
+ except FileNotFoundError:
87
+ return None # Handle cases where a file might be deleted during the scan
88
+
89
+ return sha256.hexdigest()
90
+
91
+
92
+ def find_and_remove_duplicates(directory="."):
93
+ """Finds duplicate files in the given directory and removes the one with the longer filename."""
94
+ hashes_to_files = defaultdict(list)
95
+ files_to_hash = {}
96
+
97
+ # Step 1: Hash all files in the directory
98
+ for filename in os.listdir(directory):
99
+ filepath = os.path.join(directory, filename)
100
+ if os.path.isfile(filepath):
101
+ file_hash = calculate_file_hash(filepath)
102
+ if file_hash:
103
+ hashes_to_files[file_hash].append(filepath)
104
+ files_to_hash[filepath] = file_hash
105
+
106
+ # Step 2: Identify duplicate groups (more than one file per hash)
107
+ duplicates = {h: files for h, files in hashes_to_files.items() if len(files) > 1}
108
+
109
+ if not duplicates:
110
+ print("No duplicate files found.")
111
+ return
112
+
113
+ # Step 3: Iterate over duplicates, compare filename length, and delete the longer one
114
+ for file_hash, file_list in duplicates.items():
115
+ # Sort files by filename length (ascending). The one to keep is the first item.
116
+ # If lengths are equal, an arbitrary one is kept.
117
+ files_sorted_by_length = sorted(file_list, key=len)
118
+ file_to_keep = files_sorted_by_length[0]
119
+ files_to_delete = files_sorted_by_length[1:]
120
+
121
+ print(f"\nDuplicate group (Hash: {file_hash[:10]}...):")
122
+ print(f" Keeping: {file_to_keep}")
123
+ for file_to_delete in files_to_delete:
124
+ try:
125
+ os.remove(file_to_delete)
126
+ print(f" Deleted: {file_to_delete} (longer filename)")
127
+ except OSError as e:
128
+ print(f" Error deleting {file_to_delete}: {e}")
129
+
130
+
131
+ def download_file(url, local_dir):
132
+ """Helper function to download a single file."""
133
+ try:
134
+ # Extract filename from URL (e.g., https://example.com/file.jpg -> file.jpg)
135
+ filename = url.split("/")[-1].split("?")[0] or "downloaded_file"
136
+ save_path = os.path.join(local_dir, filename)
137
+
138
+ # Download the file content
139
+ response = requests.get(url, stream=True, timeout=10)
140
+ response.raise_for_status()
141
+
142
+ with open(save_path, "wb") as f:
143
+ for chunk in response.iter_content(chunk_size=8192):
144
+ f.write(chunk)
145
+ return f"Successfully downloaded: {filename}"
146
+ except Exception as e:
147
+ return f"Failed to download {url}: {e}"
148
+
149
+
150
+ def download_files_from_txt(filename, local_dir):
151
+ """Main function to read URLs and download them using 20 threads."""
152
+ # Ensure local directory exists
153
+ if not os.path.exists(local_dir):
154
+ os.makedirs(local_dir)
155
+
156
+ # Read URLs from the text file
157
+ with open(filename, "r") as f:
158
+ urls = [line.strip() for line in f if line.strip()]
159
+
160
+ # Use ThreadPoolExecutor to handle 20 downloads at a time
161
+ with ThreadPoolExecutor(max_workers=20) as executor:
162
+ # Submit all download tasks to the pool
163
+ results = [executor.submit(download_file, url, local_dir) for url in urls]
164
+
165
+ # Monitor results as they complete
166
+ for future in results:
167
+ print(future.result())
168
+
169
+
170
+ def download_files_from_txt_aria(filename, local_dir):
171
+ command = [
172
+ "aria2c",
173
+ "--input-file",
174
+ filename,
175
+ "--dir",
176
+ local_dir,
177
+ "-c", # Continue downloading a partially downloaded file
178
+ "-j",
179
+ "30", # Set max concurrent downloads (adjust as needed)
180
+ "-x",
181
+ "16", # Set max connections per server (adjust as needed)
182
+ ]
183
+ print(f"Starting downloads with aria2c in directory: {os.path.abspath(local_dir)}")
184
+ try:
185
+ # Execute the command
186
+ subprocess.run(
187
+ command,
188
+ check=True,
189
+ stdout=subprocess.PIPE,
190
+ stderr=subprocess.PIPE,
191
+ text=True,
192
+ )
193
+ print("All downloads finished successfully.")
194
+ except subprocess.CalledProcessError as e:
195
+ print(f"An error occurred during aria2c execution: {e.stderr}")
196
+ except Exception as e:
197
+ print(f"An unexpected error occurred: {e}")
198
+ finally:
199
+ # os.remove(filename)
200
+ print(f"Downloaded all files: {filename}")
201
+
202
+
203
+ def download_hf_repo(repo_id, local_dir, repo_type, token):
204
+ if not token:
205
+ token = os.getenv("HF_TOKEN")
206
+ """
207
+ Downloads an entire Hugging Face repository to a specified local directory.
208
+ """
209
+ print(f"Downloading {repo_id} to {local_dir}...")
210
+
211
+ # Ensure the target directory exists
212
+ os.makedirs(local_dir, exist_ok=True)
213
+
214
+ # Download the snapshot
215
+ downloaded_path = snapshot_download(
216
+ repo_id=repo_id,
217
+ local_dir=local_dir,
218
+ token=token,
219
+ local_dir_use_symlinks=False, # Set to False to ensure actual files are moved to local_dir
220
+ repo_type=repo_type,
221
+ )
222
+
223
+ print(f"Download complete! Files are located in: {downloaded_path}")
224
+ return downloaded_path
225
+
226
+
227
+ def remove_duplicate_lines(input_file_path, output_file_path):
228
+ """
229
+ Reads lines from input_file_path, removes duplicates, and writes
230
+ unique lines to output_file_path while preserving order.
231
+ """
232
+ try:
233
+ # Use an ordered set to maintain the original file's line order.
234
+ # An easy way to do this in Python 3.7+ is using a dictionary's keys.
235
+ unique_lines_dict = {}
236
+ with open(input_file_path, "r") as input_file:
237
+ for line in input_file:
238
+ # Store line as a dictionary key; duplicates will be ignored
239
+ unique_lines_dict[line] = None
240
+
241
+ unique_lines = unique_lines_dict.keys()
242
+
243
+ with open(output_file_path, "w") as output_file:
244
+ # Write all unique lines to the new file
245
+ output_file.writelines(unique_lines)
246
+
247
+ print(f"Duplicates removed. Unique lines saved to '{output_file_path}'")
248
+
249
+ except FileNotFoundError:
250
+ print(f"Error: The file '{input_file_path}' was not found.")
251
+ except Exception as e:
252
+ print(f"An error occurred: {e}")
253
+
254
+
255
+ def push_to_hf(repo_id, repo_type):
256
+ api = HfApi()
257
+
258
+ print(f"Uploading current directory to: {repo_id}")
259
+
260
+ # Upload everything in the current directory ('.') to the repo root
261
+ api.upload_folder(
262
+ folder_path=".",
263
+ repo_id=repo_id,
264
+ repo_type=repo_type,
265
+ commit_message="Initial model upload",
266
+ )
267
+ print("Upload complete!")
268
+
269
+
270
+ def push_large_folder_to_hf(repo_id, repo_type):
271
+ api = HfApi()
272
+ print(f"Starting large folder upload to: {repo_id}")
273
+
274
+ # 3. Use upload_large_folder for resilience and speed
275
+ # This automatically handles multi-threading and local caching for resuming
276
+ api.upload_large_folder(
277
+ folder_path=".",
278
+ repo_id=repo_id,
279
+ repo_type=repo_type,
280
+ # Optional: ignore large junk files to save time
281
+ ignore_patterns=[
282
+ ".git/",
283
+ "__pycache__/",
284
+ "*.tmp",
285
+ ".DS_Store",
286
+ "*.cache",
287
+ "*.trash",
288
+ ],
289
+ )
290
+
291
+ print(
292
+ "\nUpload complete! Progress was cached locally; if it failed, just run again to resume."
293
+ )
294
+
295
+
296
+ def get_model_hash(model_path):
297
+ """
298
+ Get the hash of a model file
299
+ """
300
+ # print(f"Getting hash for model at {model_path}")
301
+ try:
302
+ with open(model_path, "rb") as f:
303
+ f.seek(
304
+ -10000 * 1024, 2
305
+ ) # Move the file pointer 10MB before the end of the file
306
+ hash_result = hashlib.md5(f.read()).hexdigest()
307
+ # print(f"Hash for {model_path}: {hash_result}")
308
+ return hash_result
309
+ except IOError:
310
+ with open(model_path, "rb") as f:
311
+ hash_result = hashlib.md5(f.read()).hexdigest()
312
+ # print(f"IOError encountered, hash for {model_path}: {hash_result}")
313
+ return hash_result
314
+
315
+
316
+ def download_file_if_missing(url, local_path):
317
+ """
318
+ Download a file from a URL if it doesn't exist locally
319
+ """
320
+ print(f"Checking if {local_path} needs to be downloaded from {url}")
321
+ if not os.path.exists(local_path):
322
+ print(f"Downloading {url} to {local_path}")
323
+ with requests.get(url, stream=True, timeout=10) as r:
324
+ r.raise_for_status()
325
+ with open(local_path, "wb") as f:
326
+ for chunk in r.iter_content(chunk_size=8192):
327
+ f.write(chunk)
328
+ print(f"Downloaded {url} to {local_path}")
329
+ else:
330
+ print(f"{local_path} already exists. Skipping download.")
331
+
332
+
333
+ def load_json_data(file_path):
334
+ """
335
+ Load JSON data from a file
336
+ """
337
+ print(f"Loading JSON data from {file_path}")
338
+ try:
339
+ with open(file_path, "r", encoding="utf-8") as file:
340
+ data = json.load(file)
341
+ print(f"Loaded JSON data successfully from {file_path}")
342
+ return data
343
+ except FileNotFoundError:
344
+ print(f"{file_path} not found.")
345
+ sys.exit(1)
346
+
347
+
348
+ def iterate_and_hash(
349
+ directory,
350
+ vr_model_data_url,
351
+ mdx_model_data_url,
352
+ vr_model_data_local_path,
353
+ mdx_model_data_local_path,
354
+ ):
355
+ """
356
+ Iterate through a directory and hash all model files
357
+ """
358
+ print(f"Iterating through directory {directory} to hash model files")
359
+ model_files = [
360
+ (file, os.path.join(root, file))
361
+ for root, _, files in os.walk(directory)
362
+ for file in files
363
+ if file.endswith((".pth", ".onnx"))
364
+ ]
365
+
366
+ download_file_if_missing(vr_model_data_url, vr_model_data_local_path)
367
+ download_file_if_missing(mdx_model_data_url, mdx_model_data_local_path)
368
+
369
+ vr_model_data = load_json_data(vr_model_data_local_path)
370
+ mdx_model_data = load_json_data(mdx_model_data_local_path)
371
+
372
+ combined_model_params = {
373
+ **vr_model_data,
374
+ **mdx_model_data,
375
+ }
376
+
377
+ model_info_list = []
378
+ for file, file_path in sorted(model_files):
379
+ file_hash = get_model_hash(file_path)
380
+ model_info = {
381
+ "file": file,
382
+ "hash": file_hash,
383
+ "params": combined_model_params.get(file_hash, "Parameters not found"),
384
+ }
385
+ model_info_list.append(model_info)
386
+
387
+ print(f"Writing model info list to {OUTPUT_PATH}")
388
+ with open(OUTPUT_PATH, "w", encoding="utf-8") as json_file:
389
+ json.dump(model_info_list, json_file, indent=4)
390
+ print(f"Successfully wrote model info list to {OUTPUT_PATH}")
391
+
392
+
393
+ def sort_links_by_extension(input_file, output_file):
394
+ # Define the custom priority order
395
+ priority = {
396
+ ".json": 0,
397
+ ".yaml": 1,
398
+ ".th": 2,
399
+ ".pth": 3,
400
+ ".ckpt": 4,
401
+ ".onnx": 5, # Added .onnx (common typo for .onnx or .onx)
402
+ }
403
+
404
+ # Handle the specific user request for .onnx
405
+ # Example: Map .onnx to priority 5
406
+ # priority['.onnx'] = 5
407
+
408
+ try:
409
+ with open(input_file, "r") as f:
410
+ # Read lines and strip whitespace/newlines
411
+ links = [line.strip() for line in f if line.strip()]
412
+
413
+ def sort_key(link):
414
+ # Extract extension (case-insensitive)
415
+ _, ext = os.path.splitext(link.lower())
416
+ # Return priority index; if not in list, place at the end (index 100)
417
+ return priority.get(ext, 100), link
418
+
419
+ # Sort the links
420
+ sorted_links = sorted(links, key=sort_key)
421
+
422
+ with open(output_file, "w") as f:
423
+ for link in sorted_links:
424
+ f.write(link + "\n")
425
+
426
+ print(f"Successfully sorted links into: {output_file}")
427
+
428
+ except FileNotFoundError:
429
+ print(f"Error: The file '{input_file}' was not found.")
430
+
431
+
432
+ # 1. Load the JSON data
433
+ def get_links_from_json(file_input):
434
+ try:
435
+ with open(file_input, "r") as file:
436
+ data = json.load(file)
437
+ except FileNotFoundError:
438
+ print("Error: file not found.")
439
+ data = {}
440
+
441
+ # 2. Process and Download
442
+ for model_name, links in data.items():
443
+ if not isinstance(links, list) or len(links) == 0:
444
+ continue
assets/model_url_sorter.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import os
2
+
3
+ from model_tools import sort_links_by_extension
4
+
5
+ if __name__ == "__main__":
6
+ sort_links_by_extension("links.txt", "sorted_links.txt")
assets/process_dirtylist-txt.py ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import hashlib
3
+ import json
4
+ import os
5
+ import re
6
+ import subprocess
7
+ import sys
8
+ from collections import defaultdict
9
+ from concurrent.futures import ThreadPoolExecutor
10
+
11
+ import requests
12
+ from huggingface_hub import HfApi, snapshot_download
13
+
14
+ import model_tools as mt
15
+ from model_tools import download_files_from_txt, download_hf_repo
16
+
17
+ REPO_OWNER = "lainlives"
18
+ REPO_NAME = "audio-separator-models"
19
+ repo_type = "model"
20
+
21
+ HF_TOKEN = os.getenv("HF_TOKEN")
22
+
23
+
24
+ def uploadthething():
25
+ repo_id = f"{REPO_OWNER}/{REPO_NAME}"
26
+
27
+ parser = argparse.ArgumentParser(description="Model Upload Tool")
28
+ parser.add_argument(
29
+ "--large",
30
+ action="store_true",
31
+ help="Upload using upload-large-folder",
32
+ )
33
+ parser.add_argument(
34
+ "--token",
35
+ type=str,
36
+ default=HF_TOKEN,
37
+ dest="HF_TOKEN",
38
+ help=f"Your access token.",
39
+ )
40
+ args = parser.parse_args()
41
+ if args.large:
42
+ mt.push_large_folder_to_hf(repo_id, repo_type)
43
+ else:
44
+ mt.push_to_hf(repo_id, repo_type)
45
+
46
+
47
+ def downloadthething():
48
+ token = os.getenv("HF_TOKEN")
49
+ repo_id = f"{REPO_OWNER}/{REPO_NAME}"
50
+ parser = argparse.ArgumentParser(description="Model Download Tool")
51
+ local_dir = os.getcwd()
52
+ parser.add_argument(
53
+ "--fromtxt",
54
+ action="store_true",
55
+ help="Download or process based on a text file instead of cloning Hugging Face repo",
56
+ )
57
+ args = parser.parse_args()
58
+ if args.fromtxt:
59
+ mt.download_files_from_txt("assets/links.txt", local_dir)
60
+ else:
61
+ mt.download_hf_repo(repo_id, local_dir, token)
62
+
63
+
64
+ if __name__ == "__main__":
65
+ input_filename = "dirtylist.txt"
66
+ characters_to_remove = [",", '"', "}"]
67
+
68
+ mt.extract_links_to_txt(input_filename, "/tmp/extracted_html")
69
+ mt.extract_urls_from_file(input_filename, "/tmp/extracted_other")
70
+ with open("/tmp/extracted_urls.txt", "w") as outfile:
71
+ with open("/tmp/extracted_html", "r") as infile1:
72
+ outfile.write(infile1.read())
73
+ with open("/tmp/extracted_other", "r") as infile2:
74
+ outfile.write(infile2.read())
75
+ mt.remove_chars_from_file("/tmp/extracted_urls.txt", characters_to_remove)
76
+ mt.remove_duplicate_lines(
77
+ "/tmp/extracted_urls.txt", "/tmp/extracted_urls_deduped.txt"
78
+ )
79
+ mt.sort_links_by_extension(
80
+ "/tmp/extracted_urls_deduped.txt", "/tmp/sorted_links.txt"
81
+ )
82
+ downloadthething()
83
+ uploadthething()
assets/upload_models.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/env python3
2
+ import argparse
3
+ import os
4
+
5
+ from huggingface_hub import HfApi
6
+
7
+ import model_tools as mt
8
+
9
+ REPO_OWNER = "lainlives"
10
+ REPO_NAME = "audio-separator-models"
11
+ repo_type = "model"
12
+ HF_TOKEN = os.getenv("HF_TOKEN")
13
+
14
+
15
+ if __name__ == "__main__":
16
+ repo_id = f"{REPO_OWNER}/{REPO_NAME}"
17
+
18
+ parser = argparse.ArgumentParser(description="Model Upload Tool")
19
+ parser.add_argument(
20
+ "--large",
21
+ action="store_true",
22
+ help="Upload using upload-large-folder",
23
+ )
24
+ parser.add_argument(
25
+ "--token",
26
+ type=str,
27
+ default=HF_TOKEN,
28
+ dest="HF_TOKEN",
29
+ help=f"Your access token.",
30
+ )
31
+ args = parser.parse_args()
32
+ if args.large:
33
+ mt.push_large_folder_to_hf(repo_id, repo_type)
34
+ else:
35
+ mt.push_to_hf(repo_id, repo_type)