| from abc import ABC, abstractmethod |
| from typing import Any, Sequence |
|
|
| from PIL import Image |
|
|
| from services.image.ImageGenerationResult import ImageGenerationResult |
| from services.progress import ProgressCallback |
| from services.services import GenerationService, TaskType |
|
|
|
|
| class ImageGenerator(GenerationService, ABC): |
| """Base class for image generation backends.""" |
|
|
| task_type = TaskType.IMAGE |
|
|
| @abstractmethod |
| def generate( |
| self, |
| prompt: str, |
| images: Sequence[Image.Image] | None = None, |
| *, |
| progress: ProgressCallback | None = None, |
| aspect_ratio: str | None = None, |
| **kwargs: Any, |
| ) -> ImageGenerationResult: |
|
|
| """Generate images from a prompt and optional images. """ |
| |
| raise NotImplementedError |
|
|