mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
2a35d93a4d
**Service Dependencies** Services that depend on other services now access those services via the `Invoker` object. This object is provided to the service as a kwarg to its `start()` method. Until now, most services did not utilize this feature, and several services required their dependencies to be initialized and passed in on init. Additionally, _all_ services are now registered as invocation services - including the low-level services. This obviates issues with inter-dependent services we would otherwise experience as we add workflow storage. **Database Access** Previously, we were passing in a separate sqlite connection and corresponding lock as args to services in their init. A good amount of posturing was done in each service that uses the db. These objects, along with the sqlite startup and cleanup logic, is now abstracted into a simple `SqliteDatabase` class. This creates the shared connection and lock objects, enables foreign keys, and provides a `clean()` method to do startup db maintenance. This is not a service as it's only used by sqlite services. |
||
---|---|---|
.. | ||
config | ||
invocation_cache | ||
models | ||
session_processor | ||
session_queue | ||
shared | ||
__init__.py | ||
board_image_record_storage.py | ||
board_images.py | ||
board_record_storage.py | ||
boards.py | ||
default_graphs.py | ||
events.py | ||
graph.py | ||
image_file_storage.py | ||
image_record_storage.py | ||
images.py | ||
invocation_queue.py | ||
invocation_services.py | ||
invocation_stats.py | ||
invoker.py | ||
item_storage.py | ||
latent_storage.py | ||
model_manager_service.py | ||
processor.py | ||
resource_name.py | ||
sqlite.py | ||
urls.py |