mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
31 lines
756 B
Python
31 lines
756 B
Python
|
from abc import ABC, abstractmethod
|
||
|
from enum import Enum, EnumMeta
|
||
|
import uuid
|
||
|
|
||
|
|
||
|
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
|