diff --git a/public/index.html b/public/index.html index 97bf0f726..7e5907595 100644 --- a/public/index.html +++ b/public/index.html @@ -751,7 +751,7 @@
diff --git a/public/script.js b/public/script.js index 8e86ac76d..f76d82a2c 100644 --- a/public/script.js +++ b/public/script.js @@ -72,6 +72,7 @@ import { loadHordeSettings, generateHorde, checkHordeStatus, + getHordeModels, adjustHordeGenerationParams, } from "./scripts/horde.js"; @@ -1115,6 +1116,11 @@ async function Generate(type, automatic_trigger, force_name2) { return; } + if (isHordeGenerationNotAllowed()) { + is_send_press = false; + return; + } + if (selected_group && !is_group_generating) { generateGroupWrapper(false, type = type); return; @@ -2194,6 +2200,7 @@ function changeMainAPI() { if (main_api == "kobold" && horde_settings.use_horde) { is_get_status = true; getStatus(); + getHordeModels(); } } @@ -2278,27 +2285,6 @@ async function getSettings(type) { changeMainAPI(); } - novelai_setting_names = data.novelai_setting_names; - novelai_settings = data.novelai_settings; - novelai_settings.forEach(function (item, i, arr) { - novelai_settings[i] = JSON.parse(item); - }); - let arr_holder = {}; - - $("#settings_perset_novel").empty(); - - novelai_setting_names.forEach(function (item, i, arr) { - arr_holder[item] = i; - $("#settings_perset_novel").append(``); - }); - novelai_setting_names = {}; - novelai_setting_names = arr_holder; - - nai_settings.preset_settings_novel = settings.preset_settings_novel; - $( - `#settings_perset_novel option[value=${novelai_setting_names[nai_settings.preset_settings_novel]}]` - ).attr("selected", "true"); - //Load KoboldAI settings koboldai_setting_names = data.koboldai_setting_names; koboldai_settings = data.koboldai_settings; @@ -2306,7 +2292,7 @@ async function getSettings(type) { koboldai_settings[i] = JSON.parse(item); }); - arr_holder = {}; + let arr_holder = {}; $("#settings_perset").empty(); //RossAscends: uncommented this to prevent settings selector from doubling preset list on refresh $("#settings_perset").append( @@ -2322,6 +2308,39 @@ async function getSettings(type) { koboldai_setting_names = arr_holder; preset_settings = settings.preset_settings; + if (preset_settings == "gui") { + selectKoboldGuiPreset(); + } else { + if (typeof koboldai_setting_names[preset_settings] !== "undefined") { + $(`#settings_perset option[value=${koboldai_setting_names[preset_settings]}]`) + .attr("selected", "true"); + } else { + preset_settings = "gui"; + selectKoboldGuiPreset(); + } + } + + novelai_setting_names = data.novelai_setting_names; + novelai_settings = data.novelai_settings; + novelai_settings.forEach(function (item, i, arr) { + novelai_settings[i] = JSON.parse(item); + }); + arr_holder = {}; + + $("#settings_perset_novel").empty(); + + novelai_setting_names.forEach(function (item, i, arr) { + arr_holder[item] = i; + $("#settings_perset_novel").append(``); + }); + novelai_setting_names = {}; + novelai_setting_names = arr_holder; + + nai_settings.preset_settings_novel = settings.preset_settings_novel; + $( + `#settings_perset_novel option[value=${novelai_setting_names[nai_settings.preset_settings_novel]}]` + ).attr("selected", "true"); + //Load AI model config settings (temp, context length, anchors, and anchor order) amount_gen = settings.amount_gen; @@ -2378,21 +2397,6 @@ async function getSettings(type) { //Enable GUI deference settings if GUI is selected for Kobold if (main_api === "kobold") { - if (preset_settings == "gui") { - $("#settings_perset option[value=gui]") - .attr("selected", "true") - .trigger("change"); - } else { - if (typeof koboldai_setting_names[preset_settings] !== "undefined") { - $(`#settings_perset option[value=${koboldai_setting_names[preset_settings]}]`) - .attr("selected", "true"); - } else { - preset_settings = "gui"; - $("#settings_perset option[value=gui]") - .attr("selected", "true") - .trigger("change"); - } - } } //Load User's Name and Avatar @@ -2450,6 +2454,12 @@ async function getSettings(type) { }); } +function selectKoboldGuiPreset() { + $("#settings_perset option[value=gui]") + .attr("selected", "true") + .trigger("change"); +} + async function saveSettings(type) { //console.log('Entering settings with name1 = '+name1); jQuery.ajax({ @@ -3062,6 +3072,15 @@ function sortCharactersList(field, order) { } } +function isHordeGenerationNotAllowed() { + if (main_api == "kobold" && horde_settings.use_horde && preset_settings == "gui") { + callPopup('GUI Settings preset is not supported for Horde. Please select another preset.', 'text'); + return true; + } + + return false; +} + window["TavernAI"].getContext = function () { return { chat: chat, @@ -3111,6 +3130,10 @@ $(document).ready(function () { closeMessageEditor(); } + if (isHordeGenerationNotAllowed()) { + return; + } + const swipe_duration = 120; const swipe_range = 700; //console.log(swipe_range); diff --git a/public/scripts/horde.js b/public/scripts/horde.js index edd57db66..4e7038733 100644 --- a/public/scripts/horde.js +++ b/public/scripts/horde.js @@ -7,6 +7,7 @@ export { checkHordeStatus, loadHordeSettings, adjustHordeGenerationParams, + getHordeModels, } let models = []; @@ -154,6 +155,16 @@ async function getHordeModels() { option.selected = horde_settings.model === model.name; $('#horde_model').append(option); } + + // if previously selected is no longer available + if (horde_settings.model && !models.find(m => m.name == horde_settings.model)) { + horde_settings.model = null; + } + + // if no models preselected - select a first one in dropdown + if (!horde_settings.model) { + horde_settings.model = $('#horde_model').find(":selected").val(); + } } function loadHordeSettings(settings) { @@ -182,9 +193,6 @@ $(document).ready(function () { // Trigger status check changeMainAPI(); saveSettingsDebounced(); - if (main_api === 'kobold' && horde_settings.use_horde) { - await getHordeModels(); - } }); $("#horde_model").on("change", function () {