Lincoln Stein
778fd55f0d
Merge branch 'main' into refactor/model-manager-3
2023-12-01 09:15:18 -05:00
Lincoln Stein
5a3f1f2b22
fix ruff github format errors
2023-12-01 01:59:26 -05:00
Lincoln Stein
f95ce1870c
fix ruff format check
2023-12-01 01:46:12 -05:00
Lincoln Stein
0719a46372
add support for SDXL textual inversion/embeddings
2023-12-01 01:28:28 -05:00
Ryan Dick
bfdef120d1
Re-organize merge_tiles_with_linear_blending(...) to merge rows horizontally first and then vertically. This change achieves slightly more natural blending on the corners where 4 tiles overlap.
2023-11-30 07:53:27 -08:00
Ryan Dick
76b888de17
Add unit tests for merge_tiles_with_linear_blending(...).
2023-11-30 07:53:27 -08:00
Ryan Dick
65a16be299
Add unit tests for calc_tiles_with_overlap(...) and fix a bug in its implementation.
2023-11-30 07:53:27 -08:00
Ryan Dick
29eade4880
Add nodes for tile splitting and merging. The main motivation for these nodes is for use in tiled upscaling workflows.
2023-11-30 07:53:27 -08:00
Damian Stewart
0beb08686c
Add CFG Rescale option for supporting zero-terminal SNR models ( #4335 )
...
* add support for CFG rescale
* fix typo
* move rescale position and tweak docs
* move input position
* implement suggestions from github and discord
* cleanup unused code
* add back dropped FieldDescription
* fix(ui): revert unrelated UI changes
* chore(nodes): bump denoise_latents version 1.4.0 -> 1.5.0
* feat(nodes): add cfg_rescale_multiplier to metadata node
* feat(ui): add cfg rescale multiplier to linear UI
- add param to state
- update graph builders
- add UI under advanced
- add metadata handling & recall
- regen types
* chore: black
* fix(backend): make `StableDiffusionGeneratorPipeline._rescale_cfg()` staticmethod
This doesn't need access to class.
* feat(backend): add docstring for `_rescale_cfg()` method
* feat(ui): update cfg rescale mult translation string
---------
Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
2023-11-30 20:55:20 +11:00
Ryan Dick
693c6cf5e4
Add support for IPAdapterFull models. The changes are based on this upstream PR: https://github.com/tencent-ailab/IP-Adapter/pull/139 .
2023-11-29 15:07:21 -08:00
Lincoln Stein
ecd3dcd5df
Merge branch 'main' into refactor/model-manager-3
2023-11-27 22:15:51 -05:00
Lincoln Stein
ae82df0fda
fix a bunch of type mismatches in the logging module
2023-11-28 09:38:35 +11:00
Steven Frank
e509d719ee
Fix attempt to deserialize on CUDA on Mac
...
Without specifying "cpu", attempts to use non-existent CUDA to deserialize embeddings on macOS, resulting in a warning / failure to load.
2023-11-28 09:24:57 +11:00
Lincoln Stein
a79e814c8d
Merge branch 'main' into refactor/model-manager-3
2023-11-27 16:06:42 -05:00
psychedelicious
7653d21cf5
feat(backend): rename realesrgan class & upscale method
2023-11-28 07:58:22 +11:00
psychedelicious
46a2d83b84
feat(backend): organise realesrgan code, add license
...
- Moved util to own folder
- BSD3 License for RealESRGAN repo added
2023-11-28 07:58:22 +11:00
psychedelicious
2192210910
feat(nodes): remove dependency on realesrgan
...
We used the `RealESRGANer` utility class from the repo. It handled model loading and tiled upscaling logic.
Unfortunately, it hasn't been updated in over a year, had no types, and annoyingly printed to console.
I've adapted the class, cleaning it up a bit and removing the bits that are not relevant for us.
Upscaling functionality is identical.
2023-11-28 07:58:22 +11:00
Lincoln Stein
8ef596eac7
further changes for ruff
2023-11-26 17:13:31 -05:00
Lincoln Stein
8695ad6f59
all features implemented, docs updated, ready for review
2023-11-26 13:18:21 -05:00
Lincoln Stein
8aefe2cefe
import_model and list_install_jobs router APIs written
2023-11-25 21:45:59 -05:00
Lincoln Stein
ec510d34b5
fix model probing for controlnet checkpoint legacy config files
2023-11-25 15:53:22 -05:00
Lincoln Stein
19baea1883
all backend features in place; config scanning is failing on controlnet
2023-11-24 19:37:46 -05:00
Lincoln Stein
80bc9be3ab
make install_path and register_path work; refactor model probing
2023-11-23 23:15:32 -05:00
Lincoln Stein
8c7a7bc897
Merge branch 'main' into refactor/model-manager-3
2023-11-22 22:29:23 -05:00
Lincoln Stein
4aab728590
move name/description logic into model_probe.py
2023-11-22 22:29:02 -05:00
Lincoln Stein
9cf060115d
Merge branch 'main' into refactor/model-manager-3
2023-11-22 22:28:31 -05:00
Lincoln Stein
98a4930a52
add probe support for LCM main models
2023-11-22 14:58:27 -05:00
psychedelicious
1a596a5684
fix(backend): fix unintentional change to import orders
...
- Ignore I001 (isort rules) for this file
- Ignore F401 (unused imports) for this file
2023-11-21 20:22:27 +11:00
psychedelicious
da443973cb
chore: ruff
2023-11-21 20:22:27 +11:00
Lincoln Stein
9ea3126118
start implementation of installer
2023-11-20 23:02:30 -05:00
Lincoln Stein
acc0a29dca
fixed ruff formatting issues
2023-11-13 18:15:17 -05:00
Lincoln Stein
38c1436f02
resolve conflicts; blackify
2023-11-13 18:12:45 -05:00
Lincoln Stein
efbdb75568
implement psychedelicious recommendations as of 13 November
2023-11-13 17:05:01 -05:00
psychedelicious
bc64cde6f9
chore: ruff lint
2023-11-14 07:57:07 +11:00
psychedelicious
4465f97cdf
Merge branch 'main' into refactor/model-manager-2
2023-11-14 07:51:57 +11:00
psychedelicious
04d8f2dfea
fix(backend): fix controlnet zip len
...
Do not use `strict=True` when scaling controlnet conditioning.
When using `guess_mode` (e.g. `more_control` or `more_prompt`), `down_block_res_samples` and `scales` are zipped.
These two objects are of different lengths, so using zip's strict mode raises an error.
In testing, `len(scales) === len(down_block_res_samples) + 1`.
It appears this behaviour is intentional, as the final "extra" item in `scales` is used immediately afterwards.
2023-11-13 15:45:03 +11:00
Lincoln Stein
8c71ff37ae
Update config.py
...
Co-authored-by: psychedelicious <4822129+psychedelicious@users.noreply.github.com>
2023-11-12 19:03:39 -05:00
Lincoln Stein
8afe517204
add note about discriminated union and Body() issue; blackified
2023-11-12 16:50:05 -05:00
Lincoln Stein
7ea2a135f1
remove dangling import
2023-11-11 12:24:58 -05:00
Lincoln Stein
af2264b6eb
implement workaround for FastAPI and discriminated unions in Body parameter
2023-11-11 12:22:38 -05:00
Lincoln Stein
2b36565e9e
awkward workaround for double-Annotated in model_record route
2023-11-10 21:32:44 -05:00
Lincoln Stein
cb8cdefd59
Merge branch 'main' into refactor/model-manager-2
2023-11-10 19:24:19 -05:00
Lincoln Stein
f1c846ba5c
blackify
2023-11-10 19:14:29 -05:00
Lincoln Stein
3a6ba236f5
replace _class_map
in ModelConfigFactory
with a nested discriminated union
2023-11-10 19:14:15 -05:00
psychedelicious
6494e8e551
chore: ruff format
2023-11-11 10:55:40 +11:00
psychedelicious
513fceac82
chore: ruff check - fix pycodestyle
2023-11-11 10:55:33 +11:00
psychedelicious
99a8ebe3a0
chore: ruff check - fix flake8-bugbear
2023-11-11 10:55:28 +11:00
psychedelicious
3a136420d5
chore: ruff check - fix flake8-comprensions
2023-11-11 10:55:23 +11:00
Lincoln Stein
0544917161
multiple small fixes suggested in reviews from psychedelicious and ryan
2023-11-10 18:25:37 -05:00
Lincoln Stein
f1c195afb7
Merge branch 'main' into refactor/model-manager-2
2023-11-10 17:54:28 -05:00
Wubbbi
6001d3d71d
Change pad_to_multiple_of to be 8 for all cases. Add comment about it's temporary status
2023-11-10 17:51:59 -05:00
Wubbbi
8831d1ee41
Update Documentation
2023-11-10 17:51:59 -05:00
Wubbbi
a0be83e370
Update Transformers to 4.34 and fix pad_to_multiple_of
2023-11-10 17:51:59 -05:00
Lincoln Stein
8702a63197
add support for downloading and installing LCM lora diffusers models
2023-11-10 17:51:30 -05:00
blessedcoolant
356b5a41a9
wip: Add LCMScheduler
2023-11-10 06:54:36 -08:00
psychedelicious
2570497d83
fix(installer): fix import of ValidationError
...
It was being imported from a deprecated module
2023-11-10 06:11:15 +11:00
psychedelicious
6aa87f973e
fix(nodes): create app/shared/
module to prevent circular imports
...
We have a number of shared classes, objects, and functions that are used in multiple places. This causes circular import issues.
This commit creates a new `app/shared/` module to hold these shared classes, objects, and functions.
Initially, only `FreeUConfig` and `FieldDescriptions` are moved here. This resolves a circular import issue with custom nodes.
Other shared classes, objects, and functions will be moved here in future commits.
2023-11-09 16:41:55 +11:00
Lincoln Stein
927f8a66e6
Merge branch 'main' into refactor/model-manager-2
2023-11-08 16:46:08 -05:00
Lincoln Stein
6b173cc66f
multiple small stylistic changes requested by reviewers
2023-11-08 16:45:26 -05:00
Lincoln Stein
ce22c0fbaa
sync pydantic and sql field names; merge routes
2023-11-06 18:08:57 -05:00
Kent Keirsey
ff8a8a1963
Merge branch 'main' into feat/nodes/freeu
2023-11-06 09:04:54 -08:00
Kent Keirsey
67f2616d5a
Merge branch 'main' into revert-4923-revert-4914-feat/mix-cnet-t2iadapter
2023-11-06 07:34:51 -08:00
Kent Keirsey
e66d0f7372
Merge branch 'main' into feat/nodes/freeu
2023-11-06 05:39:58 -08:00
Lincoln Stein
edeea5237b
add sql-based model config store and api
2023-11-04 23:03:26 -04:00
Ryan Dick
aa02ebf8f5
Fix model cache gc.collect() condition.
2023-11-04 08:52:10 -04:00
Ryan Dick
fb3d0c4b12
Fix bug in model cache reference count checking.
2023-11-03 13:50:40 -07:00
Ryan Dick
8488ab0134
Reduce frequency that we call gc.collect() in the model cache.
2023-11-03 13:50:40 -07:00
Ryan Dick
875231ed3d
Add reminder to clean up our model cache clearing logic.
2023-11-03 13:50:40 -07:00
Ryan Dick
43b300498f
Remove explicit gc.collect() after transferring models from device to CPU. I'm not sure why this was there in the first place, but it was taking a significant amount of time (up to ~1sec in my tests).
2023-11-03 13:50:40 -07:00
Ryan Dick
e391f3c9a8
Skip torch.nn.Embedding.reset_parameters(...) when loading a text encoder model.
2023-11-02 19:41:33 -07:00
Ryan Dick
6e7a3f0546
(minor) Fix static checks and typo.
2023-11-02 19:20:37 -07:00
Ryan Dick
4a683cc669
Add a app config parameter to control the ModelCache logging behavior.
2023-11-02 19:20:37 -07:00
Ryan Dick
3781e56e57
Add log_memory_usage param to ModelCache.
2023-11-02 19:20:37 -07:00
Ryan Dick
8ff49109a8
Update get_pretty_snapshot_diff(...) to handle None-snapshots.
2023-11-02 19:20:37 -07:00
Ryan Dick
bac2a757e8
Replace deepcopy with a pickle roundtrip in apply_ti(...) to improve speed.
2023-11-02 19:05:24 -07:00
Ryan Dick
fa7f6a6a10
Further tidying of LoRA patching. Revert some changes that didn't end up being important under the constraint that calculations are done on the same device as the model.
2023-11-02 10:03:17 -07:00
Ryan Dick
61b17c475a
Add TODO note about improving _resolve_lora_key(...).
2023-11-02 10:03:17 -07:00
Ryan Dick
379d68f595
Patch LoRA on device when model is already on device.
2023-11-02 10:03:17 -07:00
Ryan Dick
545c811bf1
Remove device and dtype members from LoRAModelRaw, they can too easily get out-of-sync with the underlying layer states.
2023-11-02 10:03:17 -07:00
Ryan Dick
2ba5b44ec4
Remove unused _lora_forward_hook(...).
2023-11-02 10:03:17 -07:00
Ryan Dick
7f4ce518b7
auto-format lora.py
2023-11-02 10:03:17 -07:00
Lincoln Stein
5c9046580f
Merge branch 'main' into bugfix/textual-inversion
2023-10-24 14:17:43 -04:00
Lincoln Stein
6cbc69f3b7
support conversion of controlnets from safetensors to diffusers
2023-10-23 22:06:10 -04:00
Lincoln Stein
3546c41f4a
close #4975
2023-10-23 18:48:14 -04:00
d8ahazard
fdf02c33d0
Catch generic model errors
...
Prevent the app from dying on invalid models.
2023-10-19 07:28:33 +11:00
Ryan Dick
a078efc0f2
Merge branch 'main' into ryan/multi-image-ip
2023-10-18 08:59:12 -04:00
psychedelicious
252c9a5f5a
fix(backend): fix nsfw/watermarker util types
2023-10-18 09:08:13 +11:00
Kent Keirsey
b7555ddae8
Revert "Revert "chore: lint""
...
This reverts commit 38e7eb8878
.
2023-10-17 11:59:19 -04:00
Kent Keirsey
8afc47018b
Revert "Revert "Cleaning up (removing diagnostic prints)""
...
This reverts commit 6e697b7b6f
.
2023-10-17 11:59:19 -04:00
Kent Keirsey
a97ec88e06
Revert "Revert "Changes to _apply_standard_conditioning_sequentially() and _apply_cross_attention_controlled_conditioning() to reflect changes to T2I-Adapter implementation to allow usage of T2I-Adapter and ControlNet at the same time.""
...
This reverts commit c04fb451ee
.
2023-10-17 11:59:19 -04:00
Kent Keirsey
282d36b640
Revert "Revert "Fixing some var and arg names.""
...
This reverts commit 58a0709c1e
.
2023-10-17 11:59:19 -04:00
psychedelicious
58a0709c1e
Revert "Fixing some var and arg names."
...
This reverts commit f11ba81a8d
.
2023-10-17 11:59:11 -04:00
psychedelicious
c04fb451ee
Revert "Changes to _apply_standard_conditioning_sequentially() and _apply_cross_attention_controlled_conditioning() to reflect changes to T2I-Adapter implementation to allow usage of T2I-Adapter and ControlNet at the same time."
...
This reverts commit 378689a519
.
2023-10-17 11:59:11 -04:00
psychedelicious
6e697b7b6f
Revert "Cleaning up (removing diagnostic prints)"
...
This reverts commit 06f8a3276d
.
2023-10-17 11:59:11 -04:00
psychedelicious
38e7eb8878
Revert "chore: lint"
...
This reverts commit fff29d663d
.
2023-10-17 11:59:11 -04:00
psychedelicious
fff29d663d
chore: lint
2023-10-17 19:42:06 +11:00
user1
06f8a3276d
Cleaning up (removing diagnostic prints)
2023-10-17 19:42:06 +11:00
user1
378689a519
Changes to _apply_standard_conditioning_sequentially() and _apply_cross_attention_controlled_conditioning() to reflect changes to T2I-Adapter implementation to allow usage of T2I-Adapter and ControlNet at the same time.
...
Also, the PREVIOUS commit (@8d3885d, which was already pushed to github repo) was wrongly commented, but too late to fix without a force push or other mucking that I'm reluctant to do. That commit is actually the one that has all the changes to diffusers_pipeline.py to use additional arg down_intrablock_additional_residuals (introduced in diffusers PR https://github.com/huggingface/diffusers/pull/5362 ) to detangle T2I-Adapter from ControlNet inputs to main UNet.
2023-10-17 19:42:06 +11:00
user1
f11ba81a8d
Fixing some var and arg names.
2023-10-17 19:42:06 +11:00
Millun Atluri
001bba1719
Merge branch 'main' into feat/nodes/freeu
2023-10-17 15:58:00 +11:00