Spaces:
Sleeping
Sleeping
from . import modules | |
from pathlib import Path | |
from . import scheduler | |
from .interface import Interface | |
from .modules.transformer import VampNet | |
__version__ = "0.0.1" | |
ROOT = Path(__file__).parent.parent | |
MODELS_DIR = ROOT / "models" / "vampnet" | |
from huggingface_hub import hf_hub_download, HfFileSystem | |
DEFAULT_HF_MODEL_REPO = "hugggof/vampnet" | |
FS = HfFileSystem() | |
def download_codec(): | |
# from dac.model.dac import DAC | |
from lac.model.lac import LAC as DAC | |
repo_id = DEFAULT_HF_MODEL_REPO | |
filename = "codec.pth" | |
codec_path = hf_hub_download( | |
repo_id=repo_id, | |
filename=filename, | |
subfolder=None, | |
local_dir=MODELS_DIR | |
) | |
return codec_path | |
def download_default(): | |
filenames = ["coarse.pth", "c2f.pth"] | |
repo_id = DEFAULT_HF_MODEL_REPO | |
paths = [] | |
for filename in filenames: | |
path = f"{MODELS_DIR}/{filename}" | |
if not Path(path).exists(): | |
path = hf_hub_download( | |
repo_id=repo_id, | |
filename=filename, | |
subfolder=None, | |
local_dir=MODELS_DIR, | |
local_dir_use_symlinks=False, | |
local_files_only=False | |
) | |
paths.append(path) | |
# load the models | |
return paths[0], paths[1] | |
def download_finetuned(name): | |
repo_id = f"{DEFAULT_HF_MODEL_REPO}" | |
filenames = ["coarse.pth", "c2f.pth"] | |
paths = [] | |
for filename in filenames: | |
path = f"{MODELS_DIR}/{name}/loras/{filename}" | |
if not Path(path).exists(): | |
path = hf_hub_download( | |
repo_id=repo_id, | |
filename=filename, | |
subfolder=f"loras/{name}", | |
local_dir=MODELS_DIR, | |
local_dir_use_symlinks=False, | |
local_files_only=False | |
) | |
paths.append(path) | |
# load the models | |
return paths[0], paths[1] | |
def list_finetuned(): | |
diritems = FS.listdir(f"{DEFAULT_HF_MODEL_REPO}/loras") | |
# iterate through all the names | |
valid_diritems = [] | |
for item in diritems: | |
model_file_items = FS.listdir(item["name"]) | |
item_names = [item["name"].split("/")[-1] for item in model_file_items] | |
# check that theres a "c2f.pth" and "coarse.pth" in the items | |
c2f_exists = "c2f.pth" in item_names | |
coarse_exists = "coarse.pth" in item_names | |
if c2f_exists and coarse_exists: | |
valid_diritems.append(item) | |
# get the names of the valid items | |
names = [item["name"].split("/")[-1] for item in valid_diritems] | |
return names | |