psychedelicious
48626c40fd
fix(backend): handle systems with glibc
< 2.33
...
`mallinfo2` is not available on `glibc` < 2.33.
On these systems, we successfully load the library but get an `AttributeError` on attempting to access `mallinfo2`.
I'm not sure if the old `mallinfo` will work, and not sure how to install it safely to test, so for now we just handle the `AttributeError`.
This means the enhanced memory snapshot logic will be skipped for these systems, which isn't a big deal.
2023-10-15 07:56:55 +11:00
Lincoln Stein
15cabc4968
Possibly closes #4815
2023-10-12 23:37:05 -04:00
Ryan Dick
40f9e49b5e
Demote model cache logs from warning to debug based on the conversation here: https://discord.com/channels/1020123559063990373/1049495067846524939/1161647290189090816
2023-10-11 12:02:46 -04:00
psychedelicious
15b33ad501
feat(nodes): add freeu support
...
Add support for FreeU. See:
- https://huggingface.co/docs/diffusers/main/en/using-diffusers/freeu
- https://github.com/ChenyangSi/FreeU
Implementation:
- `ModelPatcher.apply_freeu()` handles the enabling freeu (which is very simple with diffusers).
- `FreeUConfig` model added to hold the hyperparameters.
- `freeu_config` added as optional sub-field on `UNetField`.
- `FreeUInvocation` added, works like LoRA - chain it to add the FreeU config to the UNet
- No support for model-dependent presets, this will be a future workflow editor enhancement
Closes #4845
2023-10-11 13:49:28 +11:00
Ryan Dick
61242bf86a
Fix bug in skip_torch_weight_init() where the original behavior of torch.nn.Conv*d modules wasn't being restored correctly.
2023-10-10 10:05:50 -04:00
Ryan Dick
58b56e9b1e
Add a skip_torch_weight_init() context manager to improve model load times (from disk).
2023-10-09 14:12:56 -04:00
Ryan Dick
096d195d6e
Merge branch 'main' into ryan/model-cache-logging-only
2023-10-06 09:52:45 -04:00
Ryan Dick
78377469db
Add support for T2I-Adapter in node workflows ( #4612 )
...
* Bump diffusers to 0.21.2.
* Add T2IAdapterInvocation boilerplate.
* Add T2I-Adapter model to model-management.
* (minor) Tidy prepare_control_image(...).
* Add logic to run the T2I-Adapter models at the start of the DenoiseLatentsInvocation.
* Add logic for applying T2I-Adapter weights and accumulating.
* Add T2IAdapter to MODEL_CLASSES map.
* yarn typegen
* Add model probes for T2I-Adapter models.
* Add all of the frontend boilerplate required to use T2I-Adapter in the nodes editor.
* Add T2IAdapterModel.convert_if_required(...).
* Fix errors in T2I-Adapter input image sizing logic.
* Fix bug with handling of multiple T2I-Adapters.
* black / flake8
* Fix typo
* yarn build
* Add num_channels param to prepare_control_image(...).
* Link to upstream diffusers bugfix PR that currently requires a workaround.
* feat: Add Color Map Preprocessor
Needed for the color T2I Adapter
* feat: Add Color Map Preprocessor to Linear UI
* Revert "feat: Add Color Map Preprocessor"
This reverts commit a1119a00bf
.
* Revert "feat: Add Color Map Preprocessor to Linear UI"
This reverts commit bd8a9b82d8
.
* Fix T2I-Adapter field rendering in workflow editor.
* yarn build, yarn typegen
---------
Co-authored-by: blessedcoolant <54517381+blessedcoolant@users.noreply.github.com>
Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
2023-10-05 16:29:16 +11:00
Ryan Dick
2479a59e5e
Re-enable garbage collection in model cache MemorySnapshots.
2023-10-03 15:18:47 -04:00
Ryan Dick
7d0ac2c36d
(minor) clean up typos.
2023-10-03 15:00:03 -04:00
Ryan Dick
519b892f0c
Add unit test for Struct_mallinfo2.__str__()
2023-10-03 14:25:34 -04:00
Ryan Dick
763dcacfd3
Add unit test for get_pretty_snapshot_diff(...).
2023-10-03 14:25:34 -04:00
Ryan Dick
22a84930f6
Disable garbage collection in ModelCache calls to MemorySnapshot in order minimize snapshot overhead.
2023-10-03 14:25:34 -04:00
Ryan Dick
d64e17e043
Add README with info about glib memory fragmentation caused by the model cache.
2023-10-03 14:25:34 -04:00
Ryan Dick
ba54277011
Catch a more specific exception in environments that do not have a libc shared library.
2023-10-03 14:25:34 -04:00
Ryan Dick
5915a4a51c
Minor fixes.
2023-10-03 14:25:34 -04:00
Ryan Dick
4580ba0d87
Remove logic to update model cache size estimates dynamically.
2023-10-03 14:25:34 -04:00
Ryan Dick
b9fd2e9e76
Improve get_pretty_snapshot_diff(...) message formatting.
2023-10-03 14:25:34 -04:00
Ryan Dick
75b65597af
Add malloc info to MemorySnapshot.
2023-10-03 14:25:34 -04:00
Ryan Dick
2a3c0ab5d2
Move MemorySnapshot to its own file.
2023-10-03 14:25:34 -04:00
Ryan Dick
7d61373b82
Add LibcUtil class.
2023-10-03 14:25:34 -04:00
Ryan Dick
7d65555a5a
Fix type error in torch device comparison.
2023-10-03 14:25:34 -04:00
Ryan Dick
123f2b2dbc
Update cache model size estimates based on changes in VRAM when moving models to/from CUDA.
2023-10-03 14:25:34 -04:00
Ryan Dick
1e4e42556e
Update model cache device comparison to treat 'cuda' and 'cuda:0' as the same device type.
2023-10-03 14:25:34 -04:00
Ryan Dick
1f6699ac43
Consolidate all model.to(...) calls in the model cache to use a utility function with better logging.
2023-10-03 14:25:34 -04:00
Ryan Dick
ace8665411
Add warning log if moving a model from cuda to cpu causes unexpected change in VRAM usage.
2023-10-03 14:25:34 -04:00
Ryan Dick
7fa5bae8fd
Add warning log if moving model from RAM to VRAM causes an unexpected change in VRAM usage.
2023-10-03 14:25:34 -04:00
Ryan Dick
f9faca7c91
Add warning log if model mis-reports its required cache memory before load from disk.
2023-10-03 14:25:34 -04:00
Ryan Dick
594fd3ba6d
Add debug logging of changes in RAM and VRAM for all model cache operations.
2023-10-03 14:25:34 -04:00
Ryan Dick
44d68f5ed5
Auto-format model_cache.py.
2023-10-03 14:25:34 -04:00
Ryan Dick
399ebe443e
Fix IP-Adapter calculation of memory footprint.
2023-09-25 18:28:10 -04:00
Lincoln Stein
a1d9e6b871
Merge branch 'main' into bugfix/probe_ip_adapter
2023-09-24 15:39:43 -04:00
Lincoln Stein
e34e6d6e80
enable v_prediction for sd-1 models
2023-09-24 12:22:29 -04:00
Lincoln Stein
86cb53342a
fix probing for ip_adapter folders
2023-09-23 22:32:03 -04:00
Lincoln Stein
25a71a1791
Merge branch 'main' into refactor/rename-get-logger
2023-09-23 14:49:07 -07:00
Kevin Turner
e487bcd0f7
feat(model management): guess whether a VAE is for SDXL based on its name
2023-09-20 12:07:12 -07:00
Kevin Turner
e0f8274f49
feat(model management): guess whether a VAE is for SDXL based on its name
2023-09-20 12:06:55 -07:00
Kevin Turner
f222b871e9
Merge remote-tracking branch 'origin/main' into feat/taesd
...
# Conflicts:
# invokeai/backend/model_management/model_probe.py
2023-09-20 10:46:55 -07:00
Ryan Dick
343df03a92
isort
2023-09-15 13:18:00 -04:00
Ryan Dick
b57acb7353
Merge branch 'main' into feat/ip-adapter
2023-09-15 13:15:25 -04:00
Kent Keirsey
afe9756667
Merge branch 'main' into feat/taesd
2023-09-15 12:19:19 -04:00
Ryan Dick
16664da5b6
black
2023-09-14 23:49:02 -04:00
Ryan Dick
990ce9a1da
Lookup IP-Adapter linked image encoder from disk instead of storing in model config metadata.
2023-09-14 23:06:57 -04:00
Ryan Dick
c2f074dc2f
Fix python static checks.
2023-09-14 16:48:47 -04:00
Ryan Dick
94c186bb4c
Fix bug in IPAdapter.to(...).
2023-09-14 15:45:25 -04:00
Ryan Dick
a22c8cb3a1
Improve robustness of check for IPAdapter vs IPAdapterPlus.
2023-09-14 15:25:41 -04:00
Ryan Dick
388554448a
Add CLIP Vision model to IP-Adapter info and use this to infer which model to use.
2023-09-14 11:57:53 -04:00
Ryan Dick
d5160648d0
Add support for downloading IP-Adapter models from HF.
2023-09-14 11:18:43 -04:00
Ryan Dick
6d0ea42a94
Get CLIPVision model download from HF working.
2023-09-14 09:54:10 -04:00
Ryan Dick
2c1100509f
Add BaseModelType.Any to be used by CLIPVisionModel.
2023-09-14 08:19:55 -04:00
Ryan Dick
77d135967f
Update IPAdapterModel to respect requested torch_dtype.
2023-09-13 21:06:42 -04:00
Ryan Dick
ebf26687cb
(minor) Remove unnecessary TODO.
2023-09-13 21:03:42 -04:00
Ryan
2f5e923008
Removed duplicate import in model_cache.py
2023-09-13 19:33:43 -04:00
Ryan
b7296000e4
made MPS calls conditional on MPS actually being the chosen device with backend available
2023-09-13 19:33:43 -04:00
Ryan
fab055995e
Add empty_cache() for MPS hardware.
2023-09-13 19:33:43 -04:00
Ryan Dick
1c8991a3df
Use CLIPVisionModel under model management for IP-Adapter.
2023-09-13 19:10:02 -04:00
Ryan Dick
3d52656176
Add CLIPVisionModel to model management.
2023-09-13 17:14:20 -04:00
Kevin Turner
090db1ab3a
Merge remote-tracking branch 'origin/main' into feat/taesd
2023-09-13 09:17:53 -07:00
Ryan Dick
3ee9a21647
Initial (barely) working version of IP-Adapter model management.
2023-09-13 08:27:24 -04:00
Ryan Dick
0d823901ef
Add IPAdapter to model_management __init__.py
2023-09-13 08:27:24 -04:00
Ryan Dick
7ee55489bb
Improve model search warning messages.
2023-09-13 08:27:24 -04:00
Ryan Dick
163ece9aee
Initial skeleton for IPAdapter model management.
2023-09-13 08:27:24 -04:00
Martin Kristiansen
e88d7c242f
isort wip 3
2023-09-12 13:01:58 -04:00
Martin Kristiansen
caea6d11c6
isort wip 2
2023-09-12 13:01:58 -04:00
psychedelicious
d8f7c19030
Merge branch 'main' into refactor/rename-get-logger
2023-09-05 10:37:53 +10:00
Kevin Turner
7df67d077a
Merge branch 'main' into feat/taesd
2023-09-01 22:18:40 -07:00
Lincoln Stein
6f6d920686
[Feature] Support the XL inpainting model ( #4431 )
...
* add StableDiffusionXLInpaintPipeline to probe list
* add StableDiffusionXLInpaintPipeline to probe list
* Blackified (?)
---------
Authored-by: Lincoln Stein <lstein@gmail.com>
Mucked about with to get it merged by: Kent Keirsey <31807370+hipsterusername@users.noreply.github.com>
2023-09-01 22:58:14 -04:00
Kevin Turner
bc1bce18b0
Merge branch 'main' into feat/taesd
2023-08-31 20:26:10 -07:00
blessedcoolant
cfee8d9804
chore: seamless print statement cleanup
2023-08-29 13:09:30 +12:00
blessedcoolant
605e13eac0
chore: black fix
2023-08-29 07:50:17 +12:00
Kent Keirsey
2a1d7342a7
Seamless Patch from Stalker
2023-08-28 15:48:05 -04:00
blessedcoolant
99475ab800
chore: pyflake lint fixes
2023-08-29 05:16:23 +12:00
Sergey Borisov
bb085c5fba
Move monkeypatch for diffusers/torch bug to hotfixes.py
2023-08-28 18:29:49 +03:00
Kent Keirsey
421f5b7d75
Seamless Updates
2023-08-28 08:43:08 -04:00
blessedcoolant
3ef36707a8
chore: Black lint
2023-08-28 23:10:00 +12:00
Kent Keirsey
1f476692da
Seamless fixes
2023-08-28 00:10:46 -04:00
Kent Keirsey
5fdd25501b
updates per stalkers comments
2023-08-27 22:54:53 -04:00
Millun Atluri
24132a7950
Merge branch 'main' into refactor/rename-get-logger
2023-08-28 11:38:37 +10:00
Kent Keirsey
ea40a7844a
add VAE
2023-08-27 14:53:57 -04:00
Kent Keirsey
0d2e194213
Fixed dict error
2023-08-27 14:21:56 -04:00
Kent Keirsey
3de45af734
updates
2023-08-27 14:13:00 -04:00
Kevin Turner
dff466244d
Merge remote-tracking branch 'origin/main' into feat/taesd
...
# Conflicts:
# invokeai/app/invocations/latent.py
2023-08-25 15:21:47 -07:00
Lincoln Stein
45d172d5a8
Merge branch 'main' into refactor/rename-get-logger
2023-08-20 16:08:32 -04:00
Lincoln Stein
8e6d88e98c
resolve merge conflicts
2023-08-20 15:26:52 -04:00
Kevin Turner
6f9c1c6d4e
Merge remote-tracking branch 'origin/dep/diffusers020' into feat/taesd
...
# Conflicts:
# invokeai/app/invocations/latent.py
2023-08-18 14:19:27 -07:00
Kevin Turner
2fef478497
fix(convert_ckpt): Removed is_safetensors_available
as safetensors is now a required dependency.
2023-08-18 11:05:59 -07:00
Kevin Turner
6df6abf6f6
Merge branch 'main' into dep/diffusers020
2023-08-18 11:02:52 -07:00
Martin Kristiansen
ce465acf04
Fixed OnnxRuntimeModel import
2023-08-18 15:52:04 +10:00
Martin Kristiansen
33ee418d8c
Fixing class level import
2023-08-18 15:52:04 +10:00
Martin Kristiansen
537ae2f901
Resolving merge conflicts for flake8
2023-08-18 15:52:04 +10:00
Kevin Turner
26a7b7b66d
feat(model_probe): provide more clues when we fail to load a model.
2023-08-17 20:08:53 -07:00
Kevin Turner
8611ffe32d
feat(TAESD): support TAESD — Tiny Autoencoder for Stable Diffusion
2023-08-17 20:08:53 -07:00
Kevin Turner
98a4cc20a9
Merge branch 'main' into dep/diffusers020
2023-08-17 20:04:11 -07:00
Lincoln Stein
e2bdcc0271
Merge branch 'main' into refactor/rename-performance-options
2023-08-17 22:36:08 -04:00
Lincoln Stein
ffd0f5924b
pass lazy_offload to model cache
2023-08-17 22:35:16 -04:00
Lincoln Stein
3cb6d333f6
Merge branch 'main' into refactor/rename-get-logger
2023-08-17 20:31:30 -04:00
Lincoln Stein
1d107f30e5
remove getLogger() completely
2023-08-17 19:17:38 -04:00
Kevin Turner
4267132926
dep(diffusers): upgrade diffusers to 0.20
...
Removed `is_safetensors_available` as safetensors is now a required dependency of diffusers.
2023-08-17 13:42:29 -07:00
Lincoln Stein
23b4e1cea0
Merge branch 'main' into refactor/rename-performance-options
2023-08-17 14:43:00 -04:00
Lincoln Stein
ed38eaa10c
refactor InvokeAIAppConfig
2023-08-17 13:47:26 -04:00