voice-changer/server/voice_changer/RVC/RVCModelMerger.py

37 lines
1.5 KiB
Python
Raw Normal View History

2023-06-23 08:54:39 +03:00
import os
import torch
from const import UPLOAD_DIR
from voice_changer.RVC.modelMerger.MergeModel import merge_model
from voice_changer.utils.ModelMerger import ModelMerger, ModelMergerRequest
class RVCModelMerger(ModelMerger):
@classmethod
def merge_models(cls, request: ModelMergerRequest, storeSlot: int):
print("[Voice Changer] MergeRequest:", request)
merged = merge_model(request)
# いったんは、アップロードフォルダに格納する。(歴史的経緯)
# 後続のloadmodelを呼び出すことで永続化モデルフォルダに移動させられる。
storeDir = os.path.join(UPLOAD_DIR, f"{storeSlot}")
print("[Voice Changer] store merged model to:", storeDir)
os.makedirs(storeDir, exist_ok=True)
storeFile = os.path.join(storeDir, "merged.pth")
torch.save(merged, storeFile)
return storeFile
# # loadmodelを呼び出して永続化モデルフォルダに移動させる。
# params = {
# "defaultTune": req.defaultTune,
# "defaultIndexRatio": req.defaultIndexRatio,
# "defaultProtect": req.defaultProtect,
# "sampleId": "",
# "files": {"rvcModel": storeFile},
# }
# props: LoadModelParams = LoadModelParams(slot=targetSlot, isHalf=True, params=params)
# self.loadModel(props)
# self.prepareModel(targetSlot)
# self.settings.modelSlotIndex = targetSlot
# self.currentSlot = self.settings.modelSlotIndex