<html lang="en">
  <head>
    <title>Stable Diffusion Dream Server</title>
    <meta charset="utf-8">
    <link rel="icon" href="data:,">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="stylesheet" href="static/dream_web/index.css">
    <script src="config.js"></script>
    <script src="static/dream_web/index.js"></script>
  </head>
  <body>
    <div id="search">
      <h2 id="header">Stable Diffusion Dream Server</h2>

      <form id="generate-form" method="post" action="#">
	<div id="txt2img">
          <fieldset id="fieldset-search">
            <input type="text" id="prompt" name="prompt">
            <input type="submit" id="submit" value="Generate">
          </fieldset>
          <fieldset id="fieldset-config">
            <label for="iterations">Images to generate:</label>
            <input value="1" type="number" id="iterations" name="iterations" size="4">
            <label for="steps">Steps:</label>
            <input value="50" type="number" id="steps" name="steps">
            <label for="cfgscale">Cfg Scale:</label>
            <input value="7.5" type="number" id="cfgscale" name="cfgscale" step="any">
            <label for="sampler">Sampler:</label>
            <select id="sampler" name="sampler" value="k_lms">
              <option value="ddim">DDIM</option>
              <option value="plms">PLMS</option>
              <option value="k_lms" selected>KLMS</option>
              <option value="k_dpm_2">KDPM_2</option>
              <option value="k_dpm_2_a">KDPM_2A</option>
              <option value="k_euler">KEULER</option>
	      <option value="k_euler_a">KEULER_A</option>
              <option value="k_heun">KHEUN</option>
            </select>
            <br>
            <label title="Set to multiple of 64" for="width">Width:</label>
            <select id="width" name="width" value="512">
              <option value="64">64</option> <option value="128">128</option>
              <option value="192">192</option> <option value="256">256</option>
              <option value="320">320</option> <option value="384">384</option>
              <option value="448">448</option> <option value="512" selected>512</option>
              <option value="576">576</option> <option value="640">640</option>
              <option value="704">704</option> <option value="768">768</option>
              <option value="832">832</option> <option value="896">896</option>
              <option value="960">960</option> <option value="1024">1024</option>
            </select>
            <label title="Set to multiple of 64" for="height">Height:</label>
            <select id="height" name="height" value="512">
              <option value="64">64</option> <option value="128">128</option>
              <option value="192">192</option> <option value="256">256</option>
              <option value="320">320</option> <option value="384">384</option>
              <option value="448">448</option> <option value="512" selected>512</option>
              <option value="576">576</option> <option value="640">640</option>
              <option value="704">704</option> <option value="768">768</option>
              <option value="832">832</option> <option value="896">896</option>
              <option value="960">960</option> <option value="1024">1024</option>
            </select>
            <label title="Set to -1 for random seed" for="seed">Seed:</label>
            <input value="-1" type="number" id="seed" name="seed">
            <button type="button" id="reset-seed">&olarr;</button>
            <input type="checkbox" name="progress_images" id="progress_images">
	    <label for="progress_images">Display in-progress images (slows down generation):</label>
	    <button type="button" id="reset-all">Reset to Defaults</button>
	</div>
	<div id="img2img">
          <label title="Upload an image to use img2img" for="initimg">Initial image:</label>
          <input type="file" id="initimg" name="initimg" accept=".jpg, .jpeg, .png">
	  <br>
          <label for="strength">Img2Img Strength:</label>
          <input value="0.75" type="number" id="strength" name="strength" step="0.01" min="0" max="1">
          <input type="checkbox" id="fit" name="fit" checked>
          <label title="Rescale image to fit within requested width and height" for="fit">Fit to width/height:</label>
	</div>
        <div id="gfpgan">
          <label title="Strength of the gfpgan (face fixing) algorithm." for="gfpgan_strength">GPFGAN Strength (0 to disable):</label>
          <input value="0.8" min="0" max="1" type="number" id="gfpgan_strength" name="gfpgan_strength" step="0.05">
          <label title="Upscaling to perform using ESRGAN." for="upscale_level">Upscaling Level</label>
          <select id="upscale_level" name="upscale_level" value="">
            <option value="" selected>None</option>
            <option value="2">2x</option>
            <option value="4">4x</option>
          </select>
          <label title="Strength of the esrgan (upscaling) algorithm." for="upscale_strength">Upscale Strength:</label>
          <input value="0.75" min="0" max="1" type="number" id="upscale_strength" name="upscale_strength" step="0.05">
        </div>
        </fieldset>
      </form>
      <div id="about">For news and support for this web service, visit our <a href="http://github.com/lstein/stable-diffusion">GitHub site</a></div>
      <br>
      <div id="progress-section">
        <progress id="progress-bar" value="0" max="1"></progress>
        <span id="cancel-button" title="Cancel">&#10006;</span>
        <br>
        <img id="progress-image" src='data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>'></img>
        <div id="scaling-inprocess-message">
          <i><span>Postprocessing...</span><span id="processing_cnt">1/3</span></i>
        </div>
      </div>
    </div>
    <div id="results">
      <div id="no-results-message">
        <i><p>No results...</p></i>
      </div>
    </div>
  </body>
</html>