diff --git a/ui/media/js/main.js b/ui/media/js/main.js index 2811a50c..681ca9e6 100644 --- a/ui/media/js/main.js +++ b/ui/media/js/main.js @@ -934,10 +934,10 @@ function getPrompts() { prompts = prompts.filter(prompt => prompt !== '') if (activeTags.length > 0) { - const promptTags = activeTags.map(x => x.name).join(", ") - prompts = prompts.map((prompt) => `${prompt}, ${promptTags}`) + const promptTags = activeTags.map(x => x.name).join(", ") + prompts = prompts.map((prompt) => `${prompt}, ${promptTags}`) } - + let promptsToMake = applySetOperator(prompts) promptsToMake = applyPermuteOperator(promptsToMake) diff --git a/ui/media/js/parameters.js b/ui/media/js/parameters.js index ddc4975c..1cc51c4b 100644 --- a/ui/media/js/parameters.js +++ b/ui/media/js/parameters.js @@ -5,9 +5,9 @@ */ var ParameterType = { checkbox: "checkbox", - select: "select", - select_multiple: "select_multiple", - custom: "custom", + select: "select", + select_multiple: "select_multiple", + custom: "custom", }; /** @@ -23,174 +23,174 @@ /** @type {Array.} */ var PARAMETERS = [ - { - id: "theme", - type: ParameterType.select, - label: "Theme", - default: "theme-default", - note: "customize the look and feel of the ui", - options: [ // Note: options expanded dynamically - { - value: "theme-default", - label: "Default" - } - ], - icon: "fa-palette" - }, - { - id: "save_to_disk", - type: ParameterType.checkbox, - label: "Auto-Save Images", - note: "automatically saves images to the specified location", - icon: "fa-download", - default: false, - }, - { - id: "diskPath", - type: ParameterType.custom, - label: "Save Location", - render: (parameter) => { - return `` - } - }, - { - id: "sound_toggle", - type: ParameterType.checkbox, - label: "Enable Sound", - note: "plays a sound on task completion", - icon: "fa-volume-low", - default: true, - }, - { - id: "ui_open_browser_on_start", - type: ParameterType.checkbox, - label: "Open browser on startup", - note: "starts the default browser on startup", - icon: "fa-window-restore", - default: true, - }, - { - id: "turbo", - type: ParameterType.checkbox, - label: "Turbo Mode", - note: "generates images faster, but uses an additional 1 GB of GPU memory", - icon: "fa-forward", - default: true, - }, - { - id: "use_cpu", - type: ParameterType.checkbox, - label: "Use CPU (not GPU)", - note: "warning: this will be *very* slow", - icon: "fa-microchip", - default: false, - }, - { - id: "auto_pick_gpus", - type: ParameterType.checkbox, - label: "Automatically pick the GPUs (experimental)", - default: false, - }, - { - id: "use_gpus", - type: ParameterType.select_multiple, - label: "GPUs to use (experimental)", - note: "to process in parallel", - default: false, - }, - { - id: "use_full_precision", - type: ParameterType.checkbox, - label: "Use Full Precision", - note: "for GPU-only. warning: this will consume more VRAM", - icon: "fa-crosshairs", - default: false, - }, - { - id: "auto_save_settings", - type: ParameterType.checkbox, - label: "Auto-Save Settings", - note: "restores settings on browser load", - icon: "fa-gear", - default: true, - }, - { - id: "listen_to_network", - type: ParameterType.checkbox, - label: "Make Stable Diffusion available on your network", - note: "Other devices on your network can access this web page", - icon: "fa-network-wired", - default: true, - }, - { - id: "listen_port", - type: ParameterType.custom, - label: "Network port", - note: "Port that this server listens to. The '9000' part in 'http://localhost:9000'", - icon: "fa-anchor", - render: (parameter) => { - return `` - } - }, - { - id: "test_sd2", - type: ParameterType.checkbox, - label: "Test SD 2.0", - note: "Experimental! High memory usage! GPU-only! Not the final version! Please restart the program after changing this.", - icon: "fa-fire", - default: false, - }, - { - id: "use_beta_channel", - type: ParameterType.checkbox, - label: "Beta channel", - note: "Get the latest features immediately (but could be less stable). Please restart the program after changing this.", - icon: "fa-fire", - default: false, - }, + { + id: "theme", + type: ParameterType.select, + label: "Theme", + default: "theme-default", + note: "customize the look and feel of the ui", + options: [ // Note: options expanded dynamically + { + value: "theme-default", + label: "Default" + } + ], + icon: "fa-palette" + }, + { + id: "save_to_disk", + type: ParameterType.checkbox, + label: "Auto-Save Images", + note: "automatically saves images to the specified location", + icon: "fa-download", + default: false, + }, + { + id: "diskPath", + type: ParameterType.custom, + label: "Save Location", + render: (parameter) => { + return `` + } + }, + { + id: "sound_toggle", + type: ParameterType.checkbox, + label: "Enable Sound", + note: "plays a sound on task completion", + icon: "fa-volume-low", + default: true, + }, + { + id: "ui_open_browser_on_start", + type: ParameterType.checkbox, + label: "Open browser on startup", + note: "starts the default browser on startup", + icon: "fa-window-restore", + default: true, + }, + { + id: "turbo", + type: ParameterType.checkbox, + label: "Turbo Mode", + note: "generates images faster, but uses an additional 1 GB of GPU memory", + icon: "fa-forward", + default: true, + }, + { + id: "use_cpu", + type: ParameterType.checkbox, + label: "Use CPU (not GPU)", + note: "warning: this will be *very* slow", + icon: "fa-microchip", + default: false, + }, + { + id: "auto_pick_gpus", + type: ParameterType.checkbox, + label: "Automatically pick the GPUs (experimental)", + default: false, + }, + { + id: "use_gpus", + type: ParameterType.select_multiple, + label: "GPUs to use (experimental)", + note: "to process in parallel", + default: false, + }, + { + id: "use_full_precision", + type: ParameterType.checkbox, + label: "Use Full Precision", + note: "for GPU-only. warning: this will consume more VRAM", + icon: "fa-crosshairs", + default: false, + }, + { + id: "auto_save_settings", + type: ParameterType.checkbox, + label: "Auto-Save Settings", + note: "restores settings on browser load", + icon: "fa-gear", + default: true, + }, + { + id: "listen_to_network", + type: ParameterType.checkbox, + label: "Make Stable Diffusion available on your network", + note: "Other devices on your network can access this web page", + icon: "fa-network-wired", + default: true, + }, + { + id: "listen_port", + type: ParameterType.custom, + label: "Network port", + note: "Port that this server listens to. The '9000' part in 'http://localhost:9000'", + icon: "fa-anchor", + render: (parameter) => { + return `` + } + }, + { + id: "test_sd2", + type: ParameterType.checkbox, + label: "Test SD 2.0", + note: "Experimental! High memory usage! GPU-only! Not the final version! Please restart the program after changing this.", + icon: "fa-fire", + default: false, + }, + { + id: "use_beta_channel", + type: ParameterType.checkbox, + label: "Beta channel", + note: "Get the latest features immediately (but could be less stable). Please restart the program after changing this.", + icon: "fa-fire", + default: false, + }, ]; function getParameterSettingsEntry(id) { - let parameter = PARAMETERS.filter(p => p.id === id) - if (parameter.length === 0) { - return - } - return parameter[0].settingsEntry + let parameter = PARAMETERS.filter(p => p.id === id) + if (parameter.length === 0) { + return + } + return parameter[0].settingsEntry } function getParameterElement(parameter) { - switch (parameter.type) { - case ParameterType.checkbox: - var is_checked = parameter.default ? " checked" : ""; - return `` - case ParameterType.select: - case ParameterType.select_multiple: - var options = (parameter.options || []).map(option => ``).join("") - var multiple = (parameter.type == ParameterType.select_multiple ? 'multiple' : '') - return `` - case ParameterType.custom: - return parameter.render(parameter) - default: - console.error(`Invalid type for parameter ${parameter.id}`); - return "ERROR: Invalid Type" - } + switch (parameter.type) { + case ParameterType.checkbox: + var is_checked = parameter.default ? " checked" : ""; + return `` + case ParameterType.select: + case ParameterType.select_multiple: + var options = (parameter.options || []).map(option => ``).join("") + var multiple = (parameter.type == ParameterType.select_multiple ? 'multiple' : '') + return `` + case ParameterType.custom: + return parameter.render(parameter) + default: + console.error(`Invalid type for parameter ${parameter.id}`); + return "ERROR: Invalid Type" + } } let parametersTable = document.querySelector("#system-settings .parameters-table") /* fill in the system settings popup table */ function initParameters() { - PARAMETERS.forEach(parameter => { - var element = getParameterElement(parameter) - var note = parameter.note ? `${parameter.note}` : ""; - var icon = parameter.icon ? `` : ""; - var newrow = document.createElement('div') - newrow.innerHTML = ` -
${icon}
-
${note}
-
${element}
` - parametersTable.appendChild(newrow) - parameter.settingsEntry = newrow - }) + PARAMETERS.forEach(parameter => { + var element = getParameterElement(parameter) + var note = parameter.note ? `${parameter.note}` : ""; + var icon = parameter.icon ? `` : ""; + var newrow = document.createElement('div') + newrow.innerHTML = ` +
${icon}
+
${note}
+
${element}
` + parametersTable.appendChild(newrow) + parameter.settingsEntry = newrow + }) } initParameters() @@ -243,14 +243,14 @@ async function getAppConfig() { testSD2Field.checked = config['test_sd2'] } - let testSD2SettingEntry = getParameterSettingsEntry('test_sd2') - testSD2SettingEntry.style.display = (config.update_branch === 'beta' ? '' : 'none') - if (config.net && config.net.listen_to_network === false) { - listenToNetworkField.checked = false - } - if (config.net && config.net.listen_port !== undefined) { - listenPortField.value = config.net.listen_port - } + let testSD2SettingEntry = getParameterSettingsEntry('test_sd2') + testSD2SettingEntry.style.display = (config.update_branch === 'beta' ? '' : 'none') + if (config.net && config.net.listen_to_network === false) { + listenToNetworkField.checked = false + } + if (config.net && config.net.listen_port !== undefined) { + listenPortField.value = config.net.listen_port + } console.log('get config status response', config) } catch (e) { @@ -278,7 +278,6 @@ function getCurrentRenderDeviceSelection() { useCPUField.addEventListener('click', function() { let gpuSettingEntry = getParameterSettingsEntry('use_gpus') let autoPickGPUSettingEntry = getParameterSettingsEntry('auto_pick_gpus') - console.log("hello", this.checked); if (this.checked) { gpuSettingEntry.style.display = 'none' autoPickGPUSettingEntry.style.display = 'none' @@ -375,23 +374,23 @@ async function getDevices() { } saveSettingsBtn.addEventListener('click', function() { - let updateBranch = (useBetaChannelField.checked ? 'beta' : 'main') + let updateBranch = (useBetaChannelField.checked ? 'beta' : 'main') - if (listenPortField.value == '') { - alert('The network port field must not be empty.') - } else if (listenPortField.value<1 || listenPortField.value>65535) { - alert('The network port must be a number from 1 to 65535') - } else { - changeAppConfig({ - 'render_devices': getCurrentRenderDeviceSelection(), - 'update_branch': updateBranch, - 'ui_open_browser_on_start': uiOpenBrowserOnStartField.checked, - 'listen_to_network': listenToNetworkField.checked, - 'listen_port': listenPortField.value, - 'test_sd2': testSD2Field.checked - }) - } + if (listenPortField.value == '') { + alert('The network port field must not be empty.') + } else if (listenPortField.value<1 || listenPortField.value>65535) { + alert('The network port must be a number from 1 to 65535') + } else { + changeAppConfig({ + 'render_devices': getCurrentRenderDeviceSelection(), + 'update_branch': updateBranch, + 'ui_open_browser_on_start': uiOpenBrowserOnStartField.checked, + 'listen_to_network': listenToNetworkField.checked, + 'listen_port': listenPortField.value, + 'test_sd2': testSD2Field.checked + }) + } - saveSettingsBtn.classList.add('active') - asyncDelay(300).then(() => saveSettingsBtn.classList.remove('active')) + saveSettingsBtn.classList.add('active') + asyncDelay(300).then(() => saveSettingsBtn.classList.remove('active')) }) diff --git a/ui/media/js/utils.js b/ui/media/js/utils.js index 6fc3c402..a76f030e 100644 --- a/ui/media/js/utils.js +++ b/ui/media/js/utils.js @@ -1,17 +1,17 @@ // https://gomakethings.com/finding-the-next-and-previous-sibling-elements-that-match-a-selector-with-vanilla-js/ function getNextSibling(elem, selector) { - // Get the next sibling element - var sibling = elem.nextElementSibling + // Get the next sibling element + var sibling = elem.nextElementSibling - // If there's no selector, return the first sibling - if (!selector) return sibling + // If there's no selector, return the first sibling + if (!selector) return sibling - // If the sibling matches our selector, use it - // If not, jump to the next sibling and continue the loop - while (sibling) { - if (sibling.matches(selector)) return sibling - sibling = sibling.nextElementSibling - } + // If the sibling matches our selector, use it + // If not, jump to the next sibling and continue the loop + while (sibling) { + if (sibling.matches(selector)) return sibling + sibling = sibling.nextElementSibling + } }