如果你要训练超过 1 个模型,那么对先前的模型进行有效管理是非常必要的,这会减少你丢失模型以及训练出错的风险。整合包(v2.3.5)使用了两套多模型管理模式:工作目录模式和独立目录模式,你可以在 WebUI 页面底端任意切换这两种模式来满足不同的使用场景。
    在 WebUI 底部的当前设置会被保存下来,重启 WebUI 后仍然是上一次的选择。
    工作目录模式
    工作目录模式是默认的管理模式,在此模式下,推理模型的选项将从以下目录读取:
    文件 后缀 存放位置
    So-VITS 模型 .pth logs/44k
    So-VITS 模型配置文件 .json configs
    扩散模型(可选) .pt logs/44k/diffusion
    扩散模型配置文件(可选) .yaml configs
    Kmeans 聚类模型 .pt logs/44k
    特征索引模型 .pkl logs/44k

    工作目录模式下必须将上述文件对应放置在正确的存放位置才能被加载。So-VITS 的模型和配置文件是一一对应的,为模型加载不匹配的配置文件会导致报错。因此你必须确保模型与配置文件一一对应。

    上述目录是模型和配置文件训练后的默认保存位置,因此工作目录模式适合在训练途中使用,方便直接读取训练的模型。
    独立目录模式
    独立目录模式启用后,推理模型的选项将从以下目录读取:
    文件 后缀 存放位置
    So-VITS 模型 .pth models
    So-VITS 模型配置文件 .json models
    扩散模型(可选) .pt models/diffusion
    扩散模型配置文件(可选) .yaml models
    Kmeans 聚类模型 .pt models
    特征索引模型 .pkl models
    基本上除了扩散模型,你只要把所有模型和配置文件全部放到 models 文件夹下即可,无需区分不同目录。独立目录的好处在于不会与模型训练的工作目录冲突导致模型被覆盖的风险,也不用频繁在工作目录下转移文件。
    如何转移至独立目录?
    由于独立目录会存在多个不同的模型和配置文件,而模型和配置文件需要一一对应,因此你必须在将模型转移到独立目录前更名,并确保对应的模型和配置文件拥有同样的名字,以免混淆。
    例如:
    ●G8000.pth —> kiritan_vec768l12.pth (说话人名编码器.pth)
    ●config.json —> kiritanvec768l12.json
    扩散模型、聚类模型和特征索引模型也可以按照该方法改名。上述的例子仅供参考,你也可以用自己喜欢的命名方式更名,只要确保高辨识度以及模型和配置文件同名即可。
    ⚠️注意扩散模型和聚类模型共享同一后缀(.pt),更名时请显著区分这两个模型,例如:
    Kmeans_XXXX.pt
    Diffusion_XXXX.pt
    自动加载
    在独立目录模式下,当你选择模型时,如果存在与模型同名的配置文件,程序会自动加载该配置文件。因此请确保模型和对应配置文件同名。
    多模型管理流程
    训练和推理
    如果你是第一次训练模型,则可以直接按照快速开始中的流程训练。
    由于默认的管理模式是工作目录模式,因此你可以在训练时直接加载工作目录中的模型和配置文件。
    在决定停止训练并封炉后,仅保留你认为需要保留的 G
    模型(或扩散模型等),按上面提到的方法将模型和对应的配置文件更名,并放置在独立目录下(models),此时切换独立目录模式即可从独立目录加载模型。
    在 WebUI 底部的设置栏可以切换多模型管理模式。你的当前设置会被保存下来,重启 WebUI 后仍然是上一次的选择。
    当你要开始下一次模型训练时,你可以切换回工作目录模式,按照正常的流程开始训练,此时先前工作目录中的所有模型会被打包存放到备份目录(models_backup),不用担心模型会丢失或被覆盖。
    备份文件夹
    由于每一次重新开始训练都会备份一次工作目录,因此备份文件夹中可能存在很多重复的模型。如果你按照先前提到的方法更名管理模型,你应该能很轻易地找到多余的模型,可以将这些模型删除以免浪费硬盘空间。
    避免浪费硬盘空间,还可以使用 WebUI —— 小工具/实验室特性 —— 模型压缩工具将 So-VITS 模型压缩,在不影响推理的情况下将模型压缩到原来的 1/3 体积。