Mary Hipp
740bf80f3e
(ui): update query param to include_archived, fix cache when archiving boards
2024-06-28 10:36:05 +10:00
Mary Hipp
dc90de600d
(ui) allow auto-add on archived boards, reset to uncategorized if auto-add board is not currently visible due to archived view
2024-06-28 10:36:05 +10:00
psychedelicious
5709f82e5f
feat(ui): separate context menu for no board board
...
Much easier to not need to handle the board being optional in the component.
2024-06-28 10:36:05 +10:00
psychedelicious
20042d99ec
tidy(ui): archived icon component
2024-06-28 10:36:05 +10:00
Mary Hipp
8fce168dc5
fix tsc errors
2024-06-28 10:36:05 +10:00
maryhipp
a7ea096b28
ruff format
2024-06-28 10:36:05 +10:00
Mary Hipp
29eb3c8b62
lint fix
2024-06-28 10:36:05 +10:00
Mary Hipp
071e8bcee4
feat(ui): make archiving and auto-add mutually exclusive
2024-06-28 10:36:05 +10:00
Mary Hipp
68c0aa898f
feat(ui): add ability to archive/unarchive boards, add toggle to gallery settings to show/hide archived boards in list
2024-06-28 10:36:05 +10:00
maryhipp
5120a76ce5
cleanup
2024-06-28 10:36:05 +10:00
maryhipp
38a948ac9f
feat(api): add archived query param to board list endpoint to include them in the response
2024-06-28 10:36:05 +10:00
maryhipp
c33111468e
feat(api): ability to archive boards
2024-06-28 10:36:05 +10:00
Lincoln Stein
3e0fb45dd7
Load single-file checkpoints directly without conversion ( #6510 )
...
* use model_class.load_singlefile() instead of converting; works, but performance is poor
* adjust the convert api - not right just yet
* working, needs sql migrator update
* rename migration_11 before conflict merge with main
* Update invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py
Co-authored-by: Ryan Dick <ryanjdick3@gmail.com>
* Update invokeai/backend/model_manager/load/model_loaders/stable_diffusion.py
Co-authored-by: Ryan Dick <ryanjdick3@gmail.com>
* implement lightweight version-by-version config migration
* simplified config schema migration code
* associate sdxl config with sdxl VAEs
* remove use of original_config_file in load_single_file()
---------
Co-authored-by: Lincoln Stein <lstein@gmail.com>
Co-authored-by: Ryan Dick <ryanjdick3@gmail.com>
2024-06-27 17:31:28 -04:00
Ryan Dick
14775cc9c4
ruff format
2024-06-27 09:45:13 -04:00
psychedelicious
c7562dd6c0
fix(backend): mps should not use non_blocking
...
We can get black outputs when moving tensors from CPU to MPS. It appears MPS to CPU is fine. See:
- https://github.com/pytorch/pytorch/issues/107455
- https://discuss.pytorch.org/t/should-we-set-non-blocking-to-true/38234/28
Changes:
- Add properties for each device on `TorchDevice` as a convenience.
- Add `get_non_blocking` static method on `TorchDevice`. This utility takes a torch device and returns the flag to be used for non_blocking when moving a tensor to the device provided.
- Update model patching and caching APIs to use this new utility.
Fixes : #6545
2024-06-27 19:15:23 +10:00
psychedelicious
a0a0c57789
chore(ui): knip
2024-06-27 13:48:40 +10:00
psychedelicious
32ebf82d1a
feat(ui): better pagination buttons
2024-06-27 13:48:40 +10:00
psychedelicious
2dd172c2c6
feat(ui): gallery bulk select styling
2024-06-27 13:48:40 +10:00
psychedelicious
280ec9d4b3
fix(ui): invalidate getImageDTO caches when images are mutated
2024-06-27 13:48:40 +10:00
psychedelicious
fde8fc7575
perf(ui): optimistic updates for getImageDTO query cache
2024-06-27 13:48:40 +10:00
psychedelicious
6dcdc87eb1
fix(ui): control adapter image preview
2024-06-27 13:48:40 +10:00
Mary Hipp
93ffcb642e
lint fix
2024-06-27 13:48:40 +10:00
Mary Hipp
4c914ef2e8
use correct query params for boardIdSelected listener
2024-06-27 13:48:40 +10:00
Mary Hipp
c0ad5bc4a4
fix when deleting first image in list
2024-06-27 13:48:40 +10:00
Mary Hipp
8c58a180de
GG another fix
2024-06-27 13:48:40 +10:00
Mary Hipp
715dd983b0
appease the knip
2024-06-27 13:48:40 +10:00
Mary Hipp
84ffd36071
lint fix
2024-06-27 13:48:40 +10:00
Mary Hipp
9f30f1bfec
fix circular dep
2024-06-27 13:48:40 +10:00
Mary Hipp
bdff5c4e87
only show selected when greater than 0
2024-06-27 13:48:40 +10:00
Mary Hipp
afb0651f91
clear selection when board or gallery view changes
2024-06-27 13:48:40 +10:00
Mary Hipp
66e25628c3
fix neg pages
2024-06-27 13:48:40 +10:00
Mary Hipp
3a531a3c88
remove rest of cache, add bulk select UI
2024-06-27 13:48:40 +10:00
Mary Hipp
f01df49128
lint fix
2024-06-27 13:48:40 +10:00
Mary Hipp
7bbe236107
implmenet custom sort to replace images adapter logic
2024-06-27 13:48:40 +10:00
psychedelicious
719c066ac4
feat(ui): more efficient board totals fetching
...
We only need to show the totals in the tooltip. Tooltips accpet a component for the tooltip label. The component isn't rendered until the tooltip is triggered.
Move the board total fetching into a tooltip component for the boards. Now we only fire these requests when the user mouses over the board
2024-06-27 13:48:40 +10:00
psychedelicious
689dc30f87
feat(ui): tweak pagination buttons
...
- Fix off-by-one error when going to last page
- Update component to have minimal/no layout shift
2024-06-27 13:48:40 +10:00
psychedelicious
1f22f6ae02
feat(ui): iterate on dynamic gallery limit
...
- Simplify the gallery layout
- Set an initial gallery limit to load _some_ images immediately.
- Refactor the resize observer to use the actual rendered image component to calculate the number of images per row/col. This prevents inaccuracies caused by image padding that could result in the wrong number of images.
- Debounce the limit update to not thrash teh API
- Use absolute positioning trick to ensure the gallery container is always exactly the right size
- Minimum of `imagesPerRow` images loaded at all times
2024-06-27 13:48:40 +10:00
psychedelicious
9c931d9ca0
fix(ui): gallery content overflow
...
This is one of those unexpected CSS quirks. Flex containers need min-width or min-height for their children to not overflow. Add `minH={0}` to gallery container.
2024-06-27 13:48:40 +10:00
Mary Hipp
e0a241fa4f
wip change limit based on size of gallery
2024-06-27 13:48:40 +10:00
Mary Hipp
6a4b4ee340
trying to invalidate all the tags
2024-06-27 13:48:40 +10:00
Mary Hipp
488bf21925
fix single pagers
2024-06-27 13:48:40 +10:00
Mary Hipp
c9c39c02b6
handle generations coming in, fix pagination to use total from list query so it updates as that changes
2024-06-27 13:48:40 +10:00
Mary Hipp
5101dc4bef
some cleanup, add page buttons
2024-06-27 13:48:40 +10:00
Mary Hipp
98c77a3ed1
pull in spencers work
2024-06-27 13:48:40 +10:00
psychedelicious
4fca62680d
Update invokeai_version.py
2024-06-27 10:41:01 +10:00
Ryan Dick
9a3b8c6fcb
Fix handling of init_timestep in StableDiffusionGeneratorPipeline and improve its documentation.
2024-06-26 12:51:51 -04:00
Ryan Dick
bd74b84cc5
Revert "Remove the redundant init_timestep parameter that was being passed around. It is simply the first element of the timesteps array."
...
This reverts commit fa40061eca
.
2024-06-26 12:51:51 -04:00
Brandon Rising
dc23bebebf
Run ruff
2024-06-26 21:46:59 +10:00
Kent Keirsey
38b6f90c02
Update prevention exception message
2024-06-26 21:46:59 +10:00
Ryan Dick
cd9dfefe3c
Fix inpainting mask shape assertions.
2024-06-25 11:31:52 -07:00
Ryan Dick
b9946e50f9
Use image-space tile dimensions on the TiledMultiDiffusionDenoiseLatents invocation. This is more natural for many users.
2024-06-25 11:31:52 -07:00
Ryan Dick
06f49a30f6
Mark TiledMultiDiffusionDenoiseLatents as a Beta node.
2024-06-25 11:31:52 -07:00
Ryan Dick
e1af78c702
Make the tile_overlap input to MultiDiffusion *strictly* control the amount of overlap rather than being a lower bound.
2024-06-25 11:31:52 -07:00
Ryan Dick
c5588e1ff7
Add TODO comment explaining why some schedulers do not interact well with MultiDiffusion.
2024-06-25 11:31:52 -07:00
Ryan Dick
07ac292680
Consolidate _region_step() function - the separation wasn't really adding any value.
2024-06-25 11:31:52 -07:00
Ryan Dick
7c032ea604
(minor) Fix some documentation typos.
2024-06-25 11:31:52 -07:00
Ryan Dick
c5ee415607
Add progress image callbacks to TiledMultiDiffusionDenoiseLatentsInvocation.
2024-06-25 11:31:52 -07:00
Ryan Dick
fa40061eca
Remove the redundant init_timestep parameter that was being passed around. It is simply the first element of the timesteps array.
2024-06-25 11:31:52 -07:00
Ryan Dick
7cafd78d6e
Revert "Expose vae_decode(...) as a staticmethod on LatentsToImageInvocation."
...
This reverts commit 753239b48d
.
2024-06-25 11:31:52 -07:00
Ryan Dick
8a43656cf9
(minor) Address a few small TODOs.
2024-06-25 11:31:52 -07:00
Ryan Dick
bd3b6ca11b
Remove TiledStableDiffusionRefineInvocation. It was a proof-of-concept that has been superseded by TiledMultiDiffusionDenoiseLatents.
2024-06-25 11:31:52 -07:00
Ryan Dick
ceae5fe1db
(minor) typo
2024-06-25 11:31:52 -07:00
Ryan Dick
25067e4f0d
Delete rough notes.
2024-06-25 11:31:52 -07:00
Ryan Dick
fb0aaa3e6d
Fix advanced scheduler behaviour in MultiDiffusionPipeline.
2024-06-25 11:31:52 -07:00
Ryan Dick
c22526b9d0
Fix handling of stateful schedulers in MultiDiffusionPipeline.
2024-06-25 11:31:52 -07:00
Ryan Dick
c881882f73
Connect TiledMultiDiffusionDenoiseLatents to the MultiDiffusionPipeline backend.
2024-06-25 11:31:52 -07:00
Ryan Dick
36473fc52a
Remove regional conditioning logic from MultiDiffusionPipeline - it is not yet supported.
2024-06-25 11:31:52 -07:00
Ryan Dick
b9964ecc4a
Initial (untested) implementation of MultiDiffusionPipeline.
2024-06-25 11:31:52 -07:00
Ryan Dick
051af802fe
Remove inpainting support from MultiDiffusionPipeline.
2024-06-25 11:31:52 -07:00
Ryan Dick
3ff2e558d9
Remove IP-Adapter and T2I-Adapter support from MultiDiffusionPipeline.
2024-06-25 11:31:52 -07:00
Ryan Dick
fc187c9253
Document plan for the rest of the MultiDiffusion implementation.
2024-06-25 11:31:52 -07:00
Ryan Dick
605f460c7d
Add detailed docstring to latents_from_embeddings().
2024-06-25 11:31:52 -07:00
Ryan Dick
60d1e686d8
Copy StableDiffusionGeneratorPipeline as a starting point for a new MultiDiffusionPipeline.
2024-06-25 11:31:52 -07:00
Ryan Dick
22704dd542
Simplify handling of inpainting models. Improve the in-code documentation around inpainting.
2024-06-25 11:31:52 -07:00
Ryan Dick
875673c9ba
Minor tidying of latents_from_embeddings(...).
2024-06-25 11:31:52 -07:00
Ryan Dick
f604575862
Consolidate latents_from_embeddings(...) and generate_latents_from_embeddings(...) into a single function.
2024-06-25 11:31:52 -07:00
Ryan Dick
80a67572f1
Fix invocation name of tiled_multi_diffusion_denoise_latents.
2024-06-25 11:31:52 -07:00
Ryan Dick
60ac937698
Improve clarity of comments regarded when 'noise' and 'latents' are expected to be set.
2024-06-25 11:31:52 -07:00
Ryan Dick
1e41949a02
Fix static check errors on imports in diffusers_pipeline.py.
2024-06-25 11:31:52 -07:00
Ryan Dick
5f0e330ed2
Remove a condition for handling inpainting models that never resolves to True. The same logic is already applied earlier by AddsMaskLatents.
2024-06-25 11:31:52 -07:00
Ryan Dick
9dd779b414
Add clarifying comment to explain why noise might be None in latents_from_embedding().
2024-06-25 11:31:52 -07:00
Ryan Dick
fa183025ac
Remove unused are_like_tensors() function.
2024-06-25 11:31:52 -07:00
Ryan Dick
d3c85aa91a
Remove unused StableDiffusionGeneratorPipeline.use_ip_adapter member.
2024-06-25 11:31:52 -07:00
Ryan Dick
82619602a5
Remove unused StableDiffusionGeneratorPipeline.control_model.
2024-06-25 11:31:52 -07:00
Ryan Dick
196f3b721d
Stricter typing for the is_gradient_mask: bool.
2024-06-25 11:31:52 -07:00
Ryan Dick
244c28859d
Fix typing of control_data to reflect that it can be None.
2024-06-25 11:31:52 -07:00
Ryan Dick
40ae174c41
Fix typing of timesteps and init_timestep.
2024-06-25 11:31:52 -07:00
Ryan Dick
afaebdf151
Fix typing to reflect that the callback arg to latents_from_embeddings is never None.
2024-06-25 11:31:52 -07:00
Ryan Dick
d661517d94
Move seed above optional params.
2024-06-25 11:31:52 -07:00
Ryan Dick
82a69a54ac
Simplify handling of AddsMaskGuidance, and fix some related type errors.
2024-06-25 11:31:52 -07:00
Ryan Dick
ffc28176fe
Remove unused num_inference_steps.
2024-06-25 11:31:52 -07:00
Ryan Dick
230e205541
WIP TiledMultiDiffusionDenoiseLatents. Updated parameter list and first half of the logic.
2024-06-25 11:31:52 -07:00
Ryan Dick
7e94350351
Tidy DenoiseLatentsInvocation.prep_control_data(...) and fix some type errors.
2024-06-25 11:31:52 -07:00
Ryan Dick
c4e8549c73
Make DenoiseLatentsInvocation.prep_control_data(...) a staticmethod so that it can be called externally.
2024-06-25 11:31:52 -07:00
Ryan Dick
350a210835
Copy TiledStableDiffusionRefineInvocation as a starting point for TiledMultiDiffusionDenoiseLatents.py
2024-06-25 11:31:52 -07:00
Ryan Dick
ed781dbb0c
Change tiling strategy to make TiledStableDiffusionRefineInvocation work with more tile shapes and overlaps.
2024-06-25 11:31:52 -07:00
Ryan Dick
b41ea963e7
Expose a few more params from TiledStableDiffusionRefineInvocation.
2024-06-25 11:31:52 -07:00
Ryan Dick
da5d105049
Add support for LoRA models in TiledStableDiffusionRefineInvocation.
2024-06-25 11:31:52 -07:00
Ryan Dick
5301770525
Add naive ControlNet support to TiledStableDiffusionRefineInvocation
2024-06-25 11:31:52 -07:00
Ryan Dick
d08e405017
Fix ControlNetModel type hint import source.
2024-06-25 11:31:52 -07:00
Ryan Dick
534640ccde
Rough prototype of TiledStableDiffusionRefineInvocation is working.
2024-06-25 11:31:52 -07:00
Ryan Dick
d5ab8cab5c
WIP - TiledStableDiffusionRefine
2024-06-25 11:31:52 -07:00
Ryan Dick
4767301ad3
Minor improvements to LatentsToImageInvocation type hints.
2024-06-25 11:31:52 -07:00
Ryan Dick
21d7ca45e6
Expose vae_decode(...) as a staticmethod on LatentsToImageInvocation.
2024-06-25 11:31:52 -07:00
Ryan Dick
020e8eb413
Fix return type of prepare_noise_and_latents(...).
2024-06-25 11:31:52 -07:00
Ryan Dick
3d49541c09
Make init_scheduler() a staticmethod on DenoiseLatentsInvocation so that it can be called externally.
2024-06-25 11:31:52 -07:00
Ryan Dick
1ef266845a
Only allow a single positive/negative prompt conditioning input for tiled refine.
2024-06-25 11:31:52 -07:00
Ryan Dick
a37589ca5f
WIP on TiledStableDiffusionRefine
2024-06-25 11:31:52 -07:00
Ryan Dick
171a505f5e
Convert several methods in DenoiseLatentsInvocation to staticmethods so that they can be called externally.
2024-06-25 11:31:52 -07:00
Ryan Dick
8004a0d5f5
Simplify the logic in prepare_noise_and_latents(...).
2024-06-25 11:31:52 -07:00
Ryan Dick
610a1fd611
Split out the prepare_noise_and_latents(...) logic in DenoiseLatentsInvocation so that it can be called from other invocations.
2024-06-25 11:31:52 -07:00
Ryan Dick
43108eec13
(minor) Add a TODO note to get_scheduler(...).
2024-06-25 11:31:52 -07:00
Lincoln Stein
b03073d888
[MM] Add support for probing and loading SDXL VAE checkpoint files ( #6524 )
...
* add support for probing and loading SDXL VAE checkpoint files
* broaden regexp probe for SDXL VAEs
---------
Co-authored-by: Lincoln Stein <lstein@gmail.com>
2024-06-20 02:57:27 +00:00
steffylo
a43d602f16
fix(queue): add clear_queue_on_startup config to clear problematic queues
2024-06-19 11:39:25 +10:00
Ryan Dick
79ceac2f82
(minor) Use SilenceWarnings as a decorator rather than a context manager to save an indentation level.
2024-06-18 15:06:22 -04:00
Ryan Dick
8e47e005a7
Tidy SilenceWarnings context manager:
...
- Fix type errors
- Enable SilenceWarnings to be used as both a context manager and a decorator
- Remove duplicate implementation
- Check the initial verbosity on __enter__() rather than __init__()
2024-06-18 15:06:22 -04:00
Ryan Dick
d13aafb514
Tidy denoise_latents.py imports to all use absolute import paths.
2024-06-18 15:06:22 -04:00
Brandon Rising
63a7e19dbf
Run ruff
2024-06-18 10:38:29 -04:00
Brandon Rising
fbc5a8ec65
Ignore validation on improperly formatted hashes (pytest)
2024-06-18 10:38:29 -04:00
Brandon Rising
8ce6e4540e
Run ruff
2024-06-18 10:38:29 -04:00
Brandon Rising
f14f377ede
Update validator list
2024-06-18 10:38:29 -04:00
Brandon Rising
1925f83f5e
Update validator list
2024-06-18 10:38:29 -04:00
Brandon Rising
3a5ad6d112
Update validator list
2024-06-18 10:38:29 -04:00
Brandon Rising
41a6bb45f3
Initial functionality
2024-06-18 10:38:29 -04:00
psychedelicious
cd70937b7f
feat(api): improved model install confirmation page styling & messaging
2024-06-17 10:51:08 +10:00
psychedelicious
f002bca2fa
feat(ui): handle new model_install_download_started
event
...
When a model install is initiated from outside the client, we now trigger the model manager tab's model install list to update.
- Handle new `model_install_download_started` event
- Handle `model_install_download_complete` event (this event is not new but was never handled)
- Update optimistic updates/cache invalidation logic to efficiently update the model install list
2024-06-17 10:07:10 +10:00
psychedelicious
56771de856
feat(ui): add redux actions for model_install_download_started
event
2024-06-17 09:52:46 +10:00
psychedelicious
c11478a94a
chore(ui): typegen
2024-06-17 09:51:18 +10:00
psychedelicious
fb694b3e17
feat(app): add model_install_download_started
event
...
Previously, we used `model_install_download_progress` for both download starting and progressing. When handling this event, we don't know which actual thing it represents.
Add `model_install_download_started` event to explicitly represent a model download started event.
2024-06-17 09:50:25 +10:00
psychedelicious
1bc98abc76
docs(ui): explain model install events
2024-06-17 09:33:46 +10:00
chainchompa
7f03b04b2f
Merge branch 'main' into chainchompa/model-install-deeplink
2024-06-14 17:16:25 -04:00
chainchompa
4029972530
formatting
2024-06-14 17:15:55 -04:00
chainchompa
328f160e88
refetch model installs when a new model install starts
2024-06-14 17:09:07 -04:00
chainchompa
aae318425d
added route for installing huggingface model from model marketplace
2024-06-14 17:08:39 -04:00
Ryan Dick
785bb1d9e4
Fix all comparisons against the DEFAULT_PRECISION constant. DEFAULT_PRECISION is a torch.dtype. Previously, it was compared to a str in a number of places where it would always resolve to False. This is a bugfix that results in a change to the default behavior. In practice, this will not change the behavior for many users, because it only causes a change in behavior if a users has configured float32 as their default precision.
2024-06-14 11:26:10 -07:00
Lincoln Stein
a3cb5da130
Improve RAM<->VRAM memory copy performance in LoRA patching and elsewhere ( #6490 )
...
* allow model patcher to optimize away the unpatching step when feasible
* remove lazy_offloading functionality
* allow model patcher to optimize away the unpatching step when feasible
* remove lazy_offloading functionality
* do not save original weights if there is a CPU copy of state dict
* Update invokeai/backend/model_manager/load/load_base.py
Co-authored-by: Ryan Dick <ryanjdick3@gmail.com>
* documentation fixes requested during penultimate review
* add non-blocking=True parameters to several torch.nn.Module.to() calls, for slight performance increases
* fix ruff errors
* prevent crash on non-cuda-enabled systems
---------
Co-authored-by: Lincoln Stein <lstein@gmail.com>
Co-authored-by: Kent Keirsey <31807370+hipsterusername@users.noreply.github.com>
Co-authored-by: Ryan Dick <ryanjdick3@gmail.com>
2024-06-13 17:10:03 +00:00
blessedcoolant
568a4844f7
fix: other recursive imports
2024-06-10 04:12:20 -07:00
blessedcoolant
b1e56e2485
fix: SchedulerOutput not being imported correctly
2024-06-10 04:12:20 -07:00
Lincoln Stein
7d19af2caa
Merge branch 'main' into lstein/feat/simple-mm2-api
2024-06-08 18:55:06 -04:00
Ryan Dick
52c0c4a32f
Rename latent.py -> denoise_latents.py.
2024-06-07 09:28:42 -04:00
Ryan Dick
8f1afc032a
Move SchedulerInvocation to a new file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
854bca668a
Move CreateDenoiseMaskInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
fea9013cad
Move CreateGradientMaskInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
045caddee1
Move LatentsToImageInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
58697141bf
Move ImageToLatentsInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
5e419dbb56
Move ScaleLatentsInvocation and ResizeLatentsInvocation to their own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
595096bdcf
Move BlendLatentsInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
ed03d281e6
Move CropLatentsCoreInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
Ryan Dick
0b37496c57
Move IdealSizeInvocation to its own file. No functional changes.
2024-06-07 09:28:42 -04:00
psychedelicious
fde58ce0a3
Merge remote-tracking branch 'origin/main' into lstein/feat/simple-mm2-api
2024-06-07 14:23:41 +10:00