Squashed commit of the following: commit 9a1fe8e7fbbd81d9e9e47c4fda6bde6f66fba30c Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 17:07:40 2022 +0000 swap in release URLs for installers commit ff56f5251ba8502833cb561317e82b028cd2da5d Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 17:03:21 2022 +0000 fix up bad unicode chars in invoke.py commit ed943bd6c785d968d1e31fbbb814fea8688fc8bb Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 16:05:45 2022 +0000 outcrop improvements, hand-added commit 7ad2355b1da53861bb75312edead8f9db0b0f44d Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 15:14:33 2022 +0000 documentation fixes commit 66c920fc197d9206be9e0e2d1eb2a1cb86362887 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 16:49:25 2022 -0500 Revert "Resize hires as an image" This reverts commit d05b1b3544dfa7b3c071ac05b4f014a52e08fa50. commit 3fc5cb09f8bc03ea96e67a3e49fb087019d2f9d5 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 12 12:43:17 2022 +0000 fix incorrect link in install commit 1345ec77ab58f70e1bf5a0f587ca40aba4e906b7 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 commit b116715490f390a59e5bee1022a6a758aee0918d 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 commit fa3670270e7aae6bfd8d47fb7bdd32b707310c23 Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 12:42:03 2022 +0100 small update to dockers huggingface section commit c304250ef663b3e202b4da8332365288589d94c7 Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 12:19:27 2022 +0100 fix format and Link in INSTALL_INVOKE.md commit 802ce5dde5ca68f24aa4609cdba428044e0c7fa1 Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 11 11:17:49 2022 +0100 small fixex to format and a link in INSTALL_MANUAL commit 311ee320ecac892cb4a1bcd012374fa051b1d011 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 07:23:35 2022 +0000 ignore installer intermediate files commit e9df17b374df58a44d3ae3ba33cbdc58794bcf5d Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 07:19:25 2022 +0000 fix backslash-related syntax error commit 061fb4ef00482bdd4fba635aeaeff4ca7510190d 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 commit 52be0d2396de2de02030855c92e3367008b50377 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 06:49:45 2022 +0000 add WindowsLongFileName batfile to source installer commit 4095acd10ebae05a8cb14cc2faf7c79936d9e6a9 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 commit 201eb22d7650b00f55249c2646fa4f47ac3e0ec2 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 commit 17ab98220034dfbb798a9a0460bc2837f0c1e2cb Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 03:56:54 2022 +0000 installers download branch HEAD not tag commit a04965b0e9e9d1170cf284af9acbd1186d681255 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Fri Nov 11 03:48:21 2022 +0000 improve messaging during installation process commit 0b529f0c574dd91fb9593e924ebc41c8c219b6ce 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. commit 6f9f84834557eb3c48562dc5d0ace51ca9e9cca2 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. commit 918c1589ef30595668899f4259ece6a4ad605c69 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 20:16:47 2022 +0000 fix #1402 commit 116415b3fcec8415f8e6de9b23c0bbd0dbc6845b 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 commit b4b6eabaac94896e38123be331c44d1b63065b0d Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 16:49:25 2022 -0500 Revert "Log strength with hires" This reverts commit 82d4904c07670d514e9a541de7c9ecd8489eeae2. commit 4ef1f4a854717c953f9192454d0adabef32af36c Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 20:01:49 2022 +0000 remove temporary directory from repo commit 510fc4ebaa5f9dc0e77b47cf04e0c265423e0a44 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 19:59:03 2022 +0000 remove -e from clipseg load in installer commit a20914434bb3609cf1d883cabf048d4cc25f881a 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 commit 0d134195fda5c69fce5a95d6da90248eba8d226d Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 18:39:29 2022 +0000 update repo URL to point to rc commit 649d8c8573896fdb5a73453b69ee4b54cf4d6241 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 18:13:28 2022 +0000 integrate tildebyte installer commit a358d370a05ea985a9e26fa9c1101d9c14fdb3ab Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 17:48:14 2022 +0000 add @tildebyte compiled pip installer commit 94a9033c4f6214e604be149a3de6d7c747af7f3a Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 14:52:00 2022 +0000 ignore source installer zip files commit 18a947c503c83c95cd83f27424696219ff3c4c95 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 commit a23b03189526a49da8ddae90ce71b0e902784d29 Author: Mike DiGiovanni <vinblau@gmail.com> Date: Wed Nov 9 16:44:59 2022 -0500 Fixes typos in README.md commit 23af68c7d79d947f1bd3441c91bb44d655238f01 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 07:02:27 2022 -0500 downgrade win installs to basicsr==1.4.1 commit e258beeb51f3e645b9ea60e52d69d18722221cc5 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 commit 7460c069b880b10c84b55f2e0c0998e350d6cf12 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. commit e481bfac615e0c798ceb5e59e8fbe3038f85b431 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 commit 5040747c6700c9b949e3f3e1d2c3f21daffcec6c Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 10 11:21:43 2022 +0000 fix windows install instructions & bat file commit d1ab65a43122f73c20533d5815590ec10bc05eca Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 07:18:59 2022 +0100 update WEBUIHOTKEYS.md commit af4ee7feb8a7d2528bf4e2b3f7deee7a7c4c3dec Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 06:33:49 2022 +0100 update INSTALL_DOCKER.md commit 764fb29aded8114984d05932c4266ea24614b932 Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 06:30:15 2022 +0100 fix formatting in INSTALL.md commit 1014d3ba44aa4cd4cfdc6e3650c24a0dc9568a6e Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 10 06:29:14 2022 +0100 fix build.sh invokeai_conda_env_file default value commit 40a48aca88e337e9f4475f80a03b7d6d4751d09b 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 commit 92abc00f16a34a586dd16d3c64408f00e23fcb53 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 commit a5719aabf89c8c5f29c6044e2882ccdcd0c6916b 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 commit 44a18511fa7accfec6a20345774583a1ce745b02 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 20:51:06 2022 +0000 update paths in container build workflow commit b850dbadafba052310327ca759d96f49a9d25d03 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 20:16:57 2022 +0000 finished reorganization of install docs commit 9ef8b944d53afb1fed94c418b2fd936d2d743797 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. commit efc5a9848803b4250d726bc1913b9fd5a33fad75 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 18:20:03 2022 +0000 manual installation documentation tested on Linux commit 1417c87928e13b0ed21bf1c5604f8636d3b50a8d Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 17:37:06 2022 +0000 change name of requirements.txt to avoid confusion commit 2dd6fc2b93ff7bbb4038568a3b28d36a8fafaeb8 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 commit 22213612a08bbece46eafd48994f985b097cb141 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 17:25:59 2022 +0000 directory cleanup; working on install docs commit 71ee44a827898759fd457f774c0b2ac7a1ef6519 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 02:07:13 2022 +0000 prevent crash when switching to an invalid model commit b17ca0a5e731c142101bbdbf34d121df949e86d7 Author: damian0815 <null@damianstewart.com> Date: Tue Nov 8 14:28:38 2022 +0100 don't suppress exceptions when doing cross-attention control commit 71bbfe4a1a5b70f90e5f41c94df50fb104dbdd79 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 commit 5702271991e126c026aa1ff41c44f8ad37b26e3a 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. commit 10781e7dc4f4551583a110d14f2a1f60393112b8 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 9 01:59:45 2022 +0000 refactoring requirements commit 099d1157c579c7b9fea20945e8504cc15745c598 Author: mauwii <Mauwii@outlook.de> Date: Wed Nov 9 00:16:18 2022 +0100 better way to make sure if conda is useable commit ab825bf7ee5f0b82d2273da1cda64fc9266a978e Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 22:05:33 2022 +0000 add back --prefer-binaries to requirements commit 10cfeb5ada7bcfc9f3aff3716ab8ea4961a8b528 Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:27:19 2022 +0100 add quotes to set and use `$environment_file` commit e97515d0453583e013674b4dd1f3739c7de402cc Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:24:21 2022 +0100 set environment file for conda update commit 0f04bc5789c712bf7c7319b1d93064914993f4ec Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:21:25 2022 +0100 use conda env update commit 3f74aabecd08ed25fac158463ae12b775bd1fca2 Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 8 22:20:44 2022 +0100 use command instead of hash commit b1a99a51b7ca23c4b895855bd7b4c82dbdc431e4 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 14:44:44 2022 -0500 remove --global git config from 1-click installers commit 8004f8a6d99f6ff75e00c170da40f1dec93a8914 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 commit 1f0c5b4cf196716c21f2db74f92c8750ad8f889d. commit ff8ff2212afb1e1c2dce4f6a61f29e2bc8302eb5 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 commit 8e5363cd83bff0e6be0f002c644283955f7fcbfd 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 commit 1450779146e89510d12b8c90eb316d9861c3375e Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 8 12:56:36 2022 +0000 update branch for installer to pull against commit 8cd5d95b8a1cb213cce2f949c394c841a09d9cab 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. commit abd6407394d55d4f6c064a05f3ac989dd3817c59 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. commit 734dacfbe9d8c86ca943c6541e7b5ff5ef787ff4 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 commit 636620b1d5e2466613d0dcc2a604522be12fa3a4 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 commit 1fe41146f0975bbc9d552208473490a9ccb9fc56 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 commit 2ad6ef355a9b9c4b17bae71edea2346c2e8708c5 Merge: 865502ee 8b47c829 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sun Nov 6 18:08:36 2022 +0000 update discord link commit 865502ee4f681de4516d231370ae603983354d8f Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 18:00:16 2022 +0100 update changelog commit c7984f3299c5c8f56a70d80907d527af458674af Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 17:07:27 2022 +0100 update TROUBLESHOOT.md commit 7f150ed83302ba875c3e0c0f39d8ac0f32c6e362 Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 16:56:58 2022 +0100 remove `:`from headlines in CONTRIBUTORS.md commit badf4e256ce6e3201df1a9a87a7072b36b18d699 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 commit e64c60bbb38fc1620e08ce52bf28bd17003c7ef6 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 commit 178061854300632b024810e65922b54b64d95939 Author: mauwii <Mauwii@outlook.de> Date: Sun Nov 6 16:15:06 2022 +0100 update INSTALLING_MODELS.md commit f91fd276242a0c92b301e99d02982d30f7b712c3 Author: Kyle Schouviller <kyle0654@hotmail.com> Date: Sat Nov 5 14:47:53 2022 -0700 Bug fix for inpaint size commit 09e41e8f769457b9ffd56901aae13991cdc6eeb8 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 commit 6eeb2107b300fc27cfe6134b43e5570c246b8e96 Author: mauwii <Mauwii@outlook.de> Date: Sat Nov 5 21:01:14 2022 +0100 remove create-caches.yml since not used anywhere commit 17053ad8b7efecb21a9b4eb32695089f683f72e3 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Sat Nov 5 16:01:55 2022 -0400 fix duplicated argument introduced by conflict resolution commit fefb4dc1f88bc6551a39602a2bc79b278cd83c59 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 commit d05b1b3544dfa7b3c071ac05b4f014a52e08fa50 Author: Craig <cwallen@users.noreply.github.com> Date: Sat Oct 29 20:40:30 2022 -0400 Resize hires as an image commit 82d4904c07670d514e9a541de7c9ecd8489eeae2 Author: Craig <cwallen@users.noreply.github.com> Date: Sat Oct 29 20:37:40 2022 -0400 Log strength with hires commit 1cdcf33cfa39e90f9660fabf8f5936dcfb6c3aa5 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 commit 6616fa835ac4318bf53419f2b54b88c962559578 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. commit 7b9a4564b11f4181b9b3c06ecda2a4a25fd1849e 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 commit fcdefa0620761472718afa14b2955a5d0603cfcc Author: Matthias Wild <40327258+mauwii@users.noreply.github.com> Date: Fri Nov 4 20:47:31 2022 +0100 Hotifx docs (#1376) (#1377) commit ef8b3ce639954259a95a38f44fa5329687bee781 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. commit 36870a8f53217d4b733e9bb8b119190b5e36da59 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 commit b70420951d5b70937c0c07e4f8a552a01c3008bc Author: damian0815 <null@damianstewart.com> Date: Thu Nov 3 12:39:45 2022 +0100 fix parsing error doing eg `forest ().swap(in winter)` commit 1f0c5b4cf196716c21f2db74f92c8750ad8f889d Author: wfng92 <43742196+wfng92@users.noreply.github.com> Date: Thu Nov 3 17:13:52 2022 +0800 Use array slicing to calc ddim timesteps commit 8648da811190fc8bcf237d83aff38cf605851300 Author: mauwii <Mauwii@outlook.de> Date: Fri Nov 4 00:06:19 2022 +0100 update environment-linux-aarch64 to use python 3.9 commit 45b459356399f8cfb7e9af571c1643fab04218fe Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 3 22:31:46 2022 +0100 update environment-linux-aarch64.yml - move getpass_asterisk to pip commit 41b04316cf5118ea9518dc77934d135a489dd684 Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 3 20:40:08 2022 +0100 rename job, remove debug branch from triggers commit e97c6db2a3c0157a8a5ab74cd28ebee480a2d078 Author: mauwii <Mauwii@outlook.de> Date: Thu Nov 3 20:34:01 2022 +0100 include build matrix to build x86_64 and aarch64 commit 896820a349292b0e14bbc32f0c557fe8a6b45395 Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 05:01:15 2022 +0100 disable caching commit 06c8f468bff7e1dfecc1a1990164be1005b114a7 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 commit 61920e2701c4a9cea94c03ab933c4482458215b7 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 commit f34ba7ca70f1c417ee97e8b0c57abff57614d78f Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 02:30:24 2022 +0100 remove unecesarry mkdir command again commit c30ef0895dbf0565345ac6ccb136d98a174470a6 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 commit aa3a774f73d5004571ea42fea14cd2b525fffb1c Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 01:48:59 2022 +0100 update build-container.yml to use cachev3 commit 2c30555b844293764123baa4137fcf952d40a4e7 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 commit 743f60577364d43237eeb46aefd523371c36e56b Author: mauwii <Mauwii@outlook.de> Date: Tue Nov 1 01:21:15 2022 +0100 update build.sh to download sd-v1.5 model commit 519c661abbae83aa62b3ee536635c39192890441 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 🤓 commit 22c956c75f4797ddc2dffa944e3ea84b4eb3477c 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 commit 13696adc3a3a2b169e68048a5b511660d0430fae Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Thu Nov 3 10:20:10 2022 -0400 speculative change to solve windows esrgan issues commit 0196571a12992eb8207d36e022721fe3ad2cfd19 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 2 22:39:35 2022 -0400 remove merge markers from preload_models.py commit 9666f466ab1c710dfda2e59be9e8a26fcd7e8718 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Wed Nov 2 18:29:34 2022 -0400 use refined model by default commit 240e5486c89552ef480c3443a63283fb86a493c3 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 commit 8164b6b9cff077e4131384195af65e30a40733a7 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 commit 4fc82d554ff573780c0af562a6bc9586aa56012d Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:17:28 2022 +1300 [WebUI] Final 2.1 Release Build commit 96b34c0f85f6ed52707fe43456d20b81822c7d1d 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 commit dd5a88dceeec53ceb1722a62e3689ae3dd871154 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:17:28 2022 +1300 [WebUI] Final 2.1 Release Build commit 95ed56bf82825a47cfe406fa34eaf4e32c129143 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:16:31 2022 +1300 Updated Current Image Button Styling commit 1ae80f5ab9d00a25e0c3a21e2eccd318c5343401 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 04:07:57 2022 +1300 Readd Hotkey for Dual Display commit 1f0bd3ca6cda4221d1a7a46325f235cd23bd0af9 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 02:07:00 2022 +1100 Adds escape hotkey to close floating panels commit a1971f6830306b3d748f7f36c2243f6dee682f97 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 03:38:15 2022 +1300 Fix Loopback Styling commit c6118e889895ba35a191124ce1beb5d2b719366d 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% commit 7ba958cf7ff4e804a127b71c88666084f81e7340 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 01:10:38 2022 +1100 Restores "initial image" text commit 383905d5d24359aa1824de96ff124a8f8a87e015 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> commit 6173e3e9cabd5e74fb466d55d7bb6a80a77b3fa8 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 00:53:53 2022 +1100 Refactor canvas buttons + more commit 3feb7d8922b0e4c9f944e96b95211003f40d9705 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Thu Nov 3 00:49:23 2022 +1100 Fixes next/prev image buttons commit 1d9edbd0ddd6e10cf120fe0de3db0b56ae374db4 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Thu Nov 3 00:50:44 2022 +1300 Update Icon Button Checkbox Style Styling commit d439abdb89db73e652add9df371234861189d90c Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:37:24 2022 +1100 Makes fast-latents in progress default commit ee47ea0c891a33049bdec12f1c254926f341eff2 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:37:09 2022 +1100 Adds min width to ImageUploader commit 300bb2e6279c1c477131b9e57425db348062f19c Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:28:22 2022 +1100 Fixes current image button rerenders commit ccf8593501d23e00979f7340f8991514e6ca3428 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 21:27:43 2022 +1100 Fixes display progress images select typing commit 0fda612f3ff8ad75932e158b9b29cf64c3f30eb6 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 commit 5afff65b71bb60d067392c120efff1a17adc66af Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 20:33:19 2022 +1100 Fixes progress images select commit 7e55bdefce8920831cac7b9fa857bfbffe9e9d5d 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 commit 620cf84d3dd54b8498e84574f33040a26d4d315f 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 commit cfe567c62ad3fd0cff5e3e579a2250ca5dfa2d53 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 16:14:50 2022 +1100 Fixes: uploaded JPG images not loading commit cefe12f1df72e051f109ed77ce46f18093b3b8bb Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 15:31:18 2022 +1100 Styling changes and settings modal minor refactor commit 1e51c3992853ad4643d8eda2443a3bd0d65f5f90 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 commit 42a02bbb8087cd46a1b5c795b1b41e38c08ba229 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. commit f1ae6dae4c36e74ca8dedf8b57eb8933c059dcf4 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 commit 6195579910a91fb2ab7e1186aa1c1145566c3122 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:52:19 2022 +1100 Restores shift+q bounding box shortcut commit 16c8b23b347792d7811cff66a27d350fe5d0d62c Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:32:07 2022 +1100 Changes Report Bug icon to a bug commit 07ae626b22554b5222a3b71d1ce3974e2c3fb284 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 11:17:16 2022 +1100 Removes unused isReady state commit 8d171bb044f578d4b9cc4911edfa05b20a01d373 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. commit 6e33ca7e9e64fb355430511e28bb08c32c9c68b1 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Wed Nov 2 10:59:01 2022 +1100 Fixes rerenders on ClearBrushHistory commit db46e12f2b8c98dac8895ea4d04242d3754dbec4 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. commit 868e4b2db82fa8556b423111f2f8d565a70ec129 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. commit 2e562742c13988a1fc299c673a97ba4e4a645aaf 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 commit 68e69580091fc1dc1d8b6e03c9e7ef777c7ebf61 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 06:28:34 2022 +1300 Fresh Bundle commit ea6e3a7949f2743711516261cb7e450517d39702 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. commit b2879ca99f88869277c474185ade049914b0bf26 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. commit 4e911566c33989392eb3279049b15331ca98594a Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 03:50:56 2022 +1300 Preventing unnecessary re-renders across the app commit 9bafda6a152778893df143776ae859a3b8b7f192 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 03:02:35 2022 +1300 Fix Inpainting Alerts Styling commit 871a8a5375cae891f22eb853ffd2d22298298b11 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. commit 0eef74bc00d3c0cedc5037c1deeef1d9a5b6d33d 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 commit 423ae3209782f1d8d321b2ed9ed00712b726adf7 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. commit 8282e5d0458ca1bba5565c069093b5389f2228d4 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:57:07 2022 +1100 Builds fresh bundle commit 19305cdbdf6ac74833bd6011bff0ced8e9d36f69 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:51:11 2022 +1100 Styles image uploader commit eb9028ab3069bca9d747aca664ca60ae13ba6df8 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 16:51:03 2022 +1100 Disabled bounding box settings when locked commit 21483f5d0731bce5aa97985e722a64bf0d7cd12c 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. commit 82dcbac28f140aa7bd89d967bcc7fa31cb03a267 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 commit d43bd4625d64a03d90de0458ad5fcacef211a8a6 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 15:10:49 2022 +1100 Fixes hotkeys and settings buttons not working commit ea891324a2086faf8eeeeac7eaf47ae2935322fb Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:04:02 2022 +1100 Changes inpainting controls settings to hover commit 8fd9ea219390493f392e690eadb23c4209a4ecfc Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:03:41 2022 +1100 Adds missing tooltips to site header commit fb026668563b3179805819a1630c654c9ce260d9 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:03:25 2022 +1100 Increases workarea split padding to 1rem commit f6f5c2731b0c37089c5d7382736f973e857df712 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 11:03:10 2022 +1100 Decreases gallery width on inpainting commit b4e3f771e0314e0a18ad5cedc80b28f246fced59 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 commit 99bb9491ac97f1f733accab839ea38cdf4870ba0 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Tue Nov 1 08:35:45 2022 +1300 [WebUI] Loopback Default False commit 0453f211278a533a49fb1aee54dd989b69179c10 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Wed Nov 2 23:23:51 2022 +1300 Fresh Build For WebUI commit 9fc09aa4bda3b3e6139b026f24733a37747d373f Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 09:08:11 2022 +0100 don't log base64 progress images commit 5e87062cf809a08242d3b006b66d3bbb834ddb16 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 commit 3e7a459990407ad1679f38d4027c19d50a9d36e3 Author: spezialspezial <75758219+spezialspezial@users.noreply.github.com> Date: Tue Nov 1 21:37:33 2022 +0100 Update txt2mask.py commit bbf4c03e500bafc8627c2a70f8b3396efeddabb3 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. commit 611a3a975328a7e276c2781214d5e14108708ed7 Author: mauwii <Mauwii@outlook.de> Date: Wed Nov 2 02:23:09 2022 +0100 fix name of caching step commit 1611f0d1815022fe90d33f41c21d670251a75f29 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 commit 08835115e4c5c0ee3587ce07ab769a04d55cb3c5 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 commit 2d84e28d329be282b51a4cbc22f7c200d80c8f0e 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 commit ef17aae8abe03fd87dc6f91b3c6d2fe03375f6c5 Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 00:39:48 2022 +0100 add damian0815 to contributors list commit 0cc39f01a3c67f32873b7888e1e032d33626e269 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 commit 688d7258f185035a5924bee23322b001574da931 Author: damian0815 <null@damianstewart.com> Date: Wed Nov 2 00:33:00 2022 +0100 fix a bug that broke cross attention control index mapping commit 4513320bf161d3efdd99e2aef4f7c37472131373 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 commit 533fd04ef0d1ba9d2cb25d556991b999e7d44aba 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 commit dff5681cf0e24faf67d5eb5903203c4ea39f89bd Author: damian0815 <d@d.com> Date: Tue Nov 1 13:56:03 2022 +0100 shorter strings commit 5a2790a69b11e049d2507bc22eab7812915d867f Author: damian0815 <d@d.com> Date: Tue Nov 1 13:19:20 2022 +0100 convert progress display to a drop-down commit 7c5305ccbaf7926162536aa3a9e51dcdd8574d0d 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 commit 4013e8ad6fa5e5c2a710c607fe7e1d040f353299 Author: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Tue Nov 1 21:54:35 2022 +1100 Fixes b64 image sending and displaying commit d1dfd257f9e1cafd352d9007a56194226b9d6b63 Author: damian <d@d.com> Date: Tue Nov 1 11:40:40 2022 +0100 wip base64 commit 5322d735ee4515d89293b7fb015b2ce048262f68 Author: damian <d@d.com> Date: Tue Nov 1 11:31:42 2022 +0100 update frontend commit cdb107dcda858a8bb64455cc60a196a42345f8f7 Author: damian <d@d.com> Date: Tue Nov 1 11:17:43 2022 +0100 add option to show intermediate latent space commit be1393a41ce7a75ed8de7f648a93c5e5974a50d2 Author: damian <d@d.com> Date: Tue Nov 1 10:16:55 2022 +0100 ensure existing exception handling code also handles new exception class commit e554c2607f00a5e51c03052acb9861ff21ec1c12 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 commit 6215592b12dea3822c727913b771012789a52477 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 commit 349cc25433e1d358c6c61cca4a6c300ecc8ca3d7 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) commit 214d276379387ae0fa2259602ab00884ec1ad03e Author: damian0815 <d@d.com> Date: Tue Nov 1 19:57:55 2022 +0100 be more aggressive at clearing out saved_attn_slice commit ef24d76adc5a192297714707cd6794d4f44bcf67 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 14:34:23 2022 -0400 fix library problems in preload_modules commit ab2b5a691dadb292f7cecf5db94a165db3e3e126 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Nov 1 17:22:48 2022 -0400 fix model_cache memory management issues commit c7de2b2801ad5d6ce52a5f44e88c5705f1dbf524 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 commit e8075658acf675346d35435d0cfb7710becab42a 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 commit 4202dabee1143f597f4c3946420fbfa7b8eccddf Author: mauwii <Mauwii@outlook.de> Date: Mon Oct 31 22:17:21 2022 +0100 fix models example weights for sd-v1.4 commit d67db2bcf1ac26d8bb7c5f8bfd056f2172597780 Author: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com> Date: Tue Nov 1 08:35:45 2022 +1300 [WebUI] Loopback Default False commit 7159ec885faa1117a3506689d547618be1d91808 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 commit b5cf734ba9f1aeaab14075b55cc13ed9a0ae31e2 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 commit f7dc8eafeef991e135b5541c01d0ff740dda9591 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Mon Oct 31 10:47:35 2022 -0400 restore models.yaml to virgin state commit 762ca60a309f70daaf1b9e79b6273f76fd9474b6 Author: Lincoln Stein <lincoln.stein@gmail.com> Date: Tue Oct 4 22:55:10 2022 -0400 Update INPAINTING.md commit e7fb9f342cb5ed0c09e6215026d60d45eef3ebcb 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.