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
Startup guard in the voice-conversion GUI (mkgui/app_vc.py) for the extractor models directory (EXT_MODELS_DIRT). The module builds an extractors Enum from '**/*.pt' files under that folder at import time; an absent folder aborts app startup.
Source
Thrown at control/mkgui/app_vc.py:36
# Constants
AUDIO_SAMPLES_DIR = f'data{os.sep}samples{os.sep}'
EXT_MODELS_DIRT = f'data{os.sep}ckpt{os.sep}ppg_extractor'
CONV_MODELS_DIRT = f'data{os.sep}ckpt{os.sep}ppg2mel'
VOC_MODELS_DIRT = f'data{os.sep}ckpt{os.sep}vocoder'
TEMP_SOURCE_AUDIO = f'wavs{os.sep}temp_source.wav'
TEMP_TARGET_AUDIO = f'wavs{os.sep}temp_target.wav'
TEMP_RESULT_AUDIO = f'wavs{os.sep}temp_result.wav'
# Load local sample audio as options TODO: load dataset
if os.path.isdir(AUDIO_SAMPLES_DIR):
audio_input_selection = Enum('samples', list((file.name, file) for file in Path(AUDIO_SAMPLES_DIR).glob("*.wav")))
# Pre-Load models
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(VOC_MODELS_DIRT):
vocoders = Enum('vocoders', list((file.name, file) for file in Path(VOC_MODELS_DIRT).glob("**/*gan*.pt")))
print("Loaded vocoders models: " + str(len(vocoders)))
else:
raise Exception(f"Model folder {VOC_MODELS_DIRT} doesn't exist.")
class Input(BaseModel):
local_audio_file: audio_input_selection = Field(
..., alias="输入语音(本地wav)",
description="选择本地语音文件."
)View on GitHub (pinned to 28dc5e14f1)
Solutions
- Create the extractor models directory and put at least one .pt extractor checkpoint in it
- Download the pretrained VC model bundle and extract it into the expected location
- Verify EXT_MODELS_DIRT in config matches your checkpoint layout
Example fix
# before: extractor/saved_models missing mkdir -p extractor/saved_models cp extractor.pt extractor/saved_models/ # after: 'Loaded extractor models: 1' and app starts
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 model directories before starting app_vc
- Bundle pretrained extractor weights with deployment
- Centralize model path constants in one config
When it happens
Trigger: Starting app_vc.py without a trained/downloaded PPG extractor model directory at the expected path.
Common situations: Voice-conversion pretrained models not downloaded; fresh clone; models stored under a different root than the config constant.
Related errors
- Model folder {CONV_MODELS_DIRT} doesn't exist.
- Model folder {SYN_MODELS_DIRT} doesn't exist. 请将模型文件位置移动到上述位
- Model folder {ENC_MODELS_DIRT} doesn't exist.
- Model folder {VOC_MODELS_DIRT} doesn't exist.
- Model folder {VOC_MODELS_DIRT} doesn't exist.
AI-assisted analysis of babysor/MockingBird@28dc5e14f1 (2026-08-27).
Data as JSON: /api/errors/d6033ade7fe46dee.
Report an issue: GitHub.