lainlives commited on
Commit
4bb2704
·
verified ·
1 Parent(s): 53baf9c

Delete assets

Browse files
assets/__pycache__/model_tools.cpython-310.pyc DELETED
Binary file (10.2 kB)
 
assets/__pycache__/model_tools.cpython-313.pyc DELETED
Binary file (13.9 kB)
 
assets/calculate-model-hashes.py DELETED
@@ -1,21 +0,0 @@
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/delete_duplicate_models.py DELETED
@@ -1,8 +0,0 @@
1
- import os
2
- import hashlib
3
- from collections import defaultdict
4
- import model_tools as mt
5
-
6
- if __name__ == "__main__":
7
- print(f"Scanning directory: {os.getcwd()}")
8
- mt.find_and_remove_duplicates()
 
 
 
 
 
 
 
 
 
assets/download_models.py DELETED
@@ -1,26 +0,0 @@
1
- import requests
2
- import os
3
- import argparse
4
- from huggingface_hub import snapshot_download
5
- from model_tools import download_files_from_txt, download_hf_repo
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
- parser.add_argument(
18
- "--fromtxt",
19
- action="store_true",
20
- help="Download or process based on a text file instead of cloning Hugging Face repo",
21
- )
22
- args = parser.parse_args()
23
- if args.fromtxt:
24
- download_files_from_txt("assets/links.txt", local_dir)
25
- else:
26
- download_hf_repo(repo_id, local_dir, token)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/json_link_processor.py DELETED
@@ -1,7 +0,0 @@
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 DELETED
@@ -1,7 +0,0 @@
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.txt DELETED
@@ -1,248 +0,0 @@
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 DELETED
@@ -1,384 +0,0 @@
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 DELETED
@@ -1,137 +0,0 @@
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_tools.py DELETED
@@ -1,380 +0,0 @@
1
- import hashlib
2
- import json
3
- import os
4
- import sys
5
- import subprocess
6
- import requests
7
- from huggingface_hub import HfApi, snapshot_download
8
- import hashlib
9
- from collections import defaultdict
10
-
11
-
12
- from concurrent.futures import ThreadPoolExecutor
13
-
14
- def calculate_file_hash(filepath, block_size=65536):
15
- """Calculates the SHA256 hash of a file's content."""
16
- sha256 = hashlib.sha256()
17
- try:
18
- with open(filepath, "rb") as f:
19
- while chunk := f.read(block_size):
20
- sha256.update(chunk)
21
- except FileNotFoundError:
22
- return None # Handle cases where a file might be deleted during the scan
23
-
24
- return sha256.hexdigest()
25
-
26
-
27
- def find_and_remove_duplicates(directory="."):
28
- """Finds duplicate files in the given directory and removes the one with the longer filename."""
29
- hashes_to_files = defaultdict(list)
30
- files_to_hash = {}
31
-
32
- # Step 1: Hash all files in the directory
33
- for filename in os.listdir(directory):
34
- filepath = os.path.join(directory, filename)
35
- if os.path.isfile(filepath):
36
- file_hash = calculate_file_hash(filepath)
37
- if file_hash:
38
- hashes_to_files[file_hash].append(filepath)
39
- files_to_hash[filepath] = file_hash
40
-
41
- # Step 2: Identify duplicate groups (more than one file per hash)
42
- duplicates = {h: files for h, files in hashes_to_files.items() if len(files) > 1}
43
-
44
- if not duplicates:
45
- print("No duplicate files found.")
46
- return
47
-
48
- # Step 3: Iterate over duplicates, compare filename length, and delete the longer one
49
- for file_hash, file_list in duplicates.items():
50
- # Sort files by filename length (ascending). The one to keep is the first item.
51
- # If lengths are equal, an arbitrary one is kept.
52
- files_sorted_by_length = sorted(file_list, key=len)
53
- file_to_keep = files_sorted_by_length[0]
54
- files_to_delete = files_sorted_by_length[1:]
55
-
56
- print(f"\nDuplicate group (Hash: {file_hash[:10]}...):")
57
- print(f" Keeping: {file_to_keep}")
58
- for file_to_delete in files_to_delete:
59
- try:
60
- os.remove(file_to_delete)
61
- print(f" Deleted: {file_to_delete} (longer filename)")
62
- except OSError as e:
63
- print(f" Error deleting {file_to_delete}: {e}")
64
-
65
-
66
- def download_file(url, local_dir):
67
- """Helper function to download a single file."""
68
- try:
69
- # Extract filename from URL (e.g., https://example.com/file.jpg -> file.jpg)
70
- filename = url.split("/")[-1].split("?")[0] or "downloaded_file"
71
- save_path = os.path.join(local_dir, filename)
72
-
73
- # Download the file content
74
- response = requests.get(url, stream=True, timeout=10)
75
- response.raise_for_status()
76
-
77
- with open(save_path, "wb") as f:
78
- for chunk in response.iter_content(chunk_size=8192):
79
- f.write(chunk)
80
- return f"Successfully downloaded: {filename}"
81
- except Exception as e:
82
- return f"Failed to download {url}: {e}"
83
-
84
-
85
- def download_files_from_txt(filename, local_dir):
86
- """Main function to read URLs and download them using 20 threads."""
87
- # Ensure local directory exists
88
- if not os.path.exists(local_dir):
89
- os.makedirs(local_dir)
90
-
91
- # Read URLs from the text file
92
- with open(filename, "r") as f:
93
- urls = [line.strip() for line in f if line.strip()]
94
-
95
- # Use ThreadPoolExecutor to handle 20 downloads at a time
96
- with ThreadPoolExecutor(max_workers=20) as executor:
97
- # Submit all download tasks to the pool
98
- results = [executor.submit(download_file, url, local_dir) for url in urls]
99
-
100
- # Monitor results as they complete
101
- for future in results:
102
- print(future.result())
103
-
104
-
105
- def download_files_from_txt_aria(filename, local_dir):
106
- command = [
107
- "aria2c",
108
- "--input-file",
109
- filename,
110
- "--dir",
111
- local_dir,
112
- "-c", # Continue downloading a partially downloaded file
113
- "-j",
114
- "30", # Set max concurrent downloads (adjust as needed)
115
- "-x",
116
- "16", # Set max connections per server (adjust as needed)
117
- ]
118
- print(f"Starting downloads with aria2c in directory: {os.path.abspath(local_dir)}")
119
- try:
120
- # Execute the command
121
- subprocess.run(
122
- command,
123
- check=True,
124
- stdout=subprocess.PIPE,
125
- stderr=subprocess.PIPE,
126
- text=True,
127
- )
128
- print("All downloads finished successfully.")
129
- except subprocess.CalledProcessError as e:
130
- print(f"An error occurred during aria2c execution: {e.stderr}")
131
- except Exception as e:
132
- print(f"An unexpected error occurred: {e}")
133
- finally:
134
- # os.remove(filename)
135
- print(f"Downloaded all files: {filename}")
136
-
137
-
138
- def download_hf_repo(repo_id, local_dir, repo_type, token):
139
- if not token:
140
- token = os.getenv("HF_TOKEN")
141
- """
142
- Downloads an entire Hugging Face repository to a specified local directory.
143
- """
144
- print(f"Downloading {repo_id} to {local_dir}...")
145
-
146
- # Ensure the target directory exists
147
- os.makedirs(local_dir, exist_ok=True)
148
-
149
- # Download the snapshot
150
- downloaded_path = snapshot_download(
151
- repo_id=repo_id,
152
- local_dir=local_dir,
153
- token=token,
154
- local_dir_use_symlinks=False, # Set to False to ensure actual files are moved to local_dir
155
- repo_type=repo_type,
156
- )
157
-
158
- print(f"Download complete! Files are located in: {downloaded_path}")
159
- return downloaded_path
160
-
161
-
162
- def remove_duplicate_lines(input_file_path, output_file_path):
163
- """
164
- Reads lines from input_file_path, removes duplicates, and writes
165
- unique lines to output_file_path while preserving order.
166
- """
167
- try:
168
- # Use an ordered set to maintain the original file's line order.
169
- # An easy way to do this in Python 3.7+ is using a dictionary's keys.
170
- unique_lines_dict = {}
171
- with open(input_file_path, "r") as input_file:
172
- for line in input_file:
173
- # Store line as a dictionary key; duplicates will be ignored
174
- unique_lines_dict[line] = None
175
-
176
- unique_lines = unique_lines_dict.keys()
177
-
178
- with open(output_file_path, "w") as output_file:
179
- # Write all unique lines to the new file
180
- output_file.writelines(unique_lines)
181
-
182
- print(f"Duplicates removed. Unique lines saved to '{output_file_path}'")
183
-
184
- except FileNotFoundError:
185
- print(f"Error: The file '{input_file_path}' was not found.")
186
- except Exception as e:
187
- print(f"An error occurred: {e}")
188
-
189
-
190
- def push_to_hf(repo_id, repo_type):
191
- api = HfApi()
192
-
193
- print(f"Uploading current directory to: {repo_id}")
194
-
195
- # Upload everything in the current directory ('.') to the repo root
196
- api.upload_folder(
197
- folder_path=".",
198
- repo_id=repo_id,
199
- repo_type=repo_type,
200
- commit_message="Initial model upload",
201
- )
202
- print("Upload complete!")
203
-
204
-
205
- def push_large_folder_to_hf(repo_id, repo_type):
206
- api = HfApi()
207
- print(f"Starting large folder upload to: {repo_id}")
208
-
209
- # 3. Use upload_large_folder for resilience and speed
210
- # This automatically handles multi-threading and local caching for resuming
211
- api.upload_large_folder(
212
- folder_path=".",
213
- repo_id=repo_id,
214
- repo_type=repo_type,
215
- # Optional: ignore large junk files to save time
216
- ignore_patterns=[
217
- ".git/",
218
- "__pycache__/",
219
- "*.tmp",
220
- ".DS_Store",
221
- "*.cache",
222
- "*.trash",
223
- ],
224
- )
225
-
226
- print(
227
- "\nUpload complete! Progress was cached locally; if it failed, just run again to resume."
228
- )
229
-
230
-
231
- def get_model_hash(model_path):
232
- """
233
- Get the hash of a model file
234
- """
235
- # print(f"Getting hash for model at {model_path}")
236
- try:
237
- with open(model_path, "rb") as f:
238
- f.seek(
239
- -10000 * 1024, 2
240
- ) # Move the file pointer 10MB before the end of the file
241
- hash_result = hashlib.md5(f.read()).hexdigest()
242
- # print(f"Hash for {model_path}: {hash_result}")
243
- return hash_result
244
- except IOError:
245
- with open(model_path, "rb") as f:
246
- hash_result = hashlib.md5(f.read()).hexdigest()
247
- # print(f"IOError encountered, hash for {model_path}: {hash_result}")
248
- return hash_result
249
-
250
-
251
- def download_file_if_missing(url, local_path):
252
- """
253
- Download a file from a URL if it doesn't exist locally
254
- """
255
- print(f"Checking if {local_path} needs to be downloaded from {url}")
256
- if not os.path.exists(local_path):
257
- print(f"Downloading {url} to {local_path}")
258
- with requests.get(url, stream=True, timeout=10) as r:
259
- r.raise_for_status()
260
- with open(local_path, "wb") as f:
261
- for chunk in r.iter_content(chunk_size=8192):
262
- f.write(chunk)
263
- print(f"Downloaded {url} to {local_path}")
264
- else:
265
- print(f"{local_path} already exists. Skipping download.")
266
-
267
-
268
- def load_json_data(file_path):
269
- """
270
- Load JSON data from a file
271
- """
272
- print(f"Loading JSON data from {file_path}")
273
- try:
274
- with open(file_path, "r", encoding="utf-8") as file:
275
- data = json.load(file)
276
- print(f"Loaded JSON data successfully from {file_path}")
277
- return data
278
- except FileNotFoundError:
279
- print(f"{file_path} not found.")
280
- sys.exit(1)
281
-
282
-
283
- def iterate_and_hash(
284
- directory,
285
- vr_model_data_url,
286
- mdx_model_data_url,
287
- vr_model_data_local_path,
288
- mdx_model_data_local_path,
289
- ):
290
- """
291
- Iterate through a directory and hash all model files
292
- """
293
- print(f"Iterating through directory {directory} to hash model files")
294
- model_files = [
295
- (file, os.path.join(root, file))
296
- for root, _, files in os.walk(directory)
297
- for file in files
298
- if file.endswith((".pth", ".onnx"))
299
- ]
300
-
301
- download_file_if_missing(vr_model_data_url, vr_model_data_local_path)
302
- download_file_if_missing(mdx_model_data_url, mdx_model_data_local_path)
303
-
304
- vr_model_data = load_json_data(vr_model_data_local_path)
305
- mdx_model_data = load_json_data(mdx_model_data_local_path)
306
-
307
- combined_model_params = {
308
- **vr_model_data,
309
- **mdx_model_data,
310
- }
311
-
312
- model_info_list = []
313
- for file, file_path in sorted(model_files):
314
- file_hash = get_model_hash(file_path)
315
- model_info = {
316
- "file": file,
317
- "hash": file_hash,
318
- "params": combined_model_params.get(file_hash, "Parameters not found"),
319
- }
320
- model_info_list.append(model_info)
321
-
322
- print(f"Writing model info list to {OUTPUT_PATH}")
323
- with open(OUTPUT_PATH, "w", encoding="utf-8") as json_file:
324
- json.dump(model_info_list, json_file, indent=4)
325
- print(f"Successfully wrote model info list to {OUTPUT_PATH}")
326
-
327
-
328
- def sort_links_by_extension(input_file, output_file):
329
- # Define the custom priority order
330
- priority = {
331
- ".json": 0,
332
- ".yaml": 1,
333
- ".th": 2,
334
- ".pth": 3,
335
- ".ckpt": 4,
336
- ".onnx": 5, # Added .onnx (common typo for .onnx or .onx)
337
- }
338
-
339
- # Handle the specific user request for .onnx
340
- # Example: Map .onnx to priority 5
341
- # priority['.onnx'] = 5
342
-
343
- try:
344
- with open(input_file, "r") as f:
345
- # Read lines and strip whitespace/newlines
346
- links = [line.strip() for line in f if line.strip()]
347
-
348
- def sort_key(link):
349
- # Extract extension (case-insensitive)
350
- _, ext = os.path.splitext(link.lower())
351
- # Return priority index; if not in list, place at the end (index 100)
352
- return priority.get(ext, 100), link
353
-
354
- # Sort the links
355
- sorted_links = sorted(links, key=sort_key)
356
-
357
- with open(output_file, "w") as f:
358
- for link in sorted_links:
359
- f.write(link + "\n")
360
-
361
- print(f"Successfully sorted links into: {output_file}")
362
-
363
- except FileNotFoundError:
364
- print(f"Error: The file '{input_file}' was not found.")
365
-
366
-
367
- # 1. Load the JSON data
368
- # Ensure 'models.json' is in your current directory
369
- def get_links_from_json(file_input):
370
- try:
371
- with open(file_input, "r") as file:
372
- data = json.load(file)
373
- except FileNotFoundError:
374
- print("Error: 'models.json' not found.")
375
- data = {}
376
-
377
- # 2. Process and Download
378
- for model_name, links in data.items():
379
- if not isinstance(links, list) or len(links) == 0:
380
- continue
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/model_url_sorter.py DELETED
@@ -1,5 +0,0 @@
1
- import os
2
- from model_tools import sort_links_by_extension
3
-
4
- if __name__ == "__main__":
5
- sort_links_by_extension("links.txt", "sorted_links.txt")
 
 
 
 
 
 
assets/upload_models.py DELETED
@@ -1,33 +0,0 @@
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)