mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Web cleanup (#539)
* Refactor generate.py and dream.py * config file path (models.yaml) is parsed inside Generate() to simplify API * Better handling of keyboard interrupts in file loading mode vs interactive * Removed oodles of unused variables. * move nonfunctional inpainting out of the scripts directory * fix ugly ddim tqdm formatting * fix embiggen breakage, formatting fixes
This commit is contained in:
parent
ccb2b7c2fb
commit
9df743e2bf
@ -22,6 +22,12 @@ def build_opt(post_data, seed, gfpgan_model_exists):
|
|||||||
setattr(opt, 'invert_mask', 'invert_mask' in post_data)
|
setattr(opt, 'invert_mask', 'invert_mask' in post_data)
|
||||||
setattr(opt, 'cfg_scale', float(post_data['cfg_scale']))
|
setattr(opt, 'cfg_scale', float(post_data['cfg_scale']))
|
||||||
setattr(opt, 'sampler_name', post_data['sampler_name'])
|
setattr(opt, 'sampler_name', post_data['sampler_name'])
|
||||||
|
|
||||||
|
# embiggen not practical at this point because we have no way of feeding images back into img2img
|
||||||
|
# however, this code is here against that eventuality
|
||||||
|
setattr(opt, 'embiggen', None)
|
||||||
|
setattr(opt, 'embiggen_tiles', None)
|
||||||
|
|
||||||
setattr(opt, 'gfpgan_strength', float(post_data['gfpgan_strength']) if gfpgan_model_exists else 0)
|
setattr(opt, 'gfpgan_strength', float(post_data['gfpgan_strength']) if gfpgan_model_exists else 0)
|
||||||
setattr(opt, 'upscale', [int(post_data['upscale_level']), float(post_data['upscale_strength'])] if post_data['upscale_level'] != '' else None)
|
setattr(opt, 'upscale', [int(post_data['upscale_level']), float(post_data['upscale_strength'])] if post_data['upscale_level'] != '' else None)
|
||||||
setattr(opt, 'progress_images', 'progress_images' in post_data)
|
setattr(opt, 'progress_images', 'progress_images' in post_data)
|
||||||
@ -155,6 +161,7 @@ class DreamServer(BaseHTTPRequestHandler):
|
|||||||
def image_done(image, seed, upscaled=False):
|
def image_done(image, seed, upscaled=False):
|
||||||
name = f'{prefix}.{seed}.png'
|
name = f'{prefix}.{seed}.png'
|
||||||
iter_opt = argparse.Namespace(**vars(opt)) # copy
|
iter_opt = argparse.Namespace(**vars(opt)) # copy
|
||||||
|
print(f'iter_opt = {iter_opt}')
|
||||||
if opt.variation_amount > 0:
|
if opt.variation_amount > 0:
|
||||||
this_variation = [[seed, opt.variation_amount]]
|
this_variation = [[seed, opt.variation_amount]]
|
||||||
if opt.with_variations is None:
|
if opt.with_variations is None:
|
||||||
|
@ -620,6 +620,7 @@ def create_cmd_parser():
|
|||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-embiggen',
|
'-embiggen',
|
||||||
|
'--embiggen',
|
||||||
nargs='+',
|
nargs='+',
|
||||||
default=None,
|
default=None,
|
||||||
type=float,
|
type=float,
|
||||||
@ -627,6 +628,7 @@ def create_cmd_parser():
|
|||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'-embiggen_tiles',
|
'-embiggen_tiles',
|
||||||
|
'--embiggen_tiles',
|
||||||
nargs='+',
|
nargs='+',
|
||||||
default=None,
|
default=None,
|
||||||
type=int,
|
type=int,
|
||||||
|
@ -91,6 +91,7 @@ header h1 {
|
|||||||
}
|
}
|
||||||
#fieldset-config {
|
#fieldset-config {
|
||||||
line-height:2em;
|
line-height:2em;
|
||||||
|
background-color: #F0F0F0;
|
||||||
}
|
}
|
||||||
input[type="number"] {
|
input[type="number"] {
|
||||||
width: 60px;
|
width: 60px;
|
||||||
@ -122,6 +123,9 @@ label {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: red;
|
color: red;
|
||||||
}
|
}
|
||||||
|
#basic-parameters {
|
||||||
|
background-color: #EEEEEE;
|
||||||
|
}
|
||||||
#txt2img {
|
#txt2img {
|
||||||
background-color: #DCDCDC;
|
background-color: #DCDCDC;
|
||||||
}
|
}
|
||||||
@ -129,15 +133,19 @@ label {
|
|||||||
background-color: #EEEEEE;
|
background-color: #EEEEEE;
|
||||||
}
|
}
|
||||||
#img2img {
|
#img2img {
|
||||||
background-color: #F5F5F5;
|
background-color: #DCDCDC;
|
||||||
}
|
}
|
||||||
#gfpgan {
|
#gfpgan {
|
||||||
background-color: #DCDCDC;
|
background-color: #EEEEEE;
|
||||||
}
|
}
|
||||||
#progress-section {
|
#progress-section {
|
||||||
background-color: #F5F5F5;
|
background-color: #F5F5F5;
|
||||||
}
|
}
|
||||||
|
.section-header {
|
||||||
|
text-align: left;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 0 0 0 0;
|
||||||
|
}
|
||||||
#no-results-message:not(:only-child) {
|
#no-results-message:not(:only-child) {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset id="fieldset-config">
|
<fieldset id="fieldset-config">
|
||||||
|
<div class="section-header">Basic options</div>
|
||||||
<label for="iterations">Images to generate:</label>
|
<label for="iterations">Images to generate:</label>
|
||||||
<input value="1" type="number" id="iterations" name="iterations" size="4">
|
<input value="1" type="number" id="iterations" name="iterations" size="4">
|
||||||
<label for="steps">Steps:</label>
|
<label for="steps">Steps:</label>
|
||||||
@ -73,13 +74,15 @@
|
|||||||
<input type="checkbox" name="progress_images" id="progress_images">
|
<input type="checkbox" name="progress_images" id="progress_images">
|
||||||
<label for="progress_images">Display in-progress images (slower)</label>
|
<label for="progress_images">Display in-progress images (slower)</label>
|
||||||
<button type="button" id="reset-all">Reset to Defaults</button>
|
<button type="button" id="reset-all">Reset to Defaults</button>
|
||||||
<div id="variations">
|
<span id="variations">
|
||||||
<label title="If > 0, generates variations on the initial seed instead of random seeds per iteration. Must be between 0 and 1. Higher values will be more different." for="variation_amount">Variation amount (0 to disable):</label>
|
<label title="If > 0, generates variations on the initial seed instead of random seeds per iteration. Must be between 0 and 1. Higher values will be more different." for="variation_amount">Variation amount (0 to disable):</label>
|
||||||
<input value="0" type="number" id="variation_amount" name="variation_amount" step="0.01" min="0" max="1">
|
<input value="0" type="number" id="variation_amount" name="variation_amount" step="0.01" min="0" max="1">
|
||||||
<label title="list of variations to apply, in the format `seed:weight,seed:weight,..." for="with_variations">With variations (seed:weight,seed:weight,...):</label>
|
<label title="list of variations to apply, in the format `seed:weight,seed:weight,..." for="with_variations">With variations (seed:weight,seed:weight,...):</label>
|
||||||
<input value="" type="text" id="with_variations" name="with_variations">
|
<input value="" type="text" id="with_variations" name="with_variations">
|
||||||
</div>
|
</span>
|
||||||
<div id="img2img">
|
</fieldset>
|
||||||
|
<fieldset id="img2img">
|
||||||
|
<div class="section-header">Image-to-image options</div>
|
||||||
<label title="Upload an image to use img2img" for="initimg">Initial image:</label>
|
<label title="Upload an image to use img2img" for="initimg">Initial image:</label>
|
||||||
<input type="file" id="initimg" name="initimg" accept=".jpg, .jpeg, .png">
|
<input type="file" id="initimg" name="initimg" accept=".jpg, .jpeg, .png">
|
||||||
<button type="button" id="remove-image">Remove Image</button>
|
<button type="button" id="remove-image">Remove Image</button>
|
||||||
@ -87,12 +90,12 @@
|
|||||||
<label for="strength">Img2Img Strength:</label>
|
<label for="strength">Img2Img Strength:</label>
|
||||||
<input value="0.75" type="number" id="strength" name="strength" step="0.01" min="0" max="1">
|
<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>
|
<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>
|
<label title="Rescale image to fit within requested width and height" for="fit">Fit to width/height</label>
|
||||||
</div>
|
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<fieldset id="gfpgan">
|
<fieldset id="gfpgan">
|
||||||
|
<div class="section-header">Post-processing options</div>
|
||||||
<label title="Strength of the gfpgan (face fixing) algorithm." for="gfpgan_strength">GPFGAN Strength (0 to disable):</label>
|
<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">
|
<input value="0.0" min="0" max="1" type="number" id="gfpgan_strength" name="gfpgan_strength" step="0.1">
|
||||||
<label title="Upscaling to perform using ESRGAN." for="upscale_level">Upscaling Level</label>
|
<label title="Upscaling to perform using ESRGAN." for="upscale_level">Upscaling Level</label>
|
||||||
<select id="upscale_level" name="upscale_level" value="">
|
<select id="upscale_level" name="upscale_level" value="">
|
||||||
<option value="" selected>None</option>
|
<option value="" selected>None</option>
|
||||||
@ -113,7 +116,7 @@
|
|||||||
<div id="scaling-inprocess-message">
|
<div id="scaling-inprocess-message">
|
||||||
<i><span>Postprocessing...</span><span id="processing_cnt">1/3</span></i>
|
<i><span>Postprocessing...</span><span id="processing_cnt">1/3</span></i>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</span>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<div id="results">
|
<div id="results">
|
||||||
|
Loading…
Reference in New Issue
Block a user