remove so-vits-svcv2, custom from loading model

This commit is contained in:
wataru 2023-06-23 17:52:26 +09:00
parent 59f558ef93
commit 719f4c4d83
6 changed files with 5 additions and 288 deletions

File diff suppressed because one or more lines are too long

View File

@ -8,8 +8,6 @@ export const ClientType = {
"MMVCv15": "MMVCv15", "MMVCv15": "MMVCv15",
"MMVCv13": "MMVCv13", "MMVCv13": "MMVCv13",
"so-vits-svc-40": "so-vits-svc-40", "so-vits-svc-40": "so-vits-svc-40",
"so-vits-svc-40_c": "so-vits-svc-40_c",
"so-vits-svc-40v2": "so-vits-svc-40v2",
"DDSP-SVC": "DDSP-SVC", "DDSP-SVC": "DDSP-SVC",
"RVC": "RVC" "RVC": "RVC"
@ -21,8 +19,6 @@ export const VoiceChangerType = {
"MMVCv15": "MMVCv15", "MMVCv15": "MMVCv15",
"MMVCv13": "MMVCv13", "MMVCv13": "MMVCv13",
"so-vits-svc-40": "so-vits-svc-40", "so-vits-svc-40": "so-vits-svc-40",
"so-vits-svc-40_c": "so-vits-svc-40_c",
"so-vits-svc-40v2": "so-vits-svc-40v2",
"DDSP-SVC": "DDSP-SVC", "DDSP-SVC": "DDSP-SVC",
"RVC": "RVC" "RVC": "RVC"
@ -413,13 +409,6 @@ export const DefaultServerSetting_so_vits_svc_40: ServerInfo = {
...DefaultServerSetting, tran: 10, noiseScale: 0.3, extraConvertSize: 1024 * 8, clusterInferRatio: 0.1, ...DefaultServerSetting, tran: 10, noiseScale: 0.3, extraConvertSize: 1024 * 8, clusterInferRatio: 0.1,
} }
export const DefaultServerSetting_so_vits_svc_40_c: ServerInfo = {
...DefaultServerSetting, tran: 10, noiseScale: 0.3, extraConvertSize: 1024 * 8, clusterInferRatio: 0.1,
}
export const DefaultServerSetting_so_vits_svc_40v2: ServerInfo = {
...DefaultServerSetting, tran: 10, noiseScale: 0.3, extraConvertSize: 1024 * 8, clusterInferRatio: 0.1,
}
export const DefaultServerSetting_DDSP_SVC: ServerInfo = { export const DefaultServerSetting_DDSP_SVC: ServerInfo = {
...DefaultServerSetting, dstId: 1, tran: 10, extraConvertSize: 1024 * 8 ...DefaultServerSetting, dstId: 1, tran: 10, extraConvertSize: 1024 * 8
} }
@ -485,10 +474,6 @@ export const DefaultWorkletNodeSetting_so_vits_svc_40: WorkletNodeSetting = {
...DefaultWorkletNodeSetting, inputChunkNum: 128, ...DefaultWorkletNodeSetting, inputChunkNum: 128,
} }
export const DefaultWorkletNodeSetting_so_vits_svc_40v2: WorkletNodeSetting = {
...DefaultWorkletNodeSetting, inputChunkNum: 128,
}
export const DefaultWorkletNodeSetting_DDSP_SVC: WorkletNodeSetting = { export const DefaultWorkletNodeSetting_DDSP_SVC: WorkletNodeSetting = {
...DefaultWorkletNodeSetting, inputChunkNum: 256, ...DefaultWorkletNodeSetting, inputChunkNum: 256,
} }

View File

