- RVC
- Added user to character list for mapping - Audio - Corrected initialization of extension settings - reduce debug logs - Coqui: - Added user to character list for mapping
This commit is contained in:
parent
58b33240a2
commit
61827d6cf8
|
@ -78,11 +78,11 @@ function loadSettings() {
|
||||||
async function onEnabledClick() {
|
async function onEnabledClick() {
|
||||||
extension_settings.audio.enabled = $('#audio_enabled').is(':checked');
|
extension_settings.audio.enabled = $('#audio_enabled').is(':checked');
|
||||||
if (extension_settings.audio.enabled) {
|
if (extension_settings.audio.enabled) {
|
||||||
$("#audio_character_bgm").play();
|
$("#audio_character_bgm")[0].play();
|
||||||
$("#audio_ambient").play();
|
$("#audio_ambient")[0].play();
|
||||||
} else {
|
} else {
|
||||||
$("#audio_character_bgm").pause();
|
$("#audio_character_bgm")[0].pause();
|
||||||
$("#audio_ambient").pause();
|
$("#audio_ambient")[0].pause();
|
||||||
}
|
}
|
||||||
saveSettingsDebounced();
|
saveSettingsDebounced();
|
||||||
}
|
}
|
||||||
|
@ -239,12 +239,12 @@ async function moduleWorker() {
|
||||||
let newBackground = $("#bg1").css("background-image");
|
let newBackground = $("#bg1").css("background-image");
|
||||||
newBackground = newBackground.substring(newBackground.lastIndexOf("/")+1).replace(/\.[^/.]+$/, "");
|
newBackground = newBackground.substring(newBackground.lastIndexOf("/")+1).replace(/\.[^/.]+$/, "");
|
||||||
|
|
||||||
console.debug(DEBUG_PREFIX,"Current backgroung:",newBackground);
|
//console.debug(DEBUG_PREFIX,"Current backgroung:",newBackground);
|
||||||
|
|
||||||
if (currentBackground !== newBackground & newBackground != "none") {
|
if (currentBackground !== newBackground & newBackground != "none") {
|
||||||
currentBackground = newBackground;
|
currentBackground = newBackground;
|
||||||
|
|
||||||
console.debug(DEBUG_PREFIX,"Changing ambient audio");
|
//console.debug(DEBUG_PREFIX,"Changing ambient audio");
|
||||||
updateAmbient();
|
updateAmbient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,7 +290,7 @@ async function moduleWorker() {
|
||||||
// HACK: use sprite file name as expression detection
|
// HACK: use sprite file name as expression detection
|
||||||
const spriteFile = $("#expression-image").attr("src");
|
const spriteFile = $("#expression-image").attr("src");
|
||||||
newExpression = spriteFile.substring(spriteFile.lastIndexOf("/")+1).replace(/\.[^/.]+$/, "");
|
newExpression = spriteFile.substring(spriteFile.lastIndexOf("/")+1).replace(/\.[^/.]+$/, "");
|
||||||
console.debug(DEBUG_PREFIX,"Current expression",newExpression);
|
//console.debug(DEBUG_PREFIX,"Current expression",newExpression);
|
||||||
|
|
||||||
if (!EXPRESSIONS_LIST.includes(newExpression)) {
|
if (!EXPRESSIONS_LIST.includes(newExpression)) {
|
||||||
console.debug(DEBUG_PREFIX,"Not a valid expression, ignored");
|
console.debug(DEBUG_PREFIX,"Not a valid expression, ignored");
|
||||||
|
@ -312,14 +312,15 @@ async function moduleWorker() {
|
||||||
async function updateBGM() {
|
async function updateBGM() {
|
||||||
const audio_files = characterMusics[currentCharacter][currentExpression];
|
const audio_files = characterMusics[currentCharacter][currentExpression];
|
||||||
const audio_file_path = audio_files[Math.floor(Math.random() * audio_files.length)]; // random pick
|
const audio_file_path = audio_files[Math.floor(Math.random() * audio_files.length)]; // random pick
|
||||||
console.log("<MUSIC module> Checking audio file",audio_file_path)
|
console.log(DEBUG_PREFIX,"Updating BGM");
|
||||||
|
console.log(DEBUG_PREFIX,"Checking file",audio_file_path);
|
||||||
fetch(audio_file_path)
|
fetch(audio_file_path)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
console.log("<MUSIC module> File not found!")
|
console.log(DEBUG_PREFIX,"File not found!")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.log("<MUSIC module> Playing emotion",currentExpression)
|
console.log(DEBUG_PREFIX,"Switching BGM to ",currentExpression)
|
||||||
const audio = $("#audio_character_bgm");
|
const audio = $("#audio_character_bgm");
|
||||||
|
|
||||||
audio.animate({volume: 0.0}, 2000, function() {
|
audio.animate({volume: 0.0}, 2000, function() {
|
||||||
|
@ -334,14 +335,15 @@ async function updateBGM() {
|
||||||
|
|
||||||
async function updateAmbient() {
|
async function updateAmbient() {
|
||||||
const audio_file_path = AMBIENT_FOLDER+currentBackground+".mp3";
|
const audio_file_path = AMBIENT_FOLDER+currentBackground+".mp3";
|
||||||
console.log("<MUSIC module> Changing ambient audio for",audio_file_path)
|
console.log(DEBUG_PREFIX,"Updating ambient");
|
||||||
|
console.log(DEBUG_PREFIX,"Checking file",audio_file_path)
|
||||||
fetch(audio_file_path)
|
fetch(audio_file_path)
|
||||||
.then(response => {
|
.then(response => {
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
console.log("<MUSIC module> File not found!")
|
console.log(DEBUG_PREFIX,"File not found!")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.log("<MUSIC module> Changing ambient audio for",currentBackground)
|
console.log(DEBUG_PREFIX,"Switching ambient to ",currentBackground)
|
||||||
const audio = $("#audio_ambient");
|
const audio = $("#audio_ambient");
|
||||||
|
|
||||||
audio.animate({volume: 0.0}, 2000, function() {
|
audio.animate({volume: 0.0}, 2000, function() {
|
||||||
|
|
|
@ -55,6 +55,9 @@ const defaultSettings = {
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadSettings() {
|
function loadSettings() {
|
||||||
|
if (extension_settings.rvc === undefined)
|
||||||
|
extension_settings.rvc = {};
|
||||||
|
|
||||||
if (Object.keys(extension_settings.rvc).length === 0) {
|
if (Object.keys(extension_settings.rvc).length === 0) {
|
||||||
Object.assign(extension_settings.rvc, defaultSettings)
|
Object.assign(extension_settings.rvc, defaultSettings)
|
||||||
}
|
}
|
||||||
|
@ -459,11 +462,13 @@ async function moduleWorker() {
|
||||||
|
|
||||||
function updateCharactersList() {
|
function updateCharactersList() {
|
||||||
let currentcharacters = new Set();
|
let currentcharacters = new Set();
|
||||||
for (const i of getContext().characters) {
|
const context = getContext();
|
||||||
|
for (const i of context.characters) {
|
||||||
currentcharacters.add(i.name);
|
currentcharacters.add(i.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
currentcharacters = Array.from(currentcharacters)
|
currentcharacters = Array.from(currentcharacters);
|
||||||
|
currentcharacters.unshift(context.name1);
|
||||||
|
|
||||||
if (JSON.stringify(charactersList) !== JSON.stringify(currentcharacters)) {
|
if (JSON.stringify(charactersList) !== JSON.stringify(currentcharacters)) {
|
||||||
charactersList = currentcharacters
|
charactersList = currentcharacters
|
||||||
|
|
|
@ -40,6 +40,12 @@ const languageLabels = {
|
||||||
"ja": "Japanese"
|
"ja": "Japanese"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const defaultSettings = {
|
||||||
|
voiceMap: "",
|
||||||
|
voiceMapDict: {}
|
||||||
|
}
|
||||||
|
|
||||||
function throwIfModuleMissing() {
|
function throwIfModuleMissing() {
|
||||||
if (!modules.includes('coqui-tts')) {
|
if (!modules.includes('coqui-tts')) {
|
||||||
toastr.error(`Add coqui-tts to enable-modules and restart the Extras API.`, "Coqui TTS module not loaded.", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(`Add coqui-tts to enable-modules and restart the Extras API.`, "Coqui TTS module not loaded.", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
|
@ -54,11 +60,13 @@ function resetModelSettings() {
|
||||||
|
|
||||||
function updateCharactersList() {
|
function updateCharactersList() {
|
||||||
let currentcharacters = new Set();
|
let currentcharacters = new Set();
|
||||||
for (const i of getContext().characters) {
|
const context = getContext();
|
||||||
|
for (const i of context.characters) {
|
||||||
currentcharacters.add(i.name);
|
currentcharacters.add(i.name);
|
||||||
}
|
}
|
||||||
|
|
||||||
currentcharacters = Array.from(currentcharacters)
|
currentcharacters = Array.from(currentcharacters);
|
||||||
|
currentcharacters.unshift(context.name1);
|
||||||
|
|
||||||
if (JSON.stringify(charactersList) !== JSON.stringify(currentcharacters)) {
|
if (JSON.stringify(charactersList) !== JSON.stringify(currentcharacters)) {
|
||||||
charactersList = currentcharacters
|
charactersList = currentcharacters
|
||||||
|
@ -83,11 +91,13 @@ class CoquiTtsProvider {
|
||||||
// Extension UI and Settings //
|
// Extension UI and Settings //
|
||||||
//#############################//
|
//#############################//
|
||||||
|
|
||||||
settings
|
static instance;
|
||||||
|
settings = {};
|
||||||
|
|
||||||
defaultSettings = {
|
// Singleton to allow acces to instance in event functions
|
||||||
voiceMap: "",
|
constructor() {
|
||||||
voiceMapDict: {}
|
if (CoquiTtsProvider.instance === undefined)
|
||||||
|
CoquiTtsProvider.instance = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
get settingsHtml() {
|
get settingsHtml() {
|
||||||
|
@ -145,8 +155,12 @@ class CoquiTtsProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
loadSettings(settings) {
|
loadSettings(settings) {
|
||||||
|
if (Object.keys(this.settings).length === 0) {
|
||||||
|
Object.assign(this.settings, defaultSettings)
|
||||||
|
}
|
||||||
|
|
||||||
// Only accept keys defined in defaultSettings
|
// Only accept keys defined in defaultSettings
|
||||||
this.settings = this.defaultSettings
|
this.settings = defaultSettings;
|
||||||
|
|
||||||
for (const key in settings) {
|
for (const key in settings) {
|
||||||
if (key in this.settings) {
|
if (key in this.settings) {
|
||||||
|
@ -156,7 +170,7 @@ class CoquiTtsProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
|
|
||||||
$("#coqui_api_model_div").hide();
|
$("#coqui_api_model_div").hide();
|
||||||
$("#coqui_local_model_div").hide();
|
$("#coqui_local_model_div").hide();
|
||||||
|
@ -167,24 +181,12 @@ class CoquiTtsProvider {
|
||||||
$("#coqui_api_model_install_status").hide();
|
$("#coqui_api_model_install_status").hide();
|
||||||
$("#coqui_api_model_install_button").hide();
|
$("#coqui_api_model_install_button").hide();
|
||||||
|
|
||||||
let that = this
|
$("#coqui_model_origin").on("change", CoquiTtsProvider.onModelOriginChange);
|
||||||
$("#coqui_model_origin").on("change", function () { that.onModelOriginChange() });
|
$("#coqui_api_language").on("change", CoquiTtsProvider.onModelLanguageChange);
|
||||||
$("#coqui_api_language").on("change", function () { that.onModelLanguageChange() });
|
$("#coqui_api_model_name").on("change", CoquiTtsProvider.onModelNameChange);
|
||||||
$("#coqui_api_model_name").on("change", function () { that.onModelNameChange() });
|
$("#coqui_remove_char_mapping").on("click", CoquiTtsProvider.onRemoveClick);
|
||||||
|
|
||||||
$("#coqui_remove_char_mapping").on("click", function () { that.onRemoveClick() });
|
updateCharactersList();
|
||||||
|
|
||||||
// Load characters list
|
|
||||||
$('#coqui_character_select')
|
|
||||||
.find('option')
|
|
||||||
.remove()
|
|
||||||
.end()
|
|
||||||
.append('<option value="none">Select Character</option>')
|
|
||||||
.val('none')
|
|
||||||
|
|
||||||
for (const charName of charactersList) {
|
|
||||||
$("#coqui_character_select").append(new Option(charName, charName));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load coqui-api settings from json file
|
// Load coqui-api settings from json file
|
||||||
fetch("/scripts/extensions/tts/coqui_api_models_settings.json")
|
fetch("/scripts/extensions/tts/coqui_api_models_settings.json")
|
||||||
|
@ -227,34 +229,30 @@ class CoquiTtsProvider {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
updateVoiceMap() {
|
static updateVoiceMap() {
|
||||||
this.settings.voiceMap = "";
|
CoquiTtsProvider.instance.settings.voiceMap = "";
|
||||||
for (let i in this.settings.voiceMapDict) {
|
for (let i in CoquiTtsProvider.instance.settings.voiceMapDict) {
|
||||||
const voice_settings = this.settings.voiceMapDict[i];
|
const voice_settings = CoquiTtsProvider.instance.settings.voiceMapDict[i];
|
||||||
this.settings.voiceMap += i + ":" + voice_settings["model_id"];
|
CoquiTtsProvider.instance.settings.voiceMap += i + ":" + voice_settings["model_id"];
|
||||||
|
|
||||||
if (voice_settings["model_language"] != null)
|
if (voice_settings["model_language"] != null)
|
||||||
this.settings.voiceMap += "[" + voice_settings["model_language"] + "]";
|
CoquiTtsProvider.instance.settings.voiceMap += "[" + voice_settings["model_language"] + "]";
|
||||||
|
|
||||||
if (voice_settings["model_speaker"] != null)
|
if (voice_settings["model_speaker"] != null)
|
||||||
this.settings.voiceMap += "[" + voice_settings["model_speaker"] + "]";
|
CoquiTtsProvider.instance.settings.voiceMap += "[" + voice_settings["model_speaker"] + "]";
|
||||||
|
|
||||||
this.settings.voiceMap += ",";
|
CoquiTtsProvider.instance.settings.voiceMap += ",";
|
||||||
}
|
}
|
||||||
$("#tts_voice_map").val(this.settings.voiceMap);
|
$("#tts_voice_map").val(CoquiTtsProvider.instance.settings.voiceMap);
|
||||||
extension_settings.tts.Coqui = this.settings;
|
//extension_settings.tts.Coqui = extension_settings.tts.Coqui;
|
||||||
}
|
}
|
||||||
|
|
||||||
onSettingsChange() {
|
onSettingsChange() {
|
||||||
console.debug(DEBUG_PREFIX, "Settings changes", this.settings);
|
//console.debug(DEBUG_PREFIX, "Settings changes", CoquiTtsProvider.instance.settings);
|
||||||
extension_settings.tts.Coqui = this.settings;
|
CoquiTtsProvider.updateVoiceMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
async onApplyClick() {
|
async onApplyClick() {
|
||||||
if (inApiCall) {
|
|
||||||
return; // TOdo block dropdown
|
|
||||||
}
|
|
||||||
|
|
||||||
const character = $("#coqui_character_select").val();
|
const character = $("#coqui_character_select").val();
|
||||||
const model_origin = $("#coqui_model_origin").val();
|
const model_origin = $("#coqui_model_origin").val();
|
||||||
const model_language = $("#coqui_api_language").val();
|
const model_language = $("#coqui_api_language").val();
|
||||||
|
@ -262,16 +260,15 @@ class CoquiTtsProvider {
|
||||||
let model_setting_language = $("#coqui_api_model_settings_language").val();
|
let model_setting_language = $("#coqui_api_model_settings_language").val();
|
||||||
let model_setting_speaker = $("#coqui_api_model_settings_speaker").val();
|
let model_setting_speaker = $("#coqui_api_model_settings_speaker").val();
|
||||||
|
|
||||||
|
|
||||||
if (character === "none") {
|
if (character === "none") {
|
||||||
toastr.error(`Character not selected, please select one.`, DEBUG_PREFIX + " voice mapping character", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(`Character not selected, please select one.`, DEBUG_PREFIX + " voice mapping character", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model_origin == "none") {
|
if (model_origin == "none") {
|
||||||
toastr.error(`Origin not selected, please select one.`, DEBUG_PREFIX + " voice mapping origin", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(`Origin not selected, please select one.`, DEBUG_PREFIX + " voice mapping origin", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -280,25 +277,25 @@ class CoquiTtsProvider {
|
||||||
|
|
||||||
if (model_name == "none") {
|
if (model_name == "none") {
|
||||||
toastr.error(`Model not selected, please select one.`, DEBUG_PREFIX + " voice mapping model", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(`Model not selected, please select one.`, DEBUG_PREFIX + " voice mapping model", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.settings.voiceMapDict[character] = { model_type: "local", model_id: "local/" + model_id };
|
CoquiTtsProvider.instance.settings.voiceMapDict[character] = { model_type: "local", model_id: "local/" + model_id };
|
||||||
console.debug(DEBUG_PREFIX, "Registered new voice map: ", character, ":", this.settings.voiceMapDict[character]);
|
console.debug(DEBUG_PREFIX, "Registered new voice map: ", character, ":", CoquiTtsProvider.instance.settings.voiceMapDict[character]);
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model_language == "none") {
|
if (model_language == "none") {
|
||||||
toastr.error(`Language not selected, please select one.`, DEBUG_PREFIX + " voice mapping language", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(`Language not selected, please select one.`, DEBUG_PREFIX + " voice mapping language", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (model_name == "none") {
|
if (model_name == "none") {
|
||||||
toastr.error(`Model not selected, please select one.`, DEBUG_PREFIX + " voice mapping model", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(`Model not selected, please select one.`, DEBUG_PREFIX + " voice mapping model", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
this.updateVoiceMap(); // Overide any manual modification
|
CoquiTtsProvider.updateVoiceMap(); // Overide any manual modification
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -327,13 +324,13 @@ class CoquiTtsProvider {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug(DEBUG_PREFIX, "Current voice map: ", this.settings.voiceMap);
|
console.debug(DEBUG_PREFIX, "Current voice map: ", CoquiTtsProvider.instance.settings.voiceMap);
|
||||||
|
|
||||||
this.settings.voiceMapDict[character] = { model_type: "coqui-api", model_id: model_id, model_language: model_setting_language, model_speaker: model_setting_speaker };
|
CoquiTtsProvider.instance.settings.voiceMapDict[character] = { model_type: "coqui-api", model_id: model_id, model_language: model_setting_language, model_speaker: model_setting_speaker };
|
||||||
|
|
||||||
console.debug(DEBUG_PREFIX, "Registered new voice map: ", character, ":", this.settings.voiceMapDict[character]);
|
console.debug(DEBUG_PREFIX, "Registered new voice map: ", character, ":", CoquiTtsProvider.instance.settings.voiceMapDict[character]);
|
||||||
|
|
||||||
this.updateVoiceMap();
|
CoquiTtsProvider.updateVoiceMap();
|
||||||
|
|
||||||
let successMsg = character + ":" + model_id;
|
let successMsg = character + ":" + model_id;
|
||||||
if (model_setting_language != null)
|
if (model_setting_language != null)
|
||||||
|
@ -352,7 +349,7 @@ class CoquiTtsProvider {
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
async onRemoveClick() {
|
static async onRemoveClick() {
|
||||||
const character = $("#coqui_character_select").val();
|
const character = $("#coqui_character_select").val();
|
||||||
|
|
||||||
if (character === "none") {
|
if (character === "none") {
|
||||||
|
@ -361,11 +358,11 @@ class CoquiTtsProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Todo erase from voicemap
|
// Todo erase from voicemap
|
||||||
delete (this.settings.voiceMapDict[character]);
|
delete (CoquiTtsProvider.instance.settings.voiceMapDict[character]);
|
||||||
this.updateVoiceMap(); // TODO
|
CoquiTtsProvider.updateVoiceMap(); // TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
async onModelOriginChange() {
|
static async onModelOriginChange() {
|
||||||
throwIfModuleMissing()
|
throwIfModuleMissing()
|
||||||
resetModelSettings();
|
resetModelSettings();
|
||||||
const model_origin = $('#coqui_model_origin').val();
|
const model_origin = $('#coqui_model_origin').val();
|
||||||
|
@ -378,6 +375,9 @@ class CoquiTtsProvider {
|
||||||
// show coqui model selected list (SAFE)
|
// show coqui model selected list (SAFE)
|
||||||
if (model_origin == "coqui-api") {
|
if (model_origin == "coqui-api") {
|
||||||
$("#coqui_local_model_div").hide();
|
$("#coqui_local_model_div").hide();
|
||||||
|
$("#coqui_api_model_div").hide();
|
||||||
|
$("#coqui_api_model_name").hide();
|
||||||
|
$("#coqui_api_model_settings").hide();
|
||||||
|
|
||||||
$('#coqui_api_language')
|
$('#coqui_api_language')
|
||||||
.find('option')
|
.find('option')
|
||||||
|
@ -400,6 +400,9 @@ class CoquiTtsProvider {
|
||||||
// show coqui model full list (UNSAFE)
|
// show coqui model full list (UNSAFE)
|
||||||
if (model_origin == "coqui-api-full") {
|
if (model_origin == "coqui-api-full") {
|
||||||
$("#coqui_local_model_div").hide();
|
$("#coqui_local_model_div").hide();
|
||||||
|
$("#coqui_api_model_div").hide();
|
||||||
|
$("#coqui_api_model_name").hide();
|
||||||
|
$("#coqui_api_model_settings").hide();
|
||||||
|
|
||||||
$('#coqui_api_language')
|
$('#coqui_api_language')
|
||||||
.find('option')
|
.find('option')
|
||||||
|
@ -427,7 +430,7 @@ class CoquiTtsProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async onModelLanguageChange() {
|
static async onModelLanguageChange() {
|
||||||
throwIfModuleMissing();
|
throwIfModuleMissing();
|
||||||
resetModelSettings();
|
resetModelSettings();
|
||||||
$("#coqui_api_model_settings").hide();
|
$("#coqui_api_model_settings").hide();
|
||||||
|
@ -460,7 +463,7 @@ class CoquiTtsProvider {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async onModelNameChange() {
|
static async onModelNameChange() {
|
||||||
throwIfModuleMissing();
|
throwIfModuleMissing();
|
||||||
resetModelSettings();
|
resetModelSettings();
|
||||||
$("#coqui_api_model_settings").hide();
|
$("#coqui_api_model_settings").hide();
|
||||||
|
@ -551,8 +554,6 @@ class CoquiTtsProvider {
|
||||||
$("#coqui_api_model_install_status").text("Model not found on extras server");
|
$("#coqui_api_model_install_status").text("Model not found on extras server");
|
||||||
}
|
}
|
||||||
|
|
||||||
const onModelNameChange_pointer = this.onModelNameChange;
|
|
||||||
|
|
||||||
$("#coqui_api_model_install_button").off("click").on("click", async function () {
|
$("#coqui_api_model_install_button").off("click").on("click", async function () {
|
||||||
try {
|
try {
|
||||||
$("#coqui_api_model_install_status").text("Downloading model...");
|
$("#coqui_api_model_install_status").text("Downloading model...");
|
||||||
|
@ -566,7 +567,7 @@ class CoquiTtsProvider {
|
||||||
if (apiResult["status"] == "done") {
|
if (apiResult["status"] == "done") {
|
||||||
$("#coqui_api_model_install_status").text("Model installed and ready to use!");
|
$("#coqui_api_model_install_status").text("Model installed and ready to use!");
|
||||||
$("#coqui_api_model_install_button").hide();
|
$("#coqui_api_model_install_button").hide();
|
||||||
onModelNameChange_pointer(); // TODO: error ?
|
CoquiTtsProvider.onModelNameChange();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (apiResult["status"] == "downloading") {
|
if (apiResult["status"] == "downloading") {
|
||||||
|
@ -577,7 +578,7 @@ class CoquiTtsProvider {
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
toastr.error(error, DEBUG_PREFIX + " error with model download", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
toastr.error(error, DEBUG_PREFIX + " error with model download", { timeOut: 10000, extendedTimeOut: 20000, preventDuplicates: true });
|
||||||
onModelNameChange_pointer();
|
CoquiTtsProvider.onModelNameChange();
|
||||||
}
|
}
|
||||||
// will refresh model status
|
// will refresh model status
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue