mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
chore(backend): rename ModelInfo
-> LoadedModelInfo
We have two different classes named `ModelInfo` which might need to be used by API consumers. We need to export both but have to deal with this naming collision. The `ModelInfo` I've renamed here is the one that is returned when a model is loaded. It's the object least likely to be used by API consumers.
This commit is contained in:
parent
e0694a2856
commit
0f8af643d1
@ -11,7 +11,7 @@ from invokeai.app.services.session_queue.session_queue_common import (
|
|||||||
SessionQueueStatus,
|
SessionQueueStatus,
|
||||||
)
|
)
|
||||||
from invokeai.app.util.misc import get_timestamp
|
from invokeai.app.util.misc import get_timestamp
|
||||||
from invokeai.backend.model_management.model_manager import ModelInfo
|
from invokeai.backend.model_management.model_manager import LoadedModelInfo
|
||||||
from invokeai.backend.model_management.models.base import BaseModelType, ModelType, SubModelType
|
from invokeai.backend.model_management.models.base import BaseModelType, ModelType, SubModelType
|
||||||
|
|
||||||
|
|
||||||
@ -201,7 +201,7 @@ class EventServiceBase:
|
|||||||
base_model: BaseModelType,
|
base_model: BaseModelType,
|
||||||
model_type: ModelType,
|
model_type: ModelType,
|
||||||
submodel: SubModelType,
|
submodel: SubModelType,
|
||||||
model_info: ModelInfo,
|
loaded_model_info: LoadedModelInfo,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Emitted when a model is correctly loaded (returns model info)"""
|
"""Emitted when a model is correctly loaded (returns model info)"""
|
||||||
self.__emit_queue_event(
|
self.__emit_queue_event(
|
||||||
@ -215,9 +215,9 @@ class EventServiceBase:
|
|||||||
"base_model": base_model,
|
"base_model": base_model,
|
||||||
"model_type": model_type,
|
"model_type": model_type,
|
||||||
"submodel": submodel,
|
"submodel": submodel,
|
||||||
"hash": model_info.hash,
|
"hash": loaded_model_info.hash,
|
||||||
"location": str(model_info.location),
|
"location": str(loaded_model_info.location),
|
||||||
"precision": str(model_info.precision),
|
"precision": str(loaded_model_info.precision),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,8 +14,8 @@ from invokeai.app.services.shared.invocation_context import InvocationContextDat
|
|||||||
from invokeai.backend.model_management import (
|
from invokeai.backend.model_management import (
|
||||||
AddModelResult,
|
AddModelResult,
|
||||||
BaseModelType,
|
BaseModelType,
|
||||||
|
LoadedModelInfo,
|
||||||
MergeInterpolationMethod,
|
MergeInterpolationMethod,
|
||||||
ModelInfo,
|
|
||||||
ModelType,
|
ModelType,
|
||||||
SchedulerPredictionType,
|
SchedulerPredictionType,
|
||||||
SubModelType,
|
SubModelType,
|
||||||
@ -48,7 +48,7 @@ class ModelManagerServiceBase(ABC):
|
|||||||
model_type: ModelType,
|
model_type: ModelType,
|
||||||
submodel: Optional[SubModelType] = None,
|
submodel: Optional[SubModelType] = None,
|
||||||
context_data: Optional[InvocationContextData] = None,
|
context_data: Optional[InvocationContextData] = None,
|
||||||
) -> ModelInfo:
|
) -> LoadedModelInfo:
|
||||||
"""Retrieve the indicated model with name and type.
|
"""Retrieve the indicated model with name and type.
|
||||||
submodel can be used to get a part (such as the vae)
|
submodel can be used to get a part (such as the vae)
|
||||||
of a diffusers pipeline."""
|
of a diffusers pipeline."""
|
||||||
|
@ -16,8 +16,8 @@ from invokeai.app.services.shared.invocation_context import InvocationContextDat
|
|||||||
from invokeai.backend.model_management import (
|
from invokeai.backend.model_management import (
|
||||||
AddModelResult,
|
AddModelResult,
|
||||||
BaseModelType,
|
BaseModelType,
|
||||||
|
LoadedModelInfo,
|
||||||
MergeInterpolationMethod,
|
MergeInterpolationMethod,
|
||||||
ModelInfo,
|
|
||||||
ModelManager,
|
ModelManager,
|
||||||
ModelMerger,
|
ModelMerger,
|
||||||
ModelNotFoundException,
|
ModelNotFoundException,
|
||||||
@ -98,7 +98,7 @@ class ModelManagerService(ModelManagerServiceBase):
|
|||||||
model_type: ModelType,
|
model_type: ModelType,
|
||||||
submodel: Optional[SubModelType] = None,
|
submodel: Optional[SubModelType] = None,
|
||||||
context_data: Optional[InvocationContextData] = None,
|
context_data: Optional[InvocationContextData] = None,
|
||||||
) -> ModelInfo:
|
) -> LoadedModelInfo:
|
||||||
"""
|
"""
|
||||||
Retrieve the indicated model. submodel can be used to get a
|
Retrieve the indicated model. submodel can be used to get a
|
||||||
part (such as the vae) of a diffusers mode.
|
part (such as the vae) of a diffusers mode.
|
||||||
@ -114,7 +114,7 @@ class ModelManagerService(ModelManagerServiceBase):
|
|||||||
submodel=submodel,
|
submodel=submodel,
|
||||||
)
|
)
|
||||||
|
|
||||||
model_info = self.mgr.get_model(
|
loaded_model_info = self.mgr.get_model(
|
||||||
model_name,
|
model_name,
|
||||||
base_model,
|
base_model,
|
||||||
model_type,
|
model_type,
|
||||||
@ -128,10 +128,10 @@ class ModelManagerService(ModelManagerServiceBase):
|
|||||||
base_model=base_model,
|
base_model=base_model,
|
||||||
model_type=model_type,
|
model_type=model_type,
|
||||||
submodel=submodel,
|
submodel=submodel,
|
||||||
model_info=model_info,
|
loaded_model_info=loaded_model_info,
|
||||||
)
|
)
|
||||||
|
|
||||||
return model_info
|
return loaded_model_info
|
||||||
|
|
||||||
def model_exists(
|
def model_exists(
|
||||||
self,
|
self,
|
||||||
@ -273,7 +273,7 @@ class ModelManagerService(ModelManagerServiceBase):
|
|||||||
base_model: BaseModelType,
|
base_model: BaseModelType,
|
||||||
model_type: ModelType,
|
model_type: ModelType,
|
||||||
submodel: Optional[SubModelType] = None,
|
submodel: Optional[SubModelType] = None,
|
||||||
model_info: Optional[ModelInfo] = None,
|
loaded_model_info: Optional[LoadedModelInfo] = None,
|
||||||
):
|
):
|
||||||
if self._invoker is None:
|
if self._invoker is None:
|
||||||
return
|
return
|
||||||
@ -281,7 +281,7 @@ class ModelManagerService(ModelManagerServiceBase):
|
|||||||
if self._invoker.services.queue.is_canceled(context_data.session_id):
|
if self._invoker.services.queue.is_canceled(context_data.session_id):
|
||||||
raise CanceledException()
|
raise CanceledException()
|
||||||
|
|
||||||
if model_info:
|
if loaded_model_info:
|
||||||
self._invoker.services.events.emit_model_load_completed(
|
self._invoker.services.events.emit_model_load_completed(
|
||||||
queue_id=context_data.queue_id,
|
queue_id=context_data.queue_id,
|
||||||
queue_item_id=context_data.queue_item_id,
|
queue_item_id=context_data.queue_item_id,
|
||||||
@ -291,7 +291,7 @@ class ModelManagerService(ModelManagerServiceBase):
|
|||||||
base_model=base_model,
|
base_model=base_model,
|
||||||
model_type=model_type,
|
model_type=model_type,
|
||||||
submodel=submodel,
|
submodel=submodel,
|
||||||
model_info=model_info,
|
loaded_model_info=loaded_model_info,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
self._invoker.services.events.emit_model_load_started(
|
self._invoker.services.events.emit_model_load_started(
|
||||||
|
@ -13,7 +13,7 @@ from invokeai.app.services.images.images_common import ImageDTO
|
|||||||
from invokeai.app.services.invocation_services import InvocationServices
|
from invokeai.app.services.invocation_services import InvocationServices
|
||||||
from invokeai.app.services.workflow_records.workflow_records_common import WorkflowWithoutID
|
from invokeai.app.services.workflow_records.workflow_records_common import WorkflowWithoutID
|
||||||
from invokeai.app.util.step_callback import stable_diffusion_step_callback
|
from invokeai.app.util.step_callback import stable_diffusion_step_callback
|
||||||
from invokeai.backend.model_management.model_manager import ModelInfo
|
from invokeai.backend.model_management.model_manager import LoadedModelInfo
|
||||||
from invokeai.backend.model_management.models.base import BaseModelType, ModelType, SubModelType
|
from invokeai.backend.model_management.models.base import BaseModelType, ModelType, SubModelType
|
||||||
from invokeai.backend.stable_diffusion.diffusers_pipeline import PipelineIntermediateState
|
from invokeai.backend.stable_diffusion.diffusers_pipeline import PipelineIntermediateState
|
||||||
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import ConditioningFieldData
|
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import ConditioningFieldData
|
||||||
@ -272,14 +272,15 @@ class ModelsInterface(InvocationContextInterface):
|
|||||||
|
|
||||||
def load(
|
def load(
|
||||||
self, model_name: str, base_model: BaseModelType, model_type: ModelType, submodel: Optional[SubModelType] = None
|
self, model_name: str, base_model: BaseModelType, model_type: ModelType, submodel: Optional[SubModelType] = None
|
||||||
) -> ModelInfo:
|
) -> LoadedModelInfo:
|
||||||
"""
|
"""
|
||||||
Loads a model, returning its `ModelInfo` object.
|
Loads a model.
|
||||||
|
|
||||||
:param model_name: The name of the model to get.
|
:param model_name: The name of the model to get.
|
||||||
:param base_model: The base model of the model to get.
|
:param base_model: The base model of the model to get.
|
||||||
:param model_type: The type of the model to get.
|
:param model_type: The type of the model to get.
|
||||||
:param submodel: The submodel of the model to get.
|
:param submodel: The submodel of the model to get.
|
||||||
|
:returns: An object representing the loaded model.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# The model manager emits events as it loads the model. It needs the context data to build
|
# The model manager emits events as it loads the model. It needs the context data to build
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
"""
|
"""
|
||||||
Initialization file for invokeai.backend
|
Initialization file for invokeai.backend
|
||||||
"""
|
"""
|
||||||
from .model_management import BaseModelType, ModelCache, ModelInfo, ModelManager, ModelType, SubModelType # noqa: F401
|
from .model_management import ( # noqa: F401
|
||||||
|
BaseModelType,
|
||||||
|
LoadedModelInfo,
|
||||||
|
ModelCache,
|
||||||
|
ModelManager,
|
||||||
|
ModelType,
|
||||||
|
SubModelType,
|
||||||
|
)
|
||||||
from .model_management.models import SilenceWarnings # noqa: F401
|
from .model_management.models import SilenceWarnings # noqa: F401
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Initialization file for invokeai.backend.model_management
|
Initialization file for invokeai.backend.model_management
|
||||||
"""
|
"""
|
||||||
# This import must be first
|
# This import must be first
|
||||||
from .model_manager import AddModelResult, ModelInfo, ModelManager, SchedulerPredictionType
|
from .model_manager import AddModelResult, LoadedModelInfo, ModelManager, SchedulerPredictionType
|
||||||
from .lora import ModelPatcher, ONNXModelPatcher
|
from .lora import ModelPatcher, ONNXModelPatcher
|
||||||
from .model_cache import ModelCache
|
from .model_cache import ModelCache
|
||||||
|
|
||||||
|
@ -271,7 +271,7 @@ CONFIG_FILE_VERSION = "3.0.0"
|
|||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ModelInfo:
|
class LoadedModelInfo:
|
||||||
context: ModelLocker
|
context: ModelLocker
|
||||||
name: str
|
name: str
|
||||||
base_model: BaseModelType
|
base_model: BaseModelType
|
||||||
@ -450,7 +450,7 @@ class ModelManager(object):
|
|||||||
base_model: BaseModelType,
|
base_model: BaseModelType,
|
||||||
model_type: ModelType,
|
model_type: ModelType,
|
||||||
submodel_type: Optional[SubModelType] = None,
|
submodel_type: Optional[SubModelType] = None,
|
||||||
) -> ModelInfo:
|
) -> LoadedModelInfo:
|
||||||
"""Given a model named identified in models.yaml, return
|
"""Given a model named identified in models.yaml, return
|
||||||
an ModelInfo object describing it.
|
an ModelInfo object describing it.
|
||||||
:param model_name: symbolic name of the model in models.yaml
|
:param model_name: symbolic name of the model in models.yaml
|
||||||
@ -508,7 +508,7 @@ class ModelManager(object):
|
|||||||
|
|
||||||
model_hash = "<NO_HASH>" # TODO:
|
model_hash = "<NO_HASH>" # TODO:
|
||||||
|
|
||||||
return ModelInfo(
|
return LoadedModelInfo(
|
||||||
context=model_context,
|
context=model_context,
|
||||||
name=model_name,
|
name=model_name,
|
||||||
base_model=base_model,
|
base_model=base_model,
|
||||||
|
@ -7,7 +7,7 @@ import torch
|
|||||||
|
|
||||||
from invokeai.app.services.config.config_default import InvokeAIAppConfig
|
from invokeai.app.services.config.config_default import InvokeAIAppConfig
|
||||||
from invokeai.backend.install.model_install_backend import ModelInstall
|
from invokeai.backend.install.model_install_backend import ModelInstall
|
||||||
from invokeai.backend.model_management.model_manager import ModelInfo
|
from invokeai.backend.model_management.model_manager import LoadedModelInfo
|
||||||
from invokeai.backend.model_management.models.base import BaseModelType, ModelNotFoundException, ModelType, SubModelType
|
from invokeai.backend.model_management.models.base import BaseModelType, ModelNotFoundException, ModelType, SubModelType
|
||||||
|
|
||||||
|
|
||||||
@ -34,8 +34,8 @@ def install_and_load_model(
|
|||||||
base_model: BaseModelType,
|
base_model: BaseModelType,
|
||||||
model_type: ModelType,
|
model_type: ModelType,
|
||||||
submodel_type: Optional[SubModelType] = None,
|
submodel_type: Optional[SubModelType] = None,
|
||||||
) -> ModelInfo:
|
) -> LoadedModelInfo:
|
||||||
"""Install a model if it is not already installed, then get the ModelInfo for that model.
|
"""Install a model if it is not already installed, then get the LoadedModelInfo for that model.
|
||||||
|
|
||||||
This is intended as a utility function for tests.
|
This is intended as a utility function for tests.
|
||||||
|
|
||||||
@ -49,9 +49,9 @@ def install_and_load_model(
|
|||||||
submodel_type (Optional[SubModelType]): The submodel type, forwarded to ModelManager.get_model(...).
|
submodel_type (Optional[SubModelType]): The submodel type, forwarded to ModelManager.get_model(...).
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
ModelInfo
|
LoadedModelInfo
|
||||||
"""
|
"""
|
||||||
# If the requested model is already installed, return its ModelInfo.
|
# If the requested model is already installed, return its LoadedModelInfo.
|
||||||
with contextlib.suppress(ModelNotFoundException):
|
with contextlib.suppress(ModelNotFoundException):
|
||||||
return model_installer.mgr.get_model(model_name, base_model, model_type, submodel_type)
|
return model_installer.mgr.get_model(model_name, base_model, model_type, submodel_type)
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ from invokeai.app.services.config.config_default import InvokeAIAppConfig
|
|||||||
from invokeai.app.services.image_records.image_records_common import ImageCategory
|
from invokeai.app.services.image_records.image_records_common import ImageCategory
|
||||||
from invokeai.app.services.shared.invocation_context import InvocationContext
|
from invokeai.app.services.shared.invocation_context import InvocationContext
|
||||||
from invokeai.app.services.workflow_records.workflow_records_common import WorkflowWithoutID
|
from invokeai.app.services.workflow_records.workflow_records_common import WorkflowWithoutID
|
||||||
from invokeai.backend.model_management.model_manager import ModelInfo
|
from invokeai.backend.model_management.model_manager import LoadedModelInfo
|
||||||
from invokeai.backend.model_management.models.base import BaseModelType, ModelType, SubModelType
|
from invokeai.backend.model_management.models.base import BaseModelType, ModelType, SubModelType
|
||||||
from invokeai.backend.stable_diffusion.diffusers_pipeline import PipelineIntermediateState
|
from invokeai.backend.stable_diffusion.diffusers_pipeline import PipelineIntermediateState
|
||||||
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import (
|
from invokeai.backend.stable_diffusion.diffusion.conditioning_data import (
|
||||||
@ -121,7 +121,7 @@ __all__ = [
|
|||||||
# invokeai.app.services.config.config_default
|
# invokeai.app.services.config.config_default
|
||||||
"InvokeAIAppConfig",
|
"InvokeAIAppConfig",
|
||||||
# invokeai.backend.model_management.model_manager
|
# invokeai.backend.model_management.model_manager
|
||||||
"ModelInfo",
|
"LoadedModelInfo",
|
||||||
# invokeai.backend.model_management.models.base
|
# invokeai.backend.model_management.models.base
|
||||||
"BaseModelType",
|
"BaseModelType",
|
||||||
"ModelType",
|
"ModelType",
|
||||||
|
Loading…
Reference in New Issue
Block a user