mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Merge branch 'development' of github.com:invoke-ai/InvokeAI into development
This commit is contained in:
commit
c974c95e2b
@ -85,6 +85,7 @@ overridden on a per-prompt basis (see [List of prompt arguments](#list-of-prompt
|
|||||||
| `--from_file <path>` | | `None` | Read list of prompts from a file. Use `-` to read from standard input |
|
| `--from_file <path>` | | `None` | Read list of prompts from a file. Use `-` to read from standard input |
|
||||||
| `--model <modelname>` | | `stable-diffusion-1.4` | Loads model specified in configs/models.yaml. Currently one of "stable-diffusion-1.4" or "laion400m" |
|
| `--model <modelname>` | | `stable-diffusion-1.4` | Loads model specified in configs/models.yaml. Currently one of "stable-diffusion-1.4" or "laion400m" |
|
||||||
| `--full_precision` | `-F` | `False` | Run in slower full-precision mode. Needed for Macintosh M1/M2 hardware and some older video cards. |
|
| `--full_precision` | `-F` | `False` | Run in slower full-precision mode. Needed for Macintosh M1/M2 hardware and some older video cards. |
|
||||||
|
| `--png_compression <0-9>` | `-z<0-9>` | 6 | Select level of compression for output files, from 0 (no compression) to 9 (max compression) |
|
||||||
| `--web` | | `False` | Start in web server mode |
|
| `--web` | | `False` | Start in web server mode |
|
||||||
| `--host <ip addr>` | | `localhost` | Which network interface web server should listen on. Set to 0.0.0.0 to listen on any. |
|
| `--host <ip addr>` | | `localhost` | Which network interface web server should listen on. Set to 0.0.0.0 to listen on any. |
|
||||||
| `--port <port>` | | `9090` | Which port web server should listen for requests on. |
|
| `--port <port>` | | `9090` | Which port web server should listen for requests on. |
|
||||||
@ -153,6 +154,7 @@ Here are the invoke> command that apply to txt2img:
|
|||||||
| --seed <int> | -S<int> | None | Set the random seed for the next series of images. This can be used to recreate an image generated previously.|
|
| --seed <int> | -S<int> | None | Set the random seed for the next series of images. This can be used to recreate an image generated previously.|
|
||||||
| --sampler <sampler>| -A<sampler>| k_lms | Sampler to use. Use -h to get list of available samplers. |
|
| --sampler <sampler>| -A<sampler>| k_lms | Sampler to use. Use -h to get list of available samplers. |
|
||||||
| --hires_fix | | | Larger images often have duplication artefacts. This option suppresses duplicates by generating the image at low res, and then using img2img to increase the resolution |
|
| --hires_fix | | | Larger images often have duplication artefacts. This option suppresses duplicates by generating the image at low res, and then using img2img to increase the resolution |
|
||||||
|
| `--png_compression <0-9>` | `-z<0-9>` | 6 | Select level of compression for output files, from 0 (no compression) to 9 (max compression) |
|
||||||
| --grid | -g | False | Turn on grid mode to return a single image combining all the images generated by this prompt |
|
| --grid | -g | False | Turn on grid mode to return a single image combining all the images generated by this prompt |
|
||||||
| --individual | -i | True | Turn off grid mode (deprecated; leave off --grid instead) |
|
| --individual | -i | True | Turn off grid mode (deprecated; leave off --grid instead) |
|
||||||
| --outdir <path> | -o<path> | outputs/img_samples | Temporarily change the location of these images |
|
| --outdir <path> | -o<path> | outputs/img_samples | Temporarily change the location of these images |
|
||||||
|
@ -378,6 +378,14 @@ class Args(object):
|
|||||||
default='stable-diffusion-1.4',
|
default='stable-diffusion-1.4',
|
||||||
help='Indicates which diffusion model to load. (currently "stable-diffusion-1.4" (default) or "laion400m")',
|
help='Indicates which diffusion model to load. (currently "stable-diffusion-1.4" (default) or "laion400m")',
|
||||||
)
|
)
|
||||||
|
model_group.add_argument(
|
||||||
|
'--png_compression','-z',
|
||||||
|
type=int,
|
||||||
|
default=6,
|
||||||
|
choices=range(0,9),
|
||||||
|
dest='png_compression',
|
||||||
|
help='level of PNG compression, from 0 (none) to 9 (maximum). Default is 6.'
|
||||||
|
)
|
||||||
model_group.add_argument(
|
model_group.add_argument(
|
||||||
'--sampler',
|
'--sampler',
|
||||||
'-A',
|
'-A',
|
||||||
@ -649,6 +657,14 @@ class Args(object):
|
|||||||
dest='save_intermediates',
|
dest='save_intermediates',
|
||||||
help='Save every nth intermediate image into an "intermediates" directory within the output directory'
|
help='Save every nth intermediate image into an "intermediates" directory within the output directory'
|
||||||
)
|
)
|
||||||
|
render_group.add_argument(
|
||||||
|
'--png_compression','-z',
|
||||||
|
type=int,
|
||||||
|
default=6,
|
||||||
|
choices=range(0,10),
|
||||||
|
dest='png_compression',
|
||||||
|
help='level of PNG compression, from 0 (none) to 9 (maximum). Default is 6.'
|
||||||
|
)
|
||||||
img2img_group.add_argument(
|
img2img_group.add_argument(
|
||||||
'-I',
|
'-I',
|
||||||
'--init_img',
|
'--init_img',
|
||||||
|
@ -33,13 +33,13 @@ class PngWriter:
|
|||||||
|
|
||||||
# saves image named _image_ to outdir/name, writing metadata from prompt
|
# saves image named _image_ to outdir/name, writing metadata from prompt
|
||||||
# returns full path of output
|
# returns full path of output
|
||||||
def save_image_and_prompt_to_png(self, image, dream_prompt, name, metadata=None):
|
def save_image_and_prompt_to_png(self, image, dream_prompt, name, metadata=None, compress_level=6):
|
||||||
path = os.path.join(self.outdir, name)
|
path = os.path.join(self.outdir, name)
|
||||||
info = PngImagePlugin.PngInfo()
|
info = PngImagePlugin.PngInfo()
|
||||||
info.add_text('Dream', dream_prompt)
|
info.add_text('Dream', dream_prompt)
|
||||||
if metadata:
|
if metadata:
|
||||||
info.add_text('sd-metadata', json.dumps(metadata))
|
info.add_text('sd-metadata', json.dumps(metadata))
|
||||||
image.save(path, 'PNG', pnginfo=info)
|
image.save(path, 'PNG', pnginfo=info, compress_level=compress_level)
|
||||||
return path
|
return path
|
||||||
|
|
||||||
def retrieve_metadata(self,img_basename):
|
def retrieve_metadata(self,img_basename):
|
||||||
|
@ -53,6 +53,7 @@ COMMANDS = (
|
|||||||
'--log_tokenization','-t',
|
'--log_tokenization','-t',
|
||||||
'--hires_fix',
|
'--hires_fix',
|
||||||
'--inpaint_replace','-r',
|
'--inpaint_replace','-r',
|
||||||
|
'--png_compression','-z',
|
||||||
'!fix','!fetch','!history','!search','!clear',
|
'!fix','!fetch','!history','!search','!clear',
|
||||||
'!models','!switch','!import_model','!edit_model'
|
'!models','!switch','!import_model','!edit_model'
|
||||||
)
|
)
|
||||||
|
@ -64,7 +64,8 @@ def make_ddim_timesteps(
|
|||||||
):
|
):
|
||||||
if ddim_discr_method == 'uniform':
|
if ddim_discr_method == 'uniform':
|
||||||
c = num_ddpm_timesteps // num_ddim_timesteps
|
c = num_ddpm_timesteps // num_ddim_timesteps
|
||||||
ddim_timesteps = np.asarray(list(range(0, num_ddpm_timesteps, c)))
|
# ddim_timesteps = np.asarray(list(range(0, num_ddpm_timesteps, c)))
|
||||||
|
ddim_timesteps = (np.arange(0, num_ddim_timesteps) * c).astype(int)
|
||||||
elif ddim_discr_method == 'quad':
|
elif ddim_discr_method == 'quad':
|
||||||
ddim_timesteps = (
|
ddim_timesteps = (
|
||||||
(
|
(
|
||||||
@ -81,8 +82,8 @@ def make_ddim_timesteps(
|
|||||||
|
|
||||||
# assert ddim_timesteps.shape[0] == num_ddim_timesteps
|
# assert ddim_timesteps.shape[0] == num_ddim_timesteps
|
||||||
# add one to get the final alpha values right (the ones from first scale to data during sampling)
|
# add one to get the final alpha values right (the ones from first scale to data during sampling)
|
||||||
# steps_out = ddim_timesteps + 1
|
steps_out = ddim_timesteps + 1
|
||||||
steps_out = ddim_timesteps
|
# steps_out = ddim_timesteps
|
||||||
|
|
||||||
if verbose:
|
if verbose:
|
||||||
print(f'Selected timesteps for ddim sampler: {steps_out}')
|
print(f'Selected timesteps for ddim sampler: {steps_out}')
|
||||||
|
@ -273,6 +273,7 @@ def main_loop(gen, opt, infile):
|
|||||||
model_hash = gen.model_hash,
|
model_hash = gen.model_hash,
|
||||||
),
|
),
|
||||||
name = filename,
|
name = filename,
|
||||||
|
compress_level = opt.png_compression,
|
||||||
)
|
)
|
||||||
|
|
||||||
# update rfc metadata
|
# update rfc metadata
|
||||||
|
Loading…
Reference in New Issue
Block a user