InvokeAI/invokeai/app/services
psychedelicious 3fb116155b refactor(config): simplified config
- Remove OmegaConf. It functioned as an intermediary data format, between YAML/argparse and pydantic. It's not necessary - we can parse YAML or CLI args directly with pydantic.

- Remove dynamic CLI args. Only `root` is explicitly supported. This greatly simplifies config handling. Configuration is done by editing the YAML file. Frequently-used args can be added if there is a demand.

- A separate arg parser is created to handle the slimmed-down CLI args. It's run immediately in the `invokeai-web` script to handle `--version` and `--help`. It is also used inside the singleton config getter (see below).

- Remove categories from the config. Our settings model is mostly flat. Handling categories adds complexity for both us and users - we have to handle transforming a flat config to categorized config (and vice-versa), while users have to be careful with indentation in their YAML file.

- Add a `meta` key to the config file. Currently, this holds the config schema version only. It is not a part of the config object itself.

- Remove legacy settings that are no longer referenced, or were effectively no-op settings when referenced in code.

- Implement simple migration logic to for v3 configs. If migration is successful, the v3 config file is backed up to `invokeai.yaml.bak` and the new config written to `invokeai.yaml`.

- Previously, the singleton config was accessed by calling `InvokeAIAppConfig.get_config()`. This returned an instance of `InvokeAIAppConfig`, which _also_ has the `get_config` function. This created to a confusing situation where you weren't sure if you needed to call `get_config` or just use the config object. This method is replaced by a standalone `get_config` function which returns a singleton config object.

- Wrap CLI arg parsing (for `root`) and loading/migrating `invokeai.yaml` into the new `get_config()` function.

- Move `generate_config_docstrings` into standalone utility function.

- Make `root` a private attr (`_root`). This reduces the temptation to directly modify and or use this sensitive field and ensures it is neither serialized nor read from input data. Use `root_path` to access the resolved root path, or `set_root` to set the root to something.
2024-03-19 09:24:28 +11:00
..
board_image_records feat(db): add SQLiteMigrator to perform db migrations 2023-12-11 16:14:25 +11:00
board_images feat: refactor services folder/module structure 2023-10-12 12:15:06 -04:00
board_records feat(db): add SQLiteMigrator to perform db migrations 2023-12-11 16:14:25 +11:00
boards feat(api): chore: pydantic & fastapi upgrade 2023-10-17 14:59:25 +11:00
bulk_download feat(bulk_download): update response model, messages 2024-03-01 10:42:33 +11:00
config refactor(config): simplified config 2024-03-19 09:24:28 +11:00
download feat(mm): support generic API tokens via regex/token pairs in config 2024-03-08 13:59:59 +11:00
events feat(events): add submodel_type to model load events 2024-03-14 18:29:55 +05:30
image_files tidy(nodes): move all field things to fields.py 2024-03-01 10:42:33 +11:00
image_records tidy(nodes): move all field things to fields.py 2024-03-01 10:42:33 +11:00
images tidy(nodes): move all field things to fields.py 2024-03-01 10:42:33 +11:00
invocation_cache fix(nodes): correctly serialize outputs 2024-03-06 08:14:12 -05:00
invocation_stats fix(nodes): fix typing on stats service context manager 2024-03-01 10:42:33 +11:00
item_storage revert(nodes): revert making tensors/conditioning use item storage 2024-03-01 10:42:33 +11:00
model_images docs(mm): update comment about model images 2024-03-08 12:26:35 +11:00
model_install Resolve when instantiating _cached_model_paths 2024-03-18 11:17:23 +11:00
model_load feat(events): add submodel_type to model load events 2024-03-14 18:29:55 +05:30
model_manager refactor(nodes): model identifiers 2024-03-07 10:56:59 +11:00
model_records add ordering to search_by_attr that is used for model lists 2024-03-08 13:38:38 -06:00
names feat: refactor services folder/module structure 2023-10-12 12:15:06 -04:00
object_serializer feat(nodes): use TemporaryDirectory to handle ephemeral storage in ObjectSerializerDisk 2024-03-01 10:42:33 +11:00
session_processor Log a stack trace for invocation errors. 2024-03-04 23:01:56 +11:00
session_queue refactor(nodes): merge processors 2024-03-01 10:42:33 +11:00
shared feat(nodes): "ModelField" -> "ModelIdentifierField", add hash/name/base/type 2024-03-10 11:03:38 +11:00
urls cleanup 2024-03-06 21:57:41 -05:00
workflow_records add project as category to back-end 2024-01-24 10:59:04 +11:00
__init__.py all files migrated; tweaks needed 2023-03-03 00:02:15 -05:00
invocation_services.py tidy(mm): ModelImages service 2024-03-06 21:57:41 -05:00
invoker.py refactor(nodes): merge processors 2024-03-01 10:42:33 +11:00