mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
feat(nodes): streamline urlservice
This commit is contained in:
parent
adde8450bc
commit
cc1160a43a
@ -59,13 +59,8 @@ class ImageServiceABC(ABC):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_image_url(self, image_type: ImageType, image_name: str) -> str:
|
def get_url(self, image_type: ImageType, image_name: str, thumbnail: bool = False) -> str:
|
||||||
"""Gets an image's URL"""
|
"""Gets an image's or thumbnail's URL"""
|
||||||
pass
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def get_thumbnail_url(self, image_type: ImageType, image_name: str) -> str:
|
|
||||||
"""Gets an image's URL"""
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
@ -197,8 +192,8 @@ class ImageService(ImageServiceABC):
|
|||||||
)
|
)
|
||||||
|
|
||||||
image_url = self._services.urls.get_image_url(image_type, image_name)
|
image_url = self._services.urls.get_image_url(image_type, image_name)
|
||||||
thumbnail_url = self._services.urls.get_thumbnail_url(
|
thumbnail_url = self._services.urls.get_image_url(
|
||||||
image_type, image_name
|
image_type, image_name, True
|
||||||
)
|
)
|
||||||
|
|
||||||
return ImageDTO(
|
return ImageDTO(
|
||||||
@ -251,6 +246,15 @@ class ImageService(ImageServiceABC):
|
|||||||
self._services.logger.error("Problem getting image path")
|
self._services.logger.error("Problem getting image path")
|
||||||
raise e
|
raise e
|
||||||
|
|
||||||
|
def get_url(
|
||||||
|
self, image_type: ImageType, image_name: str, thumbnail: bool = False
|
||||||
|
) -> str:
|
||||||
|
try:
|
||||||
|
return self._services.urls.get_image_url(image_type, image_name, thumbnail)
|
||||||
|
except Exception as e:
|
||||||
|
self._services.logger.error("Problem getting image path")
|
||||||
|
raise e
|
||||||
|
|
||||||
def get_dto(self, image_type: ImageType, image_name: str) -> ImageDTO:
|
def get_dto(self, image_type: ImageType, image_name: str) -> ImageDTO:
|
||||||
try:
|
try:
|
||||||
image_record = self._services.records.get(image_type, image_name)
|
image_record = self._services.records.get(image_type, image_name)
|
||||||
@ -258,7 +262,7 @@ class ImageService(ImageServiceABC):
|
|||||||
image_dto = image_record_to_dto(
|
image_dto = image_record_to_dto(
|
||||||
image_record,
|
image_record,
|
||||||
self._services.urls.get_image_url(image_type, image_name),
|
self._services.urls.get_image_url(image_type, image_name),
|
||||||
self._services.urls.get_thumbnail_url(image_type, image_name),
|
self._services.urls.get_image_url(image_type, image_name, True),
|
||||||
)
|
)
|
||||||
|
|
||||||
return image_dto
|
return image_dto
|
||||||
@ -289,7 +293,9 @@ class ImageService(ImageServiceABC):
|
|||||||
lambda r: image_record_to_dto(
|
lambda r: image_record_to_dto(
|
||||||
r,
|
r,
|
||||||
self._services.urls.get_image_url(image_type, r.image_name),
|
self._services.urls.get_image_url(image_type, r.image_name),
|
||||||
self._services.urls.get_thumbnail_url(image_type, r.image_name),
|
self._services.urls.get_image_url(
|
||||||
|
image_type, r.image_name, True
|
||||||
|
),
|
||||||
),
|
),
|
||||||
results.items,
|
results.items,
|
||||||
)
|
)
|
||||||
|
@ -6,16 +6,13 @@ from invokeai.app.util.thumbnails import get_thumbnail_name
|
|||||||
|
|
||||||
|
|
||||||
class UrlServiceBase(ABC):
|
class UrlServiceBase(ABC):
|
||||||
"""Responsible for building URLs for resources (eg images or tensors)"""
|
"""Responsible for building URLs for resources."""
|
||||||
|
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def get_image_url(self, image_type: ImageType, image_name: str) -> str:
|
def get_image_url(
|
||||||
"""Gets the URL for an image"""
|
self, image_type: ImageType, image_name: str, thumbnail: bool = False
|
||||||
pass
|
) -> str:
|
||||||
|
"""Gets the URL for an image or thumbnail."""
|
||||||
@abstractmethod
|
|
||||||
def get_thumbnail_url(self, image_type: ImageType, image_name: str) -> str:
|
|
||||||
"""Gets the URL for an image's thumbnail"""
|
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
@ -23,10 +20,11 @@ class LocalUrlService(UrlServiceBase):
|
|||||||
def __init__(self, base_url: str = "api/v1"):
|
def __init__(self, base_url: str = "api/v1"):
|
||||||
self._base_url = base_url
|
self._base_url = base_url
|
||||||
|
|
||||||
def get_image_url(self, image_type: ImageType, image_name: str) -> str:
|
def get_image_url(
|
||||||
|
self, image_type: ImageType, image_name: str, thumbnail: bool = False
|
||||||
|
) -> str:
|
||||||
image_basename = os.path.basename(image_name)
|
image_basename = os.path.basename(image_name)
|
||||||
return f"{self._base_url}/files/images/{image_type.value}/{image_basename}"
|
if thumbnail:
|
||||||
|
return f"{self._base_url}/files/images/{image_type.value}/{image_basename}/thumbnail"
|
||||||
|
|
||||||
def get_thumbnail_url(self, image_type: ImageType, image_name: str) -> str:
|
return f"{self._base_url}/files/images/{image_type.value}/{image_basename}"
|
||||||
image_basename = os.path.basename(image_name)
|
|
||||||
return f"{self._base_url}/files/images/{image_type.value}/{image_basename}/thumbnail"
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user