Squashed commit of the following: commit9a1fe8e7fb
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 17:07:40 2022 +0000 swap in release URLs for installers commitff56f5251b
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 17:03:21 2022 +0000 fix up bad unicode chars in invoke.py commited943bd6c7
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 16:05:45 2022 +0000 outcrop improvements, hand-added commit7ad2355b1d
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 15:14:33 2022 +0000 documentation fixes commit66c920fc19
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 16:49:25 2022 -0500 Revert "Resize hires as an image" This reverts commitd05b1b3544
. commit3fc5cb09f8
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 12:43:17 2022 +0000 fix incorrect link in install commit1345ec77ab
Author: tildebyte <337875+tildebyte@users.noreply.github.com> Date: Sun Nov 6 19:07:31 2022 -0500 toil(repo): add tildebyte as owner of installer/ directory commitb116715490
Author: Kyle Schouviller <kyle0654@hotmail.com> Date: Thu Nov 10 21:43:56 2022 -0800 Fix performance issue introduced by torch cuda cache clear during generation commitfa3670270e
Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 12:42:03 2022 +0100 small update to dockers huggingface section commitc304250ef6
Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 12:19:27 2022 +0100 fix format and Link in INSTALL_INVOKE.md commit802ce5dde5
Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 11:17:49 2022 +0100 small fixex to format and a link in INSTALL_MANUAL commit311ee320ec
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 07:23:35 2022 +0000 ignore installer intermediate files commite9df17b374
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 07:19:25 2022 +0000 fix backslash-related syntax error commit061fb4ef00
Merge:52be0d23
4095acd1
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 06:50:04 2022 +0000 Merge branch 'release-candidate-2-1-3' of github.com:/invoke-ai/InvokeAI into release-candidate-2-1-3 commit52be0d2396
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 06:49:45 2022 +0000 add WindowsLongFileName batfile to source installer commit4095acd10e
Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 07:05:17 2022 +0100 Doc Updates A lot of re-formating of new Installation Docs also some content updates/corrections commit201eb22d76
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 04:41:02 2022 +0000 prevent two models from being marked default in models.yaml commit17ab982200
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 03:56:54 2022 +0000 installers download branch HEAD not tag commita04965b0e9
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 03:48:21 2022 +0000 improve messaging during installation process commit0b529f0c57
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 15:22:32 2022 +0000 enable outcropping of random JPG/PNG images - Works best with runwayML inpainting model - Numerous code changes required to propagate seed to final metadata. Original code predicated on the image being generated within InvokeAI. commit6f9f848345
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 17:27:42 2022 +0000 enhance outcropping with ability to direct contents of new regions - When outcropping an image you can now add a `--new_prompt` option, to specify a new prompt to be used instead of the original one used to generate the image. - Similarly you can provide a new seed using `--seed` (or `-S`). A seed of zero will pick one randomly. - This PR also fixes the crash that happened when trying to outcrop an image that does not contain InvokeAI metadata. commit918c1589ef
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 20:16:47 2022 +0000 fix #1402 commit116415b3fc
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 21:27:25 2022 +0000 fix invoke.py crash if no models.yaml file present - Script will now offer the user the ability to create a minimal models.yaml and then gracefully exit. - Closes #1420 commitb4b6eabaac
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 16:49:25 2022 -0500 Revert "Log strength with hires" This reverts commit82d4904c07
. commit4ef1f4a854
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 20:01:49 2022 +0000 remove temporary directory from repo commit510fc4ebaa
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 19:59:03 2022 +0000 remove -e from clipseg load in installer commita20914434b
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 19:37:07 2022 +0000 change clipseg repo branch to avoid clipseg not found error commit0d134195fd
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 18:39:29 2022 +0000 update repo URL to point to rc commit649d8c8573
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 18:13:28 2022 +0000 integrate tildebyte installer commita358d370a0
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 17:48:14 2022 +0000 add @tildebyte compiled pip installer commit94a9033c4f
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 14:52:00 2022 +0000 ignore source installer zip files commit18a947c503
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 14:46:36 2022 +0000 documentation and environment file fixes - Have clarified the relationship between the @tildebyte and @cmdr2 installers; However, @tildebyte installer merge is still a WIP due to conflicts over such things as `invoke.sh`. - Rechristened 1click installer as "source" installer. @tildebyte installer will be "the" installer. (We'll see which one generates the least support requests and maintenance work.) - Sync'd `environment-mac.yml` with `development`. The former was failing with a taming-transformers error as per https://discord.com/channels/@me/1037201214154231899/1040060947378749460 commita23b031895
Author: Mike DiGiovanni <vinblau@gmail.com> Date: Wed Nov 9 16:44:59 2022 -0500 Fixes typos in README.md commit23af68c7d7
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 07:02:27 2022 -0500 downgrade win installs to basicsr==1.4.1 commite258beeb51
Merge:7460c069
e481bfac
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 06:37:45 2022 -0500 Merge branch 'release-candidate-2-1-3' of github.com:invoke-ai/InvokeAI into release-candidate-2-1-3 commit7460c069b8
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 06:36:48 2022 -0500 remove --prefer-binary from requirements-base.txt It appears that some versions of pip do not recognize this option when it appears in the requirements file. Did not explore this further but recommend --prefer-binary in the manual install instructions on the command line. commite481bfac61
Merge:5040747c
d1ab65a4
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 11:21:56 2022 +0000 Merge branch 'release-candidate-2-1-3' of github.com:/invoke-ai/InvokeAI into release-candidate-2-1-3 commit5040747c67
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 11:21:43 2022 +0000 fix windows install instructions & bat file commitd1ab65a431
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 07:18:59 2022 +0100 update WEBUIHOTKEYS.md commitaf4ee7feb8
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 06:33:49 2022 +0100 update INSTALL_DOCKER.md commit764fb29ade
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 06:30:15 2022 +0100 fix formatting in INSTALL.md commit1014d3ba44
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 06:29:14 2022 +0100 fix build.sh invokeai_conda_env_file default value commit40a48aca88
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 05:25:30 2022 +0100 fix environment-mac.yml moved taming-transformers-rom1504 to pip dependencies commit92abc00f16
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 05:19:52 2022 +0100 fix test-invoke-conda - copy required conda environment yaml - use environment.yml - I use cp instead of ln since would be compatible for windows runners commita5719aabf8
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 04:14:35 2022 +0100 update Dockerfile - link environment.yml from new environemnts path - change default conda_env_file - quote all variables to avoid splitting - also remove paths from conda-env-files in build-container.yml commit44a18511fa
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 20:51:06 2022 +0000 update paths in container build workflow commitb850dbadaf
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 20:16:57 2022 +0000 finished reorganization of install docs commit9ef8b944d5
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 18:50:58 2022 +0000 tweaks to manual install documentation --prefer-binary is an iffy option in the requirements file. It isn't supported by some versions of pip, so I removed it from requirements-base.txt and inserted it into the manual install instructions where it seems to do what it is supposed to. commitefc5a98488
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 18:20:03 2022 +0000 manual installation documentation tested on Linux commit1417c87928
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 17:37:06 2022 +0000 change name of requirements.txt to avoid confusion commit2dd6fc2b93
Merge:22213612
71ee44a8
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 17:26:24 2022 +0000 Merge branch 'release-candidate-2-1-3' of github.com:/invoke-ai/InvokeAI into release-candidate-2-1-3 commit22213612a0
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 17:25:59 2022 +0000 directory cleanup; working on install docs commit71ee44a827
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 02:07:13 2022 +0000 prevent crash when switching to an invalid model commitb17ca0a5e7
Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 14:28:38 2022 +0100 don't suppress exceptions when doing cross-attention control commit71bbfe4a1a
Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 12:59:34 2022 +0100 Fix #1362 by improving VRAM usage patterns when doing .swap() commit ef3f7a26e242b73c2beb0195c7fd8f654ef47f55 Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 12:18:37 2022 +0100 remove log spam commit 7189d649622d4668b120b0dd278388ad672142c4 Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 12:10:28 2022 +0100 change the way saved slicing strategy is applied commit 01c40f751ab72955140165c16f95ae411732265b Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 12:04:43 2022 +0100 fix slicing_strategy_getter callsite commit f8cfe25150a346958903316bc710737d99839923 Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 11:56:22 2022 +0100 cleanup, consistent dim=0 also tested commit 5bf9b1e890d48e962afd4a668a219b68271e5dc1 Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 11:34:09 2022 +0100 refactored context, tested with non-sliced cross attention control commit d58a46e39bf562e7459290d2444256e8c08ad0b6 Author: damian0815 <null@damianstewart.com> Date: Sun Nov 6 00:41:52 2022 +0100 cleanup commit 7e2c658b4c06fe239311b65b9bb16fa3adec7fd7 Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:57:31 2022 +0100 disable logs commit 20ee89d93841b070738b3d8a4385c93b097d92eb Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:36:58 2022 +0100 slice saved attention if necessary commit 0a7684a22c880ec0f48cc22bfed4526358f71546 Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:32:38 2022 +0100 raise instead of asserting commit 7083104c7f3a0d8fd96e94a2f391de50a3c942e4 Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:31:00 2022 +0100 store dim when saving slices commit f7c0808ed383ec1dc70645288a798ed2aa4fa85c Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:27:16 2022 +0100 don't retry on exception commit 749a721e939b3fe7c1741e7998dab6bd2c85a0cb Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:24:50 2022 +0100 stuff commit 032ab90e9533be8726301ec91b97137e2aadef9a Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:20:17 2022 +0100 more logging commit 3dc34b387f033482305360e605809d95a40bf6f8 Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:16:47 2022 +0100 logs commit 901c4c1aa4b9bcef695a6551867ec8149e6e6a93 Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:12:39 2022 +0100 actually set save_slicing_strategy to True commit f780e0a0a7c6b6a3db320891064da82589358c8a Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 22:10:35 2022 +0100 store slicing strategy commit 93bb6d566fd18c5c69ef7dacc8f74ba2cf671cb7 Author: damian <git@damianstewart.com> Date: Sat Nov 5 20:43:48 2022 +0100 still not it commit 5e3a9541f8ae00bde524046963910323e20c40b7 Author: damian <git@damianstewart.com> Date: Sat Nov 5 17:20:02 2022 +0100 wip offloading attention slices on-demand commit 4c2966aa856b6f3b446216da3619ae931552ef08 Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 15:47:40 2022 +0100 pre-emptive offloading, idk if it works commit 572576755e9f0a878d38e8173e485126c0efbefb Author: root <you@example.com> Date: Sat Nov 5 11:25:32 2022 +0000 push attention slices to cpu. slow but saves memory. commit b57c83a68f2ac03976ebc89ce2ff03812d6d185f Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 12:04:22 2022 +0100 verbose logging commit 3a5dae116f110a96585d9eb71d713b5ed2bc3d2b Author: damian0815 <null@damianstewart.com> Date: Sat Nov 5 11:50:48 2022 +0100 wip fixing mem strategy crash (4 test on runpod) commit 3cf237db5fae0c7b0b4cc3c47c81830bdb2ae7de Author: damian0815 <null@damianstewart.com> Date: Fri Nov 4 09:02:40 2022 +0100 wip, only works on cuda commit5702271991
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 14:09:36 2022 +0000 speculative reorganization of the requirements & environment files - This is only a test! - The various environment*.yml and requirements*.txt files have all been moved into a directory named "environments-and-requirements". - The idea is to clean up our root directory so that the github home page is tidy. - The manual install instructions will start with the instructions to create a symbolic link from environment.yml to the appropriate file for OS and GPU. - The 1-click installers have been updated to accommodate this change. commit10781e7dc4
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 01:59:45 2022 +0000 refactoring requirements commit099d1157c5
Author: mauwii <Mauwii@outlook.de> Date: Wed Nov 9 00:16:18 2022 +0100 better way to make sure if conda is useable commitab825bf7ee
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 22:05:33 2022 +0000 add back --prefer-binaries to requirements commit10cfeb5ada
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:27:19 2022 +0100 add quotes to set and use `$environment_file` commite97515d045
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:24:21 2022 +0100 set environment file for conda update commit0f04bc5789
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:21:25 2022 +0100 use conda env update commit3f74aabecd
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:20:44 2022 +0100 use command instead of hash commitb1a99a51b7
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 14:44:44 2022 -0500 remove --global git config from 1-click installers commit8004f8a6d9
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Mon Nov 7 09:07:20 2022 -0500 Revert "Use array slicing to calc ddim timesteps" This reverts commit1f0c5b4cf1
. commitff8ff2212a
Merge:8e5363cd
636620b1
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 14:01:40 2022 +0000 add initfile support from PR #1386 commit8e5363cd83
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 13:26:18 2022 +0000 move 'installer/' to '1-click-installer' to make room for tildebyte installer commit1450779146
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 12:56:36 2022 +0000 update branch for installer to pull against commit8cd5d95b8a
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 05:30:20 2022 +0000 move all models into subdirectories of ./models - this required an update to the invoke-ai fork of gfpgan - simultaneously reverted consolidation of environment and requirements files, as their presence in a directory triggered setup.py to try to install a sub-package. commitabd6407394
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 03:52:46 2022 +0000 leave a copy of environment-cuda.yml at top level - named it environment.yml - need to avoid a big change for users and breaking older support instructions. commit734dacfbe9
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 03:50:07 2022 +0000 consolidate environment files - starting to remove unneeded entries and pins - no longer require -e in front of github dependencies - update setup.py with release number - update manual installation instructions commit636620b1d5
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 03:26:16 2022 +0000 change initfile to ~/.invokeai - adjust documentation - also fix 'clipseg_models' to 'clipseg', which seems to be working now commit1fe41146f0
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 5 14:28:01 2022 -0400 add support for an initialization file, invokeai.init - Place preferred startup command switches in a file named "invokeai.init". The file can consist of a single line of switches such as "--web --steps=28", a series of switches on each line, or any combination of the two. Example: ``` --web --host=0.0.0.0 --steps=28 --grid -f 0.6 -C 11.0 -A k_euler_a ``` - The following options, which were previously only available within the CLI, are now available on the command line as well: --steps --strength --cfg_scale --width --height --fit commit2ad6ef355a
Merge:865502ee
8b47c829
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sun Nov 6 18:08:36 2022 +0000 update discord link commit865502ee4f
Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 18:00:16 2022 +0100 update changelog commitc7984f3299
Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 17:07:27 2022 +0100 update TROUBLESHOOT.md commit7f150ed833
Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 16:56:58 2022 +0100 remove `:`from headlines in CONTRIBUTORS.md commitbadf4e256c
Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 16:56:37 2022 +0100 enable navigation tabs Since the docs are growing, this way they look cleaner commite64c60bbb3
Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 16:18:59 2022 +0100 remove preflight checks from assets seems like somebody executed tests and commited them commit1780618543
Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 16:15:06 2022 +0100 update INSTALLING_MODELS.md commitf91fd27624
Author: Kyle Schouviller <kyle0654@hotmail.com> Date: Sat Nov 5 14:47:53 2022 -0700 Bug fix for inpaint size commit09e41e8f76
Author: Kyle Schouviller <kyle0654@hotmail.com> Date: Sat Nov 5 14:34:52 2022 -0700 Add inpaint size options to inpaint at a larger size than the actual inpaint image, then scale back down for recombination commit6eeb2107b3
Author: mauwii <Mauwii@outlook.de> Date: Sat Nov 5 21:01:14 2022 +0100 remove create-caches.yml since not used anywhere commit17053ad8b7
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 5 16:01:55 2022 -0400 fix duplicated argument introduced by conflict resolution commitfefb4dc1f8
Merge:762ca60a
d05b1b35
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 5 12:47:35 2022 -0700 Merge branch 'development' into fix_generate.py commitd05b1b3544
Author: Craig <cwallen@users.noreply.github.com> Date: Sat Oct 29 20:40:30 2022 -0400 Resize hires as an image commit82d4904c07
Author: Craig <cwallen@users.noreply.github.com> Date: Sat Oct 29 20:37:40 2022 -0400 Log strength with hires commit1cdcf33cfa
Merge:6616fa83
cbc029c6
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 5 09:57:38 2022 -0400 Merge branch 'main' into development - this synchronizes recent document fixes by mauwii commit6616fa835a
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 4 00:47:03 2022 -0400 fix Windows library dependency issues This commit addresses two bugs: 1) invokeai.py crashes immediately with a message about an undefined attritube sigKILL (closes #1288). The fix is to pin torch at 1.12.1. 2) Version 1.4.2 of basicsr fails to load properly on Windows, and is a requirement of realesrgan, however 1.4.1 works. Pinning basicsr in our requirements file resulted in a dependency conflict, so I ended up cloning realesrgan into the invoke-ai Git space and changing the requirements file there. If there is a more elegant solution, please advise. commit7b9a4564b1
Author: Matthias Wild <40327258+mauwii@users.noreply.github.com> Date: Sat Nov 5 14:36:45 2022 +0100 Update-docs (#1382) * update IMG2IMG.md * update INPAINTING.md * update WEBUIHOTKEYS.md * more doc updates (mostly fix formatting): - OUTPAINTING.md - POSTPROCESS.md - PROMPTS.md - VARIATIONS.md - WEB.md - WEBUIHOTKEYS.md commitfcdefa0620
Author: Matthias Wild <40327258+mauwii@users.noreply.github.com> Date: Fri Nov 4 20:47:31 2022 +0100 Hotifx docs (#1376) (#1377) commitef8b3ce639
Merge:b7042095
36870a8f
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 4 12:08:44 2022 -0400 Merge-main-into-development (#1373) To get the rid of the difference between main and development. Since otherwise it will be a pain to start fixing the documentatino (when the state between main and development is not the same ...) Also this should fix the problem of all tests failing since environment yamls get updated. commit36870a8f53
Merge:6b89adfa
b7042095
Author: Matthias Wild <40327258+mauwii@users.noreply.github.com> Date: Fri Nov 4 16:25:00 2022 +0100 Merge branch 'development' into merge-main-into-development commitb70420951d
Author: damian0815 <null@damianstewart.com> Date: Thu Nov 3 12:39:45 2022 +0100 fix parsing error doing eg `forest ().swap(in winter)` commit1f0c5b4cf1
Author: wfng92 <43742196+wfng92@users.noreply.github.com> Date: Thu Nov 3 17:13:52 2022 +0800 Use array slicing to calc ddim timesteps commit8648da8111
Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 4 00:06:19 2022 +0100 update environment-linux-aarch64 to use python 3.9 commit45b4593563
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 3 22:31:46 2022 +0100 update environment-linux-aarch64.yml - move getpass_asterisk to pip commit41b04316cf
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 3 20:40:08 2022 +0100 rename job, remove debug branch from triggers commite97c6db2a3
Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 3 20:34:01 2022 +0100 include build matrix to build x86_64 and aarch64 commit896820a349
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 05:01:15 2022 +0100 disable caching commit06c8f468bf
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 04:26:39 2022 +0100 disable PR-Validation since there are no files passed from context this is unecesarry commit61920e2701
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 04:09:39 2022 +0100 update action to use current branch also update build-args of dockerfile and build.sh commitf34ba7ca70
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 02:30:24 2022 +0100 remove unecesarry mkdir command again commitc30ef0895d
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 01:51:12 2022 +0100 remove symlink to GFPGANv1.4 also re-add mkdir to prevent action from failing commitaa3a774f73
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 01:48:59 2022 +0100 update build-container.yml to use cachev3 commit2c30555b84
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 01:34:20 2022 +0100 update Dockerfile - create models.yaml from models.yaml.example - run preload_models.py with --no-interactive commit743f605773
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 01:21:15 2022 +0100 update build.sh to download sd-v1.5 model commit519c661abb
Author: mauwii <Mauwii@outlook.de> Date: Tue Oct 25 01:26:50 2022 +0200 replace old fashined markdown templates with forms this will help the readability of issues a lot 🤓 commit22c956c75f
Merge:13696adc
0196571a
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 3 10:20:21 2022 -0400 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development commit13696adc3a
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 3 10:20:10 2022 -0400 speculative change to solve windows esrgan issues commit0196571a12
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 2 22:39:35 2022 -0400 remove merge markers from preload_models.py commit9666f466ab
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 2 18:29:34 2022 -0400 use refined model by default commit240e5486c8
Merge:8164b6b9
aa247e68
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 2 18:35:00 2022 -0400 Merge branch 'spezialspezial-patch-9' into development commit8164b6b9cf
Merge:4fc82d55
dd5a88dc
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 2 17:06:46 2022 -0400 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development commit4fc82d554f
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:17:28 2022 +1300 [WebUI] Final 2.1 Release Build commit96b34c0f85
Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 09:08:11 2022 +0100 Final WebUI build for Release 2.1 - squashed commit of 52 commits from PR #1327 don't log base64 progress images Fresh Build For WebUI [WebUI] Loopback Default False Fixes bugs/styling - Fixes missing web app state on new version: Adds stateReconciler to redux-persist. When we add more values to the state and then release the update app, they will be automatically merged in. Reseting web UI will be needed far less. 7159ec - Fixes console z-index - Moves reset web UI button to visible area Decreases gallery width on inpainting Increases workarea split padding to 1rem Adds missing tooltips to site header Changes inpainting controls settings to hover Fixes hotkeys and settings buttons not working Improves bounding box interactions - Bounding box can now be moved by dragging any of its edges - Bounding box does not affect drawing if already drawing a stroke - Can lock bounding box to draw directly on the bounding box edges - Removes spacebar-hold behaviour due to technical issues Fixes silent crash when init image too large To send the mask to the server, the UI rendered the mask onto the init image and sent the whole image. The mask was then cropped by the server. If the image was too large, the app silently failed. Maybe it exceeds the websocket size limit. Fixed by cropping the mask in the UI layer, sending only bounding-box-sized mask image data. Disabled bounding box settings when locked Styles image uploader Builds fresh bundle Improves bounding box interaction Added spacebar-hold-to-transform back. Address bounding box feedback - Adds back toggle to hide bounding box - Box quick toggle = q, normal toggle = shift + q - Styles canvas alert icons Adds hints when unable to invoke - Popover on Invoke button indicates why exactly it is disabled, e.g. prompt is empty, something else is processing, etc. - There may be more than one reason; all are displayed. Fix Inpainting Alerts Styling Preventing unnecessary re-renders across the app Code Split Inpaint Options Isolate features to their own components so they dont re-render the other stuff each time. [TESTING] Remove global isReady checking I dont believe this is need at all because the isready state is constantly updated when needed and tracked real time in the Redux store. This causes massive re-renders. @psychedelicious If this is absolutely essential for a reason that I do not see, please hit me up on Discord. Fresh Bundle Fix Bounding Box Settings re-rendering on brush stroke [Code Splitting] Bounding Box Options Isolated all bounding box components to trigger unnecessary re-renders. Still need to fix bounding box triggering re-renders on the control panel inside the canvas itself. But the options panel should be a good to go with this change. Inpainting Controls Code Spitting and Performance Codesplit the entirety of the inpainting controls. Created new selectors for each and every component to ensure there are no unnecessary re-renders. App feels a lot smoother. Fixes rerenders on ClearBrushHistory Fixes crash when requesting post-generation upscale/face restoration - Moves the inpainting paste to before the postprocessing. Removes unused isReady state Changes Report Bug icon to a bug Restores shift+q bounding box shortcut Adds alert for bounding box size to status icons Adds asCheckbox to IAIIconButton Rough draft of this. Not happy with the styling but it's clearer than having them look just like buttons. Fixes crash related to old value of progress_latents in state Styling changes and settings modal minor refactor Fixes: uploaded JPG images not loading Reworks CurrentImageButtons.tsx - Change all icons to FA iconset for consistency - Refactors IAIIconButton, IAIButton, IAIPopover to handle ref forwarding - Redesigns buttons into group Only generate 1 iteration when seed fixed & variations disabled Fixes progress images select Fixes edge case: upload over gets stuck while alt tabbing - Press esc to close it now Fixes display progress images select typing Fixes current image button rerenders Adds min width to ImageUploader Makes fast-latents in progress default Update Icon Button Checkbox Style Styling Fixes next/prev image buttons Refactor canvas buttons + more Add Save Intermediates Step Count For accurate mode only. Co-Authored-By: Richard Macarthy <richardmacarthy@protonmail.com> Restores "initial image" text Address feedback - moves mask clear button - fixes intermediates - shrinks inpainting icons by 10% Fix Loopback Styling Adds escape hotkey to close floating panels Readd Hotkey for Dual Display Updated Current Image Button Styling commitdd5a88dcee
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:17:28 2022 +1300 [WebUI] Final 2.1 Release Build commit95ed56bf82
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:16:31 2022 +1300 Updated Current Image Button Styling commit1ae80f5ab9
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:07:57 2022 +1300 Readd Hotkey for Dual Display commit1f0bd3ca6c
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 02:07:00 2022 +1100 Adds escape hotkey to close floating panels commita1971f6830
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 03:38:15 2022 +1300 Fix Loopback Styling commitc6118e8898
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 01:29:51 2022 +1100 Address feedback - moves mask clear button - fixes intermediates - shrinks inpainting icons by 10% commit7ba958cf7f
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 01:10:38 2022 +1100 Restores "initial image" text commit383905d5d2
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 02:59:11 2022 +1300 Add Save Intermediates Step Count For accurate mode only. Co-Authored-By: Richard Macarthy <richardmacarthy@protonmail.com> commit6173e3e9ca
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 00:53:53 2022 +1100 Refactor canvas buttons + more commit3feb7d8922
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 00:49:23 2022 +1100 Fixes next/prev image buttons commit1d9edbd0dd
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 00:50:44 2022 +1300 Update Icon Button Checkbox Style Styling commitd439abdb89
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:37:24 2022 +1100 Makes fast-latents in progress default commitee47ea0c89
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:37:09 2022 +1100 Adds min width to ImageUploader commit300bb2e627
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:28:22 2022 +1100 Fixes current image button rerenders commitccf8593501
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:27:43 2022 +1100 Fixes display progress images select typing commit0fda612f3f
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:02:01 2022 +1100 Fixes edge case: upload over gets stuck while alt tabbing - Press esc to close it now commit5afff65b71
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 20:33:19 2022 +1100 Fixes progress images select commit7e55bdefce
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 20:27:47 2022 +1100 Only generate 1 iteration when seed fixed & variations disabled commit620cf84d3d
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 19:51:38 2022 +1100 Reworks CurrentImageButtons.tsx - Change all icons to FA iconset for consistency - Refactors IAIIconButton, IAIButton, IAIPopover to handle ref forwarding - Redesigns buttons into group commitcfe567c62a
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 16:14:50 2022 +1100 Fixes: uploaded JPG images not loading commitcefe12f1df
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 15:31:18 2022 +1100 Styling changes and settings modal minor refactor commit1e51c39928
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 15:27:46 2022 +1100 Fixes crash related to old value of progress_latents in state commit42a02bbb80
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 13:15:06 2022 +1100 Adds asCheckbox to IAIIconButton Rough draft of this. Not happy with the styling but it's clearer than having them look just like buttons. commitf1ae6dae4c
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 13:13:56 2022 +1100 Adds alert for bounding box size to status icons commit6195579910
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:52:19 2022 +1100 Restores shift+q bounding box shortcut commit16c8b23b34
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:32:07 2022 +1100 Changes Report Bug icon to a bug commit07ae626b22
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:17:16 2022 +1100 Removes unused isReady state commit8d171bb044
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:13:26 2022 +1100 Fixes crash when requesting post-generation upscale/face restoration - Moves the inpainting paste to before the postprocessing. commit6e33ca7e9e
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 10:59:01 2022 +1100 Fixes rerenders on ClearBrushHistory commitdb46e12f2b
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 11:36:28 2022 +1300 Inpainting Controls Code Spitting and Performance Codesplit the entirety of the inpainting controls. Created new selectors for each and every component to ensure there are no unnecessary re-renders. App feels a lot smoother. commit868e4b2db8
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 07:40:31 2022 +1300 [Code Splitting] Bounding Box Options Isolated all bounding box components to trigger unnecessary re-renders. Still need to fix bounding box triggering re-renders on the control panel inside the canvas itself. But the options panel should be a good to go with this change. commit2e562742c1
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 06:40:27 2022 +1300 Fix Bounding Box Settings re-rendering on brush stroke commit68e6958009
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 06:28:34 2022 +1300 Fresh Bundle commitea6e3a7949
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 06:26:56 2022 +1300 [TESTING] Remove global isReady checking I dont believe this is need at all because the isready state is constantly updated when needed and tracked real time in the Redux store. This causes massive re-renders. @psychedelicious If this is absolutely essential for a reason that I do not see, please hit me up on Discord. commitb2879ca99f
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 06:08:59 2022 +1300 Code Split Inpaint Options Isolate features to their own components so they dont re-render the other stuff each time. commit4e911566c3
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 03:50:56 2022 +1300 Preventing unnecessary re-renders across the app commit9bafda6a15
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 03:02:35 2022 +1300 Fix Inpainting Alerts Styling commit871a8a5375
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 23:52:07 2022 +1100 Adds hints when unable to invoke - Popover on Invoke button indicates why exactly it is disabled, e.g. prompt is empty, something else is processing, etc. - There may be more than one reason; all are displayed. commit0eef74bc00
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 23:40:11 2022 +1100 Address bounding box feedback - Adds back toggle to hide bounding box - Box quick toggle = q, normal toggle = shift + q - Styles canvas alert icons commit423ae32097
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 17:06:07 2022 +1100 Improves bounding box interaction Added spacebar-hold-to-transform back. commit8282e5d045
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:57:07 2022 +1100 Builds fresh bundle commit19305cdbdf
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:51:11 2022 +1100 Styles image uploader commiteb9028ab30
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:51:03 2022 +1100 Disabled bounding box settings when locked commit21483f5d07
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:50:24 2022 +1100 Fixes silent crash when init image too large To send the mask to the server, the UI rendered the mask onto the init image and sent the whole image. The mask was then cropped by the server. If the image was too large, the app silently failed. Maybe it exceeds the websocket size limit. Fixed by cropping the mask in the UI layer, sending only bounding-box-sized mask image data. commit82dcbac28f
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:28:30 2022 +1100 Improves bounding box interactions - Bounding box can now be moved by dragging any of its edges - Bounding box does not affect drawing if already drawing a stroke - Can lock bounding box to draw directly on the bounding box edges - Removes spacebar-hold behaviour due to technical issues commitd43bd4625d
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 15:10:49 2022 +1100 Fixes hotkeys and settings buttons not working commitea891324a2
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:04:02 2022 +1100 Changes inpainting controls settings to hover commit8fd9ea2193
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:03:41 2022 +1100 Adds missing tooltips to site header commitfb02666856
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:03:25 2022 +1100 Increases workarea split padding to 1rem commitf6f5c2731b
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:03:10 2022 +1100 Decreases gallery width on inpainting commitb4e3f771e0
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 10:54:59 2022 +1100 Fixes bugs/styling - Fixes missing web app state on new version: Adds stateReconciler to redux-persist. When we add more values to the state and then release the update app, they will be automatically merged in. Reseting web UI will be needed far less. 7159ec - Fixes console z-index - Moves reset web UI button to visible area commit99bb9491ac
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Tue Nov 1 08:35:45 2022 +1300 [WebUI] Loopback Default False commit0453f21127
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 23:23:51 2022 +1300 Fresh Build For WebUI commit9fc09aa4bd
Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 09:08:11 2022 +0100 don't log base64 progress images commit5e87062cf8
Author: spezialspezial <75758219+spezialspezial@users.noreply.github.com> Date: Wed Nov 2 00:21:27 2022 +0100 Option to directly invert the grayscale heatmap - fix commit3e7a459990
Author: spezialspezial <75758219+spezialspezial@users.noreply.github.com> Date: Tue Nov 1 21:37:33 2022 +0100 Update txt2mask.py commitbbf4c03e50
Author: spezialspezial <75758219+spezialspezial@users.noreply.github.com> Date: Tue Nov 1 21:11:19 2022 +0100 Option to directly invert the grayscale heatmap Theoretically less work inverting the image while it's small but I can't measure a significant difference. Though, handy option to have in some cases. commit611a3a9753
Author: mauwii <Mauwii@outlook.de> Date: Wed Nov 2 02:23:09 2022 +0100 fix name of caching step commit1611f0d181
Author: mauwii <Mauwii@outlook.de> Date: Wed Nov 2 02:18:46 2022 +0100 readd caching of sd-models - this would remove the necesarrity of the secret availability in PRs commit08835115e4
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 22:10:12 2022 -0400 pin pytorch_lightning to 1.7.7, issue #1331 commit2d84e28d32
Merge:533fd04e
ef17aae8
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 22:11:04 2022 -0400 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development commitef17aae8ab
Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 00:39:48 2022 +0100 add damian0815 to contributors list commit0cc39f01a3
Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 01:18:50 2022 +0100 report full size for fast latents and update conversion matrix for v1.5 commit688d7258f1
Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 00:33:00 2022 +0100 fix a bug that broke cross attention control index mapping commit4513320bf1
Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 00:31:58 2022 +0100 save VRAM by not recombining tensors that have been sliced to save VRAM commit533fd04ef0
Merge:6215592b
dff5681c
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 17:40:36 2022 -0400 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development commitdff5681cf0
Author: damian0815 <d@d.com> Date: Tue Nov 1 13:56:03 2022 +0100 shorter strings commit5a2790a69b
Author: damian0815 <d@d.com> Date: Tue Nov 1 13:19:20 2022 +0100 convert progress display to a drop-down commit7c5305ccba
Author: damian0815 <d@d.com> Date: Tue Nov 1 12:54:46 2022 +0100 do not try to save base64 intermediates in gallery on cancellation commit4013e8ad6f
Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 21:54:35 2022 +1100 Fixes b64 image sending and displaying commitd1dfd257f9
Author: damian <d@d.com> Date: Tue Nov 1 11:40:40 2022 +0100 wip base64 commit5322d735ee
Author: damian <d@d.com> Date: Tue Nov 1 11:31:42 2022 +0100 update frontend commitcdb107dcda
Author: damian <d@d.com> Date: Tue Nov 1 11:17:43 2022 +0100 add option to show intermediate latent space commitbe1393a41c
Author: damian <d@d.com> Date: Tue Nov 1 10:16:55 2022 +0100 ensure existing exception handling code also handles new exception class commite554c2607f
Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Tue Nov 1 10:08:42 2022 +0100 Rebuilt prompt parsing logic Complete re-write of the prompt parsing logic to be more readable and logical, and therefore also hopefully easier to debug, maintain, and augment. In the process it has also become more robust to badly-formed prompts. Squashed commit of the following: commit 8fcfa88a16e1390d41717e940d72aed64712171c Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Sun Oct 30 17:05:57 2022 +0100 further cleanup commit 1a1fd78bcfeb49d072e3e6d5808aa8df15441629 Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Sun Oct 30 16:07:57 2022 +0100 cleanup and document commit 099c9659fa8b8135876f9a5a50fe80b20bc0635c Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Sun Oct 30 15:54:58 2022 +0100 works fully commit 5e6887ea8c25a1e21438ff6defb381fd027d25fd Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Sun Oct 30 15:24:31 2022 +0100 further... commit 492fda120844d9bc1ad4ec7dd408a3374762d0ff Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Sun Oct 30 14:08:57 2022 +0100 getting there... commit c6aab05a8450cc3c95c8691daf38fdc64c74f52d Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Fri Oct 28 14:29:03 2022 +0200 wip doesn't compile commit 5e533f731cfd20cd435330eeb0012e5689e87e81 Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Fri Oct 28 13:21:43 2022 +0200 working with CrossAttentionCtonrol but no Attention support yet commit 9678348773431e500e110e8aede99086bb7b5955 Author: Damian at mba <damian@frey.NOSPAMco.nz> Date: Fri Oct 28 13:04:52 2022 +0200 wip rebuiling prompt parser commit6215592b12
Merge:ef24d76a
349cc254
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 17:34:55 2022 -0400 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development commit349cc25433
Author: damian0815 <d@d.com> Date: Tue Nov 1 20:08:52 2022 +0100 fix crash (be a little less aggressive clearing out the attention slice) commit214d276379
Author: damian0815 <d@d.com> Date: Tue Nov 1 19:57:55 2022 +0100 be more aggressive at clearing out saved_attn_slice commitef24d76adc
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 14:34:23 2022 -0400 fix library problems in preload_modules commitab2b5a691d
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 17:22:48 2022 -0400 fix model_cache memory management issues commitc7de2b2801
Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 02:02:14 2022 +0100 disable checks with sd-V1.4 model... ...to save some resources, since V1.5 is the default now commite8075658ac
Author: mauwii <Mauwii@outlook.de> Date: Mon Oct 31 22:20:51 2022 +0100 update test-invoke-conda.yml - fix model dl path for sd-v1-4.ckpt - copy configs/models.yaml.example to configs/models.yaml commit4202dabee1
Author: mauwii <Mauwii@outlook.de> Date: Mon Oct 31 22:17:21 2022 +0100 fix models example weights for sd-v1.4 commitd67db2bcf1
Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Tue Nov 1 08:35:45 2022 +1300 [WebUI] Loopback Default False commit7159ec885f
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Mon Oct 31 11:33:05 2022 -0400 further improvements to preload_models.py - Faster startup for command line switch processing - Specify configuration file to modify using --config option: ./scripts/preload_models.ply --config models/my-models-file.yaml commitb5cf734ba9
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Mon Oct 31 11:08:19 2022 -0400 improve behavior of preload_models.py - NEVER overwrite user's existing models.yaml - Instead, merge its contents into new config file, and rename original to models.yaml.orig (with message) - models.yaml has been removed from repository and renamed models.yaml.example commitf7dc8eafee
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Mon Oct 31 10:47:35 2022 -0400 restore models.yaml to virgin state commit762ca60a30
Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Oct 4 22:55:10 2022 -0400 Update INPAINTING.md commite7fb9f342c
Author: Hideyuki Katsushiro <h.katsushiro@qualia.tokyo.jp> Date: Wed Oct 5 10:08:53 2022 +0900 add argument --outdir
39 KiB
title |
---|
CLI |
:material-bash: CLI
Interactive Command Line Interface
The invoke.py
script, located in scripts/
, provides an interactive interface
to image generation similar to the "invoke mothership" bot that Stable AI
provided on its Discord server.
Unlike the txt2img.py
and img2img.py
scripts provided in the original
CompVis/stable-diffusion source
code repository, the time-consuming initialization of the AI model
initialization only happens once. After that image generation from the
command-line interface is very fast.
The script uses the readline library to allow for in-line editing, command history (++up++ and ++down++), autocompletion, and more. To help keep track of which prompts generated which images, the script writes a log file of image names and prompts to the selected output directory.
In addition, as of version 1.02, it also writes the prompt into the PNG file's
metadata where it can be retrieved using scripts/images2prompt.py
The script is confirmed to work on Linux, Windows and Mac systems.
!!! note
This script runs from the command-line or can be used as a Web application. The Web GUI is
currently rudimentary, but a much better replacement is on its way.
(invokeai) ~/stable-diffusion$ python3 ./scripts/invoke.py
* Initializing, be patient...
Loading model from models/ldm/text2img-large/model.ckpt
(...more initialization messages...)
* Initialization done! Awaiting your command...
invoke> ashley judd riding a camel -n2 -s150
Outputs:
outputs/img-samples/00009.png: "ashley judd riding a camel" -n2 -s150 -S 416354203
outputs/img-samples/00010.png: "ashley judd riding a camel" -n2 -s150 -S 1362479620
invoke> "there's a fly in my soup" -n6 -g
outputs/img-samples/00011.png: "there's a fly in my soup" -n6 -g -S 2685670268
seeds for individual rows: [2685670268, 1216708065, 2335773498, 822223658, 714542046, 3395302430]
invoke> q
# this shows how to retrieve the prompt stored in the saved image's metadata
(invokeai) ~/stable-diffusion$ python ./scripts/images2prompt.py outputs/img_samples/*.png
00009.png: "ashley judd riding a camel" -s150 -S 416354203
00010.png: "ashley judd riding a camel" -s150 -S 1362479620
00011.png: "there's a fly in my soup" -n6 -g -S 2685670268
The invoke>
prompt's arguments are pretty much identical to those used in the
Discord bot, except you don't need to type !invoke
(it doesn't hurt if you
do). A significant change is that creation of individual images is now the
default unless --grid
(-g
) is given. A full list is given in
List of prompt arguments.
Arguments
The script itself also recognizes a series of command-line switches that will change important global defaults, such as the directory for image outputs and the location of the model weight files.
List of arguments recognized at the command line
These command-line arguments can be passed to invoke.py
when you first run it
from the Windows, Mac or Linux command line. Some set defaults that can be
overridden on a per-prompt basis (see
List of prompt arguments. Others
Argument | Shortcut | Default | Description |
---|---|---|---|
--help |
-h |
Print a concise help message. | |
--outdir <path> |
-o<path> |
outputs/img_samples |
Location for generated images. |
--prompt_as_dir |
-p |
False |
Name output directories using the prompt text. |
--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" | |
--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) |
--safety-checker |
False |
Activate safety checker for NSFW and other potentially disturbing imagery | |
--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. | |
--port <port> |
9090 |
Which port web server should listen for requests on. | |
--config <path> |
configs/models.yaml |
Configuration file for models and their weights. | |
--iterations <int> |
-n<int> |
1 |
How many images to generate per prompt. |
--width <int> |
-W<int> |
512 |
Width of generated image |
--height <int> |
-H<int> |
512 |
Height of generated image |
--strength <float> |
-s<float> |
0.75 |
For img2img: how hard to try to match the prompt to the initial image. Ranges from 0.0-0.99, with higher values replacing the initial image completely. |
--fit |
-F |
False |
For img2img: scale the init image to fit into the specified -H and -W dimensions |
--grid |
-g |
False |
Save all image series as a grid rather than individually. |
--sampler <sampler> |
-A<sampler> |
k_lms |
Sampler to use. Use -h to get list of available samplers. |
--seamless |
False |
Create interesting effects by tiling elements of the image. | |
--embedding_path <path> |
None |
Path to pre-trained embedding manager checkpoints, for custom models | |
--gfpgan_dir |
src/gfpgan |
Path to where GFPGAN is installed. | |
--gfpgan_model_path |
experiments/pretrained_models/GFPGANv1.4.pth |
Path to GFPGAN model file, relative to --gfpgan_dir . |
|
--free_gpu_mem |
False |
Free GPU memory after sampling, to allow image decoding and saving in low VRAM conditions | |
--precision |
auto |
Set model precision, default is selected by device. Options: auto, float32, float16, autocast |
!!! warning "These arguments are deprecated but still work"
<div align="center" markdown>
| Argument | Shortcut | Default | Description |
|--------------------|------------|---------------------|--------------|
| `--weights <path>` | | `None` | Path to weights file; use `--model stable-diffusion-1.4` instead |
| `--laion400m` | `-l` | `False` | Use older LAION400m weights; use `--model=laion400m` instead |
</div>
!!! tip
On Windows systems, you may run into
problems when passing the invoke script standard backslashed path
names because the Python interpreter treats "\" as an escape.
You can either double your slashes (ick): `C:\\path\\to\\my\\file`, or
use Linux/Mac style forward slashes (better): `C:/path/to/my/file`.
The .invokeai initialization file
To start up invoke.py with your preferred settings, place your desired
startup options in a file in your home directory named .invokeai
The
file should contain the startup options as you would type them on the
command line (--steps=10 --grid
), one argument per line, or a
mixture of both using any of the accepted command switch formats:
!!! example ""
```bash
--web
--steps=28
--grid
-f 0.6 -C 11.0 -A k_euler_a
```
Note that the initialization file only accepts the command line arguments.
There are additional arguments that you can provide on the invoke>
command
line (such as -n
or --iterations
) that cannot be entered into this file.
Also be alert for empty blank lines at the end of the file, which will cause
an arguments error at startup time.
List of prompt arguments
After the invoke.py script initializes, it will present you with a invoke>
prompt. Here you can enter information to generate images from text
(txt2img), to embellish an existing image or sketch
(img2img), or to selectively alter chosen regions of the image
(inpainting).
txt2img
!!! example ""
```bash
invoke> waterfall and rainbow -W640 -H480
```
This will create the requested image with the dimensions 640 (width)
and 480 (height).
Here are the invoke> command that apply to txt2img:
Argument | Shortcut | Default | Description |
---|---|---|---|
"my prompt" | Text prompt to use. The quotation marks are optional. | ||
--width <int> |
-W<int> |
512 |
Width of generated image |
--height <int> |
-H<int> |
512 |
Height of generated image |
--iterations <int> |
-n<int> |
1 |
How many images to generate from this prompt |
--steps <int> |
-s<int> |
50 |
How many steps of refinement to apply |
--cfg_scale <float> |
-C<float> |
7.5 |
How hard to try to match the prompt to the generated image; any number greater than 1.0 works, but the useful range is roughly 5.0 to 20.0 |
--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. |
--karras_max <int> |
29 |
When using k_* samplers, set the maximum number of steps before shifting from using the Karras noise schedule (good for low step counts) to the LatentDiffusion noise schedule (good for high step counts) This value is sticky. [29] | |
--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 |
--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 |
--seamless |
False |
Activate seamless tiling for interesting effects | |
--seamless_axes |
x,y |
Specify which axes to use circular convolution on. | |
--log_tokenization |
-t |
False |
Display a color-coded list of the parsed tokens derived from the prompt |
--skip_normalization |
-x |
False |
Weighted subprompts will not be normalized. See Weighted Prompts |
--upscale <int> <float> |
-U <int> <float> |
-U 1 0.75 |
Upscale image by magnification factor (2, 4), and set strength of upscaling (0.0-1.0). If strength not set, will default to 0.75. |
--facetool_strength <float> |
-G <float> |
-G0 |
Fix faces (defaults to using the GFPGAN algorithm); argument indicates how hard the algorithm should try (0.0-1.0) |
--facetool <name> |
-ft <name> |
-ft gfpgan |
Select face restoration algorithm to use: gfpgan, codeformer |
--codeformer_fidelity |
-cf <float> |
0.75 |
Used along with CodeFormer. Takes values between 0 and 1. 0 produces high quality but low accuracy. 1 produces high accuracy but low quality |
--save_original |
-save_orig |
False |
When upscaling or fixing faces, this will cause the original image to be saved rather than replaced. |
--variation <float> |
-v<float> |
0.0 |
Add a bit of noise (0.0=none, 1.0=high) to the image in order to generate a series of variations. Usually used in combination with -S<seed> and -n<int> to generate a series a riffs on a starting image. See Variations. |
--with_variations <pattern> |
None |
Combine two or more variations. See Variations for now to use this. | |
--save_intermediates <n> |
None |
Save the image from every nth step into an "intermediates" folder inside the output directory |
Note that the width and height of the image must be multiples of 64. You can provide different values, but they will be rounded down to the nearest multiple of 64.
This is an example of img2img:
invoke> waterfall and rainbow -I./vacation-photo.png -W640 -H480 --fit
This will modify the indicated vacation photograph by making it more like the prompt. Results will vary greatly depending on what is in the image. We also ask to --fit the image into a box no bigger than 640x480. Otherwise the image size will be identical to the provided photo and you may run out of memory if it is large.
In addition to the command-line options recognized by txt2img, img2img accepts additional options:
Argument | Shortcut | Default | Description |
---|---|---|---|
--init_img <path> |
-I<path> |
None |
Path to the initialization image |
--fit |
-F |
False |
Scale the image to fit into the specified -H and -W dimensions |
--strength <float> |
-s<float> |
0.75 |
How hard to try to match the prompt to the initial image. Ranges from 0.0-0.99, with higher values replacing the initial image completely. |
inpainting
!!! example ""
```bash
invoke> waterfall and rainbow -I./vacation-photo.png -M./vacation-mask.png -W640 -H480 --fit
```
This will do the same thing as img2img, but image alterations will
only occur within transparent areas defined by the mask file specified
by `-M`. You may also supply just a single initial image with the areas
to overpaint made transparent, but you must be careful not to destroy
the pixels underneath when you create the transparent areas. See
[Inpainting](./INPAINTING.md) for details.
inpainting accepts all the arguments used for txt2img and img2img, as well as the --mask (-M) and --text_mask (-tm) arguments:
Argument | Shortcut | Default | Description |
---|---|---|---|
--init_mask <path> |
-M<path> |
None |
Path to an image the same size as the initial_image, with areas for inpainting made transparent. |
--invert_mask |
False | If true, invert the mask so that transparent areas are opaque and vice versa. | |
--text_mask <prompt> [<float>] |
-tm <prompt> [<float>] |
Create a mask from a text prompt describing part of the image |
The mask may either be an image with transparent areas, in which case the inpainting will occur in the transparent areas only, or a black and white image, in which case all black areas will be painted into.
--text_mask
(short form -tm
) is a way to generate a mask using a text
description of the part of the image to replace. For example, if you have an
image of a breakfast plate with a bagel, toast and scrambled eggs, you can
selectively mask the bagel and replace it with a piece of cake this way:
invoke> a piece of cake -I /path/to/breakfast.png -tm bagel
The algorithm uses clipseg to classify different
regions of the image. The classifier puts out a confidence score for each region
it identifies. Generally regions that score above 0.5 are reliable, but if you
are getting too much or too little masking you can adjust the threshold down (to
get more mask), or up (to get less). In this example, by passing -tm
a higher
value, we are insisting on a more stringent classification.
invoke> a piece of cake -I /path/to/breakfast.png -tm bagel 0.6
Other Commands
The CLI offers a number of commands that begin with "!".
Postprocessing images
To postprocess a file using face restoration or upscaling, use the !fix
command.
!fix
This command runs a post-processor on a previously-generated image. It takes a
PNG filename or path and applies your choice of the -U
, -G
, or --embiggen
switches in order to fix faces or upscale. If you provide a filename, the script
will look for it in the current output directory. Otherwise you can provide a
full or partial path to the desired file.
Some examples:
!!! example "Upscale to 4X its original size and fix faces using codeformer"
```bash
invoke> !fix 0000045.4829112.png -G1 -U4 -ft codeformer
```
!!! example "Use the GFPGAN algorithm to fix faces, then upscale to 3X using --embiggen"
```bash
invoke> !fix 0000045.4829112.png -G0.8 -ft gfpgan
>> fixing outputs/img-samples/0000045.4829112.png
>> retrieved seed 4829112 and prompt "boy enjoying a banana split"
>> GFPGAN - Restoring Faces for image seed:4829112
Outputs:
[1] outputs/img-samples/000017.4829112.gfpgan-00.png: !fix "outputs/img-samples/0000045.4829112.png" -s 50 -S -W 512 -H 512 -C 7.5 -A k_lms -G 0.8
```
!mask
This command takes an image, a text prompt, and uses the clipseg
algorithm to
automatically generate a mask of the area that matches the text prompt. It is
useful for debugging the text masking process prior to inpainting with the
--text_mask
argument. See [INPAINTING.md] for details.
Model selection and importation
The CLI allows you to add new models on the fly, as well as to switch among them rapidly without leaving the script.
!models
This prints out a list of the models defined in `config/models.yaml'. The active model is bold-faced
Example:
laion400m not loaded stable-diffusion-1.4 active Stable Diffusion v1.4 waifu-diffusion not loaded Waifu Diffusion v1.3
!switch
This quickly switches from one model to another without leaving the CLI script.
invoke.py
uses a memory caching system; once a model has been loaded,
switching back and forth is quick. The following example shows this in action.
Note how the second column of the !models
table changes to cached
after a
model is first loaded, and that the long initialization step is not needed when
loading a cached model.
invoke> !models laion400m not loaded stable-diffusion-1.4 cached Stable Diffusion v1.4 waifu-diffusion active Waifu Diffusion v1.3 invoke> !switch waifu-diffusion >> Caching model stable-diffusion-1.4 in system RAM >> Loading waifu-diffusion from models/ldm/stable-diffusion-v1/model-epoch08-float16.ckpt | LatentDiffusion: Running in eps-prediction mode | DiffusionWrapper has 859.52 M params. | Making attention of type 'vanilla' with 512 in_channels | Working with z of shape (1, 4, 32, 32) = 4096 dimensions. | Making attention of type 'vanilla' with 512 in_channels | Using faster float16 precision >> Model loaded in 18.24s >> Max VRAM used to load the model: 2.17G >> Current VRAM usage:2.17G >> Setting Sampler to k_lms invoke> !models laion400m not loaded stable-diffusion-1.4 cached Stable Diffusion v1.4 waifu-diffusion active Waifu Diffusion v1.3 invoke> !switch stable-diffusion-1.4 >> Caching model waifu-diffusion in system RAM >> Retrieving model stable-diffusion-1.4 from system RAM cache >> Setting Sampler to k_lms invoke> !models laion400m not loaded stable-diffusion-1.4 active Stable Diffusion v1.4 waifu-diffusion cached Waifu Diffusion v1.3
!import_model <path/to/model/weights>
This command imports a new model weights file into InvokeAI, makes it available
for image generation within the script, and writes out the configuration for the
model into config/models.yaml
for use in subsequent sessions.
Provide !import_model
with the path to a weights file ending in .ckpt
. If
you type a partial path and press tab, the CLI will autocomplete. Although it
will also autocomplete to .vae
files, these are not currenty supported (but
will be soon).
When you hit return, the CLI will prompt you to fill in additional information
about the model, including the short name you wish to use for it with the
!switch
command, a brief description of the model, the default image width and
height to use with this model, and the model's configuration file. The latter
three fields are automatically filled with reasonable defaults. In the example
below, the bold-faced text shows what the user typed in with the exception of
the width, height and configuration file paths, which were filled in
automatically.
Example:
invoke> !import_model models/ldm/stable-diffusion-v1/model-epoch08-float16.ckpt >> Model import in process. Please enter the values needed to configure this model: Name for this model: waifu-diffusion Description of this model: Waifu Diffusion v1.3 Configuration file for this model: configs/stable-diffusion/v1-inference.yaml Default image width: 512 Default image height: 512 >> New configuration: waifu-diffusion: config: configs/stable-diffusion/v1-inference.yaml description: Waifu Diffusion v1.3 height: 512 weights: models/ldm/stable-diffusion-v1/model-epoch08-float16.ckpt width: 512 OK to import [n]? y >> Caching model stable-diffusion-1.4 in system RAM >> Loading waifu-diffusion from models/ldm/stable-diffusion-v1/model-epoch08-float16.ckpt | LatentDiffusion: Running in eps-prediction mode | DiffusionWrapper has 859.52 M params. | Making attention of type 'vanilla' with 512 in_channels | Working with z of shape (1, 4, 32, 32) = 4096 dimensions. | Making attention of type 'vanilla' with 512 in_channels | Using faster float16 precision invoke>
###!edit_model <name_of_model>
The !edit_model
command can be used to modify a model that is already defined
in config/models.yaml
. Call it with the short name of the model you wish to
modify, and it will allow you to modify the model's description
, weights
and
other fields.
Example:
invoke> !edit_model waifu-diffusion >> Editing model waifu-diffusion from configuration file ./configs/models.yaml description: Waifu diffusion v1.4beta weights: models/ldm/stable-diffusion-v1/model-epoch10-float16.ckpt config: configs/stable-diffusion/v1-inference.yaml width: 512 height: 512 >> New configuration: waifu-diffusion: config: configs/stable-diffusion/v1-inference.yaml description: Waifu diffusion v1.4beta weights: models/ldm/stable-diffusion-v1/model-epoch10-float16.ckpt height: 512 width: 512 OK to import [n]? y >> Caching model stable-diffusion-1.4 in system RAM >> Loading waifu-diffusion from models/ldm/stable-diffusion-v1/model-epoch10-float16.ckpt ...
======= invoke> !fix 000017.4829112.gfpgan-00.png --embiggen 3 ...lots of text... Outputs: [2] outputs/img-samples/000018.2273800735.embiggen-00.png: !fix "outputs/img-samples/000017.243781548.gfpgan-00.png" -s 50 -S 2273800735 -W 512 -H 512 -C 7.5 -A k_lms --embiggen 3.0 0.75 0.25 ```
History processing
The CLI provides a series of convenient commands for reviewing previous actions, retrieving them, modifying them, and re-running them.
!history
The invoke script keeps track of all the commands you issue during a session, allowing you to re-run them. On Mac and Linux systems, it also writes the command-line history out to disk, giving you access to the most recent 1000 commands issued.
The !history
command will return a numbered list of all the commands issued
during the session (Windows), or the most recent 1000 commands (Mac|Linux). You
can then repeat a command by using the command !NNN
, where "NNN" is the
history line number. For example:
invoke> !history
...
[14] happy woman sitting under tree wearing broad hat and flowing garment
[15] beautiful woman sitting under tree wearing broad hat and flowing garment
[18] beautiful woman sitting under tree wearing broad hat and flowing garment -v0.2 -n6
[20] watercolor of beautiful woman sitting under tree wearing broad hat and flowing garment -v0.2 -n6 -S2878767194
[21] surrealist painting of beautiful woman sitting under tree wearing broad hat and flowing garment -v0.2 -n6 -S2878767194
...
invoke> !20
invoke> watercolor of beautiful woman sitting under tree wearing broad hat and flowing garment -v0.2 -n6 -S2878767194
!fetch
This command retrieves the generation parameters from a previously generated image and either loads them into the command line (Linux|Mac), or prints them out in a comment for copy-and-paste (Windows). You may provide either the name of a file in the current output directory, or a full file path. Specify path to a folder with image png files, and wildcard *.png to retrieve the dream command used to generate the images, and save them to a file commands.txt for further processing.
This example loads the generation command for a single png file:
invoke> !fetch 0000015.8929913.png
# the script returns the next line, ready for editing and running:
invoke> a fantastic alien landscape -W 576 -H 512 -s 60 -A plms -C 7.5
This one fetches the generation commands from a batch of files and stores them
into selected.txt
:
invoke> !fetch outputs\selected-imgs\*.png selected.txt
!replay
This command replays a text file generated by !fetch or created manually
invoke> !replay outputs\selected-imgs\selected.txt
Note that these commands may behave unexpectedly if given a PNG file that was not generated by InvokeAI.
!search
This is similar to !history but it only returns lines that contain
search string
. For example:
invoke> !search surreal
[21] surrealist painting of beautiful woman sitting under tree wearing broad hat and flowing garment -v0.2 -n6 -S2878767194
!clear
This clears the search history from memory and disk. Be advised that this operation is irreversible and does not issue any warnings!
Command-line editing and completion
The command-line offers convenient history tracking, editing, and command completion.
- To scroll through previous commands and potentially edit/reuse them, use the ++up++ and ++down++ keys.
- To edit the current command, use the ++left++ and ++right++ keys to position the cursor, and then ++backspace++, ++delete++ or insert characters.
- To move to the very beginning of the command, type ++ctrl+a++ (or ++command+a++ on the Mac)
- To move to the end of the command, type ++ctrl+e++.
- To cut a section of the command, position the cursor where you want to start cutting and type ++ctrl+k++
- To paste a cut section back in, position the cursor where you want to paste, and type ++ctrl+y++
Windows users can get similar, but more limited, functionality if they launch
invoke.py
with the winpty
program and have the pyreadline3
library
installed:
> winpty python scripts\invoke.py
On the Mac and Linux platforms, when you exit invoke.py, the last 1000 lines of
your command-line history will be saved. When you restart invoke.py
, you can
access the saved history using the ++up++ key.
In addition, limited command-line completion is installed. In various contexts, you can start typing your command and press ++tab++. A list of potential completions will be presented to you. You can then type a little more, hit ++tab++ again, and eventually autocomplete what you want.
When specifying file paths using the one-letter shortcuts, the CLI will attempt
to complete pathnames for you. This is most handy for the -I
(init image) and
-M
(init mask) paths. To initiate completion, start the path with a slash
(/
) or ./
. For example:
invoke> zebra with a mustache -I./test-pictures<TAB>
-I./test-pictures/Lincoln-and-Parrot.png -I./test-pictures/zebra.jpg -I./test-pictures/madonna.png
-I./test-pictures/bad-sketch.png -I./test-pictures/man_with_eagle/
You can then type ++z++, hit ++tab++ again, and it will autofill to zebra.jpg
.
More text completion features (such as autocompleting seeds) are on their way.