Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6b8a6e1
add concept of repo variant
Jan 22, 2024
a380d1f
add ram cache module and support files
Feb 1, 2024
4c5aedb
merge with main
Feb 2, 2024
9804cb0
model loading and conversion implemented for vaes
Feb 4, 2024
420f605
loaders for main, controlnet, ip-adapter, clipvision and t2i
Feb 4, 2024
26f721d
Merge branch 'main' into refactor/model-manager2/loader
Feb 5, 2024
37675ee
added textual inversion and lora loaders
Feb 5, 2024
531d2c8
Multiple refinements on loaders:
Feb 6, 2024
79d028e
BREAKING CHANGES: invocations now require model key, not base/type/name
Feb 6, 2024
1eeca48
fix invokeai_configure script to work with new mm; rename CLIs
Feb 9, 2024
a6508d1
probe for required encoder for IPAdapters and add to config
Feb 10, 2024
1d724bc
consolidate model manager parts into a single class
Feb 10, 2024
40a81c3
make model manager v2 ready for PR review
Feb 10, 2024
411ec1e
Merge branch 'main' into refactor/model-manager2/loader
lstein Feb 10, 2024
68064c1
add back the `heuristic_import()` method and extend repo_ids to arbit…
Feb 12, 2024
b71f53b
add a JIT download_and_cache() call to the model installer
Feb 12, 2024
433eb73
add route for model conversion from safetensors to diffusers
Feb 13, 2024
bd802d1
fix a number of typechecking errors
Feb 13, 2024
b0d67ea
Remove references to model_records service, change submodel property …
brandonrising Feb 14, 2024
d4525e1
References to context.services.model_manager.store.get_model can only…
brandonrising Feb 14, 2024
2c1b8c0
Run ruff check
brandonrising Feb 14, 2024
ec77599
improve swagger documentation
Feb 14, 2024
8ac4b9b
Merge branch 'refactor/model-manager2/loader' of github.com:invoke-ai…
Feb 14, 2024
5f4ce0b
Update _get_hf_load_class to support clipvision models
brandonrising Feb 14, 2024
9758082
Raise InvalidModelConfigException when unable to detect load class in…
brandonrising Feb 14, 2024
09e7d35
Fix issues identified during PR review by RyanjDick and brandonrising
Feb 16, 2024
ed2d9ae
Tidy names and locations of modules
Feb 17, 2024
4ffe672
final tidying before marking PR as ready for review
Feb 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
386 changes: 304 additions & 82 deletions docs/contributing/MODEL_MANAGER.md

Large diffs are not rendered by default.

18 changes: 6 additions & 12 deletions invokeai/app/api/dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

from invokeai.app.services.item_storage.item_storage_memory import ItemStorageMemory
from invokeai.app.services.shared.sqlite.sqlite_util import init_db
from invokeai.backend.model_manager.metadata import ModelMetadataStore
from invokeai.backend.util.logging import InvokeAILogger
from invokeai.version.invokeai_version import __version__

Expand All @@ -25,8 +24,8 @@
from ..services.invoker import Invoker
from ..services.latents_storage.latents_storage_disk import DiskLatentsStorage
from ..services.latents_storage.latents_storage_forward_cache import ForwardCacheLatentsStorage
from ..services.model_install import ModelInstallService
from ..services.model_manager.model_manager_default import ModelManagerService
from ..services.model_metadata import ModelMetadataStoreSQL
from ..services.model_records import ModelRecordServiceSQL
from ..services.names.names_default import SimpleNameService
from ..services.session_processor.session_processor_default import DefaultSessionProcessor
Expand Down Expand Up @@ -85,16 +84,13 @@ def initialize(config: InvokeAIAppConfig, event_handler_id: int, logger: Logger
images = ImageService()
invocation_cache = MemoryInvocationCache(max_cache_size=config.node_cache_size)
latents = ForwardCacheLatentsStorage(DiskLatentsStorage(f"{output_folder}/latents"))
model_manager = ModelManagerService(config, logger)
model_record_service = ModelRecordServiceSQL(db=db)
download_queue_service = DownloadQueueService(event_bus=events)
metadata_store = ModelMetadataStore(db=db)
model_install_service = ModelInstallService(
app_config=config,
record_store=model_record_service,
model_metadata_service = ModelMetadataStoreSQL(db=db)
model_manager = ModelManagerService.build_model_manager(
app_config=configuration,
model_record_service=ModelRecordServiceSQL(db=db, metadata_store=model_metadata_service),
download_queue=download_queue_service,
metadata_store=metadata_store,
event_bus=events,
events=events,
)
names = SimpleNameService()
performance_statistics = InvocationStatsService()
Expand All @@ -120,9 +116,7 @@ def initialize(config: InvokeAIAppConfig, event_handler_id: int, logger: Logger
latents=latents,
logger=logger,
model_manager=model_manager,
model_records=model_record_service,
download_queue=download_queue_service,
model_install=model_install_service,
names=names,
performance_statistics=performance_statistics,
processor=processor,
Expand Down
8 changes: 4 additions & 4 deletions invokeai/app/api/routers/download_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ async def list_downloads() -> List[DownloadJob]:
400: {"description": "Bad request"},
},
)
async def prune_downloads():
async def prune_downloads() -> Response:
"""Prune completed and errored jobs."""
queue = ApiDependencies.invoker.services.download_queue
queue.prune_jobs()
Expand All @@ -55,7 +55,7 @@ async def download(
) -> DownloadJob:
"""Download the source URL to the file or directory indicted in dest."""
queue = ApiDependencies.invoker.services.download_queue
return queue.download(source, dest, priority, access_token)
return queue.download(source, Path(dest), priority, access_token)


@download_queue_router.get(
Expand Down Expand Up @@ -87,7 +87,7 @@ async def get_download_job(
)
async def cancel_download_job(
id: int = Path(description="ID of the download job to cancel."),
):
) -> Response:
"""Cancel a download job using its ID."""
try:
queue = ApiDependencies.invoker.services.download_queue
Expand All @@ -105,7 +105,7 @@ async def cancel_download_job(
204: {"description": "Download jobs have been cancelled"},
},
)
async def cancel_all_download_jobs():
async def cancel_all_download_jobs() -> Response:
"""Cancel all download jobs."""
ApiDependencies.invoker.services.download_queue.cancel_all_jobs()
return Response(status_code=204)
Loading