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

Import-time guard in mkgui/train.py: the training page enumerates synthesizer checkpoints (*.pt, recursive) under SYN_MODELS_DIRT to let you fine-tune from one; a missing directory aborts module import.

Source

Thrown at control/mkgui/train.py:23

from typing import Any
from models.synthesizer.hparams import hparams
from models.synthesizer.train import train as synt_train

# Constants
SYN_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}synthesizer"
ENC_MODELS_DIRT = f"data{os.sep}ckpt{os.sep}encoder"


# 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"

# 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.")

class Model(str, Enum):
    DEFAULT = "default"

class Input(BaseModel):
    model: Model = Field(
        Model.DEFAULT, title="模型类型",
    )
    # datasets_root: str = Field(
    #     ..., alias="预处理数据根目录", description="输入目录(相对/绝对),不适用于ppg2mel模型",
    #     format=True,
    #     example="..\\trainning_data\\"

View on GitHub (pinned to 28dc5e14f1)

Solutions

  1. Create the synthesizer models directory with at least one .pt checkpoint (e.g. a pretrained base model to fine-tune from)
  2. Download the pretrained synthesizer to the expected path
  3. Verify SYN_MODELS_DIRT points to your checkpoints root

Example fix

# before: encoder/saved_models/synthesizer missing
mkdir -p encoder/saved_models/synthesizer && cp pretrained.pt encoder/saved_models/synthesizer/
# after: 'Loaded synthesizer models: 1', training page loads
Defensive patterns

Strategy: validation

Validate before calling

syn_dir = Path(SYN_MODELS_DIRT)
if not syn_dir.is_dir() or not list(syn_dir.glob('**/*.pt')):
    raise SystemExit(f'Synthesizer models missing in {syn_dir}')

Prevention

When it happens

Trigger: Opening the mkgui training page when no synthesizer models directory exists.

Common situations: Trying to fine-tune before any base synthesizer model exists; models path misconfigured; fresh clone.

Related errors


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