mirror of
https://github.com/RVC-Project/Retrieval-based-Voice-Conversion-WebUI.git
synced 2026-09-01 19:48:26 +02:00
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
"""Model construction helpers."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from .config import load_config
|
|
|
|
|
|
def get_model_from_config(model_type, config_path, model_kwargs_override=None):
|
|
"""Instantiate a separation model from a model configuration file."""
|
|
model_kwargs_override = model_kwargs_override or {}
|
|
config = load_config(config_path)
|
|
|
|
if model_type == "mdx23c":
|
|
from .modules.mdx23c_tfc_tdf_v3 import TFC_TDF_net
|
|
|
|
return TFC_TDF_net(config), config
|
|
if model_type == "htdemucs":
|
|
from .modules.demucs4ht import get_model
|
|
|
|
return get_model(config), config
|
|
if model_type == "mel_band_roformer":
|
|
from .modules.bs_roformer import MelBandRoformer
|
|
|
|
model_kwargs = dict(config.model)
|
|
model_kwargs.update(model_kwargs_override)
|
|
return MelBandRoformer(**model_kwargs), config
|
|
if model_type == "bs_roformer":
|
|
from .modules.bs_roformer import BSRoformer
|
|
|
|
return BSRoformer(**dict(config.model)), config
|
|
if model_type == "bs_roformer_hyperace":
|
|
from .modules.bs_roformer import BSRoformerHyperACE
|
|
|
|
return BSRoformerHyperACE(**dict(config.model)), config
|
|
if model_type == "bandit":
|
|
from .modules.bandit.core.model import MultiMaskMultiSourceBandSplitRNNSimple
|
|
|
|
return MultiMaskMultiSourceBandSplitRNNSimple(**config.model), config
|
|
if model_type == "bandit_v2":
|
|
from .modules.bandit_v2.bandit import Bandit
|
|
|
|
return Bandit(**config.kwargs), config
|
|
if model_type == "scnet":
|
|
from .modules.scnet import SCNet
|
|
|
|
return SCNet(**config.model), config
|
|
if model_type == "apollo":
|
|
from .modules.look2hear.apollo import Apollo
|
|
|
|
return Apollo(**config.model), config
|
|
if model_type == "vr":
|
|
raise ValueError("VR network modules do not use YAML config loading")
|
|
raise ValueError(f"Model type {model_type} not supported")
|