2022-11-15 17:31:11 -06:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en-US">
|
2022-11-22 16:24:55 -06:00
|
|
|
<head>
|
|
|
|
<meta charset="utf-8" />
|
|
|
|
<title>openOutpaint 🐠</title>
|
|
|
|
<!-- CSS Variables -->
|
|
|
|
<link href="css/colors.css" rel="stylesheet" />
|
2022-11-15 17:31:11 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<link href="css/index.css" rel="stylesheet" />
|
|
|
|
<link href="css/ui/generic.css" rel="stylesheet" />
|
2022-11-15 17:31:11 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<link href="css/ui/history.css" rel="stylesheet" />
|
|
|
|
<link href="css/ui/toolbar.css" rel="stylesheet" />
|
2022-11-19 15:48:12 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
|
|
|
</head>
|
2022-11-19 16:21:00 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<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>
|
2022-11-23 18:45:29 -06:00
|
|
|
<input id="host" value="http://127.0.0.1:7860" />
|
|
|
|
<br />
|
2022-11-20 07:28:48 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- Prompts section -->
|
|
|
|
<button type="button" class="collapsible">Prompts</button>
|
|
|
|
<div class="content">
|
2022-11-23 18:45:29 -06:00
|
|
|
<label for="prompt">Prompt:</label>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<textarea id="prompt">
|
|
|
|
oceanographic study, underwater wildlife, award winning</textarea
|
2022-11-23 18:45:29 -06:00
|
|
|
>
|
|
|
|
<br />
|
|
|
|
<label for="negPrompt">Negative prompt:</label>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<textarea id="negPrompt">
|
|
|
|
people, person, humans, human, divers, diver, glitch, error, text, watermark, bad quality, blurry</textarea
|
2022-11-23 18:45:29 -06:00
|
|
|
>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<hr />
|
|
|
|
</div>
|
|
|
|
<!-- SD section -->
|
|
|
|
<button type="button" class="collapsible">
|
|
|
|
Stable Diffusion settings
|
|
|
|
</button>
|
|
|
|
<div class="content">
|
2022-11-23 16:03:15 -06:00
|
|
|
<label for="models">Model:</label>
|
2022-11-23 18:45:29 -06:00
|
|
|
<select id="models" onchange="changeModel()"></select>
|
|
|
|
<br />
|
2022-11-23 16:03:15 -06:00
|
|
|
<label for="samplerSelect">Sampler:</label>
|
2022-11-23 18:45:29 -06:00
|
|
|
<select id="samplerSelect" onchange="changeSampler()"></select>
|
|
|
|
<br />
|
|
|
|
<label for="seed">Seed (-1 for random):</label>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<input
|
|
|
|
type="number"
|
|
|
|
id="seed"
|
|
|
|
onchange="changeSeed()"
|
|
|
|
min="1"
|
|
|
|
max="9999999999"
|
|
|
|
value="-1"
|
2022-11-23 18:45:29 -06:00
|
|
|
step="1" />
|
|
|
|
<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>
|
2022-11-22 16:24:55 -06:00
|
|
|
<br />
|
|
|
|
<input
|
|
|
|
type="range"
|
|
|
|
id="cfgScale"
|
|
|
|
name="cfgScale"
|
|
|
|
min="-1"
|
|
|
|
max="25"
|
2022-11-23 18:45:29 -06:00
|
|
|
step="0.5" />
|
|
|
|
<br />
|
|
|
|
<label for="batchSize">
|
|
|
|
Batch size:
|
|
|
|
<input type="number" id="batchSizeText" />
|
|
|
|
</label>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<input
|
|
|
|
type="range"
|
|
|
|
id="batchSize"
|
|
|
|
name="batchSize"
|
|
|
|
min="1"
|
|
|
|
max="8"
|
2022-11-23 18:45:29 -06:00
|
|
|
step="1" />
|
|
|
|
<br />
|
|
|
|
<label for="batchCount">
|
|
|
|
Batch count:
|
|
|
|
<input type="number" id="batchCountText" />
|
|
|
|
</label>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<input
|
|
|
|
type="range"
|
|
|
|
id="batchCount"
|
|
|
|
name="batchCount"
|
|
|
|
min="1"
|
|
|
|
max="8"
|
2022-11-23 18:45:29 -06:00
|
|
|
step="1" />
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<hr />
|
|
|
|
</div>
|
|
|
|
<!-- Unsectioned -->
|
2022-11-23 18:45:29 -06:00
|
|
|
<label for="scaleFactor">
|
|
|
|
Scale factor:
|
|
|
|
<input type="number" id="scaleFactorTxt" />
|
|
|
|
</label>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<input
|
|
|
|
type="range"
|
|
|
|
id="scaleFactor"
|
|
|
|
name="scaleFactor"
|
|
|
|
min="1"
|
2022-11-23 18:45:29 -06:00
|
|
|
max="16" />
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<label for="cbxHRFix">Auto txt2img HRfix?</label>
|
2022-11-23 18:45:29 -06:00
|
|
|
<input type="checkbox" id="cbxHRFix" onchange="changeHiResFix()" />
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<label for="overMaskPx">Overmask px (0 to disable):</label>
|
|
|
|
<input
|
|
|
|
type="number"
|
|
|
|
id="overMaskPx"
|
|
|
|
onchange="changeOverMaskPx()"
|
|
|
|
min="0"
|
|
|
|
max="128"
|
|
|
|
value="16"
|
2022-11-23 18:45:29 -06:00
|
|
|
step="1" />
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<label for="maskBlur">Mask blur:</label>
|
2022-11-23 18:45:29 -06:00
|
|
|
<span id="maskBlurText"></span>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<input
|
|
|
|
type="number"
|
|
|
|
id="maskBlur"
|
|
|
|
name="maskBlur"
|
|
|
|
min="0"
|
|
|
|
max="256"
|
|
|
|
value="0"
|
|
|
|
step="1"
|
2022-11-23 18:45:29 -06:00
|
|
|
onchange="changeMaskBlur()" />
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- Save/load image section -->
|
|
|
|
<button type="button" class="collapsible">Save/Load/New image</button>
|
|
|
|
<div class="content">
|
|
|
|
<label for="preloadImage">Load image:</label>
|
2022-11-23 16:03:15 -06:00
|
|
|
<input type="file" id="preloadImage" onchange="preloadImage()"
|
2022-11-23 18:45:29 -06:00
|
|
|
accept="image/*" / style="width: 200px;">
|
|
|
|
<br />
|
|
|
|
<button onclick="downloadCanvas()">Save canvas</button>
|
|
|
|
<br />
|
2022-11-22 19:38:30 -06:00
|
|
|
<label for="upscalers">Choose upscaler</label>
|
|
|
|
<select id="upscalers"></select>
|
|
|
|
<button onclick="upscaleAndDownload()">
|
2022-11-23 18:45:29 -06:00
|
|
|
Upscale (might take a sec)
|
|
|
|
</button>
|
|
|
|
<br />
|
2022-11-22 15:18:40 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<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>
|
2022-11-23 18:45:29 -06:00
|
|
|
<span id="snapY"></span>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<label for="heldButton">Mouse button:</label>
|
2022-11-23 18:45:29 -06:00
|
|
|
<span id="heldButton"></span>
|
|
|
|
<br />
|
|
|
|
<span id="version">
|
|
|
|
<a href="https://github.com/zero01101/openOutpaint" target="_blank">
|
|
|
|
Alpha release v0.0.7
|
|
|
|
</a>
|
|
|
|
</span>
|
2022-11-22 16:24:55 -06:00
|
|
|
<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>
|
2022-11-21 05:27:21 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- 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>
|
2022-11-21 05:27:21 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- 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>
|
2022-11-19 15:48:12 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- Canvases -->
|
2022-11-23 05:24:18 -06:00
|
|
|
<div
|
|
|
|
id="mainHSplit"
|
|
|
|
class="mainHSplit"
|
|
|
|
onmouseover="document.activeElement.blur()">
|
2022-11-22 16:24:55 -06:00
|
|
|
<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">
|
2022-11-20 11:38:24 -06:00
|
|
|
<p>lol ur browser sucks</p>
|
|
|
|
</canvas><br /> -->
|
2022-11-22 16:24:55 -06:00
|
|
|
<canvas
|
|
|
|
id="overMaskCanvasMonitor"
|
|
|
|
class="overMaskCanvasMonitor"
|
|
|
|
width="512"
|
|
|
|
height="512">
|
2022-11-23 18:45:29 -06:00
|
|
|
<p>lol ur browser sucks</p>
|
|
|
|
</canvas>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
<canvas
|
|
|
|
id="initImgCanvasMonitor"
|
|
|
|
class="initImgCanvasMonitor"
|
|
|
|
width="512"
|
|
|
|
height="512">
|
2022-11-23 18:45:29 -06:00
|
|
|
<p>lol ur browser sucks</p>
|
|
|
|
</canvas>
|
|
|
|
<br />
|
2022-11-22 16:24:55 -06:00
|
|
|
</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>
|
2022-11-15 17:31:11 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- Content -->
|
|
|
|
<script src="js/index.js" type="text/javascript"></script>
|
|
|
|
<script src="js/shortcuts.js" type="text/javascript"></script>
|
2022-11-15 17:31:11 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<!-- Load Tools -->
|
|
|
|
<script src="js/ui/tool/dream.js" type="text/javascript"></script>
|
|
|
|
<script src="js/ui/tool/maskbrush.js" type="text/javascript"></script>
|
2022-11-15 17:31:11 -06:00
|
|
|
|
2022-11-22 16:24:55 -06:00
|
|
|
<script src="js/ui/toolbar.js" type="text/javascript"></script>
|
|
|
|
</body>
|
|
|
|
</html>
|