psychedelicious
c47dbf7258
docs(mm): format docstrings for ModelSearch
2024-03-10 12:09:47 +11:00
psychedelicious
92b2e8186a
tidy(mm): simplify types for ModelSearch
...
- Use `set` instead of `Set`
- Methods accept only `Path`s
2024-03-10 12:09:47 +11:00
psychedelicious
70a88c6b99
docs(mm): update docstrings for ModelSearch
2024-03-10 12:09:47 +11:00
psychedelicious
56e7c04475
tidy(mm): remove extraneous dependencies in model search
...
- `config` is unused
- `stats` is created on instantiation
- `logger` uses the app logger
2024-03-10 12:09:47 +11:00
psychedelicious
bd5b43c00d
tidy(mm): ModelSearch cleanup
...
- No need for it to by a pydantic model. Just a class now.
- Remove ABC, it made it hard to understand what was going on as attributes were spread across the ABC and implementation. Also, there is no other implementation.
- Add tests
2024-03-10 12:09:47 +11:00
Brandon Rising
8ba4b2a150
Run ruff
2024-03-08 15:36:14 -05:00
Brandon Rising
df12e12e09
Run ruff
2024-03-08 15:36:14 -05:00
Brandon Rising
e52274ecac
Experiment with using absolute paths within model management
2024-03-08 15:36:14 -05:00
psychedelicious
a10dccdd43
fix(mm): fix bug in control adapter probe default settings
...
Wasn't checking for matches correctly.
2024-03-08 12:44:58 -05:00
psychedelicious
50bb9a6b41
fix(mm): remove default settings from IP adapter config
2024-03-08 12:44:58 -05:00
psychedelicious
13bb3c5e15
feat(mm): add control adapter default settings while probing
2024-03-08 12:44:58 -05:00
psychedelicious
80c2a4b925
feat(mm): add AnyDefaultSettings union
2024-03-08 12:44:58 -05:00
psychedelicious
8ce485b036
feat(mm): add default settings for control adapters
...
Only includes `preprocessor` at this time.
2024-03-08 12:44:58 -05:00
psychedelicious
6fc3e86061
tidy(mm): only main models get the main default settings
2024-03-08 12:44:58 -05:00
Brandon Rising
b6065d6328
Run ruff with newest version of ruff
2024-03-08 13:59:59 +11:00
Brandon Rising
04229f4a21
Run ruff
2024-03-08 13:59:59 +11:00
Brandon Rising
952d97741e
Remove civit ai from tests and documentation
2024-03-08 13:59:59 +11:00
Brandon Rising
d1f859a446
Remove civit AI model install resources
2024-03-08 13:59:59 +11:00
psychedelicious
bbcbcd9b63
fix(mm): only loras and main models get trigger_phrases
2024-03-08 12:26:35 +11:00
Jennifer Player
4af5a09a68
cleanup
2024-03-06 21:57:41 -05:00
Jennifer Player
aa88fadc30
use webp images
2024-03-06 21:57:41 -05:00
Jennifer Player
8411029d93
get model image url from model config, added thumbnail formatting for images
2024-03-06 21:57:41 -05:00
Jennifer Player
8a68355926
got model images displaying, still need to clean up types and unused code
2024-03-06 21:57:41 -05:00
Jennifer Player
2f6964bfa5
fetching model image, still not working
2024-03-06 21:57:41 -05:00
psychedelicious
132790eebe
tidy(nodes): use canonical capitalizations
2024-03-07 10:56:59 +11:00
psychedelicious
afd9ae7712
tidy(mm): remove convenience methods from high level model manager service
...
These were added as a hold-me-over for the nodes API changes, no longer needed. A followup commit will fix the nodes API to not rely on these.
2024-03-07 10:56:59 +11:00
Brandon Rising
46f32c5e3c
Remove references to the no longer existing invokeai.app.services.model_metadata package
2024-03-05 19:58:25 -05:00
psychedelicious
e866d90ab2
tidy(mm): remove unused method on probe
2024-03-05 23:50:19 +11:00
psychedelicious
e8797787cf
fix(mm): fix incorrect calls to update_model
2024-03-05 23:50:19 +11:00
psychedelicious
7c9128b253
tidy(mm): use canonical capitalization for all model-related enums, classes
...
For example, "Lora" -> "LoRA", "Vae" -> "VAE".
2024-03-05 23:50:19 +11:00
psychedelicious
3030a34b88
fix(mm): make type
and format
required in openapi schema for model config
2024-03-05 23:50:19 +11:00
psychedelicious
a8b6635050
fix(mm): make key
required in openapi schema for model config
2024-03-05 23:50:19 +11:00
psychedelicious
5551cf8ac4
feat(mm): revise update_model to use ModelRecordChanges
2024-03-05 23:50:19 +11:00
psychedelicious
37b969d339
tidy(mm): add default_settings to model config
2024-03-05 23:50:19 +11:00
psychedelicious
c953e61294
tidy(mm): "trigger_words" -> "trigger_phrases"
2024-03-05 23:50:19 +11:00
psychedelicious
93dd3c848e
tidy(mm): remove unused code in select_hf_files.py
2024-03-05 23:50:19 +11:00
psychedelicious
3391c19926
chore: ruff
2024-03-05 23:50:19 +11:00
psychedelicious
0f60b1ced4
fix(mm): use .value
for model config discriminators
...
There is a breaking change in python 3.11 related to how enums with `str` as a mixin are formatted. This appears to have not caused any grief for us until now.
Re-jigger the discriminator setup to use `.value` so everything works on both python 3.10 and 3.11.
2024-03-05 23:50:19 +11:00
psychedelicious
44c40d7d1a
refactor(mm): remove unused metadata logic, fix tests
...
- Metadata is merged with the config. We can simplify the MM substantially and remove the handling for metadata.
- Per discussion, we don't have an ETA for frontend implementation of tags, and with the realization that the tags from CivitAI are largely useless, there's no reason to keep tags in the MM right now. When we are ready to implement tags on the frontend, we can refer back to the implementation here and use it if it supports the design.
- Fix all tests.
2024-03-05 23:50:19 +11:00
psychedelicious
c3aa985c93
refactor(mm): get metadata working
2024-03-05 23:50:19 +11:00
psychedelicious
7cb0da1f66
refactor(mm): wip schema changes
2024-03-05 23:50:19 +11:00
psychedelicious
3534366146
fix(mm): fix extraneous downloaded files in diffusers
...
Sometimes, diffusers model components (tokenizer, unet, etc.) have multiple weights files in the same directory.
In this situation, we assume the files are different versions of the same weights. For example, we may have multiple
formats (`.bin`, `.safetensors`) with different precisions. When downloading model files, we want to select only
the best of these files for the requested format and precision/variant.
The previous logic assumed that each model weights file would have the same base filename, but this assumption was
not always true. The logic is revised score each file and choose the best scoring file, resulting in only a single
file being downloaded for each submodel/subdirectory.
2024-03-05 23:50:19 +11:00
psychedelicious
f2b5f8753f
tidy(mm): remove json_schema_extra from config - not needed
2024-03-05 23:50:19 +11:00
psychedelicious
94e1e64296
chore: ruff
2024-03-05 23:50:19 +11:00
psychedelicious
2411bf53c0
tidy(mm): better descriptions for model configs
2024-03-05 23:50:19 +11:00
psychedelicious
9378e47a06
feat(mm): add source_type
to model configs
2024-03-05 23:50:19 +11:00
psychedelicious
4471ea8ad1
refactor(mm): simplify model metadata schemas
2024-03-05 23:50:19 +11:00
psychedelicious
61b737bb9f
tidy(mm): remove update
method from ModelConfigBase
...
It's only used in the soon-to-be-removed model merge logic
2024-03-05 23:50:19 +11:00
psychedelicious
a8cd3dfc99
refactor(mm): add models
table (schema WIP), rename "original_hash" -> "hash"
2024-03-05 23:50:19 +11:00
psychedelicious
0cce582f2f
tidy(mm): remove current_hash
2024-03-05 23:50:19 +11:00
psychedelicious
bd4fd9693d
tidy(mm): rename ckpt "last_modified" -> "converted_at"
...
Clarify what this timestamp means
2024-03-05 23:50:19 +11:00
psychedelicious
9b40c28144
tidy(mm): rename ckpy "config" -> "config_path"
2024-03-05 23:50:19 +11:00
psychedelicious
16a5d718bf
fix(mm): add config
field to ckpt vaes
2024-03-05 23:50:19 +11:00
psychedelicious
76cbc745e1
refactor(mm): add CheckpointConfigBase
for all ckpt models
2024-03-05 23:50:19 +11:00
psychedelicious
0a614943f6
fix(mm): fix broken get_model_discriminator_value
2024-03-05 23:50:19 +11:00
psychedelicious
e426096d32
fix(mm): misc typing fixes for model loaders
2024-03-05 23:50:19 +11:00
psychedelicious
c561cd751f
fix(mm): use correct import path for ConfigMixin, ModelMixin
2024-03-05 23:50:19 +11:00
psychedelicious
af9298f0ef
tidy(mm): tidy class names in config.py
2024-03-05 23:50:19 +11:00
psychedelicious
5b74117836
fix(mm): use generic for model loader registry
...
This preserves the typing for classes using the decorator
2024-03-05 23:50:19 +11:00
psychedelicious
38474c9797
fix(mm): use correct import path for ModelMixin
2024-03-05 23:50:19 +11:00
psychedelicious
b880a31039
refactor(mm): remove ztsnr_training
field on _MainConfig
...
This is used to determine the CFG Rescale Multiplier setting. We'll handle this in the UI as a default setting.
2024-03-05 23:50:19 +11:00
psychedelicious
dd31bc4586
refactor(mm): remove vae
field on _MainConfig
...
We will handle default VAE selection in the UI.
2024-03-05 23:50:19 +11:00
psychedelicious
316573df2d
feat(mm): use callable discriminator for AnyModelConfig
union
2024-03-05 23:50:19 +11:00
Mary Hipp Rogers
8b34f5298c
Default model settings ( #5850 )
...
* UI in MM to create trigger phrases
* add scheduler and vaePrecision to config
* UI for configuring default settings for models'
* hook MM default model settings up to API
* add button to set default settings in parameters
* pull out trigger phrases
* back-end for default settings
* lint
* remove log;
gi
* ruff
* ruff format
---------
Co-authored-by: Mary Hipp <maryhipp@Marys-MacBook-Air.local>
2024-03-04 09:39:03 -05:00
psychedelicious
554d175792
feat(mm): improved model hash class
...
- Use memory view for hashlib algorithms (closer to python 3.11's filehash API in hashlib)
- Remove `sha1_fast` (realized it doesn't even hash the whole file, it just does the first block)
- Add support for custom file filters
- Update docstrings
- Update tests
2024-03-03 14:32:14 +11:00
psychedelicious
86982f3059
feat(mm): make ModelHash instantiatable, taking an algorithm as arg
2024-03-03 14:32:14 +11:00
psychedelicious
ec8ed530a7
feat(mm): modularize ModelHash to facilitate testing
2024-03-03 14:32:14 +11:00
psychedelicious
982076d7d7
feat(mm): add hashing algos to ModelHash
...
- Some algos are slow, so it is now just called ModelHash
- Added all hashlib algos, plus BLAKE3 and the fast (but incorrect) SHA1 algo
2024-03-03 14:32:14 +11:00
psychedelicious
2e4672f931
feat(mm): make hash.py a script for testing
2024-03-03 14:32:14 +11:00
psychedelicious
908e915a71
feat(mm): use blake3 for hashing
2024-03-03 14:32:14 +11:00
Lincoln Stein
a72056e0df
make model key assignment deterministic
...
- When installing, model keys are now calculated from the model contents.
- .safetensors, .ckpt and other single file models are hashed with sha1
- The contents of diffusers directories are hashed using imohash (faster)
fixup yaml->sql db migration script to assign deterministic key
- this commit also detects and assigns the correct image encoder for
ip adapter models.
2024-03-03 14:32:14 +11:00
Ryan Dick
cc45007dc4
Remove unused code for attention map saving.
2024-03-02 08:25:41 -05:00
Ryan Dick
73bec56c59
Delete unused functions from shared_invokeai_diffusion.py.
2024-03-02 08:25:41 -05:00
Ryan Dick
6935830f99
Remove unused constructor declared with typo in name: __int__.
2024-03-01 15:12:03 -05:00
Ryan Dick
7651eeea8d
Merge sequential conditioning and cac conditioning logic to eliminate a bunch of duplication.
2024-03-01 15:12:03 -05:00
Ryan Dick
204e7d383b
Remove outdated comments related to T2I-Adapters and ControlNets.
2024-03-01 15:12:03 -05:00
Ryan Dick
9bc4e7a593
Remove use of **kwargs in do_unet_step(...), where full parameter list is known and supported.
2024-03-01 15:12:03 -05:00
Ryan Dick
ad96857e0f
Fix avoid storing extra conditioning info in two places.
2024-03-01 15:12:03 -05:00
Lincoln Stein
0832e1818e
Fix problem of all installed models being assigned "<NOKEY>"
...
- Also fix redundant scanning of models directory at startup.
2024-02-29 22:31:05 -05:00
psychedelicious
dd9daf8efb
chore: ruff
2024-03-01 10:42:33 +11:00
psychedelicious
0305e90287
chore: ruff
2024-03-01 10:42:33 +11:00
blessedcoolant
ae34bcfbc0
fix: Assertion issue with SDXL Compel
2024-03-01 10:42:33 +11:00
Brandon Rising
e7afae0159
Switch absolute path to as_posix in _walk_directory
2024-03-01 10:42:33 +11:00
Brandon Rising
f16e64084b
Ruff checks
2024-03-01 10:42:33 +11:00
Brandon Rising
8992d89817
Fix directory called on _walk_directory
2024-03-01 10:42:33 +11:00
Brandon Rising
0fc2f90824
Switch ModelSearch from os.walk to os.scandir
2024-03-01 10:42:33 +11:00
Lincoln Stein
94e3857110
handle change to Civitai metadata schema for commercial usage
2024-03-01 10:42:33 +11:00
psychedelicious
7d2e840590
tidy: remove some traces of ONNX
2024-03-01 10:42:33 +11:00
psychedelicious
10d36b4045
tidy(mm): remove ONNX from AnyModelConfig
2024-03-01 10:42:33 +11:00
psychedelicious
c80c0f0fb9
fix(mm): fix ModelCacheBase method name
2024-03-01 10:42:33 +11:00
psychedelicious
37d66488c5
chore: ruff
2024-03-01 10:42:33 +11:00
Lincoln Stein
371e3cc260
recover gracefuly from GPU out of memory errors (next version)
2024-03-01 10:42:33 +11:00
Lincoln Stein
d22738723d
clear out VRAM when an OOM occurs
2024-03-01 10:42:33 +11:00
Brandon Rising
c778ab8db4
Allow passing in key on register
2024-03-01 10:42:33 +11:00
psychedelicious
239ecfaf79
fix(nodes): make fields on ModelConfigBase
required
...
The setup of `ModelConfigBase` means autogenerated types have critical fields flagged as nullable (like `key` and `base`). Need to manually flag them as required.
2024-03-01 10:42:33 +11:00
Lincoln Stein
cc41e8912c
several small model install enhancements
...
- Support extended HF repoid syntax in TUI. This allows
installation of subfolders and safetensors files, as in
`XpucT/Deliberate::Deliberate_v5.safetensors`
- Add `error` and `error_traceback` properties to the install
job objects.
- Rename the `heuristic_import` route to `heuristic_install`.
- Fix the example `config` input in the `heuristic_install` route.
2024-03-01 10:42:33 +11:00
Lincoln Stein
5bb3aeaccd
remove startup dependency on legacy models.yaml file
2024-03-01 10:42:33 +11:00
dunkeroni
06cc57d82a
feat(nodes): added gradient mask node
2024-03-01 10:42:33 +11:00
Lincoln Stein
af2117dc0c
remove errant def that was crashing invokeai-configure
2024-03-01 10:42:33 +11:00
psychedelicious
5a3195f757
final tidying before marking PR as ready for review
...
- Replace AnyModelLoader with ModelLoaderRegistry
- Fix type check errors in multiple files
- Remove apparently unneeded `get_model_config_enum()` method from model manager
- Remove last vestiges of old model manager
- Updated tests and documentation
resolve conflict with seamless.py
2024-03-01 10:42:33 +11:00