* Initial Localization Implementation
* Fix Initial Spinner
* Language Picker Dropdown
* RU Localization Update
Co-Authored-By: Artur <83028930+netsvetaev@users.noreply.github.com>
* Fixed localization breaking themes
* useUpdateTranslation Hook
To force trigger translations for data objects
* Localize Tab Data
* Localize Prompt Input & Current Image Buttons
* Localize Gallery & Bug FIxes
Fix a bug where the delete image from the context menu wasn't working. Removed tooltips that were broken as they don't work in context menu.
* Fix localization breaking in production
* Add Toast Localization Support
* Localize Unified Canvas
* Localize WIP Tabs
* Localize Hotkeys
* Localize Settings
* RU Localization Update
Co-Authored-By: Artur <83028930+netsvetaev@users.noreply.github.com>
* Add Support for Italian and Portuguese
* Localize Toasts
* Fix width of language picker items
* Localize Backend Messages
* Disable Debug Messages
* Add Support for French
* Fix missing localization for a string in the SettingsModal
* Disable French
* Styling updates to normalize text and accommodate other langs
* Add Portuguese Brazilian
* Fix Hotkey headers not being localized.
* Fix styling issue on models tag in Settings
* Fix Slider Styling to accommodate different languages
* Fix slider styling in light mode.
* Add German
* Add Italian
* Add Polish
* Update Italian
* Localized Frontend Build
* Updated RU Translations
* Fresh Build with updated RU changes
* Bug Fixes and Loc Updates
* Updated Frontend Build
* Fresh Build
Co-authored-by: Artur <83028930+netsvetaev@users.noreply.github.com>
* add example of using -from_file to read from a script
Addresses #1654, #473, #566, #1008 at least partially.
* fix bug in code example
* improve docs for !fetch and !replay
* enable rendering of images in GH WebUI
also fix indention in some bullet lists
Co-authored-by: mauwii <Mauwii@outlook.de>
When using the inpainting model, the following sequence of events
would cause a predictable crash:
1. Use unified canvas to outcrop a portion of the image.
2. Accept outcropped image and import into img2img
3. Try any img2img operation
This closes#1596.
The crash was:
```
operands could not be broadcast together with shapes (320,512) (512,576)
Traceback (most recent call last):
File "/data/lstein/InvokeAI/backend/invoke_ai_web_server.py", line 1125, in generate_images
self.generate.prompt2image(
File "/data/lstein/InvokeAI/ldm/generate.py", line 492, in prompt2image
results = generator.generate(
File "/data/lstein/InvokeAI/ldm/invoke/generator/base.py", line 98, in generate
image = make_image(x_T)
File "/data/lstein/InvokeAI/ldm/invoke/generator/omnibus.py", line 138, in make_image
return self.sample_to_image(samples)
File "/data/lstein/InvokeAI/ldm/invoke/generator/omnibus.py", line 173, in sample_to_image
corrected_result = super(Img2Img, self).repaste_and_color_correct(gen_result, self.pil_image, self.pil_mask, self.mask_blur_radius)
File "/data/lstein/InvokeAI/ldm/invoke/generator/base.py", line 148, in repaste_and_color_correct
mask_pixels = init_a_pixels * init_mask_pixels > 0
ValueError: operands could not be broadcast together with shapes (320,512) (512,576)
```
This error was caused by the image and its mask not being of identical
size due to the outcropping operation. The ultimate cause of this
error has something to do with different code paths being followed in
the `inpaint` vs the `omnibus` modules.
Since omnibus will be obsoleted by diffusers, I have chosen just to
work around the problem rather than track it down to its source. The
only ill effect is that color correction will not be applied to the
first image created by `img2img` after applying the outcrop and
immediately importing into the img2img canvas. Since the inpainting
model has less of a color drift problem than the standard model, this
is unlikely to be problematic.
* defer patchmatch loading
Because of the way that patchmatch was loaded early at import time, it
was impossible to turn off the attempted loading with --no-patchmatch.
In addition, the patchmatch loading messages appear early on during
initialization, interfering with ability to print out the version
cleanly when --version provided to invoke script.
This commit creates a thin wrapper class for patch_match that is only
loaded when needed, solving both problems.
* create a singleton patchmatch object for use in inpainting
This creates a thin wrapper to patchmatch which loads the module
on demand, respecting the global "trypatchmatch" option.
* address 2d round of issues in PR 2039 comments
* Patchmatch->PatchMatch and misc cleanup
* Correct asset link
Minor documentation fix to correct linked asset.
* fix switched graphics
also:
- add blanks before/after figure tag
(makes the screenshot also appear in github)
- use a table in inpainting example to have the pics side by side
Co-authored-by: mauwii <Mauwii@outlook.de>
* add --version to invoke.py arguments
This commit allows invoke.py to print out its name and version
number when given the --version argument. I had to move some
status messages around in order to make the output clean.
There is still an early message about initializing patchmatch
that interferes with a clean print of the version, and in fact the
--no-patchmatch argument is not doing anything. This will be the
subject of a subsequent PR.
* export APP_ID and APP_VERSION
Needed to support the web backend.
* (config) avoid failure when huggingface token is not set
it is not required for model download, and we are handling the
saving of the token during huggingface authentication phase elsewhere.
* (config) safely print to non-tty terminals where width can not be determined
* remove build-essentials after opencv is built
also remo unecesarry python3-opencv dependencie (its already in venv)
* use branch name as tag
* leave pip and setuptools on the preinstalled vers.
* Rename Argument from WORKDIR to APPDIR
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
* remove redundant code line
install.bat was copying the requirements file into the install folder
twice, causing an error message on the second try. This fixes the
issue.
* add further improvements to installer
- Windows version will unzip to have requirements.txt already in
the right location, to prevent problems when users try to run
the .bat script from within a mounted read-only zip file manager.
- Do not assume that "pip" is on the path in either the .bat or shell
versions of the update script.
* set workflow PR triggers to filter PR-types
- `review_requested`
- `ready_for_review`
* fail tests if draft pr
* add more types to test pr triggers
* remove unneeded condition
* readd condition
* leave PR-types default, only verify PRs to main
and fail for draft-PRs
* set types to cancel when converted to draft
* (config) handle huggingface token more gracefully
* (docs) document HuggingFace token requirement for Concepts
* (cli) deprecate the --(no)-interactive CLI flag
It was previously only used to skip the SD weights download, and therefore
the prompt for Huggingface token (the "interactive" part).
Now that we don't need a Huggingface token
to download the SD weights at all, we can replace this flag with
"--skip-sd-weights", to clearly describe its purpose
The `--(no)-interactive` flag still functions the same, but shows a deprecation message
* (cli) fix emergency_model_reconfigure argument parsing
* (config) fix installation issues on systems with non-UTF8 locale
Co-authored-by: Matthias Wild <40327258+mauwii@users.noreply.github.com>
Before making a concept download request to HuggingFace, the concepts
library module now checks the concept name against a downloaded list
of all the concepts currently known to HuggingFace. If the requested
concept is not on the list, then no download request is made.
* add an argument that lets user specify folders to scan for weights
This PR adds a `--weight_folders` argument to invoke.py. Using
argparse, it adds a "weight_folders" attribute to the Args object, and
can be used like this:
```
'''test.py'''
from ldm.invoke.args import Args
args = Args().parse_args()
for folder in args.weight_folders:
print(folder)
```
Example output:
```
python test.py --weight_folders /tmp/weights /home/fred/invokeai/weights "./my folder with spaces/weight files"
/tmp/weights
/home/fred/invokeai/weights
./my folder with spaces/weight files
```
* change --weight_folders to --weight_dirs
* Auto-format frontend
* Update lint-frontend GA workflow node and checkout
* Fix linter error in ThemeChanger
* Add a `on: pull_request` to lint-frontend workflow
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
* update build scripts and dockerignore
updates to build and run script:
- read repository name
- include flavor in container name
- read arch via arch command
- use latest tag instead of arch
- don't bindmount `$HOME/.huggingface`
- make sure HUGGINGFACE_TOKEN is set
updates to .dockerignore
- include environment-and-requirements
- exclude binary_installer
- exclude docker-build
- exclude docs
* disable push and pr triggers of cloud image
also disable pushing.
This was decided since:
- it is not multiarch useable
- the default image is already cloud aproved
* integrate patchmatch in container
* pin verisons of recently introduced dependencies
* remove now unecesarry part from build.sh
move huggingface token to run script, so it can download missing models
* move GPU_FLAGS to run script
since not needed at build time
* update env.sh
- read REPOSITORY_NAME from env if available
- add comment to explain the intension of this file
- remove unecesarry exports
* get rid of repository_name_lc
* capitalize variables
* update INSTALL_DOCKER with new variables
* add comments pointing to the docs
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
* Add Embedding Parsing
* Add Embedding Parsing
* Return token_dim in embedding_info
* fixes to handle other variants
1. Handle the case of a .bin file being mislabeled .pt (seen in the
wild at https://cyberes.github.io/stable-diffusion-textual-inversion-models/)
2. Handle the "broken" .pt files reported by https://github.com/invoke-ai/InvokeAI/issues/1829
3. When token name is not available, use the basename of the pt or bin file rather than the
whole path.
fixes#1829
* remove whitespace
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
1. Added a big fat warning to the Windows installer to tell user
to install Visual C++ redistributable.
2. Added a bit fat warning to the automated installer doc to
tell user the same thing.
3. Reordered entries on the table-of-contents sidebar for installation
to prioritize the most important docs.
4. Moved older installation documentation into deprecated folder.
5. Moved developer-specific installation documentation into the
developers folder.
* Correct timestep for img2img initial noise addition
* apply fix to inpaint and txt2img2img as well
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
- The invoke.py script now checks that the root (runtime) directory contains
the expected config/models.yaml file and if it doesn't exits with a helpful
error message about how to set the proper root.
- Formerly the script would fail with a "bad model" message and try to redownload
its models, which is not helpful in the case that the root is missing or
damaged.