Ryan Dick
f6045682c0
Fix bug with partial offload of model buffers.
2024-12-10 22:19:17 +00:00
Ryan Dick
84a75ddb72
Fix bug in ModelCache that was causing it to offload more models from VRAM than necessary.
2024-12-10 20:38:37 +00:00
Ryan Dick
a9fb1c82a0
Fix handling of torch.nn.Module buffers in CachedModelWithPartialLoad.
2024-12-10 19:38:04 +00:00
Ryan Dick
cc7391e630
Enable LoRAPatcher.apply_smart_lora_patches(...) throughout the stack.
2024-12-10 17:27:33 +00:00
Ryan Dick
62d595f695
(minor) Rename num_layers -> num_loras in unit tests.
2024-12-10 16:41:52 +00:00
Ryan Dick
5e2080266e
Add test_apply_smart_lora_patches_to_partially_loaded_model(...).
2024-12-10 16:38:48 +00:00
Ryan Dick
ed7bb7ea3d
Add LoRAPatcher.smart_apply_lora_patches()
2024-12-10 16:26:34 +00:00
Ryan Dick
62407f7c6b
Refactor LoRAPatcher slightly in preparation for a 'smart' patcher.
2024-12-10 15:36:36 +00:00
Ryan Dick
80128e1e14
Fix LoRAPatcher.apply_lora_wrapper_patches(...)
2024-12-10 03:10:23 +00:00
Ryan Dick
4c84d39e7d
Finish consolidating LoRA sidecar wrapper implementations.
2024-12-10 02:54:32 +00:00
Ryan Dick
0c4a368555
Begin to consolidate the LoRA sidecar and LoRA layer wrapper implementations.
2024-12-10 01:16:01 +00:00
Ryan Dick
55dc762a91
Fix bias handling in LoRAModuleWrapper and add unit test that checks that all LoRA patching methods produce the same outputs.
2024-12-09 16:59:37 +00:00
Ryan Dick
d825d3856e
Add LoRA wrapper patching to LoRAPatcher.
2024-12-09 16:35:23 +00:00
Ryan Dick
d94733f55a
Add LoRA wrapper layer.
2024-12-09 15:17:50 +00:00
Ryan Dick
2144d21f80
Maintain a read-only CPU state dict copy in CachedModelWithPartialLoad.
2024-12-06 21:49:24 +00:00
Ryan Dick
958efa19d7
Memoize frequently accessed values in CachedModelWithPartialLoad.
2024-12-06 20:39:05 +00:00
Ryan Dick
11af57def3
More ModelCache logging improvements.
2024-12-06 18:38:36 +00:00
Ryan Dick
8b70a5b9bd
Cleanup of ModelCache and added a bunch of debug logging.
2024-12-06 17:39:16 +00:00
Ryan Dick
5d9fdcd78d
Fix a couple of bugs to get basic vanilla partial model load working with the model cache.
2024-12-06 00:50:58 +00:00
Ryan Dick
c7b84cf012
WIP - first pass at overhauling ModelCache to work with partial loads.
2024-12-05 23:03:40 +00:00
Ryan Dick
8e409e3436
Delete experimental torch device autocasting solutions and clean up TorchFunctionAutocastDeviceContext.
2024-12-05 19:36:44 +00:00
Ryan Dick
987393853c
Create CachedModelOnlyFullLoad class.
2024-12-05 18:43:50 +00:00
Ryan Dick
91c5af1b95
Move CachedModelWithPartialLoad into the main model_cache/ directory.
2024-12-05 18:21:26 +00:00
Ryan Dick
5c67dd507a
Get rid of ModelLocker. It was an unnecessary layer of indirection.
2024-12-05 16:59:40 +00:00
Ryan Dick
2ff928ec17
Move lock(...) and unlock(...) logic from ModelLocker to the ModelCache and make a bunch of ModelCache properties/methods private.
2024-12-05 16:11:40 +00:00
Ryan Dick
4327bbe77e
Pull get_model_cache_key(...) out of ModelCache. The ModelCache should not be concerned with implementation details like the submodel_type.
2024-12-04 22:53:57 +00:00
Ryan Dick
ad1c0d37ef
Rename model_cache_default.py -> model_cache.py.
2024-12-04 22:45:30 +00:00
Ryan Dick
9708d87946
Remove ModelCacheBase.
2024-12-04 22:05:34 +00:00
Ryan Dick
3ad44f7850
Move CacheStats to its own file.
2024-12-04 21:56:50 +00:00
Ryan Dick
9a482981b2
Move CacheRecord out to its own file.
2024-12-04 21:53:19 +00:00
Ryan Dick
6b02362b12
Rip out ModelLockerBase.
2024-12-04 21:47:11 +00:00
Ryan Dick
8fec4ec91c
Tidy up CachedModel and improve unit test coverage.
2024-12-04 20:28:31 +00:00
Ryan Dick
693e421970
Alternative implementation with torch.nn.Linear module streaming.
2024-12-03 22:32:15 +00:00
Ryan Dick
dc14104bc8
Add TorchFunctionAutocastContext
2024-12-03 19:26:46 +00:00
Ryan Dick
f286a1d1f3
Remove debug logs.
2024-12-03 18:04:55 +00:00
Ryan Dick
9dc86b2b71
Add basic CachedModel class with features for partial load/unload.
2024-12-03 17:12:22 +00:00
Ryan Dick
2cab689b79
Naive TorchAutocastContext.
2024-12-03 14:55:43 +00:00
psychedelicious
f8c7adddd0
feat(ui): add vietnamese to language picker
...
Closes #7384
2024-12-02 08:12:14 -05:00
psychedelicious
17da1d92e9
fix(ui): remove "adding to" text on Invoke tooltip on Workflows/Upscaling tabs
...
The "adding to" text indicates if images are going to the gallery or staging area. This info is relevant only to the canvas tab, but was displayed on Upscaling and Workflows tabs. Removed it from those tabs.
2024-12-02 08:08:16 -05:00
psychedelicious
1cc57a4854
chore(ui): lint
2024-12-02 07:59:12 -05:00
psychedelicious
3993fae331
fix(ui): unable to invoke w/ empty inpaint mask or raster layer
...
Removed the empty state checks for these layer types - it's always OK to invoke when they are empty.
2024-12-02 07:59:12 -05:00
psychedelicious
1446526d55
tidy(ui): translation keys for canvas layer warnings
2024-12-02 07:59:12 -05:00
psychedelicious
62c024e725
feat(ui): add gallery image ctx menu items to create ref image from image
...
Appears these actions disappeared at some point. Restoring them.
2024-12-02 07:52:58 -05:00
psychedelicious
1e92bb4e94
fix(ui): ref image defaults to prev ref image's image selection
...
A redux selector is used to get the "default" IP Adapter. The selector uses the model list query result to select an IP Adapter model to be preset by default.
The selector is memoized, so if we mutate the returned default IP Adapter state, it mutates the result of the selector for all consumers.
For example, the `image` property of the default IP Adapter selector result is `null`. When we set the `image` property of the selector result while creating an IP Adapter, this does not trigger the selector to recompute its result. We end up setting the image for the selector result directly, and all other consumers now have that same image set.
Solution - we need to clone the selector result everywhere it is used. This was missed in a few spots, causing the issue.
2024-12-02 07:48:39 -05:00
psychedelicious
db6398fdf6
feat(ui): less confusing empty state for rg ref images
...
It was easy to misunderstand the empty state for a regional guidance reference image. There was no label, so it seemed like it was the whole region that was empty.
This small change adds the "Reference Image" heading to the empty state, so it's clear that the empty state messaging refers to this reference image, not the whole regional guidance layer.
2024-12-02 07:46:10 -05:00
Riccardo Giovanetti
ebd73a2ac2
translationBot(ui): update translation (Italian)
...
Currently translated at 98.7% (1622 of 1643 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
2024-12-02 02:13:51 -08:00
Hosted Weblate
8ee95cab00
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
2024-12-02 02:13:51 -08:00
Linos
d1184201a8
translationBot(ui): update translation (Vietnamese)
...
Currently translated at 100.0% (1643 of 1643 strings)
translationBot(ui): update translation (Vietnamese)
Currently translated at 100.0% (1638 of 1638 strings)
Co-authored-by: Linos <linos.coding@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/vi/
Translation: InvokeAI/Web UI
2024-12-02 02:13:51 -08:00
Nik Nikovsky
5887891654
translationBot(ui): update translation (Polish)
...
Currently translated at 4.9% (81 of 1638 strings)
Co-authored-by: Nik Nikovsky <zejdzztegomaila@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/pl/
Translation: InvokeAI/Web UI
2024-12-02 02:13:51 -08:00
Riku
765ca4e004
translationBot(ui): update translation (German)
...
Currently translated at 69.7% (1142 of 1638 strings)
Co-authored-by: Riku <riku.block@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/de/
Translation: InvokeAI/Web UI
2024-12-02 02:13:51 -08:00