diff --git a/public/scripts/extensions.js b/public/scripts/extensions.js index e5dfd8f15..0e4e8882c 100644 --- a/public/scripts/extensions.js +++ b/public/scripts/extensions.js @@ -193,7 +193,6 @@ async function connectToApi(baseUrl) { modules = data.modules; await activateExtensions(); eventSource.emit(event_types.EXTRAS_CONNECTED, modules); - $("#extensionsMenuButton").css("display", "flex"); } updateStatus(getExtensionsResult.ok); diff --git a/public/scripts/extensions/stable-diffusion/index.js b/public/scripts/extensions/stable-diffusion/index.js index 0cfd3fea9..304666b53 100644 --- a/public/scripts/extensions/stable-diffusion/index.js +++ b/public/scripts/extensions/stable-diffusion/index.js @@ -106,6 +106,7 @@ const defaultSettings = { // Horde settings horde: false, horde_nsfw: false, + horde_karras: true, } async function loadSettings() { @@ -121,6 +122,7 @@ async function loadSettings() { $('#sd_height').val(extension_settings.sd.height).trigger('input'); $('#sd_horde').prop('checked', extension_settings.sd.horde); $('#sd_horde_nsfw').prop('checked', extension_settings.sd.horde_nsfw); + $('#sd_horde_karras').prop('checked', extension_settings.sd.horde_karras); $('#sd_restore_faces').prop('checked', extension_settings.sd.restore_faces); $('#sd_enable_hr').prop('checked', extension_settings.sd.enable_hr); @@ -181,6 +183,11 @@ async function onHordeNsfwInput() { saveSettingsDebounced(); } +async function onHordeKarrasInput() { + extension_settings.sd.horde_karras = !!$(this).prop('checked'); + saveSettingsDebounced(); +} + function onRestoreFacesInput() { extension_settings.sd.restore_faces = !!$(this).prop('checked'); saveSettingsDebounced(); @@ -473,6 +480,7 @@ async function generateExtrasImage(prompt, callback) { negative_prompt: extension_settings.sd.negative_prompt, restore_faces: !!extension_settings.sd.restore_faces, enable_hr: !!extension_settings.sd.enable_hr, + karras: !!extension_settings.sd.horde_karras, }), }); @@ -592,17 +600,19 @@ function addSDGenButtons() { }); } -async function moduleWorker() { - const context = getContext(); +function isConnectedToExtras() { + return modules.includes('sd'); +} - if (context.onlineStatus === 'no_connection') { - $('#sd_gen').hide(200); - $('.sd_message_gen').hide(); - } - else { +async function moduleWorker() { + if (isConnectedToExtras() || extension_settings.sd.horde) { $('#sd_gen').show(200); $('.sd_message_gen').show(); } + else { + $('#sd_gen').hide(200); + $('.sd_message_gen').hide(); + } } addSDGenButtons(); @@ -746,6 +756,12 @@ jQuery(async () => { +
+ +
@@ -764,6 +780,7 @@ jQuery(async () => { $('#sd_height').on('input', onHeightInput); $('#sd_horde').on('input', onHordeInput); $('#sd_horde_nsfw').on('input', onHordeNsfwInput); + $('#sd_horde_karras').on('input', onHordeKarrasInput); $('#sd_restore_faces').on('input', onRestoreFacesInput); $('#sd_enable_hr').on('input', onHighResFixInput); diff --git a/public/style.css b/public/style.css index 139a7b626..3b2e7c375 100644 --- a/public/style.css +++ b/public/style.css @@ -500,8 +500,6 @@ code { display: flex; align-items: center; justify-content: center; - display: none; - } #extensionsMenuButton:hover { diff --git a/server.js b/server.js index 189b42076..03e80abcd 100644 --- a/server.js +++ b/server.js @@ -2981,6 +2981,7 @@ app.post('/horde_generateimage', jsonParser, async (request, response) => { steps: request.body.steps, width: request.body.width, height: request.body.height, + karras: Boolean(request.body.karras), n: 1, }, r2: false,