import os import yaml from urllib.parse import quote from pathlib import Path # Temel dizin ve checkpoint dizini sabit olarak tanımlanıyor BASE_DIR = os.path.dirname(os.path.abspath(__file__)) CHECKPOINT_DIR = os.path.join(BASE_DIR, 'ckpts') def conf_edit(config_path, chunk_size, overlap): """Edits the configuration file with chunk size and overlap.""" full_config_path = os.path.join(CHECKPOINT_DIR, os.path.basename(config_path)) if not os.path.exists(full_config_path): raise FileNotFoundError(f"Configuration file not found: {full_config_path}") with open(full_config_path, 'r') as f: data = yaml.load(f, Loader=yaml.SafeLoader) if 'use_amp' not in data.keys(): data['training']['use_amp'] = True data['audio']['chunk_size'] = chunk_size data['inference']['num_overlap'] = overlap if data['inference']['batch_size'] == 1: data['inference']['batch_size'] = 2 print(f"Using custom overlap and chunk_size: overlap={overlap}, chunk_size={chunk_size}") with open(full_config_path, 'w') as f: yaml.dump(data, f, default_flow_style=False, sort_keys=False, Dumper=yaml.Dumper) def download_file(url): """Downloads a file from a URL.""" import requests encoded_url = quote(url, safe=':/') path = CHECKPOINT_DIR os.makedirs(path, exist_ok=True) filename = os.path.basename(encoded_url) file_path = os.path.join(path, filename) if os.path.exists(file_path): print(f"File '{filename}' already exists at '{path}'.") return try: response = requests.get(url) if response.status_code == 200: with open(file_path, 'wb') as f: f.write(response.content) print(f"File '{filename}' downloaded successfully") else: print(f"Error downloading '{filename}': Status code {response.status_code}") except Exception as e: print(f"Error downloading file '{filename}' from '{url}': {e}") # Model konfigurasyonlarını kategorize bir sözlükte tut MODEL_CONFIGS = { "Vocal Models": { 'VOCALS-InstVocHQ': { 'model_type': 'mdx23c', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_vocals_mdx23c.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_vocals_mdx23c_sdr_10.17.ckpt'), 'download_urls': [ 'https://raw.githubusercontent.com/ZFTurbo/Music-Source-Separation-Training/main/configs/config_vocals_mdx23c.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.0/model_vocals_mdx23c_sdr_10.17.ckpt' ], 'needs_conf_edit': False }, 'VOCALS-MelBand-Roformer (by KimberleyJSN)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_vocals_mel_band_roformer_kj.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'MelBandRoformer.ckpt'), 'download_urls': [ 'https://raw.githubusercontent.com/ZFTurbo/Music-Source-Separation-Training/main/configs/KimberleyJensen/config_vocals_mel_band_roformer_kj.yaml', 'https://huggingface.co/KimberleyJSN/melbandroformer/resolve/main/MelBandRoformer.ckpt' ], 'needs_conf_edit': True }, 'VOCALS-BS-Roformer_1297 (by viperx)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_317_sdr_12.9755.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_317_sdr_12.9755.ckpt'), 'download_urls': [ 'https://raw.githubusercontent.com/ZFTurbo/Music-Source-Separation-Training/main/configs/viperx/model_bs_roformer_ep_317_sdr_12.9755.yaml', 'https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/model_bs_roformer_ep_317_sdr_12.9755.ckpt' ], 'needs_conf_edit': True }, 'VOCALS-BS-Roformer_1296 (by viperx)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_368_sdr_12.9628.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_368_sdr_12.9628.ckpt'), 'download_urls': [ 'https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/model_bs_roformer_ep_368_sdr_12.9628.ckpt', 'https://raw.githubusercontent.com/TRvlvr/application_data/main/mdx_model_data/mdx_c_configs/model_bs_roformer_ep_368_sdr_12.9628.yaml' ], 'needs_conf_edit': True }, 'VOCALS-BS-RoformerLargev1 (by unwa)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_bsrofoL.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'BS-Roformer_LargeV1.ckpt'), 'download_urls': [ 'https://huggingface.co/jarredou/unwa_bs_roformer/resolve/main/BS-Roformer_LargeV1.ckpt', 'https://huggingface.co/jarredou/unwa_bs_roformer/raw/main/config_bsrofoL.yaml' ], 'needs_conf_edit': True }, 'VOCALS-Mel-Roformer big beta 4 (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_melbandroformer_big_beta4.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'melband_roformer_big_beta4.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-big/resolve/main/melband_roformer_big_beta4.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-big/raw/main/config_melbandroformer_big_beta4.yaml' ], 'needs_conf_edit': True }, 'VOCALS-Melband-Roformer BigBeta5e (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'big_beta5e.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'big_beta5e.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-big/resolve/main/big_beta5e.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-big/resolve/main/big_beta5e.yaml' ], 'needs_conf_edit': True }, 'VOCALS-VitLarge23 (by ZFTurbo)': { 'model_type': 'segm_models', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_vocals_segm_models.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_vocals_segm_models_sdr_9.77.ckpt'), 'download_urls': [ 'https://raw.githubusercontent.com/ZFTurbo/Music-Source-Separation-Training/refs/heads/main/configs/config_vocals_segm_models.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.0/model_vocals_segm_models_sdr_9.77.ckpt' ], 'needs_conf_edit': False }, 'VOCALS-MelBand-Roformer Kim FT (by Unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_kimmel_unwa_ft.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'kimmel_unwa_ft.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Kim-Mel-Band-Roformer-FT/resolve/main/kimmel_unwa_ft.ckpt', 'https://huggingface.co/pcunwa/Kim-Mel-Band-Roformer-FT/resolve/main/config_kimmel_unwa_ft.yaml' ], 'needs_conf_edit': True }, 'VOCALS-MelBand-Roformer (by Becruily)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_instrumental_becruily.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'mel_band_roformer_vocals_becruily.ckpt'), 'download_urls': [ 'https://huggingface.co/becruily/mel-band-roformer-vocals/resolve/main/config_vocals_becruily.yaml', 'https://huggingface.co/becruily/mel-band-roformer-vocals/resolve/main/mel_band_roformer_vocals_becruily.ckpt' ], 'needs_conf_edit': True }, 'VOCALS-Male Female-BS-RoFormer Male Female Beta 7_2889 (by aufr33)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_chorus_male_female_bs_roformer.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'bs_roformer_male_female_by_aufr33_sdr_7.2889.ckpt'), 'download_urls': [ 'https://huggingface.co/RareSirMix/AIModelRehosting/resolve/main/bs_roformer_male_female_by_aufr33_sdr_7.2889.ckpt', 'https://huggingface.co/Sucial/Chorus_Male_Female_BS_Roformer/resolve/main/config_chorus_male_female_bs_roformer.yaml' ], 'needs_conf_edit': True }, 'VOCALS-MelBand-Roformer Kim FT 2 (by Unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_kimmel_unwa_ft.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'kimmel_unwa_ft2.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Kim-Mel-Band-Roformer-FT/resolve/main/config_kimmel_unwa_ft.yaml', 'https://huggingface.co/pcunwa/Kim-Mel-Band-Roformer-FT/resolve/main/kimmel_unwa_ft2.ckpt' ], 'needs_conf_edit': True }, 'voc_gaboxBSroformer (by Gabox)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'voc_gaboxBSroformer.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'voc_gaboxBSR.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/BSRoformerVocTest/resolve/main/voc_gaboxBSroformer.yaml', 'https://huggingface.co/GaboxR67/BSRoformerVocTest/resolve/main/voc_gaboxBSR.ckpt' ], 'needs_conf_edit': True }, 'voc_gaboxMelReformer (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'voc_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'voc_gabox.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gabox.ckpt' ], 'needs_conf_edit': True }, 'voc_gaboxMelReformerFV1 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'voc_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'voc_gaboxFv1.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gaboxFv1.ckpt' ], 'needs_conf_edit': True }, 'voc_gaboxMelReformerFV2 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'voc_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'voc_gaboxFv2.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gaboxFv2.ckpt' ], 'needs_conf_edit': True }, 'VOCALS-MelBand-Roformer Kim FT 2 Blendless (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_kimmel_unwa_ft.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'kimmel_unwa_ft2_bleedless.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Kim-Mel-Band-Roformer-FT/resolve/main/config_kimmel_unwa_ft.yaml', 'https://huggingface.co/pcunwa/Kim-Mel-Band-Roformer-FT/resolve/main/kimmel_unwa_ft2_bleedless.ckpt' ], 'needs_conf_edit': True }, 'Voc_Fv3 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'voc_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'voc_Fv3.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/vocals/voc_Fv3.ckpt' ], 'needs_conf_edit': True }, 'FullnessVocalModel (by Amane)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'FullnessVocalModel.ckpt'), 'download_urls': [ 'https://huggingface.co/Aname-Tommy/MelBandRoformers/blob/main/config.yaml', 'https://huggingface.co/Aname-Tommy/MelBandRoformers/blob/main/FullnessVocalModel.ckpt' ], 'needs_conf_edit': True } }, "Instrumental Models": { 'INST-Mel-Roformer v1 (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_melbandroformer_inst.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'melband_roformer_inst_v1.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-Inst/resolve/main/melband_roformer_inst_v1.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-Inst/raw/main/config_melbandroformer_inst.yaml' ], 'needs_conf_edit': True }, 'INST-Mel-Roformer v2 (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_melbandroformer_inst_v2.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'melband_roformer_inst_v2.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-Inst/resolve/main/melband_roformer_inst_v2.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-Inst/raw/main/config_melbandroformer_inst_v2.yaml' ], 'needs_conf_edit': True }, 'INST-VOC-Mel-Roformer a.k.a. duality (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_melbandroformer_instvoc_duality.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'melband_roformer_instvoc_duality_v1.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-InstVoc-Duality/resolve/main/melband_roformer_instvoc_duality_v1.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-InstVoc-Duality/raw/main/config_melbandroformer_instvoc_duality.yaml' ], 'needs_conf_edit': True }, 'INST-VOC-Mel-Roformer a.k.a. duality v2 (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_melbandroformer_instvoc_duality.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'melband_roformer_instvox_duality_v2.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-InstVoc-Duality/resolve/main/melband_roformer_instvox_duality_v2.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-InstVoc-Duality/raw/main/config_melbandroformer_instvoc_duality.yaml' ], 'needs_conf_edit': True }, 'INST-MelBand-Roformer (by Becruily)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_instrumental_becruily.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'mel_band_roformer_instrumental_becruily.ckpt'), 'download_urls': [ 'https://huggingface.co/becruily/mel-band-roformer-instrumental/resolve/main/config_instrumental_becruily.yaml', 'https://huggingface.co/becruily/mel-band-roformer-instrumental/resolve/main/mel_band_roformer_instrumental_becruily.ckpt' ], 'needs_conf_edit': True }, 'inst_v1e (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_melbandroformer_inst.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_v1e.ckpt'), 'download_urls': [ 'https://huggingface.co/pcunwa/Mel-Band-Roformer-Inst/resolve/main/inst_v1e.ckpt', 'https://huggingface.co/pcunwa/Mel-Band-Roformer-Inst/resolve/main/config_melbandroformer_inst.yaml' ], 'needs_conf_edit': True }, 'inst_gabox (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_gabox.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.ckpt' ], 'needs_conf_edit': True }, 'inst_gaboxBV1 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_gaboxBv1.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gaboxBv1.ckpt' ], 'needs_conf_edit': True }, 'inst_gaboxBV2 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_gaboxBv2.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gaboxBv2.ckpt' ], 'needs_conf_edit': True }, 'inst_gaboxBFV1 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'gaboxFv1.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gaboxFv1.ckpt' ], 'needs_conf_edit': True }, 'inst_gaboxFV2 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_gaboxFv2.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gaboxFv2.ckpt' ], 'needs_conf_edit': True }, 'inst_Fv3 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_gaboxFv3.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gaboxFv3.ckpt' ], 'needs_conf_edit': True }, 'Intrumental_Gabox (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'intrumental_gabox.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/intrumental_gabox.ckpt' ], 'needs_conf_edit': True }, 'inst_Fv4Noise (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_Fv4Noise.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_Fv4Noise.ckpt' ], 'needs_conf_edit': True }, 'INSTV5 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'INSTV5.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/INSTV5.ckpt' ], 'needs_conf_edit': True }, 'inst_gaboxFV1 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'inst_gaboxFv1.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gaboxFv1.ckpt' ], 'needs_conf_edit': True }, 'inst_gaboxFV6 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'INSTV6.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/INSTV6.ckpt' ], 'needs_conf_edit': True }, 'INSTV5N (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'INSTV5N.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/INSTV5N.ckpt' ], 'needs_conf_edit': True }, 'INSTV6N (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'INSTV6N.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/INSTV6N.ckpt' ], 'needs_conf_edit': True }, 'Inst_GaboxV7 (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'inst_gabox.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'Inst_GaboxV7.ckpt'), 'download_urls': [ 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/inst_gabox.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/Inst_GaboxV7.ckpt' ], 'needs_conf_edit': True } }, "4-Stem Models": { '4STEMS-SCNet_MUSDB18 (by starrytong)': { 'model_type': 'scnet', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_musdb18_scnet.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'scnet_checkpoint_musdb18.ckpt'), 'download_urls': [ 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v.1.0.6/config_musdb18_scnet.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v.1.0.6/scnet_checkpoint_musdb18.ckpt' ], 'needs_conf_edit': False }, '4STEMS-SCNet_XL_MUSDB18 (by ZFTurbo)': { 'model_type': 'scnet', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_musdb18_scnet_xl.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_scnet_ep_54_sdr_9.8051.ckpt'), 'download_urls': [ 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.13/config_musdb18_scnet_xl.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.13/model_scnet_ep_54_sdr_9.8051.ckpt' ], 'needs_conf_edit': True }, '4STEMS-SCNet_Large (by starrytong)': { 'model_type': 'scnet', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_musdb18_scnet_large_starrytong.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'SCNet-large_starrytong_fixed.ckpt'), 'download_urls': [ 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.9/config_musdb18_scnet_large_starrytong.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.9/SCNet-large_starrytong_fixed.ckpt' ], 'needs_conf_edit': True }, '4STEMS-BS-Roformer_MUSDB18 (by ZFTurbo)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_bs_roformer_384_8_2_485100.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_17_sdr_9.6568.ckpt'), 'download_urls': [ 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.12/config_bs_roformer_384_8_2_485100.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v1.0.12/model_bs_roformer_ep_17_sdr_9.6568.ckpt' ], 'needs_conf_edit': True }, 'MelBandRoformer4StemFTLarge (SYH99999)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'MelBandRoformer4StemFTLarge.ckpt'), 'download_urls': [ 'https://huggingface.co/SYH99999/MelBandRoformer4StemFTLarge/resolve/main/config.yaml', 'https://huggingface.co/SYH99999/MelBandRoformer4StemFTLarge/resolve/main/MelBandRoformer4StemFTLarge.ckpt' ], 'needs_conf_edit': True } }, "Denoise Models": { 'DENOISE-MelBand-Roformer-1 (by aufr33)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_mel_band_roformer_denoise.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt'), 'download_urls': [ 'https://huggingface.co/jarredou/aufr33_MelBand_Denoise/resolve/main/denoise_mel_band_roformer_aufr33_sdr_27.9959.ckpt', 'https://huggingface.co/jarredou/aufr33_MelBand_Denoise/resolve/main/model_mel_band_roformer_denoise.yaml' ], 'needs_conf_edit': True }, 'DENOISE-MelBand-Roformer-2 (by aufr33)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_mel_band_roformer_denoise.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt'), 'download_urls': [ 'https://huggingface.co/jarredou/aufr33_MelBand_Denoise/resolve/main/denoise_mel_band_roformer_aufr33_aggr_sdr_27.9768.ckpt', 'https://huggingface.co/jarredou/aufr33_MelBand_Denoise/resolve/main/model_mel_band_roformer_denoise.yaml' ], 'needs_conf_edit': True }, 'denoisedebleed (by Gabox)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_mel_band_roformer_denoise.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'denoisedebleed.ckpt'), 'download_urls': [ 'https://huggingface.co/poiqazwsx/melband-roformer-denoise/resolve/main/model_mel_band_roformer_denoise.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/resolve/main/melbandroformers/instrumental/denoisedebleed.ckpt' ], 'needs_conf_edit': True } }, "Dereverb Models": { 'DE-REVERB-MDX23C (by aufr33 & jarredou)': { 'model_type': 'mdx23c', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_dereverb_mdx23c.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'dereverb_mdx23c_sdr_6.9096.ckpt'), 'download_urls': [ 'https://huggingface.co/jarredou/aufr33_jarredou_MDXv3_DeReverb/resolve/main/dereverb_mdx23c_sdr_6.9096.ckpt', 'https://huggingface.co/jarredou/aufr33_jarredou_MDXv3_DeReverb/resolve/main/config_dereverb_mdx23c.yaml' ], 'needs_conf_edit': False }, 'DE-REVERB-MelBand-Roformer aggr./v2/19.1729 (by anvuew)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_anvuew.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt'), 'download_urls': [ 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt', 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_anvuew.yaml' ], 'needs_conf_edit': True }, 'DE-REVERB-Echo-MelBand-Roformer (by Sucial)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_dereverb-echo_mel_band_roformer.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt'), 'download_urls': [ 'https://huggingface.co/Sucial/Dereverb-Echo_Mel_Band_Roformer/resolve/main/dereverb-echo_mel_band_roformer_sdr_10.0169.ckpt', 'https://huggingface.co/Sucial/Dereverb-Echo_Mel_Band_Roformer/resolve/main/config_dereverb-echo_mel_band_roformer.yaml' ], 'needs_conf_edit': True }, 'dereverb_mel_band_roformer_less_aggressive_anvuew': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_anvuew.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt'), 'download_urls': [ 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_anvuew.yaml', 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_less_aggressive_anvuew_sdr_18.8050.ckpt' ], 'needs_conf_edit': True }, 'dereverb_mel_band_roformer_anvuew': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_anvuew.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt'), 'download_urls': [ 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_anvuew.yaml', 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_anvuew_sdr_19.1729.ckpt' ], 'needs_conf_edit': True }, 'dereverb_mel_band_roformer_mono (by anvuew)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_anvuew.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'dereverb_mel_band_roformer_mono_anvuew_sdr_20.4029.ckpt'), 'download_urls': [ 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_anvuew.yaml', 'https://huggingface.co/anvuew/dereverb_mel_band_roformer/resolve/main/dereverb_mel_band_roformer_mono_anvuew_sdr_20.4029.ckpt' ], 'needs_conf_edit': True } }, "Other Models": { 'KARAOKE-MelBand-Roformer (by aufr33 & viperx)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_mel_band_roformer_karaoke.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt'), 'download_urls': [ 'https://huggingface.co/jarredou/aufr33-viperx-karaoke-melroformer-model/resolve/main/mel_band_roformer_karaoke_aufr33_viperx_sdr_10.1956.ckpt', 'https://huggingface.co/jarredou/aufr33-viperx-karaoke-melroformer-model/resolve/main/config_mel_band_roformer_karaoke.yaml' ], 'needs_conf_edit': True }, 'OTHER-BS-Roformer_1053 (by viperx)': { 'model_type': 'bs_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_937_sdr_10.5309.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_bs_roformer_ep_937_sdr_10.5309.ckpt'), 'download_urls': [ 'https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/model_bs_roformer_ep_937_sdr_10.5309.ckpt', 'https://raw.githubusercontent.com/TRvlvr/application_data/main/mdx_model_data/mdx_c_configs/model_bs_roformer_ep_937_sdr_10.5309.yaml' ], 'needs_conf_edit': True }, 'CROWD-REMOVAL-MelBand-Roformer (by aufr33)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'model_mel_band_roformer_crowd.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt'), 'download_urls': [ 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v.1.0.4/mel_band_roformer_crowd_aufr33_viperx_sdr_8.7144.ckpt', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v.1.0.4/model_mel_band_roformer_crowd.yaml' ], 'needs_conf_edit': True }, 'CINEMATIC-BandIt_Plus (by kwatcharasupat)': { 'model_type': 'bandit', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_dnr_bandit_bsrnn_multi_mus64.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model_bandit_plus_dnr_sdr_11.47.chpt'), 'download_urls': [ 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v.1.0.3/config_dnr_bandit_bsrnn_multi_mus64.yaml', 'https://github.com/ZFTurbo/Music-Source-Separation-Training/releases/download/v.1.0.3/model_bandit_plus_dnr_sdr_11.47.chpt' ], 'needs_conf_edit': False }, 'DRUMSEP-MDX23C_DrumSep_6stem (by aufr33 & jarredou)': { 'model_type': 'mdx23c', 'config_path': os.path.join(CHECKPOINT_DIR, 'aufr33-jarredou_DrumSep_model_mdx23c_ep_141_sdr_10.8059.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'aufr33-jarredou_DrumSep_model_mdx23c_ep_141_sdr_10.8059.ckpt'), 'download_urls': [ 'https://github.com/jarredou/models/releases/download/aufr33-jarredou_MDX23C_DrumSep_model_v0.1/aufr33-jarredou_DrumSep_model_mdx23c_ep_141_sdr_10.8059.ckpt', 'https://github.com/jarredou/models/releases/download/aufr33-jarredou_MDX23C_DrumSep_model_v0.1/aufr33-jarredou_DrumSep_model_mdx23c_ep_141_sdr_10.8059.yaml' ], 'needs_conf_edit': False }, 'bleed_suppressor_v1 (by unwa)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_bleed_suppressor_v1.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'bleed_suppressor_v1.ckpt'), 'download_urls': [ 'https://huggingface.co/ASesYusuf1/MODELS/resolve/main/bleed_suppressor_v1.ckpt', 'https://huggingface.co/ASesYusuf1/MODELS/resolve/main/config_bleed_suppressor_v1.yaml' ], 'needs_conf_edit': True }, 'SYH99999/MelBandRoformerSYHFTB1_Model1 (by Amane)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model.ckpt'), 'download_urls': [ 'https://huggingface.co/SYH99999/MelBandRoformerSYHFTB1/resolve/main/config.yaml', 'https://huggingface.co/SYH99999/MelBandRoformerSYHFTB1/resolve/main/model.ckpt' ], 'needs_conf_edit': True }, 'SYH99999/MelBandRoformerSYHFTB1_Model2 (by Amane)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model2.ckpt'), 'download_urls': [ 'https://huggingface.co/SYH99999/MelBandRoformerSYHFTB1/resolve/main/config.yaml', 'https://huggingface.co/SYH99999/MelBandRoformerSYHFTB1/resolve/main/model2.ckpt' ], 'needs_conf_edit': True }, 'SYH99999/MelBandRoformerSYHFTB1_Model3 (by Amane)': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'model3.ckpt'), 'download_urls': [ 'https://huggingface.co/SYH99999/MelBandRoformerSYHFTB1/resolve/main/config.yaml', 'https://huggingface.co/SYH99999/MelBandRoformerSYHFTB1/resolve/main/model3.ckpt' ], 'needs_conf_edit': True }, 'KaraokeGabox': { 'model_type': 'mel_band_roformer', 'config_path': os.path.join(CHECKPOINT_DIR, 'config_mel_band_roformer_karaoke.yaml'), 'start_check_point': os.path.join(CHECKPOINT_DIR, 'KaraokeGabox.ckpt'), 'download_urls': [ 'https://github.com/deton24/Colab-for-new-MDX_UVR_models/releases/download/v1.0.0/config_mel_band_roformer_karaoke.yaml', 'https://huggingface.co/GaboxR67/MelBandRoformers/blob/main/melbandroformers/experimental/KaraokeGabox.ckpt' ], 'needs_conf_edit': True } } } def get_model_config(clean_model=None, chunk_size=None, overlap=None): """Returns model type, config path, and checkpoint path for a given model name, downloading files if needed.""" if clean_model is None: return {model_name for category in MODEL_CONFIGS.values() for model_name in category.keys()} for category in MODEL_CONFIGS.values(): if clean_model in category: config = category[clean_model] for url in config['download_urls']: download_file(url) if config['needs_conf_edit'] and chunk_size is not None and overlap is not None: conf_edit(config['config_path'], chunk_size, overlap) return config['model_type'], config['config_path'], config['start_check_point'] return "", "", "" get_model_config.keys = lambda: {model_name for category in MODEL_CONFIGS.values() for model_name in category.keys()}