blessedcoolant
2c6772f92f
Merge branch 'main' into bugfix/trim-whitespace-from-urls
2023-10-15 17:41:41 +05:30
blessedcoolant
c9d95e5758
Merge branch 'main' into bugfix/ignore-dot-directories-on-model-scan
2023-10-15 17:23:02 +05:30
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
Ryan Dick
8464450a53
Add support for multi-image IP-Adapter.
2023-10-14 12:50:33 -04:00
Lincoln Stein
a1001b6d10
Merge branch 'main' into bugfix/ignore-dot-directories-on-model-scan
2023-10-14 10:37:55 -04:00
Lincoln Stein
15cabc4968
Possibly closes #4815
2023-10-12 23:37:05 -04:00
Lincoln Stein
29c3f49182
enable the ram cache slider in invokeai-configure
2023-10-12 23:04:16 -04:00
Lincoln Stein
21d5969942
strip leading and trailing quotes as well as whitespace
2023-10-12 22:35:02 -04:00
Lincoln Stein
52274087f3
close #4536
2023-10-12 21:24:07 -04:00
psychedelicious
9646157ad5
fix: fix test imports
2023-10-12 12:15:06 -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
Lincoln Stein
fe0cf2c160
remove hardcoded subfolder name from model downloader
2023-10-08 17:45:39 -04:00
Ryan Dick
971ccfb081
Refactor multi-IP-Adapter to clean up the interface around changing scales.
2023-10-06 20:43:43 -04:00
Ryan Dick
43a3c3c7ea
Fix typo in setting IP-Adapter scales.
2023-10-06 20:43:43 -04:00
Ryan Dick
4df1cdb34d
Tidy _prepare_attention_processors(...) logic.
2023-10-06 20:43:43 -04:00
Ryan Dick
d8d0c9af09
Fix handling of scales with multiple IP-Adapters.
2023-10-06 20:43:43 -04:00
Ryan Dick
26b91a538a
Fixes to get IP-Adapter tests working with new multi-IP-Adapter support.
2023-10-06 20:43:43 -04:00
Ryan Dick
7ca456d674
Update IP-Adapter model to enable running multiple IP-Adapters at once. (Not tested yet.)
2023-10-06 20:43:43 -04:00
Ryan Dick
78828b6b9c
WIP - Accept a list of IPAdapterFields in DenoiseLatents.
2023-10-06 20:43:43 -04:00
Ryan Dick
4f97bd4418
Merge branch 'main' into ryan/model-tests
2023-10-06 19:47:28 -04:00
Ryan Dick
e0e001758a
Remove @slow decorator in favor of @pytest.mark.slow.
2023-10-06 18:26:06 -04:00
Ryan Dick
096d195d6e
Merge branch 'main' into ryan/model-cache-logging-only
2023-10-06 09:52:45 -04:00
Ryan Dick
1c8b1fbc53
POC of a test that depends on models.
2023-10-05 15:35:58 -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
fbe6452c45
Add support for IPAdapterPlusXL based on 6219530507
.
2023-10-04 22:35:17 -04: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
psychedelicious
045d3f6139
chore: flake8
2023-09-28 13:49:31 +10:00
Lincoln Stein
f6bbcd0589
remove dangling debug statement
2023-09-27 22:26:26 -04:00
Lincoln Stein
ada22a799e
remove dangling debug statement
2023-09-27 22:26:06 -04:00
Lincoln Stein
034af2d9f8
enable downloading from subfolders for repo_ids
2023-09-27 22:11:56 -04:00
Ryan Dick
0fc14afcf0
Merge branch 'main' into bug/ip-adapter-calc-size
2023-09-27 09:42:51 -04:00
Lincoln Stein
3fd27b1aa9
run correct version of black
2023-09-26 08:03:34 -04:00
Lincoln Stein
d59e534cad
use heuristic to select RAM cache size during headless install; blackified
2023-09-26 08:03:34 -04:00
Ryan Dick
399ebe443e
Fix IP-Adapter calculation of memory footprint.
2023-09-25 18:28:10 -04:00
Lincoln Stein
43ebd68313
Merge branch 'main' into install/install-ip-adapters
2023-09-24 23:19:25 -04:00
Lincoln Stein
912087e4dc
blackify
2023-09-24 19:00:38 -04:00
Lincoln Stein
593fb95213
ip_adapter_sd15 & its encoder will now be installed by default during headless install
2023-09-24 19:00:21 -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
Ryan Dick
bf62553150
(minor) Update documentation to reflect that a bug was fixed in InvokeAI/ip_adapter_sdxl_vit_h by e178288fb6
2023-09-20 20:18:33 -04:00
Lincoln Stein
0960518088
add techjedi's database maintenance script
2023-09-20 17:46:49 -04:00
Kevin Turner
b1b5f70ea6
Merge branch 'main' into feat/taesd
2023-09-20 12:54:17 -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
Lincoln Stein
0420874f56
reimplement the old invokeai-metadata command
2023-09-20 13:49:29 -04: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
92b49e45bb
Address flake8 error.
2023-09-18 16:33:16 -04:00
Ryan Dick
b05b8ef677
Switch to using torch 2.0 attention for IP-Adapter (more memory-efficient).
2023-09-18 16:30:53 -04:00
blessedcoolant
e0dddbd38e
chore: fix isort issues
2023-09-17 12:13:03 +12:00
blessedcoolant
b7773c9962
chore: black & lint fixes
2023-09-17 12:00:21 +12:00
user1
c48e648cbb
Added per-step setting of IP-Adapter weights (for param easing, etc.)
2023-09-16 12:36:16 -07:00
user1
7ee13879e3
Added check in IP-Adapter to avoid begin/end step percent handling if use of IP-Adapter is already turned off due to potential clash with other cross attention control.
2023-09-16 09:29:50 -07:00
user1
ced297ed21
Initial implementation of IP-Adapter "begin_step_percent" and "end_step_percent" for controlling on which steps IP-Adapter is applied in the denoising loop.
2023-09-16 08:24:12 -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
Sergey Borisov
ff3150a818
Update lora hotfix to new diffusers version(scale argument added)
2023-09-15 12:19:01 -04:00
Ryan Dick
16664da5b6
black
2023-09-14 23:49:02 -04:00
Ryan Dick
c104807201
Update list of supported IP-Adapters.
2023-09-14 23:43:19 -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
fca60862e2
Add README.md describing IP-Adapter model formats.
2023-09-14 16:02:07 -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
781e8521d5
Eliminate the need for IPAdapter.initialize().
2023-09-14 15:02:59 -04:00
Ryan Dick
d114d0ba95
Remove need for the image_encoder param in IPAdapter.initialize().
2023-09-14 14:14:35 -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
c34b359c36
(minor) Remove duplicate TODO.
2023-09-13 21:25:20 -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
e467ca7f1b
Apply black, isort, flake8
2023-09-12 13:01:58 -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
Millun Atluri
88db094cf2
Merge branch 'main' into feat/taesd
2023-09-11 22:11:25 +10:00
Ryan Dick
50a0691514
flake8
2023-09-08 18:05:31 -04:00
Ryan Dick
a255624984
black
2023-09-08 17:55:23 -04:00
Ryan Dick
2630fe3608
Remove unused ip_adapter/utils.py file.
2023-09-08 16:25:34 -04:00
Ryan Dick
6ca6cf713c
Tidy IPAdapter. Add types, improve field/method naming.
2023-09-08 16:00:58 -04:00
Ryan Dick
3f7d5b4e0f
Remove redundant IPAdapterXL class.
2023-09-08 15:46:10 -04:00
Ryan Dick
91596d9527
Re-factor IPAdapter to patch UNet in a context manager.
2023-09-08 15:39:22 -04:00
Ryan Dick
d669f0855d
Comment unused IPAdapter generate(...) methods.
2023-09-08 13:12:42 -04:00
Ryan Dick
b2d5b53b5f
Pass IP-Adapter conditioning via cross_attention_kwargs instead of concatenating to the text embedding. This avoids interference with other features that manipulate the text embedding (e.g. long prompts).
2023-09-08 11:47:36 -04:00
Ryan Dick
ddc148b70b
Move ConditioningData and its field classes to their own file. This will allow new conditioning types to be added more cleanly without introducing circular dependencies.
2023-09-08 11:00:11 -04:00
Ryan Dick
c2d43f007b
Specify the image_embedding_len in the IPAttnProcessor rather than the text embedding length. This enables the IPAttnProcessor to handle text embeddings of varying lengths.
2023-09-07 18:20:21 -04:00
Ryan Dick
7703bf2ca1
Delete IP-Adapter copies of AttnProcessor and AttnProcessor2_0, which were unmodified from diffusers.
2023-09-07 15:00:13 -04:00
Millun Atluri
b5e1ba34b3
Merge branch 'main' into refactor/rename-get-logger
2023-09-07 23:19:59 +10:00
Ryan Dick
23fdf0156f
Clean up IP-Adapter in diffusers_pipeline.py - WIP
2023-09-06 20:42:20 -04:00
Ryan Dick
d776e0a0a9
Split ControlField and IpAdapterField.
2023-09-06 17:03:37 -04:00
Lincoln Stein
c54c1f603b
Merge branch 'main' into bugfix/set-vram-on-macs
2023-09-05 07:09:39 -04:00
blessedcoolant
f44496a579
Merge branch 'main' into feat/ip-adapter
2023-09-05 15:22:15 +12:00
psychedelicious
95ecb1a0c1
fix(ip_adapter): add None to types
2023-09-05 12:30:00 +10:00
blessedcoolant
a9fafad5b5
chore: sync, lint & update
2023-09-05 14:17:23 +12:00
Lincoln Stein
d2e327add9
install models/core/misc/lama/lama.pt
2023-09-04 21:54:40 -04:00
psychedelicious
58aa159a50
fix(backend): fix remaining instances of getLogger()
2023-09-05 10:43:30 +10:00
psychedelicious
d8f7c19030
Merge branch 'main' into refactor/rename-get-logger
2023-09-05 10:37:53 +10:00
blessedcoolant
3ac68cde66
chore: flake8 cleanup
2023-09-05 12:07:12 +12:00
blessedcoolant
65a76a086b
cleanup: Some basic cleanup
2023-09-05 11:54:28 +12:00
blessedcoolant
07381e5a26
cleanup: merge conflicts
2023-09-05 11:37:12 +12:00
blessedcoolant
6bb378a101
Merge branch 'main' into feat/ip-adapter
2023-09-05 11:35:19 +12:00
blessedcoolant
917c2c480e
Merge branch 'main' into lama-infill
2023-09-03 23:16:34 +12:00
blessedcoolant
f1f7778e73
Merge branch 'main' into chore/clean-up-unused-files
2023-09-03 02:59:31 +12:00
Lincoln Stein
c965d3eb6b
Merge branch 'main' into bugfix/set-vram-on-macs
2023-09-02 10:08:13 -04:00
blessedcoolant
ec09e21fc2
Merge branch 'main' into lama-infill
2023-09-02 23:02:38 +12: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
psychedelicious
4b78deba92
Merge branch 'main' into bugfix/set-vram-on-macs
2023-09-02 11:33:20 +10:00
psychedelicious
b761807219
Merge branch 'main' into feat/ip-adapter
2023-09-02 11:31:08 +10:00
psychedelicious
9cb04f6f80
chore: remove unused files
2023-09-02 11:12:19 +10:00
blessedcoolant
48484e9fc8
Merge branch 'main' into lama-infill
2023-09-02 11:08:31 +12:00
blessedcoolant
a12fbc7406
chore: black fix
2023-09-02 10:51:53 +12:00
Sergey Borisov
5151798a16
Cleanup memory after model run
2023-09-01 20:50:39 +03:00