| | from PIL.Image import Image as PILImageType |
| | from pydantic import BaseModel, Field |
| |
|
| | from invokeai.backend.util.util import image_to_dataURL |
| |
|
| |
|
| | class SessionProcessorStatus(BaseModel): |
| | is_started: bool = Field(description="Whether the session processor is started") |
| | is_processing: bool = Field(description="Whether a session is being processed") |
| |
|
| |
|
| | class CanceledException(Exception): |
| | """Execution canceled by user.""" |
| |
|
| | pass |
| |
|
| |
|
| | class ProgressImage(BaseModel): |
| | """The progress image sent intermittently during processing""" |
| |
|
| | width: int = Field(ge=1, description="The effective width of the image in pixels") |
| | height: int = Field(ge=1, description="The effective height of the image in pixels") |
| | dataURL: str = Field(description="The image data as a b64 data URL") |
| |
|
| | @classmethod |
| | def build(cls, image: PILImageType, size: tuple[int, int] | None = None) -> "ProgressImage": |
| | """Build a ProgressImage from a PIL image""" |
| |
|
| | return cls( |
| | width=size[0] if size else image.width, |
| | height=size[1] if size else image.height, |
| | dataURL=image_to_dataURL(image, image_format="JPEG"), |
| | ) |
| |
|