InvokeAI/invokeai/app/services/urls.py

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

33 lines
1.1 KiB
Python
Raw Normal View History

import os
from abc import ABC, abstractmethod
from invokeai.app.models.image import ImageType
from invokeai.app.util.thumbnails import get_thumbnail_name
class UrlServiceBase(ABC):
"""Responsible for building URLs for resources (eg images or tensors)"""
@abstractmethod
def get_image_url(self, image_type: ImageType, image_name: str) -> str:
"""Gets the URL for an image"""
pass
@abstractmethod
def get_thumbnail_url(self, image_type: ImageType, image_name: str) -> str:
"""Gets the URL for an image's thumbnail"""
pass
class LocalUrlService(UrlServiceBase):
def __init__(self, base_url: str = "api/v1"):
self._base_url = base_url
def get_image_url(self, image_type: ImageType, image_name: str) -> str:
image_basename = os.path.basename(image_name)
2023-05-21 12:15:44 +00:00
return f"{self._base_url}/files/images/{image_type.value}/{image_basename}"
def get_thumbnail_url(self, image_type: ImageType, image_name: str) -> str:
2023-05-21 12:15:44 +00:00
image_basename = os.path.basename(image_name)
return f"{self._base_url}/files/images/{image_type.value}/{image_basename}/thumbnail"