43ntropy
/

File size: 782 Bytes
1e2bb2f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from __future__ import annotations

from abc import ABC, abstractmethod
from typing import Any


class TextToImageGenerator(ABC):
    @abstractmethod
    def generate(self, prompts: list[str], *, generator: Any | None = None, **kwargs) -> list[Any]:
        ...


class ImageToVideoGenerator(ABC):
    @abstractmethod
    def generate(self, image: Any, prompt: str, *, generator: Any | None = None, **kwargs) -> Any:
        ...

    def generate_batch(self, images: list[Any], prompts: list[str], *, generators: list[Any] | None = None, **kwargs) -> list[Any]:
        generators = generators or [None] * len(images)
        return [
            self.generate(image, prompt, generator=gen, **kwargs)
            for image, prompt, gen in zip(images, prompts, generators)
        ]