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