openOutpaint/index.html
Victor Seiji Hariki f5b0369476 finally fix shortcuts triggering on prompt fields
Basically checks if focus is an input field, and transfer focus to
window as soon as mouse hovers over the canvas

Signed-off-by: Victor Seiji Hariki <victorseijih@gmail.com>

Former-commit-id: 5ce4877c69708a1ea981d9dac4b9102048152e58
2022-11-23 08:24:18 -03:00

354 lines
11 KiB
HTML

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<title>openOutpaint 🐠</title>
<!-- CSS Variables -->
<link href="css/colors.css" rel="stylesheet" />
<link href="css/index.css" rel="stylesheet" />
<link href="css/ui/generic.css" rel="stylesheet" />
<link href="css/ui/history.css" rel="stylesheet" />
<link href="css/ui/toolbar.css" rel="stylesheet" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
</head>
<body>
<!-- Main Toolbar -->
<div
id="infoContainer"
class="floating-window"
style="left: 10px; top: 10px">
<div id="infoTitleBar" class="draggable floating-window-title">
openOutpaint 🐠
</div>
<div id="info" class="menu-container" style="min-width: 200px">
<label for="host">Host</label>
<input id="host" value="http://127.0.0.1:7860" /><br />
<!-- Prompts section -->
<button type="button" class="collapsible">Prompts</button>
<div class="content">
<label for="prompt">Prompt:</label> <br />
<textarea id="prompt">
oceanographic study, underwater wildlife, award winning</textarea
><br />
<label for="negPrompt">Negative prompt:</label> <br />
<textarea id="negPrompt">
people, person, humans, human, divers, diver, glitch, error, text, watermark, bad quality, blurry</textarea
><br />
<hr />
</div>
<!-- SD section -->
<button type="button" class="collapsible">
Stable Diffusion settings
</button>
<div class="content">
<label for="seed">Seed (-1 for random):</label> <br />
<input
type="number"
id="seed"
onchange="changeSeed()"
min="1"
max="9999999999"
value="-1"
step="1" /><br />
<label for="samplerSelect">Sampler:</label>
<select id="samplerSelect" onchange="changeSampler()">
<option value="DDIM">DDIM</option>
<option value="Euler a">Euler A</option>
<option value="Euler">Euler</option>
<option value="LMS">LMS</option>
<option value="Heun">Heun</option>
<option value="DPM2">DPM2</option>
<option value="DPM2 a">DPM2a</option>
<option value="DPM++ 2S a">DPM++2Sa</option>
<option value="DPM++ 2m">DPM++2m</option>
<option value="DPM fast">DPM fast</option>
<option value="DPM adaptive">DPM adaptive</option>
<option value="LMS Karras">LMS Karras</option>
<option value="DPM2 Karras">DPM2 Karras</option>
<option value="DPM2 a Karras">DPM2a Karras</option>
<option value="DPM++ 2S a Karras">DPM++2Sa Karras</option>
<option value="DPM++ 2M Karras">DPM++2M Karras</option></select
><br />
<label for="steps">Steps: <input type="number" id="stepsTxt" /></label
><br />
<input type="range" id="steps" name="steps" min="1" max="50" /><br />
<label for="cfgScale"
>CFG scale: <input type="number" id="cfgScaleTxt"
/></label>
<br />
<input
type="range"
id="cfgScale"
name="cfgScale"
min="-1"
max="25"
step="0.5" /><br />
<label for="batchSize"
>Batch size: <input type="number" id="batchSizeText" /></label
><br />
<input
type="range"
id="batchSize"
name="batchSize"
min="1"
max="8"
step="1" /><br />
<label for="batchCount"
>Batch count: <input type="number" id="batchCountText" /></label
><br />
<input
type="range"
id="batchCount"
name="batchCount"
min="1"
max="8"
step="1" /><br />
<hr />
</div>
<!-- Unsectioned -->
<label for="scaleFactor"
>Scale factor: <input type="number" id="scaleFactorTxt" /></label
><br />
<input
type="range"
id="scaleFactor"
name="scaleFactor"
min="1"
max="16" /><br />
<label for="cbxSnap">Snap to grid?</label>
<input
type="checkbox"
id="cbxSnap"
onchange="changeSnapMode()"
checked="checked" /><br />
<label for="cbxHRFix">Auto txt2img HRfix?</label>
<input
type="checkbox"
id="cbxHRFix"
onchange="changeHiResFix()" /><br />
<label for="overMaskPx">Overmask px (0 to disable):</label>
<input
type="number"
id="overMaskPx"
onchange="changeOverMaskPx()"
min="0"
max="128"
value="16"
step="1" /><br />
<label for="maskBlur">Mask blur:</label>
<span id="maskBlurText"></span><br />
<input
type="number"
id="maskBlur"
name="maskBlur"
min="0"
max="256"
value="0"
step="1"
onchange="changeMaskBlur()" /><br />
<!-- Save/load image section -->
<button type="button" class="collapsible">Save/Load/New image</button>
<div class="content">
<label for="preloadImage">Load image:</label>
<input
type="file"
id="preloadImage"
onchange="preloadImage()"
accept="image/*"
style="width: 200px" /><br />
<button onclick="downloadCanvas()">Save canvas</button><br />
<label for="upscalers">Choose upscaler</label>
<select id="upscalers"></select>
<button onclick="upscaleAndDownload()">
Upscale (might take a sec)</button
><br />
<button onclick="newImage()">Clear canvas</button>
</div>
<!-- Debug info -->
<button type="button" class="collapsible">Debug info</button>
<div id="coords" class="content">
<label for="mouseX">mouseX:</label>
<span id="mouseX"></span>
<br />
<label for="mouseY">mouseY:</label>
<span id="mouseY"></span>
<br />
<label for="canvasX">canvasX:</label>
<span id="canvasX"></span>
<br />
<label for="canvasY">canvasY:</label>
<span id="canvasY"></span>
<br />
<label for="snapX">snapX:</label>
<span id="snapX"></span>
<br />
<label for="snapY">snapY:</label>
<span id="snapY"></span><br />
<label for="heldButton">Mouse button:</label>
<span id="heldButton"></span><br />
<span id="version">Alpha release v0.0.6.6</span>
<br />
<hr />
</div>
<div style="display: flex; align-items: center">
<div
style="
flex: 1;
border-top: 1px black solid;
margin-right: 10px;
"></div>
Context Menu
<div
style="
flex: 1;
border-top: 1px black solid;
margin-left: 10px;
"></div>
</div>
<div id="tool-context" class="context-menu"></div>
</div>
</div>
<!-- History -->
<div id="ui-history" class="floating-window" style="right: 10px; top: 10px">
<div class="draggable floating-window-title">History</div>
<div class="menu-container" style="min-width: 200px">
<div id="history" class="history"></div>
<div class="toolbar" style="padding: 10px">
<button type="button" onclick="commands.undo()" class="tool">
undo
</button>
<button type="button" onclick="commands.redo()" class="tool">
redo
</button>
</div>
</div>
</div>
<!-- Toolbar -->
<div
id="ui-toolbar"
class="floating-window"
style="right: 10px; top: 350px">
<div class="draggable handle">
<span class="line"></span>
</div>
<div class="toolbar-section"></div>
</div>
<!-- Canvases -->
<div
id="mainHSplit"
class="mainHSplit"
onmouseover="document.activeElement.blur()">
<div id="uiWrapper" class="uiWrapper">
<div
id="canvasHolder"
class="canvasHolder"
oncontextmenu="return false;">
<canvas
id="backgroundCanvas"
class="mainCanvases backgroundCanvas"
width="2560"
height="1440"
style="z-index: 0">
<!-- gray grid bg canvas -->
<p>lol ur browser sucks</p>
</canvas>
<canvas
id="canvas"
class="mainCanvases canvas"
width="2560"
height="1440"
style="z-index: 1">
<!-- normal canvas on which images are drawn -->
<p>lol ur browser sucks</p>
</canvas>
<canvas
id="tempCanvas"
class="mainCanvases tempCanvas"
width="2560"
height="1440"
style="z-index: 2">
<!-- temporary canvas on which images being selected/rejected or imported arbitrary images are superimposed -->
<p>lol ur browser sucks</p>
</canvas>
<canvas
id="targetCanvas"
class="mainCanvases targetCanvas"
width="2560"
height="1440"
style="z-index: 3">
<!-- canvas on which "targeting" squares are drawn -->
<p>lol ur browser sucks</p>
</canvas>
<canvas
id="maskPaintCanvas"
class="mainCanvases maskPaintCanvas"
width="2560"
height="1440"
style="z-index: 4">
<!-- canvas on which masking brush is "painted" -->
<p>lol ur browser sucks</p>
</canvas>
<canvas
id="overlayCanvas"
class="mainCanvases overlayCanvas"
width="2560"
height="1440"
style="z-index: 5">
<!-- canvas on which "cursor" reticle or arc is drawn -->
<p>lol ur browser sucks</p>
</canvas>
<div id="tempDiv" style="position: relative; z-index: 6">
<!-- where popup buttons go -->
</div>
</div>
</div>
<div id="masks" class="masks">
<div>
<!-- <canvas id="maskCanvasMonitor" class="maskCanvasMonitor" width="512" height="512">
<p>lol ur browser sucks</p>
</canvas><br /> -->
<canvas
id="overMaskCanvasMonitor"
class="overMaskCanvasMonitor"
width="512"
height="512">
<p>lol ur browser sucks</p> </canvas
><br />
<canvas
id="initImgCanvasMonitor"
class="initImgCanvasMonitor"
width="512"
height="512">
<p>lol ur browser sucks</p> </canvas
><br />
</div>
</div>
</div>
<!-- Base Libs -->
<script src="js/util.js" type="text/javascript"></script>
<script src="js/input.js" type="text/javascript"></script>
<script src="js/commands.js" type="text/javascript"></script>
<script src="js/ui/history.js" type="text/javascript"></script>
<script src="js/settingsbar.js" type="text/javascript"></script>
<!-- Content -->
<script src="js/index.js" type="text/javascript"></script>
<script src="js/shortcuts.js" type="text/javascript"></script>
<!-- Load Tools -->
<script src="js/ui/tool/dream.js" type="text/javascript"></script>
<script src="js/ui/tool/maskbrush.js" type="text/javascript"></script>
<script src="js/ui/toolbar.js" type="text/javascript"></script>
</body>
</html>