babysor/MockingBird · critical · Exception
Model folder {EXT_MODELS_DIRT} doesn't exist.
Error message
Model folder {EXT_MODELS_DIRT} doesn't exist. What it means
Import-time guard in mkgui/train_vc.py: the VC training page requires an extractor models directory (EXT_MODELS_DIRT) with .pt checkpoints for its dropdown; missing folder raises at import.
Source
Thrown at control/mkgui/train_vc.py:21
from pathlib import Path
from enum import Enum
from typing import Any, Tuple
import numpy as np
from utils.hparams import HpsYaml
from utils.util import AttrDict
import torch
# Constants
EXT_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}ppg_extractor"
CONV_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}ppg2mel"
ENC_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}encoder"
if os.path.isdir(EXT_MODELS_DIRT):
extractors = Enum('extractors', list((file.name, file) for file in Path(EXT_MODELS_DIRT).glob("**/*.pt")))
print("Loaded extractor models: " + str(len(extractors)))
else:
raise Exception(f"Model folder {EXT_MODELS_DIRT} doesn't exist.")
if os.path.isdir(CONV_MODELS_DIRT):
convertors = Enum('convertors', list((file.name, file) for file in Path(CONV_MODELS_DIRT).glob("**/*.pth")))
print("Loaded convertor models: " + str(len(convertors)))
else:
raise Exception(f"Model folder {CONV_MODELS_DIRT} doesn't exist.")
if os.path.isdir(ENC_MODELS_DIRT):
encoders = Enum('encoders', list((file.name, file) for file in Path(ENC_MODELS_DIRT).glob("**/*.pt")))
print("Loaded encoders models: " + str(len(encoders)))
else:
raise Exception(f"Model folder {ENC_MODELS_DIRT} doesn't exist.")
class Model(str, Enum):
VC_PPG2MEL = "ppg2mel"
class Dataset(str, Enum):
AIDATATANG_200ZH = "aidatatang_200zh"View on GitHub (pinned to 28dc5e14f1)
Solutions
- Create the extractor models directory and add an extractor .pt checkpoint
- Download pretrained VC extractor weights
- Verify EXT_MODELS_DIRT in config
Example fix
# before: extractor/saved_models missing mkdir -p extractor/saved_models && cp extractor.pt extractor/saved_models/ # after: 'Loaded extractor models: 1', page loads
Defensive patterns
Strategy: validation
Validate before calling
ext_dir = Path(EXT_MODELS_DIRT)
if not ext_dir.is_dir() or not list(ext_dir.glob('**/*.pt')):
raise SystemExit(f'Extractor models missing in {ext_dir}') Prevention
- Preflight-check VC training model dirs before import
- Provision pretrained extractor weights
- Document required checkpoint layout
When it happens
Trigger: Opening the VC training page with no extractor models directory present.
Common situations: No extractor pretrained model downloaded yet; models root misconfigured.
Related errors
- Model folder {CONV_MODELS_DIRT} doesn't exist.
- Model folder {ENC_MODELS_DIRT} doesn't exist.
- Model folder {EXT_MODELS_DIRT} doesn't exist.
- Model folder {CONV_MODELS_DIRT} doesn't exist.
- Model folder {SYN_MODELS_DIRT} doesn't exist.
AI-assisted analysis of babysor/MockingBird@28dc5e14f1 (2026-08-27).
Data as JSON: /api/errors/efbff9acfd27a5c2.
Report an issue: GitHub.