lainlives commited on
Commit
471879e
·
verified ·
1 Parent(s): a78be39

Add files using upload-large-folder tool

Browse files
.gitattributes ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ UVR-DeNoise.pth filter=lfs diff=lfs merge=lfs -text
2
+ MDX23C-8KFFT-InstVoc_HQ.ckpt filter=lfs diff=lfs merge=lfs -text
3
+ MDX23C-8KFFT-InstVoc_HQ_2.ckpt filter=lfs diff=lfs merge=lfs -text
4
+ mel_band_roformer_instrumental_fullness_v3_gabox.ckpt filter=lfs diff=lfs merge=lfs -text
5
+ mel_band_roformer_instrumental_fullness_v2_gabox.ckpt filter=lfs diff=lfs merge=lfs -text
assets/__pycache__/model_tools.cpython-313.pyc ADDED
Binary file (12.6 kB). View file
 
assets/calculate-model-hashes.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+
3
+ import os
4
+ import sys
5
+ import json
6
+ import hashlib
7
+ import requests
8
+ import model_tools as mt
9
+
10
+ MODEL_CACHE_PATH = "/tmp/audio-separator-models"
11
+ VR_MODEL_DATA_LOCAL_PATH = f"{MODEL_CACHE_PATH}/vr_model_data.json"
12
+ MDX_MODEL_DATA_LOCAL_PATH = f"{MODEL_CACHE_PATH}/mdx_model_data.json"
13
+
14
+ MODEL_DATA_URL_PREFIX = "https://raw.githubusercontent.com/TRvlvr/application_data/main"
15
+ VR_MODEL_DATA_URL = f"{MODEL_DATA_URL_PREFIX}/vr_model_data/model_data_new.json"
16
+ MDX_MODEL_DATA_URL = f"{MODEL_DATA_URL_PREFIX}/mdx_model_data/model_data_new.json"
17
+
18
+ OUTPUT_PATH = f"{MODEL_CACHE_PATH}/model_hashes.json"
19
+
20
+ if __name__ == "__main__":
21
+ mt.iterate_and_hash(MODEL_CACHE_PATH)
assets/download_models.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import os
3
+ import argparse
4
+ from huggingface_hub import snapshot_download
5
+ import model_tools as mt
6
+
7
+ REPO_OWNER = "lainlives"
8
+ REPO_NAME = "audio-separator-models"
9
+ repo_type = "model"
10
+
11
+
12
+ if __name__ == "__main__":
13
+ token = os.getenv("HF_TOKEN")
14
+ repo_id = f"{REPO_OWNER}/{REPO_NAME}"
15
+ parser = argparse.ArgumentParser(description="Model Download Tool")
16
+ local_dir = os.getcwd()
17
+
18
+ # action="store_true" makes the flag a boolean (True if present, False if not)
19
+ parser.add_argument(
20
+ "--fromtxt",
21
+ action="store_true",
22
+ help="Download or process based on a text file instead of cloning repo",
23
+ )
24
+ args = parser.parse_args()
25
+ if args.fromtxt:
26
+ mt.download_files_from_txt("assets/links.txt", local_dir)
27
+ else:
28
+ mt.download_hf_repo(repo_id, local_dir, token)
assets/json_link_processor.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import json
2
+ import urllib.request
3
+ import os
4
+ import model_tools as mt
5
+
6
+ if __name__ == "__main__":
7
+ mt.get_links_from_json("models.json")
assets/list_duplicate_remove.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import model_tools as mt
2
+
3
+ # --- Example Usage ---
4
+ # Make sure you have a file named 'input_data.txt' in the same directory
5
+ input_filename = "file.txt"
6
+ output_filename = "processed_links.txt"
7
+
8
+ if __name__ == "__main__":
9
+ mt.remove_duplicate_lines(input_filename, output_filename)
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_tools.py ADDED
@@ -0,0 +1,297 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import hashlib
3
+ import json
4
+ import os
5
+ import sys
6
+ import urllib.request
7
+ import requests
8
+ from huggingface_hub import HfApi, snapshot_download
9
+
10
+
11
+ def download_files_from_txt(filename, local_dir):
12
+ """
13
+ Reads a text file containing a list of URLs and downloads each,
14
+ skipping any that already exist in the local directory.
15
+ """
16
+ if not os.path.exists(filename):
17
+ print(f"Error: {filename} not found.")
18
+ return
19
+
20
+ # Create the directory if it doesn't exist
21
+ if local_dir and not os.path.exists(local_dir):
22
+ os.makedirs(local_dir)
23
+
24
+ with open(filename, "r") as f:
25
+ urls = [line.strip() for line in f if line.strip()]
26
+
27
+ print(f"Found {len(urls)} links to process.")
28
+
29
+ for url in urls:
30
+ # Determine local filename
31
+ base_name = url.split("/")[-1] or "downloaded_file"
32
+ local_filename = os.path.join(local_dir, base_name) if local_dir else base_name
33
+
34
+ # SKIP if file already exists
35
+ if os.path.isfile(local_filename):
36
+ print(f"⏭️ Skipping (already exists): {local_filename}")
37
+ continue
38
+
39
+ try:
40
+ print(f"Downloading: {local_filename} from {url}")
41
+ response = requests.get(url, allow_redirects=True, stream=True)
42
+ response.raise_for_status()
43
+
44
+ with open(local_filename, "wb") as file:
45
+ for chunk in response.iter_content(chunk_size=8192):
46
+ file.write(chunk)
47
+ print(f"✅ Successfully downloaded: {local_filename}")
48
+
49
+ except requests.exceptions.RequestException as e:
50
+ print(f"❌ Failed to download {url}: {e}")
51
+ except Exception as e:
52
+ print(f"An unexpected error occurred while processing {url}: {e}")
53
+
54
+
55
+ def download_hf_repo(repo_id, local_dir, repo_type, token):
56
+ if not token:
57
+ token = os.getenv("HF_TOKEN")
58
+ """
59
+ Downloads an entire Hugging Face repository to a specified local directory.
60
+ """
61
+ print(f"Downloading {repo_id} to {local_dir}...")
62
+
63
+ # Ensure the target directory exists
64
+ os.makedirs(local_dir, exist_ok=True)
65
+
66
+ # Download the snapshot
67
+ downloaded_path = snapshot_download(
68
+ repo_id=repo_id,
69
+ local_dir=local_dir,
70
+ token=token,
71
+ local_dir_use_symlinks=False, # Set to False to ensure actual files are moved to local_dir
72
+ repo_type=repo_type,
73
+ )
74
+
75
+ print(f"Download complete! Files are located in: {downloaded_path}")
76
+ return downloaded_path
77
+
78
+
79
+ def remove_duplicate_lines(input_file_path, output_file_path):
80
+ """
81
+ Reads lines from input_file_path, removes duplicates, and writes
82
+ unique lines to output_file_path while preserving order.
83
+ """
84
+ try:
85
+ # Use an ordered set to maintain the original file's line order.
86
+ # An easy way to do this in Python 3.7+ is using a dictionary's keys.
87
+ unique_lines_dict = {}
88
+ with open(input_file_path, "r") as input_file:
89
+ for line in input_file:
90
+ # Store line as a dictionary key; duplicates will be ignored
91
+ unique_lines_dict[line] = None
92
+
93
+ unique_lines = unique_lines_dict.keys()
94
+
95
+ with open(output_file_path, "w") as output_file:
96
+ # Write all unique lines to the new file
97
+ output_file.writelines(unique_lines)
98
+
99
+ print(f"Duplicates removed. Unique lines saved to '{output_file_path}'")
100
+
101
+ except FileNotFoundError:
102
+ print(f"Error: The file '{input_file_path}' was not found.")
103
+ except Exception as e:
104
+ print(f"An error occurred: {e}")
105
+
106
+
107
+ def push_to_hf(repo_id, repo_type):
108
+ api = HfApi()
109
+
110
+ print(f"Uploading current directory to: {repo_id}")
111
+
112
+ # Upload everything in the current directory ('.') to the repo root
113
+ api.upload_folder(
114
+ folder_path=".",
115
+ repo_id=repo_id,
116
+ repo_type=repo_type,
117
+ commit_message="Initial model upload",
118
+ )
119
+ print("Upload complete!")
120
+
121
+
122
+ def push_large_folder_to_hf(repo_id, repo_type):
123
+ api = HfApi()
124
+ print(f"Starting large folder upload to: {repo_id}")
125
+
126
+ # 3. Use upload_large_folder for resilience and speed
127
+ # This automatically handles multi-threading and local caching for resuming
128
+ api.upload_large_folder(
129
+ folder_path=".",
130
+ repo_id=repo_id,
131
+ repo_type=repo_type,
132
+ # Optional: ignore large junk files to save time
133
+ ignore_patterns=[
134
+ ".git/",
135
+ "__pycache__/",
136
+ "*.tmp",
137
+ ".DS_Store",
138
+ "*.cache",
139
+ "*.trash",
140
+ ],
141
+ )
142
+
143
+ print(
144
+ "\nUpload complete! Progress was cached locally; if it failed, just run again to resume."
145
+ )
146
+
147
+
148
+ def get_model_hash(model_path):
149
+ """
150
+ Get the hash of a model file
151
+ """
152
+ # print(f"Getting hash for model at {model_path}")
153
+ try:
154
+ with open(model_path, "rb") as f:
155
+ f.seek(
156
+ -10000 * 1024, 2
157
+ ) # Move the file pointer 10MB before the end of the file
158
+ hash_result = hashlib.md5(f.read()).hexdigest()
159
+ # print(f"Hash for {model_path}: {hash_result}")
160
+ return hash_result
161
+ except IOError:
162
+ with open(model_path, "rb") as f:
163
+ hash_result = hashlib.md5(f.read()).hexdigest()
164
+ # print(f"IOError encountered, hash for {model_path}: {hash_result}")
165
+ return hash_result
166
+
167
+
168
+ def download_file_if_missing(url, local_path):
169
+ """
170
+ Download a file from a URL if it doesn't exist locally
171
+ """
172
+ print(f"Checking if {local_path} needs to be downloaded from {url}")
173
+ if not os.path.exists(local_path):
174
+ print(f"Downloading {url} to {local_path}")
175
+ with requests.get(url, stream=True, timeout=10) as r:
176
+ r.raise_for_status()
177
+ with open(local_path, "wb") as f:
178
+ for chunk in r.iter_content(chunk_size=8192):
179
+ f.write(chunk)
180
+ print(f"Downloaded {url} to {local_path}")
181
+ else:
182
+ print(f"{local_path} already exists. Skipping download.")
183
+
184
+
185
+ def load_json_data(file_path):
186
+ """
187
+ Load JSON data from a file
188
+ """
189
+ print(f"Loading JSON data from {file_path}")
190
+ try:
191
+ with open(file_path, "r", encoding="utf-8") as file:
192
+ data = json.load(file)
193
+ print(f"Loaded JSON data successfully from {file_path}")
194
+ return data
195
+ except FileNotFoundError:
196
+ print(f"{file_path} not found.")
197
+ sys.exit(1)
198
+
199
+
200
+ def iterate_and_hash(
201
+ directory,
202
+ vr_model_data_url,
203
+ mdx_model_data_url,
204
+ vr_model_data_local_path,
205
+ mdx_model_data_local_path,
206
+ ):
207
+ """
208
+ Iterate through a directory and hash all model files
209
+ """
210
+ print(f"Iterating through directory {directory} to hash model files")
211
+ model_files = [
212
+ (file, os.path.join(root, file))
213
+ for root, _, files in os.walk(directory)
214
+ for file in files
215
+ if file.endswith((".pth", ".onnx"))
216
+ ]
217
+
218
+ download_file_if_missing(vr_model_data_url, vr_model_data_local_path)
219
+ download_file_if_missing(mdx_model_data_url, mdx_model_data_local_path)
220
+
221
+ vr_model_data = load_json_data(vr_model_data_local_path)
222
+ mdx_model_data = load_json_data(mdx_model_data_local_path)
223
+
224
+ combined_model_params = {
225
+ **vr_model_data,
226
+ **mdx_model_data,
227
+ }
228
+
229
+ model_info_list = []
230
+ for file, file_path in sorted(model_files):
231
+ file_hash = get_model_hash(file_path)
232
+ model_info = {
233
+ "file": file,
234
+ "hash": file_hash,
235
+ "params": combined_model_params.get(file_hash, "Parameters not found"),
236
+ }
237
+ model_info_list.append(model_info)
238
+
239
+ print(f"Writing model info list to {OUTPUT_PATH}")
240
+ with open(OUTPUT_PATH, "w", encoding="utf-8") as json_file:
241
+ json.dump(model_info_list, json_file, indent=4)
242
+ print(f"Successfully wrote model info list to {OUTPUT_PATH}")
243
+
244
+
245
+ def sort_links_by_extension(input_file, output_file):
246
+ # Define the custom priority order
247
+ priority = {
248
+ ".json": 0,
249
+ ".yaml": 1,
250
+ ".th": 2,
251
+ ".pth": 3,
252
+ ".ckpt": 4,
253
+ ".onnx": 5, # Added .onnx (common typo for .onnx or .onx)
254
+ }
255
+
256
+ # Handle the specific user request for .onnx
257
+ # Example: Map .onnx to priority 5
258
+ # priority['.onnx'] = 5
259
+
260
+ try:
261
+ with open(input_file, "r") as f:
262
+ # Read lines and strip whitespace/newlines
263
+ links = [line.strip() for line in f if line.strip()]
264
+
265
+ def sort_key(link):
266
+ # Extract extension (case-insensitive)
267
+ _, ext = os.path.splitext(link.lower())
268
+ # Return priority index; if not in list, place at the end (index 100)
269
+ return priority.get(ext, 100), link
270
+
271
+ # Sort the links
272
+ sorted_links = sorted(links, key=sort_key)
273
+
274
+ with open(output_file, "w") as f:
275
+ for link in sorted_links:
276
+ f.write(link + "\n")
277
+
278
+ print(f"Successfully sorted links into: {output_file}")
279
+
280
+ except FileNotFoundError:
281
+ print(f"Error: The file '{input_file}' was not found.")
282
+
283
+
284
+ # 1. Load the JSON data
285
+ # Ensure 'models.json' is in your current directory
286
+ def get_links_from_json(file_input):
287
+ try:
288
+ with open(file_input, "r") as file:
289
+ data = json.load(file)
290
+ except FileNotFoundError:
291
+ print("Error: 'models.json' not found.")
292
+ data = {}
293
+
294
+ # 2. Process and Download
295
+ for model_name, links in data.items():
296
+ if not isinstance(links, list) or len(links) == 0:
297
+ continue
assets/model_url_sorter.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import os
2
+ import model_tools as mt
3
+
4
+ if __name__ == "__main__":
5
+ # Ensure you have a file named 'links.txt' in the same directory
6
+ mt.sort_links_by_extension("links.txt", "sorted_links.txt")
assets/upload_models.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/env python3
2
+ import os
3
+ import argparse
4
+ from huggingface_hub import HfApi
5
+ import model_tools as mt
6
+
7
+ REPO_OWNER = "lainlives"
8
+ REPO_NAME = "audio-separator-models"
9
+ repo_type = "model"
10
+ HF_TOKEN = os.getenv("HF_TOKEN")
11
+
12
+
13
+ if __name__ == "__main__":
14
+ repo_id = f"{REPO_OWNER}/{REPO_NAME}"
15
+
16
+ parser = argparse.ArgumentParser(description="Model Upload Tool")
17
+ parser.add_argument(
18
+ "--large",
19
+ action="store_true",
20
+ help="Upload using upload-large-folder",
21
+ )
22
+ parser.add_argument(
23
+ "--token",
24
+ type=str,
25
+ default=HF_TOKEN,
26
+ dest="HF_TOKEN",
27
+ help=f"Your access token.",
28
+ )
29
+ args = parser.parse_args()
30
+ if args.large:
31
+ mt.push_large_folder_to_hf(repo_id, repo_type)
32
+ else:
33
+ mt.push_to_hf(repo_id, repo_type)