This commit is contained in:
wataru 2023-04-05 18:08:06 +09:00
parent 4251e1ca7c
commit 98e14a9d4a
27 changed files with 396 additions and 81 deletions

View File

@ -7,20 +7,30 @@
"subTitle": "for MMVC v.1.3",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": true,
"pyTorchEnable": true,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false
"showPyTorchDefault": false,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": false
"F0DetectorEnable": false,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": true,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": true,
"f0FactorEnable": false,
"tuningEnable": false,

View File

@ -7,20 +7,30 @@
"subTitle": "for MMVC v.1.5",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": true,
"pyTorchEnable": true,
"MMVCCorrespondense": true,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false
"showPyTorchDefault": false,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": true
"F0DetectorEnable": true,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": true,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": true,
"tuningEnable": false,

View File

@ -7,17 +7,26 @@
"subTitle": "for so-vits-svc-40",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": true,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": true,
"showPyTorchDefault": true
"showPyTorchDefault": true,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": true
"F0DetectorEnable": true,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": false,

View File

@ -0,0 +1,67 @@
{
"type": "demo",
"id": "so-vits-svc-40_c",
"front": {
"title": {
"mainTitle": "VC Client",
"subTitle": "for so-vits-svc-40_c",
"lineNum": 1
},
"serverControl": {
"modelInfoEnable": false
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": false,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false,
"frameworkEnable": false,
"modelUploaderEnable": false,
"configRow": false,
"uploadRow": false
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": true,
"analyzerRow": false,
"samplingRow": false,
"playRow": false
},
"speakerSetting": {
"srcIdEnable": false,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": false,
"tuningEnable": true,
"clusterInferRationEnable": true,
"noiseScaleEnable": true,
"silentThresholdEnable": true
},
"converterSetting": {
"extraDataLengthEnable": true
},
"advancedSetting": {
"serverURLEnable": false,
"protocolEnable": true,
"sampleRateEnable": false,
"sendingSampleRateEnable": false,
"crossFadeOverlapSizeEnable": false,
"crossFadeOffsetRateEnable": false,
"crossFadeEndRateEnable": false,
"downSamplingModeEnable": false,
"trancateNumTresholdEnable": false
}
},
"dialogs": {
"license": [
{
"title": "c",
"auther": "c",
"contact": "b",
"url": "a",
"license": "MIT"
}
]
}
}

View File

