pipeline_output.py 1.19 KB
Newer Older
Aryan's avatar
Aryan committed
1
from dataclasses import dataclass
Aryan's avatar
Aryan committed
2
from typing import List, Union
Aryan's avatar
Aryan committed
3

Aryan's avatar
Aryan committed
4
5
import numpy as np
import PIL.Image
Aryan's avatar
Aryan committed
6
7
import torch

Aryan's avatar
Aryan committed
8
9
10
11
from diffusers.utils import BaseOutput, get_logger


logger = get_logger(__name__)
Aryan's avatar
Aryan committed
12
13
14
15
16


@dataclass
class CosmosPipelineOutput(BaseOutput):
    r"""
Aryan's avatar
Aryan committed
17
    Output class for Cosmos any-to-world/video pipelines.
Aryan's avatar
Aryan committed
18
19
20
21
22
23
24
25
26

    Args:
        frames (`torch.Tensor`, `np.ndarray`, or List[List[PIL.Image.Image]]):
            List of video outputs - It can be a nested list of length `batch_size,` with each sub-list containing
            denoised PIL image sequences of length `num_frames.` It can also be a NumPy array or Torch tensor of shape
            `(batch_size, num_frames, channels, height, width)`.
    """

    frames: torch.Tensor
Aryan's avatar
Aryan committed
27
28
29
30
31
32
33
34
35
36
37
38
39
40


@dataclass
class CosmosImagePipelineOutput(BaseOutput):
    """
    Output class for Cosmos any-to-image pipelines.

    Args:
        images (`List[PIL.Image.Image]` or `np.ndarray`)
            List of denoised PIL images of length `batch_size` or numpy array of shape `(batch_size, height, width,
            num_channels)`. PIL images or numpy array present the denoised images of the diffusion pipeline.
    """

    images: Union[List[PIL.Image.Image], np.ndarray]