@ -1,8 +1,7 @@
import { useState, useMemo, useEffect } from "react" import { useState, useMemo, useEffect } from "react"
import { VoiceChangerServerSetting, ServerInfo, ServerSettingKey, INDEXEDDB_KEY_SERVER, INDEXEDDB_KEY_MODEL_DATA, ClientType, DefaultServerSetting_MMVCv13, DefaultServerSetting_MMVCv15, DefaultServerSetting_so_vits_svc_40v2, DefaultServerSetting_so_vits_svc_40, DefaultServerSetting_so_vits_svc_40_c, DefaultServerSetting_RVC, OnnxExporterInfo, DefaultServerSetting_DDSP_SVC, MAX_MODEL_SLOT_NUM, Framework, MergeModelRequest, VoiceChangerType } from "../const" import { VoiceChangerServerSetting, ServerInfo, ServerSettingKey, INDEXEDDB_KEY_SERVER, INDEXEDDB_KEY_MODEL_DATA, ClientType, DefaultServerSetting_MMVCv13, DefaultServerSetting_MMVCv15, DefaultServerSetting_so_vits_svc_40, DefaultServerSetting_RVC, OnnxExporterInfo, DefaultServerSetting_DDSP_SVC, MAX_MODEL_SLOT_NUM, Framework, MergeModelRequest, VoiceChangerType } from "../const"
import { VoiceChangerClient } from "../VoiceChangerClient" import { VoiceChangerClient } from "../VoiceChangerClient"
import { useIndexedDB } from "./useIndexedDB" import { useIndexedDB } from "./useIndexedDB"
import { ModelLoadException } from "../exceptions"
type ModelData = { type ModelData = {
@ -77,9 +76,6 @@ export type FileUploadSetting = {
soVitsSvc40Config: ModelData | null soVitsSvc40Config: ModelData | null
soVitsSvc40Model: ModelData | null soVitsSvc40Model: ModelData | null
soVitsSvc40Cluster: ModelData | null soVitsSvc40Cluster: ModelData | null
soVitsSvc40v2Config: ModelData | null
soVitsSvc40v2Model: ModelData | null
soVitsSvc40v2Cluster: ModelData | null
rvcModel: ModelData | null rvcModel: ModelData | null
rvcFeature: ModelData | null rvcFeature: ModelData | null
rvcIndex: ModelData | null rvcIndex: ModelData | null
@ -111,9 +107,6 @@ export const InitialFileUploadSetting: FileUploadSetting = {
soVitsSvc40Config: null, soVitsSvc40Config: null,
soVitsSvc40Model: null, soVitsSvc40Model: null,
soVitsSvc40Cluster: null, soVitsSvc40Cluster: null,
soVitsSvc40v2Config: null,
soVitsSvc40v2Model: null,
soVitsSvc40v2Cluster: null,
rvcModel: null, rvcModel: null,
rvcFeature: null, rvcFeature: null,
rvcIndex: null, rvcIndex: null,
@ -148,7 +141,6 @@ export type ServerSettingState = {
fileUploadSettings: FileUploadSetting[] fileUploadSettings: FileUploadSetting[]
setFileUploadSetting: (slot: number, val: FileUploadSetting) => void setFileUploadSetting: (slot: number, val: FileUploadSetting) => void
loadModel: (slot: number) => Promise<void>
uploadModel: (setting: ModelUploadSetting) => Promise<void> uploadModel: (setting: ModelUploadSetting) => Promise<void>
uploadProgress: number uploadProgress: number
isUploading: boolean isUploading: boolean
@ -169,11 +161,6 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
return DefaultServerSetting_MMVCv15 return DefaultServerSetting_MMVCv15
} else if (props.clientType == "so-vits-svc-40") { } else if (props.clientType == "so-vits-svc-40") {
return DefaultServerSetting_so_vits_svc_40 return DefaultServerSetting_so_vits_svc_40
} else if (props.clientType == "so-vits-svc-40_c") {
console.log("default so_vits_svc_40_c")
return DefaultServerSetting_so_vits_svc_40_c
} else if (props.clientType == "so-vits-svc-40v2") {
return DefaultServerSetting_so_vits_svc_40v2
} else if (props.clientType == "DDSP-SVC") { } else if (props.clientType == "DDSP-SVC") {
return DefaultServerSetting_DDSP_SVC return DefaultServerSetting_DDSP_SVC
} else if (props.clientType == "RVC") { } else if (props.clientType == "RVC") {
@ -284,15 +271,6 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
const [isUploading, setIsUploading] = useState<boolean>(false) const [isUploading, setIsUploading] = useState<boolean>(false)
// (e) モデルアップロード // (e) モデルアップロード
const _uploadFile = useMemo(() => {
return async (modelData: ModelData, onprogress: (progress: number, end: boolean) => void, dir: string = "") => {
if (!props.voiceChangerClient) return
const num = await props.voiceChangerClient.uploadFile(modelData.data!, dir + modelData.filename!, onprogress)
const res = await props.voiceChangerClient.concatUploadedFile(dir + modelData.filename!, num)
console.log("uploaded", num, res)
}
}, [props.voiceChangerClient])
const _uploadFile2 = useMemo(() => { const _uploadFile2 = useMemo(() => {
return async (file: File, onprogress: (progress: number, end: boolean) => void, dir: string = "") => { return async (file: File, onprogress: (progress: number, end: boolean) => void, dir: string = "") => {
if (!props.voiceChangerClient) return if (!props.voiceChangerClient) return
@ -342,247 +320,6 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
} }
}, [props.voiceChangerClient]) }, [props.voiceChangerClient])
// 古いアップローダ新GUIへ以降まで、当分残しておく。
const loadModel = useMemo(() => {
return async (slot: number) => {
const fileUploadSetting = fileUploadSettings[slot]
console.log("[loadModel]", fileUploadSetting)
console.log("[loadModel] model:", props.clientType)
if (fileUploadSetting.isSampleMode == false) {
if (props.clientType == "MMVCv13") {
if (!fileUploadSetting.mmvcv13Config) {
throw new ModelLoadException("Config")
}
if (!fileUploadSetting.mmvcv13Model) {
throw new ModelLoadException("Model")
}
} else if (props.clientType == "MMVCv15") {
if (!fileUploadSetting.mmvcv15Config) {
throw new ModelLoadException("Config")
}
if (!fileUploadSetting.mmvcv15Model) {
throw new ModelLoadException("Model")
}
} else if (props.clientType == "so-vits-svc-40") {
if (!fileUploadSetting.soVitsSvc40Config) {
throw new ModelLoadException("Config")
}
if (!fileUploadSetting.soVitsSvc40Model) {
throw new ModelLoadException("Model")
}
} else if (props.clientType == "so-vits-svc-40v2") {
if (!fileUploadSetting.soVitsSvc40v2Config) {
throw new ModelLoadException("Config")
}
if (!fileUploadSetting.soVitsSvc40v2Model) {
throw new ModelLoadException("Model")
}
} else if (props.clientType == "RVC") {
if (!fileUploadSetting.rvcModel) {
throw new ModelLoadException("Model")
}
} else if (props.clientType == "DDSP-SVC") {
if (!fileUploadSetting.ddspSvcModel) {
throw new ModelLoadException("DDSP-Model")
}
if (!fileUploadSetting.ddspSvcModelConfig) {
throw new ModelLoadException("DDSP-Config")
}
if (!fileUploadSetting.ddspSvcDiffusion) {
throw new ModelLoadException("Diff-Model")
}
if (!fileUploadSetting.ddspSvcDiffusionConfig) {
throw new ModelLoadException("Diff-Config")
}
} else {
}
} else {//Sampleモード
if (!fileUploadSetting.sampleId) {
throw new ModelLoadException("SampleId")
}
}
if (!props.voiceChangerClient) return
setUploadProgress(0)
setIsUploading(true)
// normal models(MMVC13,15, so-vits-svc, RVC)
const normalModels = [
fileUploadSetting.mmvcv13Config,
fileUploadSetting.mmvcv13Model,
fileUploadSetting.mmvcv15Config,
fileUploadSetting.mmvcv15Model,
fileUploadSetting.soVitsSvc40Config,
fileUploadSetting.soVitsSvc40Model,
fileUploadSetting.soVitsSvc40Cluster,
fileUploadSetting.soVitsSvc40v2Config,
fileUploadSetting.soVitsSvc40v2Model,
fileUploadSetting.soVitsSvc40v2Cluster,
].filter(x => { return x != null }) as ModelData[]
console.log("[SENDING FILE]", normalModels)
for (let i = 0; i < normalModels.length; i++) {
if (!normalModels[i].data) {
// const fileSize = normalModels[i].file!.size / 1024 / 1024
normalModels[i].data = await normalModels[i].file!.arrayBuffer()
normalModels[i].filename = await normalModels[i].file!.name
}
}
if (fileUploadSetting.isSampleMode == false) {
for (let i = 0; i < normalModels.length; i++) {
const progRate = 1 / normalModels.length
const progOffset = 100 * i * progRate
await _uploadFile(normalModels[i], (progress: number, _end: boolean) => {
setUploadProgress(progress * progRate + progOffset)
})
// await _uploadFile2(normalModels[i].file!, (progress: number, _end: boolean) => {
// setUploadProgress(progress * progRate + progOffset)
// })
}
}
// slotModel ローカルキャッシュ無効(RVC)
const slotModels = [
fileUploadSetting.rvcModel,
fileUploadSetting.rvcIndex,
].filter(x => { return x != null }) as ModelData[]
for (let i = 0; i < slotModels.length; i++) {
if (!slotModels[i].data) {
slotModels[i].filename = await slotModels[i].file!.name
}
}
if (fileUploadSetting.isSampleMode == false) {
for (let i = 0; i < slotModels.length; i++) {
const progRate = 1 / slotModels.length
const progOffset = 100 * i * progRate
await _uploadFile2(slotModels[i].file!, (progress: number, _end: boolean) => {
setUploadProgress(progress * progRate + progOffset)
})
}
}
// DDSP-SVC (ファイル名configが被る可能性があるため、アップロードフォルダを分ける必要がある)
const ddspSvcModels = [fileUploadSetting.ddspSvcModel, fileUploadSetting.ddspSvcModelConfig, fileUploadSetting.ddspSvcDiffusion, fileUploadSetting.ddspSvcDiffusionConfig].filter(x => { return x != null }) as ModelData[]
for (let i = 0; i < ddspSvcModels.length; i++) {
if (!ddspSvcModels[i].data) {
ddspSvcModels[i].data = await ddspSvcModels[i].file!.arrayBuffer()
ddspSvcModels[i].filename = await ddspSvcModels[i].file!.name
}
}
if (fileUploadSetting.isSampleMode == false) {
for (let i = 0; i < ddspSvcModels.length; i++) {
const progRate = 1 / ddspSvcModels.length
const progOffset = 100 * i * progRate
const dir = i == 0 || i == 1 ? "ddsp_mod/" : "ddsp_diff/"
await _uploadFile(ddspSvcModels[i], (progress: number, _end: boolean) => {
setUploadProgress(progress * progRate + progOffset)
}, dir)
}
}
// const configFileName = fileUploadSetting.configFile?.filename || "-"
const params = JSON.stringify({
defaultTune: fileUploadSetting.defaultTune || 0,
defaultIndexRatio: fileUploadSetting.defaultIndexRatio || 1,
defaultProtect: fileUploadSetting.defaultProtect || 0.5,
sampleId: fileUploadSetting.isSampleMode ? fileUploadSetting.sampleId || "" : "",
rvcIndexDownload: fileUploadSetting.rvcIndexDownload || false,
files: fileUploadSetting.isSampleMode ? {} : {
mmvcv13Config: props.clientType == "MMVCv13" ? fileUploadSetting.mmvcv13Config?.filename || "" : "",
mmvcv13Model: props.clientType == "MMVCv13" ? fileUploadSetting.mmvcv13Model?.filename || "" : "",
mmvcv15Config: props.clientType == "MMVCv15" ? fileUploadSetting.mmvcv15Config?.filename || "" : "",
mmvcv15Model: props.clientType == "MMVCv15" ? fileUploadSetting.mmvcv15Model?.filename || "" : "",
soVitsSvc40Config: props.clientType == "so-vits-svc-40" ? fileUploadSetting.soVitsSvc40Config?.filename || "" : "",
soVitsSvc40Model: props.clientType == "so-vits-svc-40" ? fileUploadSetting.soVitsSvc40Model?.filename || "" : "",
soVitsSvc40Cluster: props.clientType == "so-vits-svc-40" ? fileUploadSetting.soVitsSvc40Cluster?.filename || "" : "",
rvcModel: props.clientType == "RVC" ? fileUploadSetting.rvcModel?.filename || "" : "",
rvcIndex: props.clientType == "RVC" ? fileUploadSetting.rvcIndex?.filename || "" : "",
rvcFeature: props.clientType == "RVC" ? fileUploadSetting.rvcFeature?.filename || "" : "",
ddspSvcModel: props.clientType == "DDSP-SVC" ? fileUploadSetting.ddspSvcModel?.filename ? "ddsp_mod/" + fileUploadSetting.ddspSvcModel?.filename : "" : "",
ddspSvcModelConfig: props.clientType == "DDSP-SVC" ? fileUploadSetting.ddspSvcModelConfig?.filename ? "ddsp_mod/" + fileUploadSetting.ddspSvcModelConfig?.filename : "" : "",
ddspSvcDiffusion: props.clientType == "DDSP-SVC" ? fileUploadSetting.ddspSvcDiffusion?.filename ? "ddsp_diff/" + fileUploadSetting.ddspSvcDiffusion?.filename : "" : "",
ddspSvcDiffusionConfig: props.clientType == "DDSP-SVC" ? fileUploadSetting.ddspSvcDiffusionConfig?.filename ? "ddsp_diff/" + fileUploadSetting.ddspSvcDiffusionConfig.filename : "" : "",
}
})
if (fileUploadSetting.isHalf == undefined) {
fileUploadSetting.isHalf = false
}
console.log("PARAMS:", params)
const loadPromise = props.voiceChangerClient.loadModel(
slot,
fileUploadSetting.isHalf,
params,
)
// サーバでロード中にキャッシュにセーブ
storeToCache(slot, fileUploadSetting)
await loadPromise
fileUploadSetting.uploaded = true
fileUploadSettings[slot] = fileUploadSetting
setFileUploadSettings([...fileUploadSettings])
setUploadProgress(0)
setIsUploading(false)
reloadServerInfo()
}
}, [fileUploadSettings, props.voiceChangerClient, props.clientType])
const storeToCache = (slot: number, fileUploadSetting: FileUploadSetting) => {
try {
const saveData: FileUploadSetting = {
isHalf: fileUploadSetting.isHalf, // キャッシュとしては不使用。guiで上書きされる。
uploaded: false, // キャッシュから読み込まれるときには、まだuploadされていないから。
defaultTune: fileUploadSetting.defaultTune,
defaultIndexRatio: fileUploadSetting.defaultIndexRatio,
defaultProtect: fileUploadSetting.defaultProtect,
framework: fileUploadSetting.framework,
params: fileUploadSetting.params,
mmvcv13Config: fileUploadSetting.mmvcv13Config ? { data: fileUploadSetting.mmvcv13Config.data, filename: fileUploadSetting.mmvcv13Config.filename } : null,
mmvcv13Model: fileUploadSetting.mmvcv13Model ? { data: fileUploadSetting.mmvcv13Model.data, filename: fileUploadSetting.mmvcv13Model.filename } : null,
mmvcv15Config: fileUploadSetting.mmvcv15Config ? { data: fileUploadSetting.mmvcv15Config.data, filename: fileUploadSetting.mmvcv15Config.filename } : null,
mmvcv15Model: fileUploadSetting.mmvcv15Model ? { data: fileUploadSetting.mmvcv15Model.data, filename: fileUploadSetting.mmvcv15Model.filename } : null,
soVitsSvc40Config: fileUploadSetting.soVitsSvc40Config ? { data: fileUploadSetting.soVitsSvc40Config.data, filename: fileUploadSetting.soVitsSvc40Config.filename } : null,
soVitsSvc40Model: fileUploadSetting.soVitsSvc40Model ? { data: fileUploadSetting.soVitsSvc40Model.data, filename: fileUploadSetting.soVitsSvc40Model.filename } : null,
soVitsSvc40Cluster: fileUploadSetting.soVitsSvc40Cluster ? { data: fileUploadSetting.soVitsSvc40Cluster.data, filename: fileUploadSetting.soVitsSvc40Cluster.filename } : null,
soVitsSvc40v2Config: fileUploadSetting.soVitsSvc40v2Config ? { data: fileUploadSetting.soVitsSvc40v2Config.data, filename: fileUploadSetting.soVitsSvc40v2Config.filename } : null,
soVitsSvc40v2Model: fileUploadSetting.soVitsSvc40v2Model ? { data: fileUploadSetting.soVitsSvc40v2Model.data, filename: fileUploadSetting.soVitsSvc40v2Model.filename } : null,
soVitsSvc40v2Cluster: fileUploadSetting.soVitsSvc40v2Cluster ? { data: fileUploadSetting.soVitsSvc40v2Cluster.data, filename: fileUploadSetting.soVitsSvc40v2Cluster.filename } : null,
rvcModel: fileUploadSetting.rvcModel ? { data: fileUploadSetting.rvcModel.data, filename: fileUploadSetting.rvcModel.filename } : null,
rvcIndex: fileUploadSetting.rvcIndex ? { data: fileUploadSetting.rvcIndex.data, filename: fileUploadSetting.rvcIndex.filename } : null,
rvcFeature: fileUploadSetting.rvcFeature ? { data: fileUploadSetting.rvcFeature.data, filename: fileUploadSetting.rvcFeature.filename } : null,
ddspSvcModel: fileUploadSetting.ddspSvcModel ? { data: fileUploadSetting.ddspSvcModel.data, filename: fileUploadSetting.ddspSvcModel.filename } : null,
ddspSvcModelConfig: fileUploadSetting.ddspSvcModelConfig ? { data: fileUploadSetting.ddspSvcModelConfig.data, filename: fileUploadSetting.ddspSvcModelConfig.filename } : null,
ddspSvcDiffusion: fileUploadSetting.ddspSvcDiffusion ? { data: fileUploadSetting.ddspSvcDiffusion.data, filename: fileUploadSetting.ddspSvcDiffusion.filename } : null,
ddspSvcDiffusionConfig: fileUploadSetting.ddspSvcDiffusionConfig ? { data: fileUploadSetting.ddspSvcDiffusionConfig.data, filename: fileUploadSetting.ddspSvcDiffusionConfig.filename } : null,
isSampleMode: fileUploadSetting.isSampleMode,
sampleId: fileUploadSetting.sampleId,
rvcIndexDownload: fileUploadSetting.rvcIndexDownload,
}
setItem(`${INDEXEDDB_KEY_MODEL_DATA}_${slot}`, saveData)
} catch (e) {
console.log("Excpetion:::::::::", e)
}
}
const uploadAssets = useMemo(() => { const uploadAssets = useMemo(() => {
return async (slot: number, name: ModelAssetName, file: File) => { return async (slot: number, name: ModelAssetName, file: File) => {
if (!props.voiceChangerClient) return if (!props.voiceChangerClient) return
@ -653,7 +390,6 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
fileUploadSettings, fileUploadSettings,
setFileUploadSetting, setFileUploadSetting,
loadModel,
uploadModel, uploadModel,
uploadProgress, uploadProgress,
isUploading, isUploading,

View File

@ -1,6 +1,6 @@
import { useState, useMemo, useEffect } from "react" import { useState, useMemo, useEffect } from "react"
import { ClientType, DefaultWorkletNodeSetting, DefaultWorkletNodeSetting_DDSP_SVC, DefaultWorkletNodeSetting_RVC, DefaultWorkletNodeSetting_so_vits_svc_40, DefaultWorkletNodeSetting_so_vits_svc_40v2, INDEXEDDB_KEY_WORKLETNODE, WorkletNodeSetting } from "../const" import { ClientType, DefaultWorkletNodeSetting, DefaultWorkletNodeSetting_DDSP_SVC, DefaultWorkletNodeSetting_RVC, DefaultWorkletNodeSetting_so_vits_svc_40, INDEXEDDB_KEY_WORKLETNODE, WorkletNodeSetting } from "../const"
import { VoiceChangerClient } from "../VoiceChangerClient" import { VoiceChangerClient } from "../VoiceChangerClient"
import { useIndexedDB } from "./useIndexedDB" import { useIndexedDB } from "./useIndexedDB"
@ -24,10 +24,8 @@ export const useWorkletNodeSetting = (props: UseWorkletNodeSettingProps): Workle
return DefaultWorkletNodeSetting return DefaultWorkletNodeSetting
} else if (props.clientType == "MMVCv15") { } else if (props.clientType == "MMVCv15") {
return DefaultWorkletNodeSetting return DefaultWorkletNodeSetting
} else if (props.clientType == "so-vits-svc-40" || props.clientType == "so-vits-svc-40_c") { } else if (props.clientType == "so-vits-svc-40") {
return DefaultWorkletNodeSetting_so_vits_svc_40 return DefaultWorkletNodeSetting_so_vits_svc_40
} else if (props.clientType == "so-vits-svc-40v2") {
return DefaultWorkletNodeSetting_so_vits_svc_40v2
} else if (props.clientType == "DDSP-SVC") { } else if (props.clientType == "DDSP-SVC") {
return DefaultWorkletNodeSetting_DDSP_SVC return DefaultWorkletNodeSetting_DDSP_SVC
} else if (props.clientType == "RVC") { } else if (props.clientType == "RVC") {

View File

@ -16,9 +16,7 @@ VoiceChangerType: TypeAlias = Literal[
ModelType: TypeAlias = Literal[ ModelType: TypeAlias = Literal[
"MMVCv15", "MMVCv15",
"MMVCv13", "MMVCv13",
"so-vits-svc-40v2",
"so-vits-svc-40", "so-vits-svc-40",
"so-vits-svc-40_c",
"DDSP-SVC", "DDSP-SVC",
"RVC", "RVC",
] ]

View File

@ -24,7 +24,7 @@ class RVCModelSlot(ModelSlot):
modelFile: str = "" modelFile: str = ""
indexFile: str = "" indexFile: str = ""
defaultTune: int = 0 defaultTune: int = 0
defaultIndexRatio: int = 1 defaultIndexRatio: int = 0
defaultProtect: float = 0.5 defaultProtect: float = 0.5
isONNX: bool = False isONNX: bool = False
modelType: str = EnumInferenceTypes.pyTorchRVC.value modelType: str = EnumInferenceTypes.pyTorchRVC.value