|
from typing import Any, List, Union |
|
|
|
from pydantic import BaseModel, Field |
|
|
|
|
|
class SamEmbeddingResponse(BaseModel): |
|
"""SAM embedding response. |
|
|
|
Attributes: |
|
embeddings (Union[List[List[List[List[float]]]], Any]): The SAM embedding. |
|
time (float): The time in seconds it took to produce the embeddings including preprocessing. |
|
""" |
|
|
|
embeddings: Union[List[List[List[List[float]]]], Any] = Field( |
|
examples=["[[[[0.1, 0.2, 0.3, ...] ...] ...]]"], |
|
description="If request format is json, embeddings is a series of nested lists representing the SAM embedding. If request format is binary, embeddings is a binary numpy array. The dimensions of the embedding are 1 x 256 x 64 x 64.", |
|
) |
|
time: float = Field( |
|
description="The time in seconds it took to produce the embeddings including preprocessing" |
|
) |
|
|
|
|
|
class SamSegmentationResponse(BaseModel): |
|
"""SAM segmentation response. |
|
|
|
Attributes: |
|
masks (Union[List[List[List[int]]], Any]): The set of output masks. |
|
low_res_masks (Union[List[List[List[int]]], Any]): The set of output low-resolution masks. |
|
time (float): The time in seconds it took to produce the segmentation including preprocessing. |
|
""" |
|
|
|
masks: Union[List[List[List[int]]], Any] = Field( |
|
description="The set of output masks. If request format is json, masks is a list of polygons, where each polygon is a list of points, where each point is a tuple containing the x,y pixel coordinates of the point. If request format is binary, masks is a list of binary numpy arrays. The dimensions of each mask are the same as the dimensions of the input image.", |
|
) |
|
low_res_masks: Union[List[List[List[int]]], Any] = Field( |
|
description="The set of output masks. If request format is json, masks is a list of polygons, where each polygon is a list of points, where each point is a tuple containing the x,y pixel coordinates of the point. If request format is binary, masks is a list of binary numpy arrays. The dimensions of each mask are 256 x 256", |
|
) |
|
time: float = Field( |
|
description="The time in seconds it took to produce the segmentation including preprocessing" |
|
) |
|
|