blessedcoolant
5f6c6abf9c
chore: change IPAdapterAttentionWeights to a dataclass
2024-04-15 23:38:55 +05:30
blessedcoolant
cd76a31a8f
fix: IP Adapter method not being recalled
2024-04-15 22:29:32 +05:30
Lincoln Stein
e93f4d632d
[util] Add generic torch device class ( #6174 )
...
* introduce new abstraction layer for GPU devices
* add unit test for device abstraction
* fix ruff
* convert TorchDeviceSelect into a stateless class
* move logic to select context-specific execution device into context API
* add mock hardware environments to pytest
* remove dangling mocker fixture
* fix unit test for running on non-CUDA systems
* remove unimplemented get_execution_device() call
* remove autocast precision
* Multiple changes:
1. Remove TorchDeviceSelect.get_execution_device(), as well as calls to
context.models.get_execution_device().
2. Rename TorchDeviceSelect to TorchDevice
3. Added back the legacy public API defined in `invocation_api`, including
choose_precision().
4. Added a config file migration script to accommodate removal of precision=autocast.
* add deprecation warnings to choose_torch_device() and choose_precision()
* fix test crash
* remove app_config argument from choose_torch_device() and choose_torch_dtype()
---------
Co-authored-by: Lincoln Stein <lstein@gmail.com>
2024-04-15 13:12:49 +00:00
psychedelicious
5a8489bbfc
perf(ui): memoize infill components
2024-04-15 22:50:54 +10:00
psychedelicious
a24c9d0f7a
perf(ui): optimize useFeatureStatus
2024-04-15 22:50:54 +10:00
psychedelicious
7a92afc117
perf(ui): fix rerenders in nodes
...
Unmemoized selector tanking perf
2024-04-15 22:50:54 +10:00
psychedelicious
b508945b11
feat(ui): edge labels
...
Add setting to render labels with format `Source Node label -> Target Node label` on edges.
2024-04-15 22:48:46 +10:00
Lars Kappert
06bc38d3f4
Remove tag excluder
2024-04-15 09:14:49 +10:00
Lars Kappert
d3b0212da5
Scope project files to src dir (enables --production)
2024-04-15 09:14:49 +10:00
Lars Kappert
c2b79ce14c
Replace @knipignore
with paths
config
2024-04-15 09:14:49 +10:00
Васянатор
70185b0173
translationBot(ui): update translation (Russian)
...
Currently translated at 99.5% (1128 of 1133 strings)
Co-authored-by: Васянатор <ilabulanov339@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/ru/
Translation: InvokeAI/Web UI
2024-04-15 09:12:38 +10:00
怀瑾
a83a0c6146
translationBot(ui): update translation (Chinese (Simplified))
...
Currently translated at 81.5% (924 of 1133 strings)
Co-authored-by: 怀瑾 <symant233@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/invokeai/web-ui/zh_Hans/
Translation: InvokeAI/Web UI
2024-04-15 09:12:38 +10:00
Riccardo Giovanetti
12f41039cc
translationBot(ui): update translation (Italian)
...
Currently translated at 98.4% (1122 of 1140 strings)
translationBot(ui): update translation (Italian)
Currently translated at 98.4% (1120 of 1138 strings)
translationBot(ui): update translation (Italian)
Currently translated at 98.4% (1115 of 1133 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-04-15 09:12:38 +10:00
Daniel Abrao
b3b5b7e261
Include hardcoded count of one to avoid translation issues on missing keys
2024-04-15 09:10:15 +10:00
Daniel Abrao
f706a13230
Adjust gallery image length handling
2024-04-15 09:10:15 +10:00
Daniel Abrao
22c6400bb8
Refactor i18n pluralization
2024-04-15 09:10:15 +10:00
Daniel Abrao
1ca152f6c8
Apply eslint/prettier fixes
2024-04-15 09:10:15 +10:00
Daniel Abrao
982e255878
Add dynamic label to delete button located at the top toolbar
2024-04-15 09:10:15 +10:00
Daniel Abrao
7899149144
Remove unnecessary word
2024-04-15 09:10:15 +10:00
Daniel Abrao
bef97b46bf
Apply eslint/prettier fixes
2024-04-15 09:10:15 +10:00
Daniel Abrao
cc256fee0e
Modify the modal title to include selected image array length
2024-04-15 09:10:15 +10:00
Daniel Abrao
ec69a58c8d
Include plural variation for delete image modal title
2024-04-15 09:10:15 +10:00
Daniel Abrao
ec67ba61db
Pass an array of selected images instead of imageDTO
2024-04-15 09:10:15 +10:00
Daniel Abrao
66126996e7
Import image selection
2024-04-15 09:10:15 +10:00
Jennifer Player
4eb66a9198
remove hires fix badge from settings when using sdxl
2024-04-15 07:57:58 +10:00
Daniel Abrao
14e41a1fd9
Remove unnecessary whitespace
2024-04-15 07:54:36 +10:00
Daniel Abrao
fc55522003
Import hook in the main App script
2024-04-15 07:54:36 +10:00
Daniel Abrao
cd6d8ae9cc
Add a hook as a singleton to update favicon and title upon queueSize change
2024-04-15 07:54:36 +10:00
Daniel Abrao
2933eb594d
Remove unnecessary code
2024-04-15 07:54:36 +10:00
Daniel Abrao
4e08fab3f5
Apply brand red color and a black border
2024-04-15 07:54:36 +10:00
Daniel Abrao
8bca7e2aa2
Apply eslint/prettier fixes
2024-04-15 07:54:36 +10:00
Daniel Abrao
3706cf0ad4
Add JSDoc strings
2024-04-15 07:54:36 +10:00
Daniel Abrao
a459361376
Modify the processing to consider the active queue length instead of in_progress only
2024-04-15 07:54:36 +10:00
Daniel Abrao
bb330d50a6
Increase favicon alert detail size
2024-04-15 07:54:36 +10:00
Daniel Abrao
102cb62960
Apply eslint/prettier fixes
2024-04-15 07:54:36 +10:00
Daniel Abrao
8eeab22ecd
Replace let
with const
2024-04-15 07:54:36 +10:00
Daniel Abrao
4343852b83
Update HTML page title and favicon upon queue item event
2024-04-15 07:54:36 +10:00
Daniel Abrao
0a9bf25bff
Implement updatePageTitle
and updatePageFavicon
methods
2024-04-15 07:54:36 +10:00
Daniel Abrao
4cd09850b8
Add ID to the HTML link element
2024-04-15 07:54:36 +10:00
Daniel Abrao
dbc586e0b2
Add alert variation for Invoke favicon
2024-04-15 07:54:36 +10:00
blessedcoolant
8426f1e7b2
fix(experimental): Possible fix for conflict with regional embed length mismatch
...
Pushing this so people can test it out and see if this needs to be handled in a different way.
2024-04-14 12:19:19 +05:30
Jennifer Player
c2e3c61f28
fix recall all when loras, controls, or hrf arent present
2024-04-14 16:49:14 +10:00
Jennifer Player
77b3281f08
prettier
2024-04-14 15:22:33 +10:00
Jennifer Player
bd7c8cd517
added info popover back to model, updated description hover to combobox only
2024-04-14 15:22:33 +10:00
Jennifer Player
489d485907
added missing description to control adapters hover
2024-04-14 15:22:33 +10:00
Jennifer Player
6eed5ad531
added button for hiding bounding box
2024-04-14 15:22:33 +10:00
blessedcoolant
9cb0f63c44
refactor: fix a bunch of type issues in custom_attention
2024-04-13 14:17:25 +05:30
blessedcoolant
2d5786d3bb
fix: Incorrect composition blocks for SD1.5
2024-04-13 13:52:10 +05:30
blessedcoolant
27466ffa1a
chore: update the ip adapter node version
2024-04-13 13:39:08 +05:30
blessedcoolant
f50b156511
chore: do not include custom nodes in schema
2024-04-13 12:43:49 +05:30
blessedcoolant
9fc73743b2
feat: support SD1.5
2024-04-13 12:30:39 +05:30
blessedcoolant
d4393e4170
chore: linter fixes
2024-04-13 12:14:45 +05:30
blessedcoolant
7a67fd6a06
Revert "chore: ruff fixes"
...
This reverts commit af36fe8c1e
.
2024-04-13 12:10:20 +05:30
blessedcoolant
af36fe8c1e
chore: ruff fixes
2024-04-13 12:08:52 +05:30
blessedcoolant
e9f16ac8c7
feat: add UI for IP Adapter Method
2024-04-13 12:06:59 +05:30
blessedcoolant
6ea183f0d4
wip: Initial Implementation IP Adapter Style & Comp Modes
2024-04-13 11:09:45 +05:30
Mark E. Shoulson
24f2cde862
Remove type="submit" from all tsx files.
...
Fixes a problem on firefox, at least for me.
2024-04-12 09:09:32 +10:00
psychedelicious
b18442ded4
fix(queue): poll queue on finished queue item
...
When a queue item is finished (completed, canceled, failed), immediately poll the queue for the next queue item.
Closes #6189
2024-04-12 07:31:47 +10:00
Lincoln Stein
651c0b39b1
clear cache on all exceptions
2024-04-12 07:19:16 +10:00
Lincoln Stein
46d23cd868
catch RunTimeError during model to()
call rather than OutOfMemoryError
2024-04-12 07:19:16 +10:00
Lincoln Stein
dedf0c6ffa
fix ruff issues
2024-04-12 07:19:16 +10:00
Lincoln Stein
579082ac10
[mm] clear the cache entry for a model that got an OOM during loading
2024-04-12 07:19:16 +10:00
psychedelicious
7bc77ddb40
fix(nodes): doubly-noised latents
...
When using refiner with a mask (i.e. inpainting), we don't have noise provided as an input to the node.
This situation uniquely hits a code path that wasn't reviewed when gradient denoising was implemented.
That code path does two things wrong:
- It lerp'd the input latents. This was fixed in 5a1f4cb1ce
.
- It added noise to the latents an extra time. This is fixed in this change.
We don't need to add noise in `latents_from_embeddings` because we do it just a lines later in `AddsMaskGuidance`.
- Remove the extraneous call to `add_noise`
- Make `seed` a required arg. We never call the function without seed anyways. If we refactor this in the future, it will be clearer that we need to look at how seed is handled.
- Move the call to create the noise to a deeper conditional, just before we call `AddsMaskGuidance`. The created noise tensor is now only used in that function, no need to create it every time.
Note: Whether or not having both noise and latents as inputs on the node is correct is a separate conversation. This change just fixes the issue with the current setup.
2024-04-11 07:21:50 -04:00
psychedelicious
026d095afe
fix(nodes): do not set seed on output latents from denoise latents
...
`LatentsField` objects have an optional `seed` field. This should only be populated when the latents are noise, generated from a seed.
`DenoiseLatentsInvocation` needs a seed value for scheduler initialization. It's used in a few places, and there is some logic for determining the seed to use with a series of fallbacks:
- Use the seed from the noise (a `LatentsField` object)
- Use the seed from the latents (a `LatentsField` object - normally it won't have a seed)
- Use `0` as a final fallback
In `DenoisLatentsInvocation`, we set the seed in the `LatentsOutput`, even though the output latents are not noise.
This is normally fine, but when we use refiner, we re-use the those same latents for the refiner denoise. This causes that characteristic same-seed-fried look on the refiner pass.
Simple fix - do not set the field in the output latents.
2024-04-11 07:21:50 -04:00
psychedelicious
7e2ade50e1
fix(ui): canvas staging area & batch handling fixes
...
Handful of intertwined fixes.
- Create and use helper function to reset staging area.
- Clear staging area when queue items are canceled, failed, cleared, etc. Fixes a bug where the bbox ends up offset and images are put into the wrong spot.
- Fix a number of similar bugs where canvas would "forget" it had pending generations, but they continued to generate. Canvas needs to track batches that should be displayed in it using `state.canvas.batchIds`, and this was getting cleared without actually canceling those batches.
- Disable the `discard current image` button on canvas if there is only one image. Prevents accidentally canceling all canvas batches if you spam the button.
2024-04-10 21:48:34 +10:00
psychedelicious
c0d54d5414
Revert "always enqueue with fresh bounding box"
...
This reverts commit fae51da278b39c61cbbea5de88661b4bc546f1ce.
2024-04-10 21:48:34 +10:00
Mary Hipp
98bfbb73ac
always enqueue with fresh bounding box
2024-04-10 21:48:34 +10:00
Ryan Dick
f9af32a6d1
Fix the padding behavior when max-pooling regional IP-Adapter masks to mirror the downscaling behavior of SD and SDXL. Prior to this change, denoising with input latent dimensions that were not evenly divisible by 8 would raise an exception.
2024-04-09 16:50:43 -04:00
Ryan Dick
fba40eb1bd
Fix the padding behavior when max-pooling regional prompt masks to mirror the downscaling behavior of SD and SDXL. Prior to this change, denoising with input latent dimensions that were not evenly divisible by 8 would raise an exception.
2024-04-09 16:50:43 -04:00
Jonathan
80d631118d
Fix field ordering
...
Changed fields to go in w/h x/y order.
2024-04-09 14:17:55 -05:00
Ryan Dick
0c6dd32ece
(minor) Fix IP-Adapter conditional logic in CustomAttnProcessor2_0.
2024-04-09 15:06:51 -04:00
Ryan Dick
0bdbfd4d1d
Add support for IP-Adapter masks.
2024-04-09 15:06:51 -04:00
Ryan Dick
2e27ed5f3d
Pass IP-Adapter scales through the cross_attn_kwargs pathway, since they are the same for all attention layers. This change also helps to prepare for adding IP-Adapter region masks.
2024-04-09 15:06:51 -04:00
Ryan Dick
babdc64b17
(minor) Fix typo in IP-Adapter field description.
2024-04-09 15:06:51 -04:00
Ryan Dick
4a828818da
Remove support for Prompt-to-Prompt cross-attention control (aka .swap()). This feature is not widely used. It does not work with SDXL and is incompatible with IP-Adapter and regional prompting. The implementation is also intertwined with both text embedding and the UNet attention layers, resulting in a high maintenance burden. For all of these reasons, we have decided to drop support.
2024-04-09 10:57:02 -04:00
psychedelicious
fe386252f3
Revert "feat(nodes): add prompt region from image nodes"
...
This reverts commit 3a531c5097
.
2024-04-09 08:12:12 -04:00
Ryan Dick
182810337c
Add utility to_standard_float_mask(...) to convert various mask formats to a standardized format.
2024-04-09 08:12:12 -04:00
Ryan Dick
338bf808d6
Rename MaskField to be a generice TensorField.
2024-04-09 08:12:12 -04:00
Ryan Dick
5b5a4204a1
Fix dimensions of mask produced by ExtractMasksAndPromptsInvocation. Also, added a clearer error message in case the same error is introduced in the future.
2024-04-09 08:12:12 -04:00
Ryan Dick
75ef473748
Pull the upstream changes from diffusers' AttnProcessor2_0 into CustomAttnProcessor2_0. This fixes a bug in CustomAttnProcessor2_0 that was being triggered when peft was not installed. The bug was present in a block of code that was previously copied from diffusers. The bug seems to have been introduced during diffusers' migration to PEFT for their LoRA handling. The upstream bug was fixed in 531e719163
.
2024-04-09 08:12:12 -04:00
psychedelicious
926b8d0efe
feat(nodes): add prompt region from image nodes
2024-04-09 08:12:12 -04:00
Ryan Dick
9d9d1761f3
(minor) The latest ruff version has _slightly_ different formatting preferences.
2024-04-09 08:12:12 -04:00
Ryan Dick
a78df8123f
Update the diffusion logic to use the new regional prompting feature.
2024-04-09 08:12:12 -04:00
Ryan Dick
7ca677578e
Create a UNetAttentionPatcher for patching UNet models with CustomAttnProcessor2_0 modules.
2024-04-09 08:12:12 -04:00
Ryan Dick
31c456c1e6
Update CustomAttention to support both IP-Adapters and regional prompting.
2024-04-09 08:12:12 -04:00
Ryan Dick
2ce79b61f5
Initialize a RegionalPromptAttnProcessor2_0 class by copying AttnProcessor2_0 from diffusers.
2024-04-09 08:12:12 -04:00
Ryan Dick
109e3f0e7f
Add RegionalPromptData class for managing prompt region masks.
2024-04-09 08:12:12 -04:00
Ryan Dick
dc64fec771
Add support for lists of prompt embeddings to be passed to the DenoiseLatents invocation, and add handling of the conditioning region masks in DenoiseLatents.
2024-04-09 08:12:12 -04:00
Ryan Dick
d1e45585d0
Add TextConditioningRegions to the TextConditioningData data structure.
2024-04-09 08:12:12 -04:00
Ryan Dick
aba023e0c5
Improve documentation of conditioning_data.py.
2024-04-09 08:12:12 -04:00
Ryan Dick
e354c29b52
Rename ConditioningData -> TextConditioningData.
2024-04-09 08:12:12 -04:00
Ryan Dick
a7f363e654
Split ip_adapter_conditioning out from ConditioningData.
2024-04-09 08:12:12 -04:00
Ryan Dick
9b2162e564
Remove scheduler_args from ConditioningData structure.
2024-04-09 08:12:12 -04:00
Ryan Dick
4e64b26702
Update compel nodes to accept an optional prompt mask.
2024-04-09 08:12:12 -04:00
Ryan Dick
c22d772062
Add RectangleMaskInvocation.
2024-04-09 08:12:12 -04:00
Ryan Dick
d6be7662c9
Add a MaskField primitive, and add a mask to the ConditioningField primitive type.
2024-04-09 08:12:12 -04:00
blessedcoolant
95050088d1
chore: lint fixes
2024-04-09 14:13:10 +10:00
blessedcoolant
94b5084cd5
fix: one man's max is another man's min
2024-04-09 14:13:10 +10:00
blessedcoolant
ca0d60bee6
fix: set coherence denoise to 0.2 min for refiner models
2024-04-09 14:13:10 +10:00
blessedcoolant
fd1f240853
fix: SDXL Refiner not working properly with Inpainting
2024-04-09 14:13:10 +10:00