InvokeAI/invokeai/app/services/urls.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

35 lines
1.0 KiB
Python
Raw Normal View History

import os
from abc import ABC, abstractmethod
from invokeai.app.models.image import ResourceOrigin
from invokeai.app.util.thumbnails import get_thumbnail_name
class UrlServiceBase(ABC):
2023-05-21 12:44:16 +00:00
"""Responsible for building URLs for resources."""
@abstractmethod
2023-05-21 12:44:16 +00:00
def get_image_url(
self, image_origin: ResourceOrigin, image_name: str, thumbnail: bool = False
2023-05-21 12:44:16 +00:00
) -> str:
"""Gets the URL for an image or thumbnail."""
pass
class LocalUrlService(UrlServiceBase):
def __init__(self, base_url: str = "api/v1"):
self._base_url = base_url
2023-05-21 12:44:16 +00:00
def get_image_url(
self, image_origin: ResourceOrigin, image_name: str, thumbnail: bool = False
2023-05-21 12:44:16 +00:00
) -> str:
image_basename = os.path.basename(image_name)
# These paths are determined by the routes in invokeai/app/api/routers/images.py
2023-05-21 12:44:16 +00:00
if thumbnail:
return (
f"{self._base_url}/images/{image_origin.value}/{image_basename}/thumbnail"
)
return f"{self._base_url}/images/{image_origin.value}/{image_basename}"