Improve settings persistence and initialization logic in main.js

This commit is contained in:
2026-05-07 16:20:16 +02:00
parent 610df48f91
commit 1a68cd0085

View File

@@ -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();