@ -7,13 +7,19 @@
"subTitle": "for so-vits-svc-40v2",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": true,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": true,
"showPyTorchDefault": true
"showPyTorchDefault": true,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
@ -21,6 +27,7 @@
},
"speakerSetting": {
"srcIdEnable": false,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": false,
"tuningEnable": true,

File diff suppressed because one or more lines are too long

View File

@ -7,20 +7,30 @@
"subTitle": "for MMVC v.1.3",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": true,
"pyTorchEnable": true,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false
"showPyTorchDefault": false,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": false
"F0DetectorEnable": false,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": true,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": true,
"f0FactorEnable": false,
"tuningEnable": false,

View File

@ -7,20 +7,30 @@
"subTitle": "for MMVC v.1.5",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": true,
"pyTorchEnable": true,
"MMVCCorrespondense": true,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false
"showPyTorchDefault": false,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": true
"F0DetectorEnable": true,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": true,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": true,
"tuningEnable": false,

View File

@ -7,20 +7,30 @@
"subTitle": "for so-vits-svc-40",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": true,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": true,
"showPyTorchDefault": true
"showPyTorchDefault": true,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": true
"F0DetectorEnable": true,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": false,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": false,
"tuningEnable": true,

View File

@ -0,0 +1,68 @@
{
"type": "demo",
"id": "so-vits-svc-40_c",
"front": {
"title": {
"mainTitle": "VC Client",
"subTitle": "for so-vits-svc-40_c",
"lineNum": 1
},
"serverControl": {
"modelInfoEnable": false
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": false,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false,
"frameworkEnable": false,
"modelUploaderEnable": false,
"configRow": false,
"uploadRow": false
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": true,
"analyzerRow": false,
"samplingRow": false,
"playRow": false
},
"speakerSetting": {
"srcIdEnable": false,
"dstIdEnable": false,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": false,
"tuningEnable": true,
"clusterInferRationEnable": true,
"noiseScaleEnable": true,
"silentThresholdEnable": true
},
"converterSetting": {
"extraDataLengthEnable": true
},
"advancedSetting": {
"serverURLEnable": false,
"protocolEnable": true,
"sampleRateEnable": false,
"sendingSampleRateEnable": false,
"crossFadeOverlapSizeEnable": false,
"crossFadeOffsetRateEnable": false,
"crossFadeEndRateEnable": false,
"downSamplingModeEnable": false,
"trancateNumTresholdEnable": false
}
},
"dialogs": {
"license": [
{
"title": "c",
"auther": "c",
"contact": "b",
"url": "a",
"license": "MIT"
}
]
}
}

View File

@ -7,13 +7,19 @@
"subTitle": "for so-vits-svc-40v2",
"lineNum": 1
},
"serverControl": {},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": true,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": true,
"showPyTorchDefault": true
"showPyTorchDefault": true,
"frameworkEnable": true,
"modelUploaderEnable": true,
"configRow": true,
"uploadRow": true
},
"deviceSetting": {},
"qualityControl": {
@ -21,6 +27,7 @@
},
"speakerSetting": {
"srcIdEnable": false,
"dstIdEnable": true,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": false,
"tuningEnable": true,

View File

@ -13,20 +13,30 @@ export type AppGuiDemoSetting = {
"lineNum": number
},
"serverControl": {
"modelInfoEnable": boolean
},
"modelSetting": {
"ONNXEnable": boolean,
"pyTorchEnable": boolean,
"MMVCCorrespondense": boolean,
"pyTorchClusterEnable": boolean,
"showPyTorchDefault": boolean
"showPyTorchDefault": boolean,
"frameworkEnable": boolean,
"modelUploaderEnable": boolean,
"configRow": boolean,
"uploadRow": boolean
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": boolean
"F0DetectorEnable": boolean,
"analyzerRow": boolean,
"samplingRow": boolean,
"playRow": boolean
},
"speakerSetting": {
"srcIdEnable": boolean
"dstIdEnable": boolean
"editSpeakerIdMappingEnable": boolean
"f0FactorEnable": boolean
"tuningEnable": boolean
@ -66,21 +76,29 @@ const InitialAppGuiDemoSetting: AppGuiDemoSetting = {
"lineNum": 1
},
"serverControl": {
"modelInfoEnable": true
},
"modelSetting": {
"ONNXEnable": false,
"pyTorchEnable": false,
"MMVCCorrespondense": false,
"pyTorchClusterEnable": false,
"showPyTorchDefault": false
"showPyTorchDefault": false,
"frameworkEnable": false,
"modelUploaderEnable": false,
"configRow": false,
"uploadRow": false
},
"deviceSetting": {},
"qualityControl": {
"F0DetectorEnable": false
"F0DetectorEnable": false,
"analyzerRow": true,
"samplingRow": true,
"playRow": true
},
"speakerSetting": {
"srcIdEnable": false,
"dstIdEnable": false,
"editSpeakerIdMappingEnable": false,
"f0FactorEnable": false,
"tuningEnable": false,

View File

@ -1,10 +1,16 @@
import React, { useMemo } from "react"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
import { useAppState } from "../../001_provider/001_AppStateProvider"
export const ServerInfoRow = () => {
const appState = useAppState()
const { appGuiSettingState } = useAppRoot()
const serverControlSetting = appGuiSettingState.appGuiSetting.front.serverControl
const serverInfoRow = useMemo(() => {
if (!serverControlSetting.modelInfoEnable) {
return <></>
}
const onReloadClicked = async () => {
const info = await appState.getInfo()
console.log("info", info)

View File

@ -5,13 +5,20 @@ import { useGuiState } from "./001_GuiStateProvider"
export const ModelUploaderRow = () => {
const guiState = useGuiState()
const { appGuiSettingState } = useAppRoot()
const modelSetting = appGuiSettingState.appGuiSetting.front.modelSetting
useEffect(() => {
if (!modelSetting.modelUploaderEnable) {
return
}
if (appGuiSettingState.appGuiSetting.front.modelSetting.showPyTorchDefault) {
guiState.setShowPyTorchModelUpload(true)
}
}, [])
const modelUploaderRow = useMemo(() => {
if (!modelSetting.modelUploaderEnable) {
return <></>
}
return (
<div className="body-row split-3-3-4 left-padding-1 guided">
<div className="body-item-title left-padding-1">Model Uploader</div>

View File

@ -2,11 +2,17 @@ import React, { useMemo } from "react"
import { fileSelector } from "@dannadori/voice-changer-client-js"
import { useAppState } from "../../001_provider/001_AppStateProvider"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
export const ConfigSelectRow = () => {
const appState = useAppState()
const { appGuiSettingState } = useAppRoot()
const modelSetting = appGuiSettingState.appGuiSetting.front.modelSetting
const configSelectRow = useMemo(() => {
if (!modelSetting.configRow) {
return <></>
}
const configFilenameText = appState.serverSetting.fileUploadSetting.configFile?.filename || appState.serverSetting.fileUploadSetting.configFile?.file?.name || ""
const onConfigFileLoadClicked = async () => {
const file = await fileSelector("")

View File

@ -1,11 +1,18 @@
import React, { useMemo } from "react"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
import { useAppState } from "../../001_provider/001_AppStateProvider"
export const ModelUploadButtonRow = () => {
const appState = useAppState()
const { appGuiSettingState } = useAppRoot()
const modelSetting = appGuiSettingState.appGuiSetting.front.modelSetting
const modelUploadButtonRow = useMemo(() => {
if (!modelSetting.uploadRow) {
return <></>
}
const onModelUploadClicked = async () => {
appState.serverSetting.loadModel()
}

View File

@ -1,11 +1,17 @@
import React, { useMemo } from "react"
import { Framework } from "@dannadori/voice-changer-client-js"
import { useAppState } from "../../001_provider/001_AppStateProvider"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
export const FrameworkRow = () => {
const appState = useAppState()
const { appGuiSettingState } = useAppRoot()
const modelSetting = appGuiSettingState.appGuiSetting.front.modelSetting
const frameworkRow = useMemo(() => {
if (!modelSetting.frameworkEnable) {
return <></>
}
const onFrameworkChanged = async (val: Framework) => {
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, framework: val })
}

View File

@ -1,7 +1,13 @@
import React, { useMemo } from "react"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
export const AnalyzerRow = () => {
const { appGuiSettingState } = useAppRoot()
const qualityControlSetting = appGuiSettingState.appGuiSetting.front.qualityControl
const analyzerRow = useMemo(() => {
if (!qualityControlSetting.analyzerRow) {
return <></>
}
return (
<div className="body-row split-3-7 left-padding-1 guided">
<div className="body-item-title left-padding-1 ">Analyzer(Experimental)</div>

View File

@ -1,4 +1,5 @@
import React, { useMemo, useState } from "react"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
import { useAppState } from "../../001_provider/001_AppStateProvider"
import { AUDIO_ELEMENT_FOR_SAMPLING_INPUT, AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT } from "../../const"
import { useGuiState } from "./001_GuiStateProvider"
@ -7,9 +8,15 @@ export const SamplingRow = () => {
const [recording, setRecording] = useState<boolean>(false)
const appState = useAppState()
const guiState = useGuiState()
const { appGuiSettingState } = useAppRoot()
const qualityControlSetting = appGuiSettingState.appGuiSetting.front.qualityControl
const samplingRow = useMemo(() => {
if (!qualityControlSetting.samplingRow) {
return <></>
}
const onRecordStartClicked = async () => {
setRecording(true)
await appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, recordIO: 1 })

View File

@ -1,11 +1,17 @@
import React, { useMemo } from "react"
import { useAppRoot } from "../../001_provider/001_AppRootProvider"
import { AUDIO_ELEMENT_FOR_SAMPLING_INPUT, AUDIO_ELEMENT_FOR_SAMPLING_OUTPUT } from "../../const"
import { useGuiState } from "./001_GuiStateProvider"
export const SamplingPlayRow = () => {
const guiState = useGuiState()
const { appGuiSettingState } = useAppRoot()
const qualityControlSetting = appGuiSettingState.appGuiSetting.front.qualityControl
const samplingPlayRow = useMemo(() => {
if (!qualityControlSetting.playRow) {
return <></>
}
return (
<div className="body-row split-3-2-2-3 left-padding-1 guided">
<div className="body-item-title left-padding-2 ">

View File

@ -5,12 +5,20 @@ import { ServerInfoSoVitsSVC } from "@dannadori/voice-changer-client-js";
export const DstIdRow = () => {
const appState = useAppState()
const { appGuiSettingState } = useAppRoot()
const speakerSetting = appGuiSettingState.appGuiSetting.front.speakerSetting
const clientId = appGuiSettingState.appGuiSetting.id
const dstIdRow = useMemo(() => {
if (!speakerSetting.dstIdEnable) {
return <></>
}
if (clientId != "MMVCv13") {
return <></>
}
if (!speakerSetting.dstIdEnable) {
return <></>
}
return (
<div className="body-row split-3-2-1-4 left-padding-1 guided">
@ -35,6 +43,10 @@ export const DstIdRow = () => {
}, [appState.serverSetting.serverSetting, appState.clientSetting.clientSetting.speakers, appState.serverSetting.updateServerSettings])
const dstIdRowWithF0 = useMemo(() => {
if (!speakerSetting.dstIdEnable) {
return <></>
}
if (clientId != "MMVCv15") {
return <></>
}
@ -67,6 +79,10 @@ export const DstIdRow = () => {
}, [appState.serverSetting.serverSetting, appState.serverSetting.updateServerSettings, appState.clientSetting.clientSetting.correspondences])
const dstIdRowFromServer = useMemo(() => {
if (!speakerSetting.dstIdEnable) {
return <></>
}
const settings = appState.serverSetting.serverSetting as ServerInfoSoVitsSVC
const speakers = settings.speakers
if (!speakers) {

View File

@ -14,7 +14,7 @@ export const NoiseScaleRow = () => {
return (
<div className="body-row split-3-3-4 left-padding-1 guided">
<div className="body-item-title left-padding-1 ">Noice Scale</div>
<div className="body-item-title left-padding-1 ">Noise Scale</div>
<div>
<input type="range" className="body-item-input-slider" min="0" max="1" step="0.1" value={appState.serverSetting.serverSetting.noiceScale} onChange={(e) => {
appState.serverSetting.updateServerSettings({ ...appState.serverSetting.serverSetting, noiceScale: Number(e.target.value) })

View File

@ -7,10 +7,9 @@
export const ClientType = {
"MMVCv15": "MMVCv15",
"MMVCv13": "MMVCv13",
"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",
"so_vits_svc_40v2_c": "so_vits_svc_40v2_c",
"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"
} as const
export type ClientType = typeof ClientType[keyof typeof ClientType]
@ -220,6 +219,41 @@ export const DefaultServerSetting_so_vits_svc_40: ServerInfo = {
onnxExecutionProviders: []
}
export const DefaultServerSetting_so_vits_svc_40_c: ServerInfo = {
srcId: 0,
dstId: 0,
gpu: 0,
crossFadeOffsetRate: 0.0,
crossFadeEndRate: 1.0,
crossFadeOverlapSize: CrossFadeOverlapSize[1024],
framework: Framework.ONNX,
f0Factor: 1.0,
onnxExecutionProvider: OnnxExecutionProvider.CPUExecutionProvider,
f0Detector: F0Detector.dio,
recordIO: 0,
// tran: 0,
// noiceScale: 0,
// predictF0: 0,
// silentThreshold: 0,
tran: 10,
noiceScale: 0.3,
predictF0: 0,
silentThreshold: 0.00001,
extraConvertSize: 1024 * 32,
clusterInferRatio: 0.1,
inputSampleRate: 24000,
//
status: "ok",
configFile: "",
pyTorchModelFile: "",
onnxModelFile: "",
onnxExecutionProviders: []
}
export const DefaultServerSetting_so_vits_svc_40v2: ServerInfo = {
srcId: 0,
dstId: 0,

View File

@ -1,5 +1,5 @@
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 } from "../const"
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 } from "../const"
import { VoiceChangerClient } from "../VoiceChangerClient"
import { useIndexedDB } from "./useIndexedDB"
@ -52,14 +52,18 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
return DefaultServerSetting_MMVCv13
} else if (props.clientType == "MMVCv15") {
return DefaultServerSetting_MMVCv15
} else if (props.clientType == "so_vits_svc_40" || props.clientType == "so_vits_svc_40_c") {
} else if (props.clientType == "so-vits-svc-40") {
return DefaultServerSetting_so_vits_svc_40
} else if (props.clientType == "so_vits_svc_40v2" || props.clientType == "so_vits_svc_40v2_c") {
} 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 {
return DefaultServerSetting_MMVCv15
}
}, [])
console.log("default sss", defaultServerSetting)
const [serverSetting, setServerSetting] = useState<ServerInfo>(defaultServerSetting)
const [fileUploadSetting, setFileUploadSetting] = useState<FileUploadSetting>(InitialFileUploadSetting)
const { setItem, getItem, removeItem } = useIndexedDB({ clientType: props.clientType })
@ -178,7 +182,7 @@ export const useServerSetting = (props: UseServerSettingProps): ServerSettingSta
// fileUploadSetting.hubertTorchModel!.filename = await fileUploadSetting.hubertTorchModel!.file!.name
// }
if (fileUploadSetting.clusterTorchModel) {
if ((props.clientType == "so_vits_svc_40v2" || props.clientType == "so_vits_svc_40") && !fileUploadSetting.clusterTorchModel!.data) {
if ((props.clientType == "so-vits-svc-40v2" || props.clientType == "so-vits-svc-40") && !fileUploadSetting.clusterTorchModel!.data) {
fileUploadSetting.clusterTorchModel!.data = await fileUploadSetting.clusterTorchModel!.file!.arrayBuffer()
fileUploadSetting.clusterTorchModel!.filename = await fileUploadSetting.clusterTorchModel!.file!.name
}

View File

@ -24,9 +24,9 @@ export const useWorkletNodeSetting = (props: UseWorkletNodeSettingProps): Workle
return DefaultWorkletNodeSetting
} else if (props.clientType == "MMVCv15") {
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" || props.clientType == "so-vits-svc-40_c") {
return DefaultWorkletNodeSetting_so_vits_svc_40
} else if (props.clientType == "so_vits_svc_40v2" || props.clientType == "so_vits_svc_40v2_c") {
} else if (props.clientType == "so-vits-svc-40v2") {
return DefaultWorkletNodeSetting_so_vits_svc_40v2
} else {
return DefaultWorkletNodeSetting

View File

@ -38,7 +38,7 @@ def setupArgParser():
parser.add_argument("--colab", type=strtobool,
default=False, help="run on colab")
parser.add_argument("--modelType", type=str,
default="MMVCv15", help="model type: MMVCv13, MMVCv15, so-vits-svc-40, so-vits-svc-40v2, so-vits-svc-40v2_tsukuyomi")
default="MMVCv15", help="model type: MMVCv13, MMVCv15, so-vits-svc-40, so-vits-svc-40v2")
parser.add_argument("--cluster", type=str, help="path to cluster model")
parser.add_argument("--hubert", type=str, help="path to hubert model")
parser.add_argument("--internal", type=strtobool, default=False, help="各種パスをmac appの中身に変換")
@ -129,7 +129,7 @@ if __name__ == 'MMVCServerSIO':
if CONFIG and (MODEL or ONNX_MODEL):
if MODEL_TYPE == "MMVCv15" or MODEL_TYPE == "MMVCv13":
voiceChangerManager.loadModel(CONFIG, MODEL, ONNX_MODEL, None)
elif MODEL_TYPE == "so-vits-svc-40" or MODEL_TYPE == "so-vits-svc-40v2" or MODEL_TYPE == "so-vits-svc-40v2_tsukuyomi":
elif MODEL_TYPE == "so-vits-svc-40" or MODEL_TYPE == "so-vits-svc-40v2" or MODEL_TYPE == "so-vits-svc-40_c":
voiceChangerManager.loadModel(CONFIG, MODEL, ONNX_MODEL, CLUSTER_MODEL)
else:
voiceChangerManager.loadModel(CONFIG, MODEL, ONNX_MODEL, CLUSTER_MODEL)

View File

@ -35,34 +35,18 @@ def setModelType(_modelType: str):
def getFrontendPath():
if modelType == "MMVCv15":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
elif modelType == "MMVCv13":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
elif modelType == "so-vits-svc-40":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
elif modelType == "so-vits-svc-40v2":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
elif modelType == "DDSP-SVC":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
elif modelType == "so-vits-svc-40_c":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") \
else "../client/demo_v13/dist"
return frontend_path
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
# if modelType == "MMVCv15":
def getFrontendPath2():
if modelType == "MMVCv15":
frontend_path = os.path.join(sys._MEIPASS, "dist_v15") if hasattr(sys, "_MEIPASS") else "../client/demo_v15/dist"
elif modelType == "MMVCv13":
frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
elif modelType == "so-vits-svc-40":
frontend_path = os.path.join(sys._MEIPASS, "dist_so-vits-svc_40") if hasattr(sys, "_MEIPASS") else "../client/demo_so-vits-svc_40/dist"
elif modelType == "so-vits-svc-40v2":
frontend_path = os.path.join(sys._MEIPASS, "dist_so-vits-svc_40v2") if hasattr(sys, "_MEIPASS") else "../client/demo_so-vits-svc_40v2/dist"
elif modelType == "DDSP-SVC":
frontend_path = os.path.join(sys._MEIPASS, "dist_DDSP-SVC") if hasattr(sys, "_MEIPASS") else "../client/demo_DDSP-SVC/dist"
elif modelType == "so-vits-svc-40_c":
frontend_path = os.path.join(sys._MEIPASS, "dist_so-vits-svc_40_c") if hasattr(sys, "_MEIPASS") \
else "../client/demo_so-vits-svc_40_c/dist"
# elif modelType == "MMVCv13":
# frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
# elif modelType == "so-vits-svc-40":
# frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
# elif modelType == "so-vits-svc-40v2":
# frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
# elif modelType == "DDSP-SVC":
# frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") else "../client/demo_v13/dist"
# elif modelType == "so-vits-svc-40_c":
# frontend_path = os.path.join(sys._MEIPASS, "dist_v13") if hasattr(sys, "_MEIPASS") \
# else "../client/demo_v13/dist"
return frontend_path