Skip to content

Commit 6129c77

Browse files
authored
Fix GPT-SoVITS v2 version and model loading problem (#191)
* Fix: move version to vits_config.model to prevent multiple keyword error * Fix: gsv2 model loading and unloading
1 parent 0a74138 commit 6129c77

File tree

4 files changed

+32
-41
lines changed

4 files changed

+32
-41
lines changed

gpt_sovits/gpt_sovits.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,12 @@ def load_vits_weights(self, weight_path):
8181
else:
8282
self.version = "v2"
8383

84+
self.vits_config.model.version = self.version
85+
8486
self.vits_model = SynthesizerTrn(
8587
self.vits_config.data.filter_length // 2 + 1,
8688
self.vits_config.train.segment_size // self.vits_config.data.hop_length,
8789
n_speakers=self.vits_config.data.n_speakers,
88-
version=self.version,
8990
**self.vits_config.model
9091
).to(self.device)
9192

manager/ModelManager.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -390,9 +390,9 @@ def unload_model(self, model_type: str, model_id: str):
390390
del self.sid2model[model_type][start:start + n_speakers]
391391
del self.voice_speakers[model_type][start:start + n_speakers]
392392
del self.tts_models[model_type][model_id]
393-
for speaker in speakers:
394-
if speaker in self.spk2model[model_type]:
395-
del self.spk2model[model_type][speaker["name"]]
393+
394+
for item in speakers:
395+
self.spk2model[model_type].pop(item["name"], None)
396396

397397
for new_id, speaker in enumerate(self.voice_speakers[model_type]):
398398
speaker["id"] = new_id

tts_app/admin/views.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ def get_models_info():
5555
if model.get("config_path") is not None:
5656
model["config_path"] = extract_model_dir(model["config_path"])
5757

58-
if model.get("sovits_path") is not None:
59-
model["sovits_path"] = extract_model_dir(model["sovits_path"])
58+
if model.get("vits_path") is not None:
59+
model["vits_path"] = extract_model_dir(model["vits_path"])
6060

61-
if model.get("gpt_path") is not None:
62-
model["gpt_path"] = extract_model_dir(model["gpt_path"])
61+
if model.get("t2s_path") is not None:
62+
model["t2s_path"] = extract_model_dir(model["t2s_path"])
6363

6464
return loaded_models_info
6565

@@ -82,19 +82,19 @@ def load_model():
8282

8383
}
8484
if model_type == ModelType.GPT_SOVITS:
85-
sovits_path = request_data.get("sovits_path")
86-
gpt_path = request_data.get("gpt_path")
85+
vits_path = request_data.get("vits_path")
86+
t2s_path = request_data.get("t2s_path")
8787

88-
sovits_path = redirect_model_dir(sovits_path)
89-
gpt_path = redirect_model_dir(gpt_path)
88+
vits_path = redirect_model_dir(vits_path)
89+
t2s_path = redirect_model_dir(t2s_path)
9090

9191
tts_model.update(
9292
{
93-
"sovits_path": sovits_path,
94-
"gpt_path": gpt_path,
93+
"vits_path": vits_path,
94+
"t2s_path": t2s_path,
9595
}
9696
)
97-
logging.info(f"Loading model sovits_path: {sovits_path} gpt_path: {gpt_path}")
97+
logging.info(f"Loading model vits_path: {vits_path} t2s_path: {t2s_path}")
9898
else:
9999
vits_path = request_data.get("vits_path")
100100
config_path = request_data.get("config_path")

tts_app/static/js/admincode.js

