Compare commits

..

538 Commits

Author SHA1 Message Date
Lincoln Stein
971f5c5ab1 Configure the NSFW checker at install time with default on (#1624)
* configure the NSFW checker at install time with default on

1. Changes the --safety_checker argument to --nsfw_checker and
--no-nsfw_checker. The original argument is recognized for backward
compatibility.

2. The configure script asks users whether to enable the checker
(default yes). Also offers users ability to select default sampler and
number of generation steps.

3.Enables the pasting of the caution icon on blurred images when
InvokeAI is installed into the package directory.

4. Adds documentation for the NSFW checker, including caveats about
accuracy, memory requirements, and intermediate image dispaly.

* use better fitting icon

* NSFW defaults false for testing

* set default back to nsfw active

Co-authored-by: Matthias Wild <40327258+mauwii@users.noreply.github.com>
Co-authored-by: mauwii <Mauwii@outlook.de>
2022-11-30 14:50:57 -05:00
Lincoln Stein
22133392b2 disable NSFW checker loading during the CI tests (#1641)
* disable NSFW checker loading during the CI tests

The NSFW filter apparently causes invoke.py to crash during CI testing,
possibly due to out of memory errors. This workaround disables NSFW
model loading.

* doc change

* fix formatting errors in yml files
2022-11-30 14:11:51 -05:00
psychedelicious
5e81f51f6a Web UI 2.2 bugfixes (#1572)
* Fixes bug preventing multiple images from being generated

* Fixes valid seam strength value range

* Update Delete Alert Text

Indicates to the user that images are not permanently deleted.

* Fixes left/right arrows not working on gallery

* Fixes initial image on load erroneously set to a user uploaded image

Should be a result gallery image.

* Lightbox Fixes

- Lightbox is now a button in the current image buttons
- Lightbox is also now available in the gallery context menu
- Lightbox zoom issues fixed
- Lightbox has a fade in animation.

* Fix image display wrapper in current preview not overflow bounds

* Revert "Fix image display wrapper in current preview not overflow bounds"

This reverts commit 5511c82714dbf1d1999d64e8bc357bafa34ddf37.

* Change Staging Area discard icon from Bin to X

* Expose Snap Threshold and Move Snap Settings to BBox Panel

* Changes img2img strength default to 0.75

* Fixes drawing triggering when mouse enters canvas w/ button down

When we only supported inpainting and no zoom, this was useful. It allowed the cursor to leave the canvas (which was easy to do given the limited canvas dimensions) and without losing the "I am drawing" state. 

With a zoomable canvas this is no longer as useful.

Additionally, we have more popovers and tools (like the color pickers) which result in unexpected brush strokes. This fixes that issue.

* Revert "Expose Snap Threshold and Move Snap Settings to BBox Panel"

We will handle this a bit differently - by allowing the grid origin to be moved. I will dig in at some point.

This reverts commit 33c92ecf4da724c2f17d9d91c7ea31a43a2f6deb.

* Adds Limit Strokes to Box

* Adds fill bounding box button

* Adds erase bounding box button

* Changes Staging area discard icon to match others

* Fixes right click breaking move tool

* Fixes brush preview visibility issue with "darken outside box"

* Fixes history bugs with addFillRect, addEraseRect, and other actions

* Adds missing `key`

* Fixes postprocessing being applied to canvas generations

* Fixes bbox not getting scaled in various situations

* Fixes staging area show image toggle not resetting on accept/discard

* Locks down canvas while generating/staging

* Fixes move tool breaking when canvas loses focus during move/transform

* Hides cursor when restrict strokes is on and mouse outside bbox

* Lints

* Builds fresh bundle

* Fix overlapping hotkey for Fill Bounding Box

* Build Fresh Bundle

* Fixes bug with mask and bbox overlay

* Builds fresh bundle

Co-authored-by: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com>
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2022-11-30 12:08:06 -05:00
Matthias Wild
9fae65ed69 add .editorconfig (#1636) 2022-11-30 08:35:15 -05:00
victorca25
2443e5dc01 add k_dpmpp_2_a and k_dpmpp_2 solvers options (#1389)
* add k_dpmpp_2_a and k_dpmpp_2 solvers options

* update frontend

Co-authored-by: Victor <victorca25@users.noreply.github.com>
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2022-11-30 08:32:52 -05:00
Lincoln Stein
a9aa4e45aa fix error when inpainting using runwayml inpainting model (#1634)
- error was "Omnibus object has no attribute pil_image"
- closes #1596
2022-11-30 08:32:33 -05:00
Kyle Schouviller
9b6b27a156 Fix inpainting with iterations (#1635) 2022-11-30 08:28:20 -05:00
psychedelicious
b68074bb8f Removes symlinked environment.yaml (#1631)
Was unintentionally added in #1621
2022-11-30 00:24:21 -05:00
Andre LaBranche
1f8e56672c Fix installer script for macOS. (#1630)
* refer to the platform as 'osx' instead of 'mac', otherwise the
composed URL to micromamba is wrong.
* move the `-O` option to `tar` to be grouped with the other tar flags
to avoid the `-O` being interpreted as something to unarchive.
2022-11-29 23:49:29 -05:00
Lincoln Stein
f8708f5dbe disable patchmatch in CI actions (#1626)
* disable patchmatch in CI actions

* fix indention

* replace tab with spaces

Co-authored-by: Matthias Wild <40327258+mauwii@users.noreply.github.com>
Co-authored-by: mauwii <Mauwii@outlook.de>
2022-11-30 05:03:54 +01:00
Matthias Wild
103efea641 include a step after config to cat ~/.invokeai (#1629) 2022-11-30 03:34:24 +01:00
Kent Keirsey
b60edab0fa 2.2 Doc Updates (#1589)
* Unified Canvas Docs & Assets

Unified Canvas draft

Advanced Tools Updates

Doc Updates (lstein feedback)

* copy edits to Unified Canvas docs

- consistent capitalisation and feature naming
- more intimate address (replace "the user" with "you") for improved User
  Engagement(tm)
- grammatical massaging and *poesie*

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
Co-authored-by: damian <git@damianstewart.com>
2022-11-29 16:09:54 -05:00
Lincoln Stein
6bc11bfd3f Test installer (#1618)
* test linux install

* try removing http from parsed requirements

* pip install confirmed working on linux

* ready for linux testing

- rebuilt py3.10-linux-x86_64-cuda-reqs.txt to include pypatchmatch
  dependency.
- point install.sh and install.bat to test-installer branch.

* Updates MPS reqs

* detect broken readline history files

* fix download.pytorch.org URL

* Test installer (Win 11) (#1620)

Co-authored-by: Cyrus Chan <cyruswkc@hku.hk>

* Test installer (MacOS 13.0.1 w/ torch==1.12.0) (#1621)

* Test installer (Win 11)

* Test installer (MacOS 13.0.1 w/ torch==1.12.0)

Co-authored-by: Cyrus Chan <cyruswkc@hku.hk>

* change sourceball to development for testing

* Test installer (MacOS 13.0.1 w/ torch==1.12.1 & torchvision==1.13.1) (#1622)

* Test installer (Win 11)

* Test installer (MacOS 13.0.1 w/ torch==1.12.0)

* Test installer (MacOS 13.0.1 w/ torch==1.12.1 & torchvision==1.13.1)

Co-authored-by: Cyrus Chan <cyruswkc@hku.hk>

Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
Co-authored-by: Cyrus Chan <82143712+cyruschan360@users.noreply.github.com>
Co-authored-by: Cyrus Chan <cyruswkc@hku.hk>
2022-11-29 15:05:43 -05:00
Matthias Wild
5897e511f1 Debloat-docker (#1612)
* debloat Dockerfile
- less options more but more userfriendly
- better Entrypoint to simulate CLI usage
- without command the container still starts the web-host

* debloat build.sh

* better syntax in run.sh

* update Docker docs
- fix description of VOLUMENAME
- update run script example to reflect new entrypoint
2022-11-29 10:04:03 -05:00
Matthias Wild
f43b767b87 update index.md (#1609)
- comment out non existing link
- fix indention
- add seperator between feature categories
2022-11-29 10:02:55 -05:00
psychedelicious
61cc41aa3f Fixes for #1604 (#1605)
* Converts ESRGAN image input to RGB

- Also adds typing for image input.
- Partially resolves #1604

* ensure there are unmasked pixels before color matching

Co-authored-by: Kyle Schouviller <kyle0654@hotmail.com>
2022-11-29 09:34:38 -05:00
Lincoln Stein
40c3ab0181 revert to older version of list_models() (#1611)
This restores the correct behavior of list_models() and quenches
the bug of list_models() returning a single model entry named "name".

I have not investigated what was wrong with the new version, but I
think it may have to do with changes to the behavior in dict.update()
2022-11-29 08:54:39 -05:00
Damian Stewart
8999a5564b make concepts library work with Web UI (#1608)
## The concepts library now works with the Web UI

This PR makes it possible to include a Hugging Face concepts library
<style-or-subject-trigger> in the WebUI prompts. The metadata seems to
be correctly handled.
2022-11-29 12:20:05 +01:00
Lincoln Stein
8423be539b tweak setup and environment files for linux & pypatchmatch (#1580)
* tweak setup and environment files for linux & pypatchmatch

- Downgrade python requirements to 3.9 because 3.10 is not supported
  on Ubuntu 20.04 LTS (widely-used distro)
- Use our github pypatchmatch 0.1.3 in order to install Makefile
  where it needs to be.
- Restored "-e ." as the last install step on pip installs. Hopefully
  this will not trigger the high-CPU hang we've previously experienced.

* keep windows on basicsr 1.4.1

* keep windows on basicsr 1.4.1

* bump pypatchmatch requirement to 0.1.4

- This brings in a version of pypatchmatch that will gracefully
  handle internet connection not available at startup time.
- Also refactors and simplifies the handling of gfpgan's basicsr requirement
  across various platforms.
2022-11-28 20:22:31 -05:00
Lincoln Stein
6cc56043e2 documentation enhancements (#1603)
- Add documentation for the Hugging Face concepts library and TI embedding.

- Fixup index.md to point to each of the feature documentation files,
  including ones that are pending.
2022-11-28 18:48:56 -05:00
Lincoln Stein
62cda009dd make concepts library work with Web UI
This PR makes it possible to include a Hugging Face concepts library
<style-or-subject-trigger> in the WebUI prompt. The metadata seems
to be correctly handled.
2022-11-28 23:44:41 +00:00
Damian Stewart
45e51bac9a Fix #1599 by relaxing the match_trigger regex (#1601)
* Fix #1599 by relaxing the `match_trigger` regex

Also simplify logic and reduce duplication.

* restrict trigger regex again (but not so far)
2022-11-28 17:58:52 -05:00
Lincoln Stein
a514f9b236 add a --no-patchmatch option to disable patchmatch loading (#1598)
This feature was added to prevent the CI Macintosh tests from erroring
out when patchmatch is unable to retrieve its shared library from
github assets.
2022-11-28 16:29:52 -05:00
psychedelicious
90b21db86c Adds psychedelicious to statement of values signature (#1602) 2022-11-28 15:49:04 -05:00
Damian Stewart
bc44ab786c Bug Fix: Model import fixes (#1566)
These bug fixes address issues #1546 and #1547 .
2022-11-28 21:46:27 +01:00
Damian Stewart
281a2e3ecb make the docstring more readable and improve the list_models logic (fixes #1539) (#1594) 2022-11-28 21:20:56 +01:00
Lincoln Stein
84cd96decf set readline root to ROOTDIR for model import 2022-11-28 18:34:42 +00:00
Lincoln Stein
a3121b8137 !model_import autocompletes in ROOTDIR 2022-11-28 17:44:32 +00:00
Matthias Wild
3f6d0fb7da update dockerfile (#1551)
* update dockerfile

* remove not existing file from .dockerignore

* remove bloat and unecesary step
also use --no-cache-dir for pip install
image is now close to 2GB

* make Dockerfile a variable

* set base image to `ubuntu:22.10`

* add build-essential

* link outputs folder for persistence

* update tag variable

* update docs

* fix not customizeable build args, add reqs output
2022-11-28 18:20:25 +01:00
Lincoln Stein
08ef4d62e9 add statement of values (#1584)
* this adds the Statement of Values

Google doc source = https://docs.google.com/document/d/1-PrUKDJcxy8OyNGc8CyiHhv2VgLvjt7LRGlEpbg1nmQ/edit?usp=sharing

* Fix heading

* Update InvokeAI_Statement_of_Values.md

* Update InvokeAI_Statement_of_Values.md

* Update InvokeAI_Statement_of_Values.md

* Update InvokeAI_Statement_of_Values.md

* Update InvokeAI_Statement_of_Values.md

* add keturn and mauwii to the team member list

* Fix punctuation

* this adds the Statement of Values

Google doc source = https://docs.google.com/document/d/1-PrUKDJcxy8OyNGc8CyiHhv2VgLvjt7LRGlEpbg1nmQ/edit?usp=sharing

* add keturn and mauwii to the team member list

* fix formating
- make sub bullets use * (decide to all use - or *)
- indent sub bullets
Sorry, first only looked at the code version and found this only after
looking at the markdown rendered version

* use multiparagraph numbered sections

* Break up Statement Of Values as per comments on #1584

* remove duplicated word, reduce vagueness

it's important not to overstate how many artists we are consulting.

* fix typo (sorry blessedcoolant)

Co-authored-by: mauwii <Mauwii@outlook.de>
Co-authored-by: damian <git@damianstewart.com>
2022-11-28 11:00:43 -05:00
Lincoln Stein
81cb7fd1b7 Merge branch 'development' into model-import-fixes 2022-11-28 09:28:14 -05:00
devops117
7c658c6d76 model_cache.py: fix list_models
Signed-off-by: devops117 <55235206+devops117@users.noreply.github.com>
2022-11-28 19:20:38 +05:30
DevOps117
495104e941 Merge branch 'invoke-ai:development' into development 2022-11-28 19:14:31 +05:30
Lincoln Stein
1e1f871ee1 Embedding merging (#1526)
* add whole <style token> to vocab for concept library embeddings

* add ability to load multiple concept .bin files

* make --log_tokenization respect custom tokens

* start working on concept downloading system

* preliminary support for dynamic loading and merging of multiple embedded models

- The embedding_manager is now enhanced with ldm.invoke.concepts_lib,
  which handles dynamic downloading and caching of embedded models from
  the Hugging Face concepts library (https://huggingface.co/sd-concepts-library)

- Downloading of a embedded model is triggered by the presence of one or more
  <concept> tags in the prompt.

- Once the embedded model is downloaded, its trigger phrase will be loaded
  into the embedding manager and the prompt's <concept> tag will be replaced
  with the <trigger_phrase>

- The downloaded model stays on disk for fast loading later.

- The CLI autocomplete will complete partial <concept> tags for you. Type a
  '<' and hit tab to get all ~700 concepts.

BUGS AND LIMITATIONS:

- MODEL NAME VS TRIGGER PHRASE

  You must use the name of the concept embed model from the SD
  library, and not the trigger phrase itself. Usually these are the
  same, but not always. For example, the model named "hoi4-leaders"
  corresponds to the trigger "<HOI4-Leader>"

  One reason for this design choice is that there is no apparent
  constraint on the uniqueness of the trigger phrases and one trigger
  phrase may map onto multiple models. So we use the model name
  instead.

  The second reason is that there is no way I know of to search
  Hugging Face for models with certain trigger phrases. So we'd have
  to download all 700 models to index the phrases.

  The problem this presents is that this may confuse users, who will
  want to reuse prompts from distributions that use the trigger phrase
  directly. Usually this will work, but not always.

- WON'T WORK ON A FIREWALLED SYSTEM

  If the host running IAI has no internet connection, it can't
  download the concept libraries. I will add a script that allows
  users to preload a list of concept models.

- BUG IN PROMPT REPLACEMENT WHEN MODEL NOT FOUND

  There's a small bug that occurs when the user provides an invalid
  model name. The <concept> gets replaced with <None> in the prompt.

* fix loading .pt embeddings; allow multi-vector embeddings; warn on dupes

* simplify replacement logic and remove cuda assumption

* download list of concepts from hugging face

* remove misleading customization of '*' placeholder

the existing code as-is did not do anything; unclear what it was supposed to do.

the obvious alternative -- setting using 'placeholder_strings' instead of
'placeholder_tokens' to match model.params.personalization_config.params.placeholder_strings --
caused a crash. i think this is because the passed string also needed to be handed over
on init of the PersonalizedBase as the 'placeholder_token' argument.
this is weird config dict magic and i don't want to touch it. put a
breakpoint in personalzied.py line 116 (top of PersonalizedBase.__init__) if
you want to have a crack at it yourself.

* address all the issues raised by damian0815 in review of PR #1526

* actually resize the token_embeddings

* multiple improvements to the concept loader based on code reviews

1. Activated the --embedding_directory option (alias --embedding_path)
   to load a single embedding or an entire directory of embeddings at
   startup time.

2. Can turn off automatic loading of embeddings using --no-embeddings.

3. Embedding checkpoints are scanned with the pickle scanner.

4. More informative error messages when a concept can't be loaded due
   either to a 404 not found error or a network error.

* autocomplete terms end with ">" now

* fix startup error and network unreachable

1. If the .invokeai file does not contain the --root and --outdir options,
  invoke.py will now fix it.

2. Catch and handle network problems when downloading hugging face textual
   inversion concepts.

* fix misformatted error string

Co-authored-by: Damian Stewart <d@damianstewart.com>
2022-11-28 02:40:24 -05:00
Lincoln Stein
30c5a0b067 Interactive configuration (#1517)
* Update scripts/configure_invokeai.py

prevent crash if output exists

Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>

* implement changes requested by reviews

* default to correct root and output directory on Windows systems

- Previously the script was relying on the readline buffer editing
  feature to set up the correct default. But this feature doesn't
  exist on windows.

- This commit detects when user typed return with an empty directory
  value and replaces with the default directory.

* improved readability of directory choices

* Update scripts/configure_invokeai.py

Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>

* better error reporting at startup

- If user tries to run the script outside of the repo or runtime directory,
  a more informative message will appear explaining the problem.

Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
2022-11-27 21:29:56 -05:00
Kyle Schouviller
9f02595ef2 Fixes outpainting with resized inpaint size 2022-11-27 22:24:15 +13:00
Matthias Wild
b101334b4e Merge branch 'development' into model-import-fixes 2022-11-27 08:26:05 +01:00
Matthias Wild
0608d259dd move requirements-mkdocs.txt to docs folder (#1575)
* move requirements-mkdocs.txt to docs folder

* update copyright
2022-11-27 07:59:56 +01:00
Matthias Wild
12eff0dd42 Update-requirements and test-invoke-pip workflow (#1574)
* update requirements files

* update test-invoke-pip workflow
2022-11-27 03:43:04 +01:00
Matthias Wild
939164eaa7 Merge branch 'development' into model-import-fixes 2022-11-27 01:30:43 +01:00
mauwii
f2d2a49977 disable checks for python 3.9 2022-11-26 17:43:09 -05:00
mauwii
37535f5897 fix output path for Archive results 2022-11-26 17:43:09 -05:00
mauwii
e5646dee27 also set fail-fast to it's default (true)
in this way the whole action fails if one job fails
this should unblock the runners!!!
2022-11-26 17:43:09 -05:00
mauwii
d5011efaa1 fix model cache path 2022-11-26 17:43:09 -05:00
Lincoln Stein
74487a95a9 Merge branch 'development' into model-import-fixes 2022-11-26 16:54:21 -05:00
Lincoln Stein
a50f4da9d1 install frontend/dist into package directory (#1554)
- When invokeai installed with `pip install .`, the frontend will be in
the venv directory under invokeai.
- When invokeai installed with `pip install -e .`, the frontend will be
in the source repo. -invoke_ai_web_sever.py will look in both places
using relative
  addressing.
2022-11-26 16:21:00 -05:00
Lincoln Stein
4ae1df5b5e Merge branch 'development' into backend-can-find-frontend 2022-11-26 14:01:23 -05:00
Lincoln Stein
7f3ba16cd2 Revert "make the docstring more readable and improve the list_models logic"
This reverts commit 248068fe5d.
2022-11-26 13:38:20 -05:00
Lincoln Stein
7a0438586c Merge branch 'development' into model-import-fixes 2022-11-26 10:18:49 -05:00
Lincoln Stein
9adaf8f8ad prevent "!switch state gets confused if model switching fails"
- If !switch were to fail on a particular model, then generate got
  confused and wouldn't try again until you switch to a different working
  model and back again.

- This commit fixes and closes #1547
2022-11-26 15:15:10 +00:00
Lincoln Stein
a341297b0c stop crash on !import_models call on model inside rootdir
- addresses bug report #1546
2022-11-26 14:58:22 +00:00
psychedelicious
9e0504abe5 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
3131edb255 Fixes canvas dimensions not setting on first load 2022-11-27 03:35:49 +13:00
blessedcoolant
b0697bc4ff Fix desktop mode being broken with new versions of flaskwebgui 2022-11-27 03:35:49 +13:00
psychedelicious
1e9121c8d6 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
916e795c26 Adds gallery drag and drop to img2img/canvas 2022-11-27 03:35:49 +13:00
psychedelicious
3aebe754fa Fixes unnecessary canvas scaling 2022-11-27 03:35:49 +13:00
psychedelicious
3f0cfaac4a Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
a3a0a87f55 Fixes canvas failing to scale on first run 2022-11-27 03:35:49 +13:00
psychedelicious
f5e8ffe7b4 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
404d81f6fd Fixes shouldShowStagingImage not resetting to true on commit 2022-11-27 03:35:49 +13:00
psychedelicious
c7864f8a6d Fixes bug with clear mask and history 2022-11-27 03:35:49 +13:00
psychedelicious
9568ac66e0 Improves scaled bbox display logic 2022-11-27 03:35:49 +13:00
psychedelicious
d4280bbaaa Adds auto-scaling for inpaint size 2022-11-27 03:35:49 +13:00
psychedelicious
46a5fd67ed Adds inpaint size (as scale bounding box) to UI 2022-11-27 03:35:49 +13:00
psychedelicious
b93336dbf9 Bug fix for inpaint size 2022-11-27 03:35:49 +13:00
psychedelicious
9fe9301762 Add inpaint size options to inpaint at a larger size than the actual inpaint image, then scale back down for recombination 2022-11-27 03:35:49 +13:00
psychedelicious
7f1b95fbda Removes force_outpaint param 2022-11-27 03:35:49 +13:00
psychedelicious
52c79fa097 Lints 2022-11-27 03:35:49 +13:00
psychedelicious
62ac725ba9 Adds brush color alpha hotkey 2022-11-27 03:35:49 +13:00
psychedelicious
db188cd3c3 Color picker does not overwrite user-selected alpha 2022-11-27 03:35:49 +13:00
psychedelicious
e67ef4aec2 Committing color picker color changes tool to brush 2022-11-27 03:35:49 +13:00
psychedelicious
473869b8ed Fixes mask brush preview color 2022-11-27 03:35:49 +13:00
psychedelicious
c8c1b3e217 Simplifies Accordion
Prep for adding reset buttons for each section
2022-11-27 03:35:49 +13:00
psychedelicious
fcd3ef1f98 Fixes invoke hotkey not working in input fields 2022-11-27 03:35:49 +13:00
psychedelicious
a7f11a8c09 Fixes variation params not set correctly when recalled 2022-11-27 03:35:49 +13:00
psychedelicious
318426b67a Changes color picker preview to circles 2022-11-27 03:35:49 +13:00
psychedelicious
6f3e99efc3 Un-floors cursor position 2022-11-27 03:35:49 +13:00
psychedelicious
7515bcfe78 Fixes iterations being disabled when seed random & variations are off 2022-11-27 03:35:49 +13:00
psychedelicious
8d0ef022eb Lints & builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
9f1c1cf2e6 Adds color picker 2022-11-27 03:35:49 +13:00
psychedelicious
d44112c209 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
b31f90c0bd Fixes postprocessing not being disabled when clicking use all 2022-11-27 03:35:49 +13:00
psychedelicious
344cdf0ade Renames "Threshold" > "Noise Threshold" 2022-11-27 03:35:49 +13:00
psychedelicious
500bde5b0e Fixes missing threshold and perlin parameters in metadata viewer 2022-11-27 03:35:49 +13:00
psychedelicious
df03927ec6 Fixes img2img attempting inpaint when init image has transparency 2022-11-27 03:35:49 +13:00
psychedelicious
419f670f86 Updates npm dependencies 2022-11-27 03:35:49 +13:00
psychedelicious
30dc9220c1 Fixes crash on cancel with intermediates enabled, fixes #1416 2022-11-27 03:35:49 +13:00
psychedelicious
941d427302 Adds single-column gallery layout 2022-11-27 03:35:49 +13:00
blessedcoolant
876ae7f70f Move full screen hotkey to floating to prevent tab rerenders 2022-11-27 03:35:49 +13:00
psychedelicious
a86049f822 Adds Training icon 2022-11-27 03:35:49 +13:00
blessedcoolant
ec3d25d778 Add Training WIP Tab 2022-11-27 03:35:49 +13:00
blessedcoolant
69a4a6fec5 Simplify fullscreen hotkey selector 2022-11-27 03:35:49 +13:00
blessedcoolant
7b76b79887 Floating panel re-render fix 2022-11-27 03:35:49 +13:00
blessedcoolant
3ea732365c Fix rerenders on model select 2022-11-27 03:35:49 +13:00
psychedelicious
dc5d696ed2 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
0060551490 Fixes missing postprocessed image metadata before refresh 2022-11-27 03:35:49 +13:00
blessedcoolant
2fcc7d9b36 Isolate Cursor Pos debug text on canvas to prevent rerenders 2022-11-27 03:35:49 +13:00
blessedcoolant
78217f5ef9 Fix unnecessary gallery re-renders 2022-11-27 03:35:49 +13:00
blessedcoolant
c6112e3295 memoize outpainting options 2022-11-27 03:35:49 +13:00
blessedcoolant
8b08af714d Tab Styling Fixes 2022-11-27 03:35:49 +13:00
psychedelicious
723dcf4236 Adds infill method 2022-11-27 03:35:49 +13:00
blessedcoolant
ddfd82559f Styling Updates 2022-11-27 03:35:49 +13:00
blessedcoolant
8488575e5c Minor styling fixes to new options panel layout 2022-11-27 03:35:49 +13:00
psychedelicious
7e4e51b224 Removes Advanced checkbox, cleans up options panel for unified canvas 2022-11-27 03:35:49 +13:00
blessedcoolant
f3b7316683 Fix to gallery resizing 2022-11-27 03:35:49 +13:00
blessedcoolant
25b19b9ab8 Add loopback to just img2img. Remove from settings. 2022-11-27 03:35:49 +13:00
blessedcoolant
9a6a970771 Fix gallery not resizing correctly on open and close 2022-11-27 03:35:49 +13:00
blessedcoolant
93de78b6e8 Highlight mask icon when on mask layer 2022-11-27 03:35:49 +13:00
Kent Keirsey
00da042dab Update feature tooltip text 2022-11-27 03:35:49 +13:00
blessedcoolant
6445e802f6 Fix Lightbox images of different res not centering 2022-11-27 03:35:49 +13:00
psychedelicious
7caf20aad3 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
11969c2e2e Fixes gallery width on lightbox, fixes gallery button expansion 2022-11-27 03:35:49 +13:00
psychedelicious
e821b97cfc Linting 2022-11-27 03:35:49 +13:00
psychedelicious
ef1dbdb33d Adds outpainting specific options 2022-11-27 03:35:49 +13:00
psychedelicious
0cdb7bb0cd Fixes metadata viewer not showing metadata after refresh
Also adds Dream-style prompt to metadata
2022-11-27 03:35:49 +13:00
psychedelicious
306ed44e19 Moves Loopback to app settings 2022-11-27 03:35:49 +13:00
psychedelicious
b0810e1ed7 Adds IAIAlertDialog component 2022-11-27 03:35:49 +13:00
psychedelicious
089c85a017 Fixes bug when postprocessing image with no metadata 2022-11-27 03:35:49 +13:00
blessedcoolant
a1d80fd106 Cap gallery size on canvas tab so it doesnt overflow 2022-11-27 03:35:49 +13:00
psychedelicious
d9c7a28c90 Improves gallery resize behaviour 2022-11-27 03:35:49 +13:00
blessedcoolant
c787a3a801 Styling fixes 2022-11-27 03:35:49 +13:00
blessedcoolant
1f772e4bdc Fix input checkbox styling being incorrect on light theme 2022-11-27 03:35:49 +13:00
blessedcoolant
cb7458db77 Fix styling on alert modals 2022-11-27 03:35:49 +13:00
psychedelicious
ef482b4d3e Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
3e22160462 Updates mask options popover behavior 2022-11-27 03:35:49 +13:00
psychedelicious
6a3d725dbb Adds clear temp folder 2022-11-27 03:35:49 +13:00
psychedelicious
8a16c8a196 Crop to Bounding Box > Save Box Region Only 2022-11-27 03:35:49 +13:00
psychedelicious
90eaac5134 Masking option tweaks 2022-11-27 03:35:49 +13:00
psychedelicious
896c2532c7 Adds option to crop to bounding box on save 2022-11-27 03:35:49 +13:00
blessedcoolant
f68702520b Update Layer hotkey display to UI 2022-11-27 03:35:49 +13:00
blessedcoolant
286e46aaa3 Fix gallery maxwidth on unified canvas 2022-11-27 03:35:49 +13:00
blessedcoolant
088fd97418 Rearrange some canvas toolbar icons
Put brush stuff together and canvas movement stuff together
2022-11-27 03:35:49 +13:00
psychedelicious
e1e978b423 Adds Save to Gallery button to staging toolbar 2022-11-27 03:35:49 +13:00
psychedelicious
d27d92325d Fixes bug where discarding staged images results in loss of history 2022-11-27 03:35:49 +13:00
psychedelicious
80f6f9a931 First pass on Canvas options panel 2022-11-27 03:35:49 +13:00
psychedelicious
7dff8ccd31 Styles buttons for clearing canvas history and mask 2022-11-27 03:35:49 +13:00
psychedelicious
3f6b275bec Image gallery resize/style tweaks 2022-11-27 03:35:49 +13:00
psychedelicious
5ed6a31b97 Removes reasonsWhyNotReady
The popover doesn't play well with the button being disabled, and I don't think adds any value.
2022-11-27 03:35:49 +13:00
psychedelicious
b72b61b790 Styling updates 2022-11-27 03:35:49 +13:00
psychedelicious
b81231823e Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
c7c6940e1a Fixes repo root .gitignore ignoring frontend things 2022-11-27 03:35:49 +13:00
psychedelicious
6c33d1356d Removes unused imports 2022-11-27 03:35:49 +13:00
psychedelicious
f08c78a043 Minor bugfixes
- When doing long-running canvas image exporting actions, display indeterminate progress bar
- Fix staging area image outline not displaying after committing/discarding results
2022-11-27 03:35:49 +13:00
psychedelicious
b6dd5b664c Fixes bug causing gallery to close on context menu open 2022-11-27 03:35:49 +13:00
psychedelicious
76e7e82f5e Removes stray console.log() 2022-11-27 03:35:49 +13:00
psychedelicious
d4376ed240 Adds hotkey to reset canvas interaction state
If the canvas' interaction state (e.g. isMovingBoundingBox, isDrawing, etc) get stuck somehow, user can press Escape to reset the state.
2022-11-27 03:35:49 +13:00
psychedelicious
9d34213b4c Gracefully handles corrupted images; fixes #1486
- App does not crash if corrupted image loaded
- Error is displayed in the UI console and CLI output if an image cannot be loaded
2022-11-27 03:35:49 +13:00
psychedelicious
b908f2b4bc Improves metadata handling, fixes #1450
- Removes model list from metadata
- Adds generation's specific model to metadata
- Displays full metadata in JSON viewer
2022-11-27 03:35:49 +13:00
psychedelicious
9418324030 Cleans up IAICanvasStatusText 2022-11-27 03:35:49 +13:00
psychedelicious
0f6856b719 Fixes canvas toolbar upload button 2022-11-27 03:35:49 +13:00
psychedelicious
83d8e69219 Reworks canvas toolbar 2022-11-27 03:35:49 +13:00
psychedelicious
7f999e9dfc Fixes another similar index error, simplifies logic 2022-11-27 03:35:49 +13:00
blessedcoolant
0c3ae232af WIP - Lightbox Fixes
Still need to fix the images not being centered on load when the image res changes
2022-11-27 03:35:49 +13:00
blessedcoolant
9950790f4c Fix index error on going past last image in Gallery 2022-11-27 03:35:49 +13:00
psychedelicious
b50a1eb63f Disables canvas image saving functions when processing 2022-11-27 03:35:49 +13:00
blessedcoolant
d55b1e169c Fix Lightbox Issues 2022-11-27 03:35:49 +13:00
psychedelicious
1071a12777 Thumbnail size = 256px 2022-11-27 03:35:49 +13:00
psychedelicious
d987d0a336 Saves thumbnails to separate thumbnails directory 2022-11-27 03:35:49 +13:00
psychedelicious
50a67a7172 Implements thumbnails for gallery
- Thumbnails are saved whenever an image is saved, and when gallery requests images from server
- Thumbnails saved at original image aspect ratio with width of 128px as WEBP
- If the thumbnail property of an image is unavailable for whatever reason, the image's full size URL is used instead
2022-11-27 03:35:49 +13:00
blessedcoolant
a3308c853d Fix canvas resizing when both options and gallery are unpinned 2022-11-27 03:35:49 +13:00
blessedcoolant
cde395e02f Hotkey Cleanup
- Viewer is now Z
- Canvas Move tool is V - sync with PS
- Removed some unused hotkeys
2022-11-27 03:35:49 +13:00
psychedelicious
e7f670a5b6 Fixes stage position changing on zoom 2022-11-27 03:35:49 +13:00
blessedcoolant
917c576ddb Fix missing key on ThemeChanger map 2022-11-27 03:35:49 +13:00
psychedelicious
dfc0c587b1 Adds theme changer popover 2022-11-27 03:35:49 +13:00
psychedelicious
548bcaceb2 Adds model drop-down to site header 2022-11-27 03:35:49 +13:00
psychedelicious
5fd43fca13 Fixes paste image to upload 2022-11-27 03:35:49 +13:00
psychedelicious
37a356d377 Improves canvas status text and adds option to toggle debug info 2022-11-27 03:35:49 +13:00
psychedelicious
cccbfb12aa Removes stale code 2022-11-27 03:35:49 +13:00
psychedelicious
d018b2d7a7 Fixes intermediate images being tiny in txt2img/img2img 2022-11-27 03:35:49 +13:00
psychedelicious
e358adecdd Fix metadata viewer image url length when viewing intermediate 2022-11-27 03:35:49 +13:00
psychedelicious
cdc5f66592 Fixes Use All Parameters 2022-11-27 03:35:49 +13:00
psychedelicious
b8cebf29f2 Adds staging area hotkeys, disables gallery left/right when staging 2022-11-27 03:35:49 +13:00
psychedelicious
68aebad7ad Fixes staging area outline 2022-11-27 03:35:49 +13:00
psychedelicious
ae4a44de3e Fixes Canvas Auto Save to Gallery 2022-11-27 03:35:49 +13:00
psychedelicious
2ab868314f Reorganises app file structure 2022-11-27 03:35:49 +13:00
psychedelicious
bc46c46835 Refactors upload-related async thunks
- Now standard thunks instead of RTK createAsyncThunk()
- Adds toasts for all canvas upload-related actions
2022-11-27 03:35:49 +13:00
psychedelicious
d82a21cfb2 Integrates #1487 - touch events
Need to add:
- Pinch zoom
- Touch-specific handling (some things aren't quite right)
2022-11-27 03:35:49 +13:00
javl
87439feeb2 Add arguments to use SSL to webserver 2022-11-27 03:35:49 +13:00
blessedcoolant
e5951ad098 Revert "Fix theme changer not displaying current theme on page refresh"
This reverts commit 903edfb803e743500242589ff093a8a8a0912726.
2022-11-27 03:35:49 +13:00
blessedcoolant
4f51680307 Staging Area delete button is now red
So it doesnt feel blended into to the rest of them.
2022-11-27 03:35:49 +13:00
blessedcoolant
d0ceabd372 Fix staging area display toggle not working 2022-11-27 03:35:49 +13:00
blessedcoolant
2bda3d6d2f Unify Brush and Eraser Sizes 2022-11-27 03:35:49 +13:00
blessedcoolant
a96af7a15d Fix tab count in hotkeys panel 2022-11-27 03:35:49 +13:00
blessedcoolant
93192b90f4 Fix theme changer not displaying current theme on page refresh 2022-11-27 03:35:49 +13:00
blessedcoolant
024acf42af Update Hotkey Info
Add missing tooltip hotkeys and update the hotkeys modal to reflect the new hotkeys for the Unified Canvas.
2022-11-27 03:35:49 +13:00
psychedelicious
04cb2d39cb Adds useToastWatcher hook
- Dispatch an `addToast` action with standard Chakra toast options object to add a toast to the toastQueue
- The hook is called in App.tsx and just useEffect's w/ toastQueue as dependency to create the toasts
- So now you can add toasts anywhere you have access to `dispatch`, which includes middleware and thunks
- Adds first usage of this for the save image buttons in canvas
2022-11-27 03:35:49 +13:00
psychedelicious
c69573e65d Disables canvas actions which cannot be done during processing 2022-11-27 03:35:49 +13:00
psychedelicious
84f702b6d0 Resets bounding box coords/dims when no image present 2022-11-27 03:35:49 +13:00
psychedelicious
bb70c32ad5 Improves behaviour when setting init canvas image/reset view 2022-11-27 03:35:49 +13:00
psychedelicious
425a1713ab Fixes possible hang on MaskCompositer 2022-11-27 03:35:49 +13:00
psychedelicious
70e67c45dd Fixes canvas showing spinner on first load
Also adds good default canvas scale and positioning when no image is on it
2022-11-27 03:35:49 +13:00
psychedelicious
07ca0876ec Updates hotkeys 2022-11-27 03:35:49 +13:00
psychedelicious
aa96a457b6 Adds hotkeys and refactors sharing of konva instances
Adds hotkeys to canvas. As part of this change, the access to konva instance objects was refactored:

Previously closure'd refs were used to indirectly get access to the konva instances outside of react components.

Now, a  getter and setter function are used to provide access directly to the konva objects.
2022-11-27 03:35:49 +13:00
psychedelicious
e28599cadb Sets status immediately when clicking Invoke 2022-11-27 03:35:49 +13:00
blessedcoolant
ae6dd219d9 Fix Current Image display background going over image bounds 2022-11-27 03:35:49 +13:00
psychedelicious
19322fc1ec Fixes save to gallery including empty area, adds download and copy image 2022-11-27 03:35:49 +13:00
psychedelicious
635e7da05d Abandons "inpainting" canvas lock 2022-11-27 03:35:49 +13:00
psychedelicious
c0005eb063 Fixes bounding box not being rounded to 64 2022-11-27 03:35:49 +13:00
psychedelicious
74485411a8 Fixes send to buttons 2022-11-27 03:35:49 +13:00
psychedelicious
ed70fc683c Fixes reset canvas view when locked 2022-11-27 03:35:49 +13:00
psychedelicious
425d3bc95d Clips lines drawn while canvas locked
When drawing with the locked canvas, if a brush stroke gets too close to the edge of the canvas and its stroke would extend past the edge of the canvas, the edge of that stroke will be seen after unlocking the canvas.

This could cause a problem if you unlock the canvas and now have a bunch of strokes just outside the init image area, which are far back in undo history and you cannot easily erase.

With this change, lines drawn while the canvas is locked get clipped to the initial image bbox, fixing this issue.

Additionally, the merge and save to gallery functions have been updated to respect the initial image bbox so they function how you'd expect.
2022-11-27 03:35:49 +13:00
psychedelicious
3994c28b77 Fixes 2px layout shift on toggle canvas lock 2022-11-27 03:35:49 +13:00
psychedelicious
0100a63b59 Stops unnecessary canvas rescales on gallery state change 2022-11-27 03:35:49 +13:00
psychedelicious
432dc704a6 Organises features/canvas 2022-11-27 03:35:49 +13:00
psychedelicious
1d540219fa Fixes bounding box ending up offscreen 2022-11-27 03:35:49 +13:00
psychedelicious
827f516baf Organises features/canvas 2022-11-27 03:35:49 +13:00
psychedelicious
48ad0c289c Rebases on dev, updates new env files w/ patchmatch 2022-11-27 03:35:49 +13:00
psychedelicious
223e0529ba Fixes app after removing in/out-painting refs 2022-11-27 03:35:49 +13:00
Kyle Schouviller
98e3bbb3bd Add patchmatch and infill_method parameter to prompt2image (options are 'patchmatch' or 'tile'). 2022-11-27 03:35:49 +13:00
psychedelicious
e3efcc620c Removes all references to split inpainting/outpainting canvas 2022-11-27 03:35:49 +13:00
psychedelicious
15dd1339d2 Initial unification of canvas 2022-11-27 03:35:49 +13:00
psychedelicious
caf8f0ae35 Removes console.log from redux-persist patch 2022-11-27 03:35:49 +13:00
psychedelicious
cfb87bc116 WIP refactor to unified canvas 2022-11-27 03:35:49 +13:00
psychedelicious
c0ad1b3469 Fixes: outpainting temp images show in gallery 2022-11-27 03:35:49 +13:00
psychedelicious
4382cd0b91 Moves image uploading to HTTP
- It all seems to work fine
- A lot of cleanup is still needed
- Logging needs to be added
- May need types to be reviewed
2022-11-27 03:35:49 +13:00
Kyle Schouviller
b049bbc64e Fix iterative outpainting by restoring original images 2022-11-27 03:35:49 +13:00
Kyle Schouviller
34395ff490 Fixes crashes during iterative outpaint. Still doesn't work correctly though. 2022-11-27 03:35:49 +13:00
psychedelicious
1bc1085542 Fixes bbox not resizing in outpainting if partially off screen 2022-11-27 03:35:49 +13:00
psychedelicious
d7884432c9 Fixes inpainting not doing img2img when no mask 2022-11-27 03:35:49 +13:00
psychedelicious
82f6402d04 Hides staging area outline on mouseover prev/next 2022-11-27 03:35:49 +13:00
psychedelicious
0e7b735611 Fixes error on inpainting paste back
`TypeError: 'float' object cannot be interpreted as an integer`
2022-11-27 03:35:49 +13:00
psychedelicious
5304ef504c Fixes wonky canvas layer ordering & compositing 2022-11-27 03:35:49 +13:00
psychedelicious
17b295871f Outpainting tab loads to empty canvas instead of upload 2022-11-27 03:35:49 +13:00
psychedelicious
70dcfa1684 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
5d484273ed Fixes "use all" not setting variationAmount
Now sets to 0 when the image had variations.
2022-11-27 03:35:49 +13:00
psychedelicious
179656d541 Adds staging area 2022-11-27 03:35:49 +13:00
psychedelicious
73099af6ec Fixes disappearing canvas grid lines 2022-11-27 03:35:49 +13:00
blessedcoolant
c223d93b4d Fix gallery width size for Outpainting
Also fixes the canvas resizing failing n fast pushes
2022-11-27 03:35:49 +13:00
psychedelicious
4e34194479 Increases CFG Scale max to 200 2022-11-27 03:35:49 +13:00
blessedcoolant
00e2674076 Add Metadata To Viewer 2022-11-27 03:35:49 +13:00
psychedelicious
0a2e67df1a Hotkeys improvement 2022-11-27 03:35:49 +13:00
psychedelicious
7831468304 Canvas styling 2022-11-27 03:35:49 +13:00
psychedelicious
88d02585e7 Limits history to 256 for each of undo and redo 2022-11-27 03:35:49 +13:00
psychedelicious
f82e82f1bb Debounce > 300ms 2022-11-27 03:35:49 +13:00
psychedelicious
317762861f Fixes invert mask 2022-11-27 03:35:49 +13:00
psychedelicious
3f1360368d Fixes undo/redo 2022-11-27 03:35:49 +13:00
psychedelicious
d5467e7db5 Attempts to fix redux-persist debounce patch 2022-11-27 03:35:49 +13:00
psychedelicious
9284983429 Updates package.json to use redux-persist patches 2022-11-27 03:35:49 +13:00
psychedelicious
bb79c78fe8 Fixes AttributeError: 'dict' object has no attribute 'invert_mask' 2022-11-27 03:35:49 +13:00
psychedelicious
e3735ebb45 Adds debouncing 2022-11-27 03:35:49 +13:00
psychedelicious
eb17dfdeaa Patches redux-persist and redux-deep-persist with debounced persists
Our app changes redux state very, very often. As our undo/redo history grows, the calls to persist state start to take in the 100ms range, due to a the deep cloning of the history. This causes very noticeable performance lag.

The deep cloning is required because we need to blacklist certain items in redux from being persisted (e.g. the app's connection status).

Debouncing the whole process of persistence is a simple and effective solution. Unfortunately, `redux-persist` dropped `debounce` between v4 and v5, replacing it with `throttle`. `throttle`, instead of delaying the expensive action until a period of X ms of inactivity, simply ensures the action is executed at least every X ms. Of course, this does not fix our performance issue. 

The patch is very simple. It adds a `debounce` argument - a number of milliseconds - and debounces `redux-persist`'s `update()` method (provided by `createPersistoid`) by that many ms.

Before this, I also tried writing a custom storage adapter for `redux-persist` to debounce the calls to `localStorage.setItem()`. While this worked and was far less invasive, it doesn't actually address the issue. It turns out `setItem()` is a very fast part of the process.

We use `redux-deep-persist` to simplify the `redux-persist` configuration, which can get complicated when you need to blacklist or whitelist deeply nested state. There is also a patch here for that library because it uses the same types as `redux-persist`.

Unfortunately, the last release of `redux-persist` used a package `flat-stream` which was malicious and has been removed from npm. The latest commits to `redux-persist` (about 1 year ago) do not build; we cannot use the master branch. And between the last release and last commit, the changes have all been breaking.

Patching this last release (about 3 years old at this point) directly is far simpler than attempting to fix the upstream library's master branch or figuring out an alternative to the malicious and now non-existent dependency.
2022-11-27 03:35:49 +13:00
psychedelicious
1114ac97e2 Fixes (?) spacebar issues 2022-11-27 03:35:49 +13:00
psychedelicious
c7ef41af54 Changes "Invert Mask" to "Preserve Masked Areas" 2022-11-27 03:35:49 +13:00
psychedelicious
7075a17091 Implements invert mask 2022-11-27 03:35:49 +13:00
blessedcoolant
7f0fb47cf3 Remove save button from Canvas Controls (cleanup) 2022-11-27 03:35:49 +13:00
blessedcoolant
775f032c56 Mask Brush Preview now always at 0.5 opacity
The new mask is only visible properly at max opacity but at max opacity the brush preview becomes fully opaque blocking the view. So the mask brush preview no remains at 0.5 no matter what the Brush opacity is.
2022-11-27 03:35:49 +13:00
blessedcoolant
5410d42da0 Disable stage info in Inpainting Tab 2022-11-27 03:35:49 +13:00
psychedelicious
e21e901fa2 Fixes inpainting + code cleanup 2022-11-27 03:35:49 +13:00
psychedelicious
00385240e7 Adds mask design file 2022-11-27 03:35:49 +13:00
psychedelicious
0a96d2a888 Fixes mask for FF 2022-11-27 03:35:49 +13:00
psychedelicious
016551e036 Fixes warning about NaN? 2022-11-27 03:35:49 +13:00
psychedelicious
b8bb46042c SVG mask 2022-11-27 03:35:49 +13:00
psychedelicious
b44e9c7752 Changes mask to diagonal line pattern 2022-11-27 03:35:49 +13:00
blessedcoolant
8ed10c732b Revert "Fix Inpainting Canvas Rendering"
This reverts commit 114a74982944fbcd0feb3ce79e81fade4d3da147.
2022-11-27 03:35:49 +13:00
blessedcoolant
82a53782d0 Fix Inpainting Canvas Rendering 2022-11-27 03:35:49 +13:00
psychedelicious
6adebf065f Fixes bad import 2022-11-27 03:35:49 +13:00
psychedelicious
83f369053f Fixes issue with intermediates size
Sorry @lstein !
2022-11-27 03:35:49 +13:00
blessedcoolant
77d3839860 Do not show progress images in the viewer 2022-11-27 03:35:49 +13:00
psychedelicious
c02a0da837 Builds fresh bundle 2022-11-27 03:35:49 +13:00
blessedcoolant
4f4c6bbe33 Fix delete hotkey not working 2022-11-27 03:35:49 +13:00
blessedcoolant
72ea5453ce Fix broken styling on the Clear Mask button 2022-11-27 03:35:49 +13:00
psychedelicious
458081f9c9 Builds fresh bundle 2022-11-27 03:35:49 +13:00
psychedelicious
d1fbe81a60 Pins react-hotkeys-hook to v4.0.2
See: https://github.com/JohannesKlauss/react-hotkeys-hook/issues/835
2022-11-27 03:35:49 +13:00
psychedelicious
6c7191712f Rebases against development 2022-11-27 03:35:49 +13:00
devops117
248068fe5d make the docstring more readable and improve the list_models logic
Signed-off-by: devops117 <55235206+devops117@users.noreply.github.com>
2022-11-26 08:49:41 -05:00
DevOps117
9b281856ee Merge branch 'development' into development 2022-11-26 17:37:57 +05:30
Lincoln Stein
fdf41cc739 Installer final tweaks (#1550)
This is the same as PR #1537 except that it removes a redundant
`scripts` argument from `setup.py` that appeared at some point.

I also had to unpin the github dependencies in `requirements.in` in
order to get conda CI tests to pass. However, dependencies are still
pinned in `requirements-base.txt` and the environment files, and install
itself is working. So I think we are good.
2022-11-25 11:24:30 -05:00
Lincoln Stein
d079445943 install frontend/dist into package directory
- When invokeai installed with `pip install .`, the frontend
  will be in the venv directory under invokeai.
- When invokeai installed with `pip install -e .`, the frontend
  will be in the source repo.
-invoke_ai_web_sever.py will look in both places using relative
  addressing.
2022-11-25 06:42:00 +00:00
DevOps117
a997ab2cf6 Merge branch 'development' into development 2022-11-25 11:06:06 +05:30
Lincoln Stein
e98068a546 unpinned clip, clipseg, gfpgan and k-diffusion
- conflicts with their counterparts in the environment files was
  causing the CI conda-based tests to fail.
- installer seems to work still
2022-11-25 04:49:41 +00:00
Lincoln Stein
b945ae4e01 two more fixups
1. removed redundant `data_files` argument from setup.py
2. upped requirement to Python >= 3.9. This is due to a feature
   used in `argparse` that is only available in 3.9 or higher.
2022-11-25 03:50:52 +00:00
Lincoln Stein
b23c471cf0 make mauwii code owner for docker build (#1549) 2022-11-25 04:46:10 +01:00
Lincoln Stein
964e584bd3 remove redundant scripts arg from setup.py 2022-11-25 03:03:24 +00:00
Lincoln Stein
461358bdde Merge branch 'development' into feat-install-unify-setup-requirements-pip 2022-11-24 21:55:39 -05:00
Matthias Wild
2433cc344a add test-invoke-pip.yml (#1521)
* add test-invoke-pip.yml

* update requirements-base.txt to fix tests

* install requirements-base.txt separate
since it requires to have torch already installed
also restore origin requirements-base.txt after suc. test in my fork

* restore origin requirements
add `basicsr>=1.4.2` to requirements-base.txt
remove second installation step

* re-add previously overseen req in lin-cuda

* fix typo in setup.py - `scripts/preload_models.py`

* use GFBGAN from branch `basicsr-1.4.2`

* remove `basicsr>=1.4.2` from base reqs

* add INVOKEAI_ROOT to env

* disable upgrade of `pip`, `setuptools` and `wheel`

* try to use a venv which should not contain `wheel`

* add relative path to pip command

* use `configure_invokeai.py --no-interactive --yes`

* set grpcio to `<1.51.0`

* revert changes to use venv

* remove `--prefer-binary`

* disable step to create models.yaml
since this will not be used anymore with new `configure_invokeai.py`

* use `pip install --no-binary=":all:"`

* another try to use venv

* try uninstalling wheel before installing reqs

* dont use requirements.txt as filename

* update cache-dependency-path

* add facexlib to requirements-base.txt

* first install requirements-base.txt

* first install `-e .`, then install requirements
I know that this is obviously the wrong order, but still have a feeling

* add facexlib to requirements.in

* remove `-e .` from reqs and install after reqs

* unpin torch and torchvision in requirements.in

* fix model dl path

* fix curl output path

* create directory before downloading model

* set INVOKEAI_ROOT_PATH
https://docs.github.com/en/actions/learn-github-actions/environment-variables#naming-conventions-for-environment-variables

* INVOKEAI_ROOT ${{ env.GITHUB_WORKSPACE }}/invokeai

* fix matrix stable-diffusion-model-dl-path

* fix INVOKEAI_ROOT

* fix INVOKEAI_ROOT

* add --root and --outdir to run-tests step

* create models.yaml from example

* fix scripts variable in setup.py
by removing unused scripts

* fix archive-results path

* fix workflow to reflect latest code changes

* fix copy paste error

* fix job name

* fix matrix.stable-diffusion-model

* restructure matrix

* fix `activate conda env` step

* update the environment yamls
use same 4 git packages as for pip

* rename job in test-invoke-conda

* add tqdm to environment-lin-amd.yml

* fix python commands in test-invoke-conda.yml

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2022-11-25 01:24:24 +01:00
DevOps117
bd2eea1c70 Merge branch 'development' into development 2022-11-24 10:30:48 +05:30
Lincoln Stein
16df759499 fix non-interactive behavior of config_invokeai.py
This corrects behavior of --no-interactive, which was in fact
asking for interaction!

New behavior:

If you pass --no-interactive it will behave exactly as it did before
and completely skip the downloading of SD models.

If you pass --yes it will do almost the same, but download the
recommended models. The combination of the two arguments is the same
as --no-interactive.
2022-11-23 23:07:47 -05:00
Ben Alkov
5a1a36ec29 feat(install); unify setup.py, requirements.in, pip
This allows populating setup.py's 'install_requires' directly from 'requirements.in'

- setup.py:
  - read 'requirements.in' instead of 'requirements.txt'
  - add correct upstream pytorch repo to "dependency_links"
- requirements.in:
  - append "name @" to git packages
  - fix torch repo URL -> 'download.pytorch.org/whl/torch_stable.html'

Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-23 13:34:42 -05:00
devops117
c76badfb08 make the docstring more readable and improve the list_models logic
Signed-off-by: devops117 <55235206+devops117@users.noreply.github.com>
2022-11-23 10:40:27 +05:30
Lincoln Stein
71c4f401b0 Merge branch 'fix-model-load-error-handling' of github.com:/invoke-ai/InvokeAI into fix-model-load-error-handling 2022-11-22 19:15:06 +00:00
Lincoln Stein
c59b9897d9 remove file that shouldn't have been in PR 2022-11-22 19:14:52 +00:00
Lincoln Stein
4cf1c856ed Merge branch 'development' into fix-model-load-error-handling 2022-11-22 14:11:26 -05:00
David Burnett
a78a1020be grpcio 1.51.0 is broken on M1 Macs. limit it to last good version til fixed 2022-11-22 12:05:45 -05:00
Lincoln Stein
90cb7a6442 fix behavior when models.yaml missing entirely 2022-11-22 16:56:38 +00:00
Lincoln Stein
8f5cded86e fix regression in ldm.invoke.model_cache.list_models()
- this was introduced in PR #1525 and not caught during my
  code review
2022-11-22 16:46:26 +00:00
Lincoln Stein
02d02a86b1 gracefully handle broken or missing models at initial load time
- If initial model fails to load, invoke.py will inform the user that
  something is wrong with models.yaml or the models themselves and
  drop user into configure_invokeai.py to repair the problem.

- The model caching system will longer try to reload the current model
  if there is none.
2022-11-22 16:36:11 +00:00
Lincoln Stein
ba9c695463 Merge branch 'development' into fix-model-load-error-reporting 2022-11-22 16:24:00 +00:00
Lincoln Stein
8202f34f38 Merge remote-tracking branch 'origin' into fix-model-load-error-reporting 2022-11-22 16:22:29 +00:00
Lincoln Stein
40a7f47d22 change typehint "a|b" operation to Union[a,b] to run on Python < 3.10
- this incompatibility was introduced by #1525 and missed during
  code review
2022-11-22 11:21:04 -05:00
Lincoln Stein
37bcf9cc47 this small fix adds back the load_models.py script
- fixes broken setup.py in current dev
- it is just an alias for configure_invokeai.py
- preload_models.py will be deprecated, but for now
  it is a second alias
2022-11-22 11:21:04 -05:00
Ben Alkov
0340d9ad53 fix(install): more fixes
- install scripts:
   - allow EN-abling pip cache (use 'use-cache' as an arg to the install script)
   - debug message showing which sourceball we're downloading
   - add 'wheel' to pip update, so we can speed up installs from source (and quiet deprecations)
- install.sh: use absolute path for micromamba
- setup.py:
  - fill 'install_requires' using 'requirements.in'
  - fix 'load_models' script name
Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-22 11:06:50 -05:00
Damian Stewart
0d35a67e9c fix run-breaking typo (#1532) 2022-11-22 14:27:23 +01:00
Damian Stewart
1260e28d94 fix typo 2022-11-22 14:21:15 +01:00
devops117
229f782e3b check the function signatures and add some easy annotations
Signed-off-by: devops117 <55235206+devops117@users.noreply.github.com>
2022-11-22 08:14:58 -05:00
devops117
c15b839dd4 remove additional newline from the textwrap.dedent string
Signed-off-by: devops117 <55235206+devops117@users.noreply.github.com>
2022-11-22 08:14:58 -05:00
devops117
a095214e52 cleanup ldm/invoke/model_cache.py
remove duplicate import: os
ldm.util.ask_user is imported only once now
introduce textwrap and contextlib packages to clean up the code
return, returns None implicitly so it is omitted
a function returns None by default so it is omitted
dict.get returns None by default if the value is not found so it is omitted
type of True is a bool and if the module only returns True then it should not return anything in the first place
added some indentations and line breaks to further improve readability

Signed-off-by: devops117 <55235206+devops117@users.noreply.github.com>
2022-11-22 08:14:58 -05:00
Lincoln Stein
8e81425e89 fix outcropping crash when png has no InvokeAI metadata
- Closes #1461
2022-11-21 16:35:00 -05:00
Damian Stewart
c5cbe8f87d When doing -t/--log_tokenization, also log prompt parser output (#1529)
The log was deleted at some point, this brings it back when user does
`--log_tokenization`/`-t`
2022-11-21 19:37:55 +01:00
Damian Stewart
e0581a2c37 when doing --log_tokenization/-t also log parsed prompt 2022-11-21 19:27:44 +01:00
Lincoln Stein
32f538bf3a fix another place where rename() should be replace() 2022-11-21 08:44:26 -05:00
Lincoln Stein
3c5a14a814 fixes configure_invokeai.py crash on Windows systems
The step in which the new models.yaml file replaces the old one was
crashing on Windows due to the fact that on Windows, the os.rename()
function will refuse to replace an existing file, unlike the behavior
on Linux and Mac. The os.replace() function, which was introduced in
python3, supposedly fixes this.
2022-11-21 08:44:26 -05:00
Lincoln Stein
0661256b61 Merge branch 'interactive-configuration' into development 2022-11-20 23:32:28 +00:00
David Burnett
602e35db65 Fix issues with '.' not being consisent when run using web gui. 2022-11-20 18:22:13 -05:00
mauwii
bc7ece771d instead linking modelfile use custom models.yaml 2022-11-20 18:21:34 -05:00
Lincoln Stein
38bdb440d0 remove several debugging messages
- dangling debug messages in several files, introduced during
  testing of the external root directory
- these need to be removed before they are interpreted as errors by users
2022-11-20 18:20:40 -05:00
Ben Alkov
ce8c2bea2f fix(install): load_models needs to be absolutely last
setup.py: Put in the name of the *product*, not the project

Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-20 12:23:20 -05:00
Ben Alkov
3ac0f11e97 toil(invoke): more meaningful messaging
Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-20 12:23:20 -05:00
Ben Alkov
98fe49cb55 hotfix(unified install): last minute changes missing from PR #1506
'requirements.in':
  - add picklescan
  - finally find a good compromise for torch (==1.12.0) and
    torchvision (==0.13.0) across all platforms
'invoke.sh: hotfix for MacOS - add `export PYTORCH_ENABLE_MPS_FALLBACK=1`

Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-20 12:23:20 -05:00
Damian Stewart
2b7e3abe57 fix(args): fix INITFILE spelling (#1518)
fixes #1516
2022-11-20 01:45:27 +01:00
Kevin Turner
150c4a5d2d fix(args): fix INITFILE spelling 2022-11-19 12:01:02 -08:00
Lincoln Stein
0381a853b5 add interactive configuration to the model loader
- Loader is renamed `configure_invokeai.py`, but `preload_models.py` is retained
  (as a shell) for backward compatibility

- At startup, if no runtime root directory exists and no `.invokeai` startup file is
  present, user will be prompted to select the runtime and outputs directories.

- Also expanded the number of initial models offered to the user to include the
  most "liked" ones from HuggingFace, including the two trinart models, the
  PaperCut model, and the VoxelArt model.

- Created a configuration file for initial models to be offered to the user, at
  configs/INITIAL_MODELS.yaml
2022-11-19 19:20:28 +00:00
Damian Stewart
c79ec204ec Fixed default --embiggen_strength to None to avoid it being printed on every run (#1515) 2022-11-19 13:24:11 +01:00
JPPhoto
8d3b1582a5 Fixed default to None 2022-11-19 11:50:26 +00:00
Lincoln Stein
5fd7d71a7a remove several debugging messages
- dangling debug messages in several files, introduced during
  testing of the external root directory
- these need to be removed before they are interpreted as errors by users
2022-11-18 21:14:28 +00:00
Kevin Coakley
1f0220697b Fix micromamba tar command for macOS
Moved the -O from after the file to after the tar command for compatibility with macOS

Signed-off-by: Kevin Coakley <kcoakley@sdsc.edu>
2022-11-18 15:57:06 -05:00
Lincoln Stein
18ae3949ef fix typo in error message 2022-11-18 20:53:49 +00:00
Lincoln Stein
aa95510444 Merge branch 'development' into create-invokeai-run-directory 2022-11-18 15:27:51 -05:00
Lincoln Stein
f33df25830 address all review comments; needs testing 2022-11-18 15:25:23 -05:00
Lincoln Stein
3a5a8ceba5 Merge branch 'create-invokeai-run-directory' of github.com:/invoke-ai/InvokeAI into create-invokeai-run-directory 2022-11-18 19:35:45 +00:00
Lincoln Stein
a1e5f17d1e realesrgan and facexlib now download models to correct directory
- fix issue in which both realesrgan and facexlib were downloading
  weight files to source directory

- cleaned up status reporting in load_models.py
2022-11-18 19:35:13 +00:00
Lincoln Stein
303431be89 move CLI into its own module 2022-11-18 19:35:10 +00:00
Lincoln Stein
8e9f80cc97 web server runs off runtime directory now 2022-11-18 19:34:28 +00:00
Lincoln Stein
3ad598761c support for wheel building; webserver broken 2022-11-18 19:34:28 +00:00
Damian Stewart
b4eaf8b751 fix (unified installer): various fixes (#1506)
This list makes it look like there's lot going on for a single commit,
but the changes are actually pretty small

- 'install'/'invoke' scripts:
  - use venv's 'activate' script instead of hacking PATH
- 'deactivate' before exiting, so we don't leave a confusing environment
hanging around
- 'setup.py':
- make 'install_requires" an accurate list of our direct dependencies,
as it should be
  - add more info/details for eventual use in pypi
- 'invoke' scripts: "developer console" invocation simplified/better
logging (it's now *much* more obvious from inspection what the
"developer console" actually *is*)
- 'requirements.in':
- move 'clipseg' package out of installer and into requirements where it
should be
- bump/pin 'accelerate' package to 0.14.0 to bypass torch 1.13 SIGKILL
issue on Windows (prep for when we decide to upgrade)
- pin 'torch' as well as 'torchvision', to reduce pip-compile's
confusion
- notebooks: delete unused/deprecated notebook installer

Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-18 16:54:00 +01:00
Lincoln Stein
fa608efa11 move CLI into its own module 2022-11-18 06:48:42 +00:00
Lincoln Stein
e9d319bfde ensure web server works with legacy runtime directory 2022-11-18 06:48:14 +00:00
Lincoln Stein
561721aef7 web server runs off runtime directory now 2022-11-18 06:10:52 +00:00
Lincoln Stein
891c0f21d5 web server now observes --root option 2022-11-18 05:00:02 +00:00
Lincoln Stein
8973ce7d47 support for wheel building; webserver broken 2022-11-18 03:21:07 +00:00
Ben Alkov
51c283ba56 fix(install): various fixes
- 'install'/'invoke' scripts: use venv 'activate' script
- 'setup.py':
  - make  'install_requires" accurate
  - add more details for eventual use in pypi
- 'invoke' scripts: "developer" console invocation simplified/better logging
- requirements:
  - move 'clipseg' package out of installer and into requirements where it should be
  - bump/pin 'accelerate' package to 0.14.0 to bypass torch 1.13 SIGKILL issue on Windows (prep for when we decide to upgrade)
- 'requirements.in': pin torch as well to reduce pip-compile's confusion
- notebooks: delete unused/deprecated notebook installer

Signed-off-by: Ben Alkov <ben.alkov@gmail.com>
2022-11-17 16:35:24 -05:00
Damian Stewart
7d262fc158 Fix macOS install.sh by patching sysconfig (#1488)
On macOS, patch python sysconfig just before creating the venv so that
extensions (greenlet & grpcio) can build.

Ref https://github.com/indygreg/python-build-standalone/issues/103, in
particular the solution from @alecthomas posted here:
https://github.com/indygreg/python-build-standalone/issues/103#issuecomment-1234942425

To use: checkout, cd into `installer`, run `create_installers.sh`, copy
`InvokeAI-mac.zip` into an empty folder outside of your existing
invokeAI install, unzip it and run `install.sh`.
2022-11-17 22:34:23 +01:00
Lincoln Stein
fdb16000ab add module __init__ files for backend 2022-11-17 19:54:28 +00:00
Lincoln Stein
f62cc7db9d add a ~/.invokeai file the first time we load
- If there is not already a `.invokeai` file in the user's home directory
  the first time invoke.py runs, it will create an empty one with comments
  showing how to customize it.
2022-11-17 10:15:05 -05:00
slashtechno
9fa3e28dd4 Fixed Google Colab requirements URL
Signed-off-by: slashtechno <77907286+slashtechno@users.noreply.github.com>
2022-11-17 10:14:43 -05:00
Lincoln Stein
9200b26f21 Merge branch 'development' into create-invokeai-run-directory 2022-11-16 23:10:46 -05:00
blessedcoolant
d998b2f806 Add picklescan to env files 2022-11-16 23:02:35 -05:00
blessedcoolant
ac8a7ff70b Unpin picklescan req and cleanup 2022-11-16 23:02:35 -05:00
blessedcoolant
2d6e0baa87 Add Model Scanning 2022-11-16 23:02:35 -05:00
Lincoln Stein
c212b74990 add code of conduct 2022-11-16 21:40:36 -05:00
JPPhoto
0352979a8b Added documentation about --embiggen_strength 2022-11-16 11:55:45 -05:00
JPPhoto
70bd61d616 Fixed opt.embiggen_strength again 2022-11-16 11:55:45 -05:00
JPPhoto
f2a6985c78 Added --embiggen_strength option 2022-11-16 11:55:45 -05:00
Lincoln Stein
fe5a581313 allow images to be saved into invokeai run directory
- This fixes an issue in which generated images were not being saved
  into the ~/invokeai/outputs directory, but were instead being stored
  to a relative './outputs/img_samples' path as before.

- Note that if you specify a relative directory in the --outdir argument,
  it will now be interpreted as relative to the invokeai run directory.
  You will need to provide an absolute pathname in order to save the
  outputs outside this directory.

- Also found and fixed a minor problem in which commands with syntax
  errors were not being stored to the CLI command history.
2022-11-15 20:33:58 +00:00
Lincoln Stein
2ec9792f50 fix clipseg model loading
- This fixes the clipseg loading code so that it looks in the root directory
  for the model.

- It also adds several __init__.py files needed to allow InvokeAI to be
  installed without the -e (editable) flag. This lets you delete the
  source code directory after installation.
2022-11-15 19:17:14 +00:00
Lincoln Stein
a4204abfce This commit separates the InvokeAI source code from end-user files
- preload_models.py has been renamed load_models.py. I've left a
  shell legacy version with the previous name to avoid breaking any
  code.

- The load_models.py script now takes an optional --root argument,
  which points to an install directory for the models, scripts, config
  files, and the default outputs directory. In the future, the
  embeddings manager directory will also be stored here.

- If no --root is provided, and no init file or environment variable
  is present, load_models.py will install to '.' by default, which is
  the current behavior. (This has *not* been tested thoroughly.)

- The location of the root directory is stored in the file .invokeai
  in the user's home directory ($HOME on Linux/Mac, or HOMEPATH on
  windows). The load_models.py script creates this file if it
  does not already exist.

- invoke.py and load_models.py use the following search path to find
  the install directory:

  1. Contents of the environment variable INVOKEAI_ROOT
  2. The --root=XXXXX option in ~/.invokeai
  3. The --root option passed on the script command line.
  4. As a last gasp, the currently working directory (".")

    Running `python scripts/load_models.py --root ~/invokeai`  will
    create a directory structured like this (shortened for clarity):

    ~/invokeai
    ├── configs
    │   ├── models.yaml
    │   └── stable-diffusion
    │       ├── v1-finetune.yaml
    │       ├── v1-finetune_style.yaml
    │       ├── v1-inference.yaml
    │       ├── v1-inpainting-inference.yaml
    │       └── v1-m1-finetune.yaml
    ├── models
    │   ├── CompVis
    │   ├── bert-base-uncased
    │   ├── clipseg
    │   ├── codeformer
    │   ├── gfpgan
    │   ├── ldm
    │   │   └── stable-diffusion-v1
    │   │       ├── sd-v1-5-inpainting.ckpt
    │   │       └── vae-ft-mse-840000-ema-pruned.ckpt
    │   └── openai
    ├── outputs
    └── scripts
	├── dream.py
	├── images2prompt.py
	├── invoke.py
	├── legacy_api.py
	├── load_models.py
	├── merge_embeddings.py
	├── orig_scripts
	│   ├── download_first_stages.sh
	│   ├── train_searcher.py
	│   └── txt2img.py
	├── preload_models.py
	└── sd-metadata.py

1. You can now run invoke.py anywhere! Just copy it to one of your
   bin directories, or put the ~/invokeai/scripts onto your PATH.

2. git pulls will no longer fight with you over models.yaml

3. It keeps end users out of the source code repo and will create
   a path for us to do installs from invokeai.tar.gz.
2022-11-15 18:39:31 +00:00
Lincoln Stein
274b276133 model paths fixed, codeformer needs attention 2022-11-15 18:39:31 +00:00
damian0815
7707bc7818 patch python sysconfig so that extensions (greenlet & grpcio) can build 2022-11-15 18:41:58 +01:00
David Burnett
4c035ad4ae update test-tube version requirements to match yanl files, partitally fixes pip install build on macOS 2022-11-14 17:34:10 -05:00
Lincoln Stein
e9090bca8f make @mauwii codeowner for the CI workflows 2022-11-14 12:45:15 -05:00
Lincoln Stein
398a9bc0c6 fix incorrect bounding-box calculation in ImageResizer
- Under some circumstances, the image resizer was fitting
  the wrong dimension to the user-provided bounding box
  when an init image provided.
- Closes #1470.
2022-11-14 17:41:02 +00:00
Peter Lin
38b9658c15 adding troubleshooting tips to the newer doc 2022-11-14 15:32:22 +00:00
Lincoln Stein
f04d1bab21 Merge branch 'development' into sync-dev-with-main 2022-11-13 21:51:17 +00:00
Lincoln Stein
c23efb8e2b change installer download repo to main.tar.gz 2022-11-13 21:49:09 +00:00
Lincoln Stein
5604d3c447 documentation hot fixes
- changes pointers to installation instructions from README
- Adds the changelog for the 2.1.3 release
2022-11-13 21:46:54 +00:00
damian0815
206101f59d revert initializer words for embeddings 2022-11-13 15:47:28 -05:00
Lincoln Stein
23348dcd3f sync dev to main 2022-11-13 13:47:26 +00:00
Damian Stewart
9bf6013fdd refactor(cross_attention_control): remove outer CrossAttentionControl class (#1459)
I was working on attention control in #1384, started making a few
changes to improve the typing and make it easier to work with. Then the
whitespace changes touched so many lines it seemed worth separating out
these refactoring operations to this PR so they don't get mixed up with
other functional changes.

It would be helpful to merge this to `development` before continuing
work on attention control in #1384

The github diff isn't good at showing these together since they changed
whitespace on so many lines. It may be easier to review by looking at
the individual commits, and/or toggling the "hide whitespace
differences" option in the view.
2022-11-13 14:20:18 +01:00
blessedcoolant
1d11e06e6f Remove gfpgan_dir
+ Update GFPGAN Model Path Defaults
>  Update them to match the new file heirarchy
2022-11-12 19:24:11 -05:00
Kevin Turner
47e6f94111 refactor(cross_attention_control): type hints and other lint 🚮 2022-11-12 11:25:39 -08:00
Kevin Turner
810fad9e06 refactor(cross_attention_control): re-order enum class for easier reference 2022-11-12 11:05:33 -08:00
Kevin Turner
853c6af623 refactor(cross_attention_control): remove outer CrossAttentionControl class
Python has modules. We don't need to use a class to provide a namespace.
2022-11-12 11:01:10 -08:00
Lincoln Stein
1b6bbfb4db Merge branch 'lstein-outcrop-improvements' of github.com:/invoke-ai/InvokeAI into lstein-outcrop-improvements 2022-11-12 15:41:16 +00:00
Lincoln Stein
67e25624b9 simplify logic around negative seeds 2022-11-12 15:41:01 +00:00
Lincoln Stein
9c218788e2 Merge branch 'development' into lstein-outcrop-improvements 2022-11-12 10:39:57 -05:00
Lincoln Stein
bb084a844b simplify logic around negative seeds 2022-11-12 15:39:03 +00:00
Lincoln Stein
0a88243911 Revert "Outcrop improvements" (#1449)
Reverts invoke-ai/InvokeAI#1414

- missed review comments from @Kyle0654
2022-11-11 15:38:02 -05:00
Lincoln Stein
8a0a90d0f3 Merge branch 'lstein-outcrop-improvements' of github.com:/invoke-ai/InvokeAI into lstein-outcrop-improvements 2022-11-11 20:37:13 +00:00
Lincoln Stein
9141132a5c enhance outcropping with ability to direct contents of new regions
This commit does several things that improve the customizability of the CLI `outcrop` command:

1. When outcropping an image you can now add a `--new_prompt` option, to specify a new prompt to be applied to the outpainted region instead of the prompt used to generate the image.
2. Similarly you can provide a new seed using `--seed` (or `-S`). A seed less than zero will pick one randomly.
3. The metadata written into the outcropped file is now more informative about what was previously stored.
4. This PR also fixes the crash that happened when trying to outcrop an image  that does not contain InvokeAI metadata.

Other changes:

- add error checking suggested by @Kyle0654
- add special case in invoke.py to allow -1 to be passed as seed.
  This now only occurs for postprocessing commands. Previously, -1
  caused previous seed to be used, and this still applies to generate
  operations.
2022-11-11 20:34:21 +00:00
Lincoln Stein
78f7bef1a3 Revert "enable outcropping of random JPG/PNG images"
This reverts commit 48aa6416dc.
2022-11-11 10:30:44 -05:00
Lincoln Stein
1fb7b50be7 Revert "enhance outcropping with ability to direct contents of new regions"
This reverts commit 8aa94d5774.
2022-11-11 10:30:44 -05:00
Kyle Schouviller
b57c81ab38 Remove editable flag from clipseg in requirements 2022-11-11 09:32:07 -05:00
Lincoln Stein
af040e97af prevent two models from being marked default in models.yaml 2022-11-11 09:28:17 -05:00
Kyle Schouviller
8dc7f119e5 Fix performance issue introduced by torch cuda cache clear during generation 2022-11-10 23:01:32 -08:00
Lincoln Stein
4b4111a802 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
2022-11-10 21:54:26 -05:00
Lincoln Stein
832f183320 fix #1402 2022-11-10 21:54:13 -05:00
Lincoln Stein
8aa94d5774 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.
2022-11-10 21:53:52 -05:00
Lincoln Stein
48aa6416dc 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.
2022-11-10 21:53:52 -05:00
Lincoln Stein
47ddda1f64 Revert "Log strength with hires"
This reverts commit 82d4904c07.
2022-11-10 16:50:00 -05:00
Lincoln Stein
c248ae44d4 Revert "Resize hires as an image"
This reverts commit d05b1b3544.
2022-11-10 16:50:00 -05:00
Mike DiGiovanni
9e4545b2fc Fixes typos in README.md 2022-11-10 09:15:29 -05:00
mauwii
8cf3883adc re-change TencentARC/GFPGAN to invoke-ai/GFPGAN 2022-11-09 12:53:36 -05:00
mauwii
e06a6ed4c8 add changes required by @tildebyte 2022-11-09 12:53:36 -05:00
mauwii
12a33f6e2d fix conflict in environment-linux-aarch64.yml 2022-11-09 12:53:36 -05:00
mauwii
6d9638ba31 remove PIP_EXISTS_ACTION from env 2022-11-09 12:53:36 -05:00
mauwii
c54eb00055 update python version 2022-11-09 12:53:36 -05:00
mauwii
72338506ed update environment.yml 2022-11-09 12:53:36 -05:00
mauwii
78c1d07c4b update environment-linux-aarch64.yml 2022-11-09 12:53:36 -05:00
mauwii
143b18af8a update pip dependencies
- remove realesrgan
- add git+https://github.com/invoke-ai/Real-ESRGAN.git
- remove git+https://github.com/CompVis/taming-transformers.git
- add taming-transformers-rom1504
- change TencentARC/GFPGAN to invoke-ai/GFPGAN
2022-11-09 12:53:36 -05:00
mauwii
9d39d6ecb3 add PIP_EXISTS_ACTION=w to test-invoke-conda`s env 2022-11-09 12:53:36 -05:00
mauwii
9686bf0ea8 switch back to getpass_asterisk... ... until preload_models.py is ready 2022-11-09 12:53:36 -05:00
mauwii
7aa7be6b24 use taming-transformers-rom1504, remove -e ...
... to address required changes
2022-11-09 12:53:36 -05:00
mauwii
443c9110f1 remove push triggers, since pr trigger is enough 2022-11-09 12:53:36 -05:00
mauwii
ae0ce82609 add 2 missed versions
unpinned them for testing purpose with linux container, 4got to re-pin
2022-11-09 12:53:36 -05:00
mauwii
f1982cb6d8 update push triggers in test-invoke-conda.yml 2022-11-09 12:53:36 -05:00
mauwii
af62958323 update environment-mac.yml 2022-11-09 12:53:36 -05:00
Lincoln Stein
9342ad8d97 prevent crash when switching to an invalid model 2022-11-09 10:07:15 -05:00
damian0815
5214742d02 don't suppress exceptions when doing cross-attention control 2022-11-09 07:21:21 -05:00
damian0815
178f0c78d8 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
2022-11-09 07:21:21 -05:00
Lincoln Stein
2487040ae3 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.
2022-11-08 17:27:42 +00:00
Lincoln Stein
5606af5083 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.
2022-11-08 15:22:32 +00:00
Lincoln Stein
4b5a96501d load favorite options from ~/.invokeai init file 2022-11-08 13:55:42 +00:00
Lincoln Stein
ededeaed86 Merge branch 'add-invokeai-initfile' into development 2022-11-08 13:41:11 +00:00
Lincoln Stein
636620b1d5 change initfile to ~/.invokeai
- adjust documentation
- also fix 'clipseg_models' to 'clipseg', which seems to be working now
2022-11-08 03:26:16 +00:00
Lincoln Stein
21961f0c32 Revert "Use array slicing to calc ddim timesteps"
This reverts commit 1f0c5b4cf1.
2022-11-07 15:37:53 -05:00
Lincoln Stein
1fe41146f0 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
2022-11-06 22:02:45 -05:00
Lincoln Stein
2ad6ef355a update discord link 2022-11-06 18:08:36 +00:00
mauwii
865502ee4f update changelog 2022-11-06 09:27:59 -08:00
mauwii
c7984f3299 update TROUBLESHOOT.md 2022-11-06 09:27:59 -08:00
mauwii
7f150ed833 remove :from headlines in CONTRIBUTORS.md 2022-11-06 09:27:59 -08:00
mauwii
badf4e256c enable navigation tabs
Since the docs are growing, this way they look cleaner
2022-11-06 09:27:59 -08:00
mauwii
e64c60bbb3 remove preflight checks from assets
seems like somebody executed tests and commited them
2022-11-06 09:27:59 -08:00
mauwii
1780618543 update INSTALLING_MODELS.md 2022-11-06 09:27:59 -08:00
Kyle Schouviller
f91fd27624 Bug fix for inpaint size 2022-11-06 09:25:50 -08:00
Kyle Schouviller
09e41e8f76 Add inpaint size options to inpaint at a larger size than the actual inpaint image, then scale back down for recombination 2022-11-06 09:25:50 -08:00
mauwii
6eeb2107b3 remove create-caches.yml since not used anywhere 2022-11-06 09:21:43 -08:00
Lincoln Stein
17053ad8b7 fix duplicated argument introduced by conflict resolution 2022-11-05 16:01:55 -04:00
Lincoln Stein
fefb4dc1f8 Merge branch 'development' into fix_generate.py 2022-11-05 12:47:35 -07:00
Craig
d05b1b3544 Resize hires as an image 2022-11-05 11:54:23 -07:00
Craig
82d4904c07 Log strength with hires 2022-11-05 11:54:23 -07:00
Lincoln Stein
1cdcf33cfa Merge branch 'main' into development
- this synchronizes recent document fixes by mauwii
2022-11-05 09:57:38 -04:00
Lincoln Stein
6616fa835a 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.
2022-11-05 09:46:29 -04:00
Matthias Wild
7b9a4564b1 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
2022-11-05 09:36:45 -04:00
Matthias Wild
fcdefa0620 Hotifx docs (#1376) (#1377) 2022-11-04 12:47:31 -07:00
Lincoln Stein
ef8b3ce639 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.
2022-11-04 12:08:44 -04:00
Matthias Wild
36870a8f53 Merge branch 'development' into merge-main-into-development 2022-11-04 16:25:00 +01:00
damian0815
b70420951d fix parsing error doing eg forest ().swap(in winter) 2022-11-03 20:15:23 -04:00
wfng92
1f0c5b4cf1 Use array slicing to calc ddim timesteps 2022-11-03 20:11:04 -04:00
mauwii
8648da8111 update environment-linux-aarch64 to use python 3.9 2022-11-03 20:06:26 -04:00
mauwii
45b4593563 update environment-linux-aarch64.yml
- move getpass_asterisk to pip
2022-11-03 20:06:26 -04:00
mauwii
41b04316cf rename job, remove debug branch from triggers 2022-11-03 20:06:26 -04:00
mauwii
e97c6db2a3 include build matrix to build x86_64 and aarch64 2022-11-03 20:06:26 -04:00
mauwii
896820a349 disable caching 2022-11-03 20:06:26 -04:00
mauwii
06c8f468bf disable PR-Validation
since there are no files passed from context this is unecesarry
2022-11-03 20:06:26 -04:00
mauwii
61920e2701 update action to use current branch
also update build-args of dockerfile and build.sh
2022-11-03 20:06:26 -04:00
mauwii
f34ba7ca70 remove unecesarry mkdir command again 2022-11-03 20:06:26 -04:00
mauwii
c30ef0895d remove symlink to GFPGANv1.4
also re-add mkdir to prevent action from failing
2022-11-03 20:06:26 -04:00
mauwii
aa3a774f73 update build-container.yml to use cachev3 2022-11-03 20:06:26 -04:00
mauwii
2c30555b84 update Dockerfile
- create models.yaml from models.yaml.example
- run preload_models.py with --no-interactive
2022-11-03 20:06:26 -04:00
mauwii
743f605773 update build.sh to download sd-v1.5 model 2022-11-03 20:06:26 -04:00
mauwii
519c661abb replace old fashined markdown templates with forms
this will help the readability of issues a lot 🤓
2022-11-03 21:21:43 +01:00
Lincoln Stein
22c956c75f Merge branch 'development' of github.com:invoke-ai/InvokeAI into development 2022-11-03 10:20:21 -04:00
Lincoln Stein
13696adc3a speculative change to solve windows esrgan issues 2022-11-03 10:20:10 -04:00
Lincoln Stein
0196571a12 remove merge markers from preload_models.py 2022-11-02 22:39:35 -04:00
Lincoln Stein
9666f466ab use refined model by default 2022-11-02 18:35:35 -04:00
Lincoln Stein
240e5486c8 Merge branch 'spezialspezial-patch-9' into development 2022-11-02 18:35:00 -04:00
Lincoln Stein
8164b6b9cf Merge branch 'development' of github.com:invoke-ai/InvokeAI into development 2022-11-02 17:06:46 -04:00
blessedcoolant
4fc82d554f [WebUI] Final 2.1 Release Build 2022-11-02 16:46:07 -04:00
damian0815
96b34c0f85 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
2022-11-02 16:46:18 -04:00
blessedcoolant
dd5a88dcee [WebUI] Final 2.1 Release Build 2022-11-02 16:40:47 -04:00
blessedcoolant
95ed56bf82 Updated Current Image Button Styling 2022-11-02 16:40:47 -04:00
blessedcoolant
1ae80f5ab9 Readd Hotkey for Dual Display 2022-11-02 16:40:47 -04:00
psychedelicious
1f0bd3ca6c Adds escape hotkey to close floating panels 2022-11-02 16:40:47 -04:00
blessedcoolant
a1971f6830 Fix Loopback Styling 2022-11-02 16:40:47 -04:00
psychedelicious
c6118e8898 Address feedback
- moves mask clear button
- fixes intermediates
- shrinks inpainting icons by 10%
2022-11-02 16:40:47 -04:00
psychedelicious
7ba958cf7f Restores "initial image" text 2022-11-02 16:40:47 -04:00
blessedcoolant
383905d5d2 Add Save Intermediates Step Count
For accurate mode only.

Co-Authored-By: Richard Macarthy <richardmacarthy@protonmail.com>
2022-11-02 16:40:47 -04:00
psychedelicious
6173e3e9ca Refactor canvas buttons + more 2022-11-02 16:40:47 -04:00
psychedelicious
3feb7d8922 Fixes next/prev image buttons 2022-11-02 16:40:47 -04:00
blessedcoolant
1d9edbd0dd Update Icon Button Checkbox Style Styling 2022-11-02 16:40:47 -04:00
psychedelicious
d439abdb89 Makes fast-latents in progress default 2022-11-02 16:40:47 -04:00
psychedelicious
ee47ea0c89 Adds min width to ImageUploader 2022-11-02 16:40:47 -04:00
psychedelicious
300bb2e627 Fixes current image button rerenders 2022-11-02 16:40:47 -04:00
psychedelicious
ccf8593501 Fixes display progress images select typing 2022-11-02 16:40:47 -04:00
psychedelicious
0fda612f3f Fixes edge case: upload over gets stuck while alt tabbing
- Press esc to close it now
2022-11-02 16:40:47 -04:00
psychedelicious
5afff65b71 Fixes progress images select 2022-11-02 16:40:47 -04:00
psychedelicious
7e55bdefce Only generate 1 iteration when seed fixed & variations disabled 2022-11-02 16:40:47 -04:00
psychedelicious
620cf84d3d Reworks CurrentImageButtons.tsx
- Change all icons to FA iconset for consistency
- Refactors IAIIconButton, IAIButton, IAIPopover to handle ref forwarding
- Redesigns buttons into group
2022-11-02 16:40:47 -04:00
psychedelicious
cfe567c62a Fixes: uploaded JPG images not loading 2022-11-02 16:40:47 -04:00
psychedelicious
cefe12f1df Styling changes and settings modal minor refactor 2022-11-02 16:40:47 -04:00
psychedelicious
1e51c39928 Fixes crash related to old value of progress_latents in state 2022-11-02 16:40:47 -04:00
psychedelicious
42a02bbb80 Adds asCheckbox to IAIIconButton
Rough draft of this. Not happy with the styling but it's clearer than having them look just like buttons.
2022-11-02 16:40:47 -04:00
psychedelicious
f1ae6dae4c Adds alert for bounding box size to status icons 2022-11-02 16:40:47 -04:00
psychedelicious
6195579910 Restores shift+q bounding box shortcut 2022-11-02 16:40:47 -04:00
psychedelicious
16c8b23b34 Changes Report Bug icon to a bug 2022-11-02 16:40:47 -04:00
psychedelicious
07ae626b22 Removes unused isReady state 2022-11-02 16:40:47 -04:00
psychedelicious
8d171bb044 Fixes crash when requesting post-generation upscale/face restoration
- Moves the inpainting paste to before the postprocessing.
2022-11-02 16:40:47 -04:00
psychedelicious
6e33ca7e9e Fixes rerenders on ClearBrushHistory 2022-11-02 16:40:47 -04:00
blessedcoolant
db46e12f2b 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.
2022-11-02 16:40:47 -04:00
blessedcoolant
868e4b2db8 [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.
2022-11-02 16:40:47 -04:00
blessedcoolant
2e562742c1 Fix Bounding Box Settings re-rendering on brush stroke 2022-11-02 16:40:47 -04:00
blessedcoolant
68e6958009 Fresh Bundle 2022-11-02 16:40:47 -04:00
blessedcoolant
ea6e3a7949 [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.
2022-11-02 16:40:47 -04:00
blessedcoolant
b2879ca99f Code Split Inpaint Options
Isolate features to their own components so they dont re-render the other stuff each time.
2022-11-02 16:40:47 -04:00
blessedcoolant
4e911566c3 Preventing unnecessary re-renders across the app 2022-11-02 16:40:47 -04:00
blessedcoolant
9bafda6a15 Fix Inpainting Alerts Styling 2022-11-02 16:40:47 -04:00
psychedelicious
871a8a5375 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.
2022-11-02 16:40:47 -04:00
psychedelicious
0eef74bc00 Address bounding box feedback
- Adds back toggle to hide bounding box
- Box quick toggle = q, normal toggle = shift + q
- Styles canvas alert icons
2022-11-02 16:40:47 -04:00
psychedelicious
423ae32097 Improves bounding box interaction
Added spacebar-hold-to-transform back.
2022-11-02 16:40:47 -04:00
psychedelicious
8282e5d045 Builds fresh bundle 2022-11-02 16:40:47 -04:00
psychedelicious
19305cdbdf Styles image uploader 2022-11-02 16:40:47 -04:00
psychedelicious
eb9028ab30 Disabled bounding box settings when locked 2022-11-02 16:40:47 -04:00
psychedelicious
21483f5d07 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.
2022-11-02 16:40:47 -04:00
psychedelicious
82dcbac28f 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
2022-11-02 16:40:47 -04:00
psychedelicious
d43bd4625d Fixes hotkeys and settings buttons not working 2022-11-02 16:40:47 -04:00
psychedelicious
ea891324a2 Changes inpainting controls settings to hover 2022-11-02 16:40:47 -04:00
psychedelicious
8fd9ea2193 Adds missing tooltips to site header 2022-11-02 16:40:47 -04:00
psychedelicious
fb02666856 Increases workarea split padding to 1rem 2022-11-02 16:40:47 -04:00
psychedelicious
f6f5c2731b Decreases gallery width on inpainting 2022-11-02 16:40:47 -04:00
psychedelicious
b4e3f771e0 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
2022-11-02 16:40:47 -04:00
blessedcoolant
99bb9491ac [WebUI] Loopback Default False 2022-11-02 16:40:47 -04:00
blessedcoolant
0453f21127 Fresh Build For WebUI 2022-11-02 23:26:49 +13:00
damian0815
9fc09aa4bd don't log base64 progress images 2022-11-02 22:32:31 +13:00
spezialspezial
5e87062cf8 Option to directly invert the grayscale heatmap - fix 2022-11-01 22:24:31 -04:00
spezialspezial
3e7a459990 Update txt2mask.py 2022-11-01 22:24:31 -04:00
spezialspezial
bbf4c03e50 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.
2022-11-01 22:24:31 -04:00
mauwii
611a3a9753 fix name of caching step 2022-11-01 22:17:23 -04:00
mauwii
1611f0d181 readd caching of sd-models
- this would remove the necesarrity of the secret availability in PRs
2022-11-01 22:17:23 -04:00
Lincoln Stein
08835115e4 pin pytorch_lightning to 1.7.7, issue #1331 2022-11-01 22:11:44 -04:00
Lincoln Stein
2d84e28d32 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development 2022-11-01 22:11:04 -04:00
damian0815
ef17aae8ab add damian0815 to contributors list 2022-11-02 13:55:52 +13:00
damian0815
0cc39f01a3 report full size for fast latents and update conversion matrix for v1.5 2022-11-02 13:55:29 +13:00
damian0815
688d7258f1 fix a bug that broke cross attention control index mapping 2022-11-02 13:54:54 +13:00
damian0815
4513320bf1 save VRAM by not recombining tensors that have been sliced to save VRAM 2022-11-02 13:54:54 +13:00
Lincoln Stein
533fd04ef0 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development 2022-11-01 17:40:36 -04:00
damian0815
dff5681cf0 shorter strings 2022-11-01 17:39:08 -04:00
damian0815
5a2790a69b convert progress display to a drop-down 2022-11-01 17:39:08 -04:00
damian0815
7c5305ccba do not try to save base64 intermediates in gallery on cancellation 2022-11-01 17:39:08 -04:00
psychedelicious
4013e8ad6f Fixes b64 image sending and displaying 2022-11-01 17:39:08 -04:00
damian
d1dfd257f9 wip base64 2022-11-01 17:39:08 -04:00
damian
5322d735ee update frontend 2022-11-01 17:39:08 -04:00
damian
cdb107dcda add option to show intermediate latent space 2022-11-01 17:39:08 -04:00
damian
be1393a41c ensure existing exception handling code also handles new exception class 2022-11-01 17:37:26 -04:00
Damian at mba
e554c2607f 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
2022-11-01 17:37:26 -04:00
Lincoln Stein
6215592b12 Merge branch 'development' of github.com:invoke-ai/InvokeAI into development 2022-11-01 17:34:55 -04:00
damian0815
349cc25433 fix crash (be a little less aggressive clearing out the attention slice) 2022-11-01 17:34:28 -04:00
damian0815
214d276379 be more aggressive at clearing out saved_attn_slice 2022-11-01 17:34:28 -04:00
Lincoln Stein
ef24d76adc fix library problems in preload_modules 2022-11-01 17:23:27 -04:00
Lincoln Stein
ab2b5a691d fix model_cache memory management issues 2022-11-01 17:23:20 -04:00
mauwii
c7de2b2801 disable checks with sd-V1.4 model...
...to save some resources, since V1.5 is the default now
2022-10-31 21:19:53 -04:00
mauwii
e8075658ac update test-invoke-conda.yml
- fix model dl path for sd-v1-4.ckpt
- copy configs/models.yaml.example to configs/models.yaml
2022-10-31 21:19:53 -04:00
mauwii
4202dabee1 fix models example weights for sd-v1.4 2022-10-31 21:19:53 -04:00
blessedcoolant
d67db2bcf1 [WebUI] Loopback Default False 2022-10-31 21:18:03 -04:00
Lincoln Stein
7159ec885f 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
2022-10-31 11:33:05 -04:00
Lincoln Stein
b5cf734ba9 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
2022-10-31 11:08:19 -04:00
Lincoln Stein
f7dc8eafee restore models.yaml to virgin state 2022-10-31 10:47:35 -04:00
Lincoln Stein
762ca60a30 Update INPAINTING.md 2022-10-04 22:55:10 -04:00
Hideyuki Katsushiro
e7fb9f342c add argument --outdir 2022-10-05 10:08:53 +09:00
2 changed files with 6 additions and 6 deletions

View File

@@ -193,7 +193,7 @@ def mkdir_and_rename(path):
if os.path.exists(path):
new_name = path + '_archived_' + get_timestamp()
print('Path already exists. Rename it to [{:s}]'.format(new_name))
os.replace(path, new_name)
os.rename(path, new_name)
os.makedirs(path)

View File

@@ -74,8 +74,8 @@
"#@title 3. Install dependencies\n",
"import gc\n",
"\n",
"!wget https://raw.githubusercontent.com/invoke-ai/InvokeAI/development/environments-and-requirements/requirements-base.txt\n",
"!wget https://raw.githubusercontent.com/invoke-ai/InvokeAI/development/environments-and-requirements/requirements-win-colab-cuda.txt\n",
"!wget https://raw.githubusercontent.com/invoke-ai/InvokeAI/development/environments-and-requirements/requirements.txt\n",
"!wget https://raw.githubusercontent.com/invoke-ai/InvokeAI/development/environments-and-requirements/requirements-lin-win-colab-CUDA.txt\n",
"!pip install colab-xterm\n",
"!pip install -r requirements-lin-win-colab-CUDA.txt\n",
"!pip install clean-fid torchtext\n",
@@ -262,17 +262,17 @@
},
"gpuClass": "standard",
"kernelspec": {
"display_name": "Python 3.9.12 64-bit",
"display_name": "Python 3.10.4 64-bit",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python",
"version": "3.9.12"
"version": "3.10.4"
},
"vscode": {
"interpreter": {
"hash": "4e870c5c5fe42db7e2c5647ae5af656ff3391bf8c2b729cbf7fa0e16ca8cb5af"
"hash": "3ad933181bd8a04b432d3370b9dc3b0662ad032c4dfaa4e4f1596c548f763858"
}
}
},