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