From 1a68cd0085bc06ef791f91a1d8152bc75e53b481 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Thu, 7 May 2026 16:20:16 +0200 Subject: [PATCH] Improve settings persistence and initialization logic in main.js --- src/main.js | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/main.js b/src/main.js index 28b068e..f1f3baa 100644 --- a/src/main.js +++ b/src/main.js @@ -635,19 +635,7 @@ async function generateMap() { setStatus('Please enter a prompt'); return; } - const settings = { - steps: Number(stepsInput.value) || defaultSettings.steps, - guidance: Number(guidanceInput.value) || defaultSettings.guidance, - width: Number(widthInput.value) || defaultSettings.width, - height: Number(heightInput.value) || defaultSettings.height, - scheduler: schedulerInput.value || defaultSettings.scheduler, - upscale: upscaleInput.value || defaultSettings.upscale, - seamInpaint: seamInpaintInput.checked, - modelPath: modelPathInput.value.trim() || defaultSettings.modelPath, - baseModel: baseModelInput.value.trim() || defaultSettings.baseModel, - vaeModel: vaeModelInput.value.trim() || defaultSettings.vaeModel, - }; - currentSettings = settings; + const settings = saveSettings(readSettingsFromInputs()); generationRunning = true; cancelRequested = false; generateBtn.disabled = false; @@ -715,6 +703,13 @@ function setupUI() { }); settingsReset.addEventListener('click', () => { applySettings(defaultSettings); + saveSettings(currentSettings); + }); + [stepsInput, guidanceInput, widthInput, heightInput, modelPathInput, baseModelInput, vaeModelInput].forEach(input => { + input.addEventListener('input', persistSettingsFromInputs); + }); + [schedulerInput, upscaleInput, seamInpaintInput].forEach(input => { + input.addEventListener('change', persistSettingsFromInputs); }); deleteConfirmCancel.addEventListener('click', () => { closeDeleteConfirmation(false); @@ -760,7 +755,7 @@ async function setupProgressEvents() { async function bootstrap() { initScene(); setupUI(); - applySettings(defaultSettings); + applySettings(loadSavedSettings() || defaultSettings); await setupProgressEvents(); await setSkyFromUrl(defaultTextureUrl); await refreshThumbnails(); @@ -768,17 +763,18 @@ async function bootstrap() { } function applySettings(cfg) { - currentSettings = { ...cfg }; - stepsInput.value = cfg.steps; - guidanceInput.value = cfg.guidance; - widthInput.value = cfg.width; - heightInput.value = cfg.height; - schedulerInput.value = cfg.scheduler; - upscaleInput.value = cfg.upscale; - seamInpaintInput.checked = Boolean(cfg.seamInpaint); - modelPathInput.value = cfg.modelPath; - baseModelInput.value = cfg.baseModel; - vaeModelInput.value = cfg.vaeModel; + const settings = normalizeSettings(cfg); + currentSettings = settings; + stepsInput.value = settings.steps; + guidanceInput.value = settings.guidance; + widthInput.value = settings.width; + heightInput.value = settings.height; + schedulerInput.value = settings.scheduler; + upscaleInput.value = settings.upscale; + seamInpaintInput.checked = settings.seamInpaint; + modelPathInput.value = settings.modelPath; + baseModelInput.value = settings.baseModel; + vaeModelInput.value = settings.vaeModel; } bootstrap();