+16-26
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@ function renderModelCard(model_data, model_type) {
5656
var id = String(model_data["model_id"]);
5757
var vits_path = String(model_data["vits_path"]);
5858
var n_speakers = String(model_data["n_speakers"]);
59-
var sovits_path = String(model_data["sovits_path"]);
60-
var gpt_path = String(model_data["gpt_path"]);
59+
var t2s_path = String(model_data["t2s_path"]);
6160

6261
var card = $('<div></div>').addClass("card model-card " + model_type).attr({
6362
"data-model-type": model_type,
@@ -68,8 +67,8 @@ function renderModelCard(model_data, model_type) {
6867

6968
// $('<div></div>').text("id: " + id).appendTo(wrap);
7069
if (model_type == "GPT-SOVITS") {
71-
$('<div></div>').text(sovits_path).addClass("model-card-info1").appendTo(wrap);
72-
$('<div></div>').text(gpt_path).addClass("model-card-info3").appendTo(wrap);
70+
$('<div></div>').text(vits_path).addClass("model-card-info1").appendTo(wrap);
71+
$('<div></div>').text(t2s_path).addClass("model-card-info3").appendTo(wrap);
7372
$('<div></div>').text("x").addClass("unload-model").appendTo(wrap);
7473
} else {
7574
$('<div></div>').text(vits_path).addClass("model-card-info1").appendTo(wrap);
@@ -106,52 +105,43 @@ function renderModelLoadCards(data) {
106105
var model_type = model.model_type;
107106
var vits_path = model.vits_path;
108107
var config_path = model.config_path;
109-
var sovits_path = model.sovits_path;
110-
var gpt_path = model.gpt_path;
108+
var t2s_path = model.t2s_path;
111109

112110
var folder = null;
113-
var model_name = null;
111+
var vits_name = null;
114112
var config_name = null;
115-
var sovits_name = null;
116-
var gpt_name = null;
113+
var t2s_name = null;
117114

118115
$('<div></div>').text(model_id.toString()).addClass("unload-model-id").appendTo(card);
119116
$('<div></div>').text(model_type).addClass("unload-model-type").appendTo(card);
120117

121118
if (vits_path != null && config_path != null) {
122119
folder = vits_path.split("/")[0];
123-
model_name = vits_path.split("/")[1];
120+
vits_name = vits_path.split("/")[1];
124121
config_name = config_path.split("/")[1];
125122

126123
$('<div></div>').text(folder).addClass("unload-model-folder").appendTo(card);
127-
$('<div></div>').text(model_name).addClass("unload-model-path model1").appendTo(card);
128-
$('<div></div>').text(config_name).addClass("unload-model-config model2").appendTo(card);
124+
$('<div></div>').text(vits_name).addClass("unload-vits-path model1").appendTo(card);
125+
$('<div></div>').text(config_name).addClass("unload-vits-config model2").appendTo(card);
129126
} else {
130-
folder = sovits_path.split("/")[0];
131-
sovits_name = sovits_path.split("/")[1];
132-
gpt_name = gpt_path.split("/")[1];
127+
folder = vits_path.split("/")[0];
128+
vits_name = vits_path.split("/")[1];
129+
t2s_name = t2s_path.split("/")[1];
133130

134131
$('<div></div>').text(folder).addClass("unload-model-folder").appendTo(card);
135-
$('<div></div>').text(sovits_name).addClass("unload-sovits-path model1").appendTo(card);
136-
$('<div></div>').text(gpt_name).addClass("unload-gpt-config model2").appendTo(card);
132+
$('<div></div>').text(vits_name).addClass("unload-vits-path model1").appendTo(card);
133+
$('<div></div>').text(t2s_name).addClass("unload-t2s-config model2").appendTo(card);
137134
}
138135

139-
140-
// $('<div></div>').text(model_type).addClass("model-type").appendTo(card);
141-
142-
143-
// var formattedString = folder + " | " + filename + " | " + config_path;
144-
// $('<div></div>').text(formattedString).addClass("unload-model-path").appendTo(card);
145-
// card.text(formattedString);
146136
card.on('click', function () {
147137
if (!isRequestInProgress) {
148138
isRequestInProgress = true;
149139
let tts_model = {};
150140
if (model_type == "GPT-SOVITS") {
151141
tts_model = {
152142
model_type: model_type,
153-
gpt_path: gpt_path,
154-
sovits_path: sovits_path
143+
t2s_path: t2s_path,
144+
vits_path: vits_path
155145
}
156146
} else {
157147
tts_model = {

0 commit comments

Comments
 (0)