Commit Graph

18548 Commits

Author SHA1 Message Date
Alexander Eichhorn
a2e109b3c2 feat(ui): improve hotkey customization UX with interactive controls and validation (#8649)
* feat: remove the ModelFooter in the ModelView and add the Delete Model Button from the Footer into the View

* forget to run pnpm fix

* chore(ui): reorder the model view buttons

* Initial plan

* Add customizable hotkeys infrastructure with UI

Co-authored-by: dunkeroni <3298737+dunkeroni@users.noreply.github.com>

* Fix ESLint issues in HotkeyEditor component

Co-authored-by: dunkeroni <3298737+dunkeroni@users.noreply.github.com>

* Fix knip unused export warning

Co-authored-by: dunkeroni <3298737+dunkeroni@users.noreply.github.com>

* Add tests for hotkeys slice

Co-authored-by: dunkeroni <3298737+dunkeroni@users.noreply.github.com>

* Fix tests to actually call reducer and add documentation

Co-authored-by: dunkeroni <3298737+dunkeroni@users.noreply.github.com>

* docs: add comprehensive hotkeys system documentation

- Created new HOTKEYS.md technical documentation for developers explaining architecture, data flow, and implementation details
- Added user-facing hotkeys.md guide with features overview and usage instructions
- Removed old CUSTOMIZABLE_HOTKEYS.md in favor of new split documentation
- Expanded documentation with detailed sections on:
  - State management and persistence
  - Component architecture and responsibilities
  - Developer integration

* Behavior changed to hotkey press instead of input + checking for allready used hotkeys

---------

Co-authored-by: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dunkeroni <3298737+dunkeroni@users.noreply.github.com>
Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2025-11-16 14:35:37 +00:00
dunkeroni
5642099a40 Feat: SDXL Color Compensation (#8637)
* feat(nodes/UI): add SDXL color compensation option

* adjust value

* Better warnings on wrong VAE base model

* Restrict XL compensation to XL models

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>

* fix: BaseModelType missing import

* (chore): appease the ruff

---------

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2025-11-16 14:32:12 +00:00
gogurtenjoyer
382d85ee23 Fix memory issues when installing models on Windows (#8652)
* Wrap GGUF loader for context managed close()

Wrap gguf.GGUFReader and then use a context manager to load memory-mapped GGUF files, so that they will automatically close properly when no longer needed. Should prevent the 'file in use in another process' errors on Windows.

* Additional check for cached state_dict

Additional check for cached state_dict as path is now optional - should solve model manager 'missing' this and the resultant memory errors.

* Appease ruff

* Further ruff appeasement

* ruff

* loaders.py fix for linux

No longer attempting to delete internal object.

* loaders.py - one more _mmap ref removed

---------

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2025-11-16 09:25:52 -05:00
Jonathan
abcc987f6f Rework graph.py (#8642)
* Rework graph, add documentation

* Minor fixes to README.md

* Updated schema

* Fixed test to match behavior - all nodes executed, parents before children

* Update invokeai/app/services/shared/graph.py

Cleaned up code

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>

* Change silent corrections to enforcing invariants

---------

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2025-11-16 09:10:47 -05:00
Lincoln Stein
36e400dd5d (chore) Update requirements to python 3.11-12 (#8657)
* (chore) update requirements to python 3.11-12

* update uv.lock
2025-11-08 21:29:43 -05:00
Weblate (bot)
0113931956 ui: translations update from weblate (#8599)
* translationBot(ui): update translation (Italian)

Currently translated at 98.4% (2099 of 2132 strings)

translationBot(ui): update translation (Italian)

Currently translated at 98.4% (2130 of 2163 strings)

translationBot(ui): update translation (Italian)

Currently translated at 98.4% (2130 of 2163 strings)

Co-authored-by: Riccardo Giovanetti <riccardo.giovanetti@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
Translation: InvokeAI/Web UI

* translationBot(ui): update translation (Japanese)

Currently translated at 99.6% (2155 of 2163 strings)

Co-authored-by: RyoKoba <kobayashi_ryo@cyberagent.co.jp>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/ja/
Translation: InvokeAI/Web UI

* translationBot(ui): update translation files

Updated by "Cleanup translation files" hook in Weblate.

translationBot(ui): update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/
Translation: InvokeAI/Web UI

* translationBot(ui): update translation (Italian)

Currently translated at 98.4% (2103 of 2136 strings)

Co-authored-by: Riccardo Giovanetti <riccardo.giovanetti@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/it/
Translation: InvokeAI/Web UI

---------

Co-authored-by: Riccardo Giovanetti <riccardo.giovanetti@gmail.com>
Co-authored-by: RyoKoba <kobayashi_ryo@cyberagent.co.jp>
2025-11-04 02:29:05 +00:00
DustyShoe
8d6e00533e Fix to enable loading fp16 repo variant ControlNets (#8643)
* Fix ControlNet repo variant detection for fp16 weights

* Remove ControlNet diffusers fp16 regression test

* Update invokeai/backend/model_manager/configs/controlnet.py

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>

* style: ruff format controlnet.py

---------

Co-authored-by: Lincoln Stein <lincoln.stein@gmail.com>
2025-11-03 21:23:35 -05:00
Lincoln Stein
10eebb6c0c remove jazzhaiku as well 2025-11-02 15:22:13 -05:00
Lincoln Stein
68bcf2ebe0 chore(codeowners): remove commercial dev codeowners 2025-11-02 15:22:13 -05:00
blessedcoolant
ad0b09c738 chore(ui): reorder the model view buttons 2025-10-28 00:16:20 +05:30
Alexander Eichhorn
737cf795e8 forget to run pnpm fix 2025-10-28 00:16:20 +05:30
Alexander Eichhorn
6192ff5abb feat: remove the ModelFooter in the ModelView and add the Delete Model Button from the Footer into the View 2025-10-28 00:16:20 +05:30
blessedcoolant
066ba5fb19 fix(mm): directory path leakage on scan folder error (#8641)
## Summary

This fixes a bug in which private directory paths on the host could be
leaked to the user interface. The error occurs during the `scan_folders`
operation when a subdirectory is not accessible. The UI shows a
permission denied error message, followed by the path of the offending
directory. This patch limits the error message to the error type only
and does not give further details.

## Related Issues / Discussions

This bug was reported in a private DM on the Discord server.

## QA Instructions

Before applying this PR, go to ***Model Manager -> Add Model -> Scan
Folder*** and enter the path of a directory that has subdirectories that
the backend should not have access to, for example `/etc`. Press the
***Scan Folder*** button. You will see a Permission Denied error message
that gives away the path of the first inaccesislbe subdirectory.

After applying this PR, you will see just the Permission Denied error
without details.

## Merge Plan

Merge when approved.

## Checklist

- [X] _The PR has a short but descriptive title, suitable for a
changelog_
- [X] _Tests added / updated (if applicable)_
- [X] _Changes to a redux slice have a corresponding migration_
- [X] _Documentation added / updated (if applicable)_
- [ ] _Updated `What's New` copy (if doing a release after this PR)_
2025-10-28 00:02:59 +05:30
Lincoln Stein
2fb4c92310 fix(mm): directory path leakage on scan folder error 2025-10-27 08:54:57 -04:00
psychedelicious
3fdceba5fc chore: bump version to v6.9.0 2025-10-17 12:13:01 +11:00
psychedelicious
ae4bcc08f2 chore(ui): point ui lib dep at gh repo 2025-10-17 07:22:39 +11:00
psychedelicious
e1d88f93ca fix(ui): generator nodes
Closes #8617
2025-10-16 10:37:14 +11:00
psychedelicious
4ad2574835 feat(ui): add button to reidentify model to mm 2025-10-16 10:33:02 +11:00
psychedelicious
0e3d4beb48 chore(ui): typegen 2025-10-16 10:33:02 +11:00
psychedelicious
dcfd4ea756 feat(mm): reidentify models
Add route and model record service method to reidentify a model. This
re-probes the model files and replaces the model's config with the new
one if it does not error.
2025-10-16 10:33:02 +11:00
psychedelicious
093f8d6720 fix(mm): ignore files in hidden directories when identifying models 2025-10-16 10:33:02 +11:00
psychedelicious
22fdfab764 chore: bump version to v6.9.0rc3 v6.9.0rc3 2025-10-16 08:08:44 +11:00
psychedelicious
7a0b157fb8 feat(mm): more exports in invocation api 2025-10-16 08:08:44 +11:00
psychedelicious
563da9ee8e feat(mm): write warning README file to models dir 2025-10-16 08:08:44 +11:00
psychedelicious
c8d9cdc22e docs(mm): add readme for updating or adding new model support 2025-10-16 08:08:44 +11:00
psychedelicious
e9c2411da9 chore: bump version to v6.9.0rc2 2025-10-16 08:08:44 +11:00
psychedelicious
90989291ed fix(ui): wait for nav api to be ready before loading main app component 2025-10-16 08:08:44 +11:00
psychedelicious
d04fc343f0 feat(ui): add flag for connected status 2025-10-16 08:08:44 +11:00
psychedelicious
437594915a feat(mm): add model taxonomy and other classes to public API exports 2025-10-16 08:08:44 +11:00
psychedelicious
875aba8979 tidy(mm): remove unused class 2025-10-16 08:08:44 +11:00
psychedelicious
61d13f20ea chore: bump version to v6.9.0rc1 2025-10-16 08:08:44 +11:00
psychedelicious
3b0dd5768b chore(ui): update whatsnew 2025-10-16 08:08:44 +11:00
psychedelicious
d9888912e8 chore(ui): fix schema 2025-10-15 10:46:16 +11:00
psychedelicious
7cfaca804a chore: ruff 2025-10-15 10:46:16 +11:00
psychedelicious
f37f817fd1 fix(ui): move logging setup to react code 2025-10-15 10:46:16 +11:00
psychedelicious
85e5b40627 docs(ui): add canvas overview and design doc 2025-10-15 10:46:16 +11:00
psychedelicious
e93cda8b2b docs(ui): more documentation 2025-10-15 10:46:16 +11:00
psychedelicious
3d0f29f85f tidy: app "config", settings modal, infill methods
We had an "infill methods" route that long ago told the frontend infill
method, upscale method (model), NSFW checker, and watermark feature
availability.

None of these were used except for the patchmatch check. Removed them,
made the check exclusively for patchmatch, updated related code in redux
app startup listeners and settings modal.
2025-10-15 10:46:16 +11:00
psychedelicious
117fbd97af tidy(ui): clean up useSyncQueueStatus 2025-10-15 10:46:16 +11:00
psychedelicious
0bc11b9af9 docs(ui): add high-level readmes for various features 2025-10-15 10:46:16 +11:00
psychedelicious
79be70d918 tidy(ui): rename GalleryImageGrid and add comments 2025-10-15 10:46:16 +11:00
psychedelicious
16330a14cd tidy(ui): rename GalleryPanel file 2025-10-15 10:46:16 +11:00
psychedelicious
a6690072f1 docs(ui): add comments for image context menu 2025-10-15 10:46:16 +11:00
psychedelicious
26aebb0165 docs(ui): add comments for nes 2025-10-15 10:46:16 +11:00
psychedelicious
0742ebe11a tidy(ui): lift error boundary reset cb outside component 2025-10-15 10:46:16 +11:00
psychedelicious
c80c89dfdb tidy: removing unused code paths 7 2025-10-15 10:46:16 +11:00
psychedelicious
240dc673e4 tidy: removing unused code paths 6 2025-10-15 10:46:16 +11:00
psychedelicious
b2e93d7be7 tidy: removing unused code paths 5 2025-10-15 10:46:16 +11:00
psychedelicious
3126726abf tidy: removing unused code paths 4 2025-10-15 10:46:16 +11:00
psychedelicious
c09dc8e14c tidy: removing unused code paths 3 2025-10-15 10:46:16 +11:00