From 43d42398243e04fa5d2098beb0cd491423dd6362 Mon Sep 17 00:00:00 2001 From: tim h Date: Mon, 2 Jan 2023 13:50:28 -0600 Subject: [PATCH] sigh --- index.html | 50 ++++++++++++++++++++------------------ js/index.js | 59 +++++++++++++++++++++++++++++++++------------ js/ui/tool/dream.js | 25 ++++++++++--------- 3 files changed, 83 insertions(+), 51 deletions(-) diff --git a/index.html b/index.html index 853d66d..503a723 100644 --- a/index.html +++ b/index.html @@ -98,9 +98,11 @@ step="1" />
- +
-
+
+ +
+ + +
+ +
+ + - - - -
- -
- - +
@@ -337,7 +339,7 @@ - + - + diff --git a/js/index.js b/js/index.js index fb68673..23988ad 100644 --- a/js/index.js +++ b/js/index.js @@ -106,8 +106,10 @@ var stableDiffusionData = { inpainting_fill: 2, enable_hr: false, restore_faces: false, - firstphase_width: 0, - firstphase_height: 0, + //firstphase_width: 0, + //firstphase_height: 0, //20230102 welp looks like the entire way HRfix is implemented has become bonkersly different + hr_scale: 2.0, + hr_upscaler: "None", styles: [], // here's some more fields that might be useful @@ -552,6 +554,14 @@ const upscalerAutoComplete = createAutoComplete( document.getElementById("upscaler-ac-select") ); +const hrFixUpscalerAutoComplete = createAutoComplete( + "HRfix Upscaler", + document.getElementById("hrFixUpscaler") +); +hrFixUpscalerAutoComplete.onchange.on(({value}) => { + stableDiffusionData.hr_upscaler = value; +}); + const resSlider = makeSlider( "Resolution", document.getElementById("resolution"), @@ -563,8 +573,6 @@ const resSlider = makeSlider( 2, (v) => { stableDiffusionData.width = stableDiffusionData.height = v; - stableDiffusionData.firstphase_width = - stableDiffusionData.firstphase_height = v / 2; toolbar.currentTool && toolbar.currentTool.redraw && @@ -621,15 +629,16 @@ makeSlider( 1 ); +// 20230102 grumble grumble makeSlider( - "HRfix Lock Px.", - document.getElementById("hrFixLock"), - "hr_fix_lock_px", - 0.0, - 768.0, - 256.0, - 0.0, - 1.0 + "HRfix Scale", + document.getElementById("hrFixScale"), + "hr_scale", + 1.0, + 4.0, + 0.1, + 2.0, + 0.1 ); function changeMaskBlur() { @@ -649,6 +658,20 @@ function changeHiResFix() { document.getElementById("cbxHRFix").checked ); localStorage.setItem("openoutpaint/enable_hr", stableDiffusionData.enable_hr); + var hrfSlider = document.getElementById("hrFixScale"); + var hrfOpotions = document.getElementById("hrFixUpscaler"); + var hrfLabel = document.getElementById("hrFixLabel"); + if (stableDiffusionData.enable_hr) { + hrfSlider.classList.remove("invisible"); + hrfOpotions.classList.remove("invisible"); + hrfLabel.classList.remove("invisible"); + //state.ctxmenu.keepUnmaskedBlurSliderLinebreak.classList.add("invisible"); + } else { + hrfSlider.classList.add("invisible"); + hrfOpotions.classList.add("invisible"); + hrfLabel.classList.add("invisible"); + //state.ctxmenu.keepUnmaskedBlurSliderLinebreak.classList.remove("invisible"); + } } function changeRestoreFaces() { @@ -743,17 +766,23 @@ async function getUpscalers() { "[index] purposefully_incorrect_data response, ignore above error" ); // result = purposefully_incorrect_data response: Invalid upscaler, needs to be on of these: None , Lanczos , Nearest , LDSR , BSRGAN , R-ESRGAN General 4xV3 , R-ESRGAN 4x+ Anime6B , ScuNET , ScuNET PSNR , SwinIR_4x - const upscalers = data.detail + const upscalersPlusNone = data.detail .split(": ")[1] .split(",") - .map((v) => v.trim()) - .filter((v) => v !== "None"); // converting the result to a list of upscalers + .map((v) => v.trim()); // need "None" for stupid hrfix changes razza frazza + const upscalers = upscalersPlusNone.filter((v) => v !== "None"); // converting the result to a list of upscalers + upscalersPlusNone.push("Latent"); + upscalersPlusNone.push("Latent (nearest)"); // GRUMBLE GRUMBLE upscalerAutoComplete.options = upscalers.map((u) => { return {name: u, value: u}; }); + hrFixUpscalerAutoComplete.options = upscalersPlusNone.map((u) => { + return {name: u, value: u}; + }); upscalerAutoComplete.value = upscalers[0]; + hrFixUpscalerAutoComplete.value = upscalersPlusNone[0]; } catch (e) { console.warn("[index] Failed to fetch upscalers:"); console.warn(e); diff --git a/js/ui/tool/dream.js b/js/ui/tool/dream.js index f0e1fab..3a3bd53 100644 --- a/js/ui/tool/dream.js +++ b/js/ui/tool/dream.js @@ -1387,18 +1387,6 @@ const dreamTool = () => h: stableDiffusionData.height, }; - //hacky set non-square auto hrfix values - let hrLockPx = - localStorage.getItem("openoutpaint/hr_fix_lock_px") ?? 0; - stableDiffusionData.firstphase_height = - hrLockPx == 0 || resolution.h / 2 <= hrLockPx - ? resolution.h / 2 - : hrLockPx; - stableDiffusionData.firstphase_width = - hrLockPx == 0 || resolution.w / 2 <= hrLockPx - ? resolution.w / 2 - : hrLockPx; - if (global.connection === "online") { dream_generate_callback(bb, resolution, state); } else { @@ -1492,8 +1480,14 @@ const dreamTool = () => state.ctxmenu.keepUnmaskedBlurSlider.classList.remove( "invisible" ); + state.ctxmenu.keepUnmaskedBlurSliderLinebreak.classList.add( + "invisible" + ); } else { state.ctxmenu.keepUnmaskedBlurSlider.classList.add("invisible"); + state.ctxmenu.keepUnmaskedBlurSliderLinebreak.classList.remove( + "invisible" + ); } } ).label; @@ -1511,6 +1505,12 @@ const dreamTool = () => } ).slider; + state.ctxmenu.keepUnmaskedBlurSliderLinebreak = + document.createElement("br"); + state.ctxmenu.keepUnmaskedBlurSliderLinebreak.classList.add( + "invisible" + ); + // Preserve Brushed Masks Checkbox state.ctxmenu.preserveMasksLabel = _toolbar_input.checkbox( state, @@ -1552,6 +1552,7 @@ const dreamTool = () => menu.appendChild(document.createElement("br")); menu.appendChild(state.ctxmenu.keepUnmaskedLabel); menu.appendChild(state.ctxmenu.keepUnmaskedBlurSlider); + menu.appendChild(state.ctxmenu.keepUnmaskedBlurSliderLinebreak); menu.appendChild(state.ctxmenu.preserveMasksLabel); menu.appendChild(document.createElement("br")); menu.appendChild(state.ctxmenu.overMaskPxLabel);