babysor/MockingBird · critical · Exception

Model folder {SYN_MODELS_DIRT} doesn't exist. 请将模型文件位置移动到上述位

Error message

Model folder {SYN_MODELS_DIRT} doesn't exist. 请将模型文件位置移动到上述位置中进行重试!

What it means

Raised at import time of the mkgui app when the synthesizer models directory (SYN_MODELS_DIRT, typically encoder/saved_models/...) does not exist. The GUI pre-enumerates available .pt models to build Enum dropdowns; with no folder there is nothing to select, so it aborts startup. The Chinese message tells the user to move model files to the expected location.

Source

Thrown at control/mkgui/app.py:34

# Constants
AUDIO_SAMPLES_DIR = f"data{os.sep}samples{os.sep}"
SYN_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}synthesizer"
ENC_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}encoder"
VOC_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}vocoder"
TEMP_SOURCE_AUDIO = f"wavs{os.sep}temp_source.wav"
TEMP_RESULT_AUDIO = f"wavs{os.sep}temp_result.wav"
if not os.path.isdir("wavs"):
    os.makedirs("wavs")

# 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(SYN_MODELS_DIRT):    
    synthesizers =  Enum('synthesizers', list((file.name, file) for file in Path(SYN_MODELS_DIRT).glob("**/*.pt")))
    print("Loaded synthesizer models: " + str(len(synthesizers)))
else:
    raise Exception(f"Model folder {SYN_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.")

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(synthesizers)))
else:
    raise Exception(f"Model folder {VOC_MODELS_DIRT} doesn't exist.")


class Input(BaseModel):
    message: str = Field(
        ..., example="欢迎使用工具箱, 现已支持中文输入!", alias="文本内容"
    )

View on GitHub (pinned to 28dc5e14f1)

Solutions

  1. Create the expected synthesizer models directory and place at least one .pt checkpoint in it (or a subdirectory)
  2. Train or download a pretrained synthesizer model so the folder is populated
  3. Check the SYN_MODELS_DIRT constant / config to make sure it points to the real location of your models

Example fix

# before: encoder/saved_models/synthesizer missing
mkdir -p encoder/saved_models/synthesizer
cp my_synthesizer.pt encoder/saved_models/synthesizer/
# after: app starts and prints 'Loaded synthesizer models: 1'
Defensive patterns

Strategy: validation

Validate before calling

from pathlib import Path

syn_dir = Path(SYN_MODELS_DIRT)
if not syn_dir.is_dir() or not list(syn_dir.glob('**/*.pt')):
    raise SystemExit(f'No synthesizer models in {syn_dir}; download/place .pt checkpoints first')

Prevention

When it happens

Trigger: Starting the mkgui web app before any synthesizer model has been trained or downloaded into the expected models directory; or the directory constant points to a wrong/moved path.

Common situations: First-time users who haven't downloaded pretrained models; custom HP save paths; renaming/relocating the models folder after training.

Related errors


AI-assisted analysis of babysor/MockingBird@28dc5e14f1 (2026-08-27). Data as JSON: /api/errors/87bdce897083bc6f. Report an issue: GitHub.