2023-04-04 01:05:15 +00:00
|
|
|
from enum import Enum
|
2023-08-14 09:41:29 +00:00
|
|
|
|
2023-04-04 01:05:15 +00:00
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
2023-05-23 08:59:43 +00:00
|
|
|
from invokeai.app.util.metaenum import MetaEnum
|
2023-07-24 13:23:51 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ProgressImage(BaseModel):
|
|
|
|
"""The progress image sent intermittently during processing"""
|
|
|
|
|
|
|
|
width: int = Field(description="The effective width of the image in pixels")
|
|
|
|
height: int = Field(description="The effective height of the image in pixels")
|
|
|
|
dataURL: str = Field(description="The image data as a b64 data URL")
|
|
|
|
|
2023-07-27 14:54:01 +00:00
|
|
|
|
2023-05-27 11:39:20 +00:00
|
|
|
class ResourceOrigin(str, Enum, metaclass=MetaEnum):
|
|
|
|
"""The origin of a resource (eg image).
|
2023-04-04 01:05:15 +00:00
|
|
|
|
2023-05-27 11:39:20 +00:00
|
|
|
- INTERNAL: The resource was created by the application.
|
|
|
|
- EXTERNAL: The resource was not created by the application.
|
|
|
|
This may be a user-initiated upload, or an internal application upload (eg Canvas init image).
|
|
|
|
"""
|
|
|
|
|
|
|
|
INTERNAL = "internal"
|
|
|
|
"""The resource was created by the application."""
|
|
|
|
EXTERNAL = "external"
|
|
|
|
"""The resource was not created by the application.
|
|
|
|
This may be a user-initiated upload, or an internal application upload (eg Canvas init image).
|
|
|
|
"""
|
2023-05-17 09:13:53 +00:00
|
|
|
|
|
|
|
|
2023-05-27 11:39:20 +00:00
|
|
|
class InvalidOriginException(ValueError):
|
|
|
|
"""Raised when a provided value is not a valid ResourceOrigin.
|
2023-05-23 08:59:43 +00:00
|
|
|
|
|
|
|
Subclasses `ValueError`.
|
|
|
|
"""
|
|
|
|
|
2023-05-27 11:39:20 +00:00
|
|
|
def __init__(self, message="Invalid resource origin."):
|
2023-05-23 08:59:43 +00:00
|
|
|
super().__init__(message)
|
|
|
|
|
|
|
|
|
2023-05-17 09:13:53 +00:00
|
|
|
class ImageCategory(str, Enum, metaclass=MetaEnum):
|
2023-05-27 11:39:20 +00:00
|
|
|
"""The category of an image.
|
|
|
|
|
|
|
|
- GENERAL: The image is an output, init image, or otherwise an image without a specialized purpose.
|
|
|
|
- MASK: The image is a mask image.
|
|
|
|
- CONTROL: The image is a ControlNet control image.
|
|
|
|
- USER: The image is a user-provide image.
|
|
|
|
- OTHER: The image is some other type of image with a specialized purpose. To be used by external nodes.
|
|
|
|
"""
|
2023-05-17 09:13:53 +00:00
|
|
|
|
2023-05-23 08:59:43 +00:00
|
|
|
GENERAL = "general"
|
2023-05-27 11:39:20 +00:00
|
|
|
"""GENERAL: The image is an output, init image, or otherwise an image without a specialized purpose."""
|
2023-05-24 11:34:53 +00:00
|
|
|
MASK = "mask"
|
2023-05-27 11:39:20 +00:00
|
|
|
"""MASK: The image is a mask image."""
|
|
|
|
CONTROL = "control"
|
|
|
|
"""CONTROL: The image is a ControlNet control image."""
|
|
|
|
USER = "user"
|
|
|
|
"""USER: The image is a user-provide image."""
|
2023-05-17 09:13:53 +00:00
|
|
|
OTHER = "other"
|
2023-05-27 11:39:20 +00:00
|
|
|
"""OTHER: The image is some other type of image with a specialized purpose. To be used by external nodes."""
|
2023-04-04 01:05:15 +00:00
|
|
|
|
|
|
|
|
2023-05-23 08:59:43 +00:00
|
|
|
class InvalidImageCategoryException(ValueError):
|
|
|
|
"""Raised when a provided value is not a valid ImageCategory.
|
|
|
|
|
|
|
|
Subclasses `ValueError`.
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(self, message="Invalid image category."):
|
|
|
|
super().__init__(message)
|