2023-08-18 14:57:18 +00:00
|
|
|
import uuid
|
2023-05-26 23:10:02 +00:00
|
|
|
from abc import ABC, abstractmethod
|
|
|
|
from enum import Enum, EnumMeta
|
|
|
|
|
|
|
|
|
|
|
|
class ResourceType(str, Enum, metaclass=EnumMeta):
|
|
|
|
"""Enum for resource types."""
|
|
|
|
|
|
|
|
IMAGE = "image"
|
|
|
|
LATENT = "latent"
|
|
|
|
|
|
|
|
|
|
|
|
class NameServiceBase(ABC):
|
|
|
|
"""Low-level service responsible for naming resources (images, latents, etc)."""
|
|
|
|
|
|
|
|
# TODO: Add customizable naming schemes
|
|
|
|
@abstractmethod
|
|
|
|
def create_image_name(self) -> str:
|
|
|
|
"""Creates a name for an image."""
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class SimpleNameService(NameServiceBase):
|
|
|
|
"""Creates image names from UUIDs."""
|
|
|
|
|
|
|
|
# TODO: Add customizable naming schemes
|
|
|
|
def create_image_name(self) -> str:
|
|
|
|
uuid_str = str(uuid.uuid4())
|
|
|
|
filename = f"{uuid_str}.png"
|
|
|
|
return filename
|