|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from dataclasses import dataclass |
|
from typing import List, Optional, Union |
|
|
|
import numpy as np |
|
import PIL |
|
|
|
from ...utils import ( |
|
BaseOutput, |
|
OptionalDependencyNotAvailable, |
|
is_fastdeploy_available, |
|
is_k_diffusion_available, |
|
is_paddle_available, |
|
is_paddlenlp_available, |
|
) |
|
|
|
|
|
@dataclass |
|
class StableDiffusionPipelineOutput(BaseOutput): |
|
""" |
|
Output class for Stable Diffusion 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. |
|
nsfw_content_detected (`List[bool]`) |
|
List of flags denoting whether the corresponding generated image likely represents "not-safe-for-work" |
|
(nsfw) content, or `None` if safety checking could not be performed. |
|
""" |
|
|
|
images: Union[List[PIL.Image.Image], np.ndarray] |
|
nsfw_content_detected: Optional[List[bool]] |
|
|
|
|
|
try: |
|
if not (is_paddlenlp_available() and is_paddle_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ...utils.dummy_paddle_and_paddlenlp_objects import ( |
|
StableDiffusionDepth2ImgPipeline, |
|
) |
|
else: |
|
from .pipeline_stable_diffusion_depth2img import StableDiffusionDepth2ImgPipeline |
|
|
|
if is_paddlenlp_available() and is_paddle_available(): |
|
from .pipeline_cycle_diffusion import CycleDiffusionPipeline |
|
from .pipeline_stable_diffusion import StableDiffusionPipeline |
|
from .pipeline_stable_diffusion_all_in_one import StableDiffusionPipelineAllinOne |
|
from .pipeline_stable_diffusion_img2img import StableDiffusionImg2ImgPipeline |
|
from .pipeline_stable_diffusion_inpaint import StableDiffusionInpaintPipeline |
|
from .pipeline_stable_diffusion_inpaint_legacy import ( |
|
StableDiffusionInpaintPipelineLegacy, |
|
) |
|
from .pipeline_stable_diffusion_mega import StableDiffusionMegaPipeline |
|
from .pipeline_stable_diffusion_upscale import StableDiffusionUpscalePipeline |
|
from .safety_checker import StableDiffusionSafetyChecker |
|
|
|
try: |
|
if not (is_paddlenlp_available() and is_paddle_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ...utils.dummy_paddle_and_paddlenlp_objects import ( |
|
StableDiffusionImageVariationPipeline, |
|
) |
|
else: |
|
from .pipeline_stable_diffusion_image_variation import ( |
|
StableDiffusionImageVariationPipeline, |
|
) |
|
|
|
try: |
|
if not (is_paddle_available() and is_paddlenlp_available() and is_k_diffusion_available()): |
|
raise OptionalDependencyNotAvailable() |
|
except OptionalDependencyNotAvailable: |
|
from ...utils.dummy_paddle_and_paddlenlp_and_k_diffusion_objects import * |
|
else: |
|
from .pipeline_stable_diffusion_k_diffusion import StableDiffusionKDiffusionPipeline |
|
|
|
if is_paddlenlp_available() and is_fastdeploy_available(): |
|
from .pipeline_fastdeploy_stable_diffusion import FastDeployStableDiffusionPipeline |
|
from .pipeline_fastdeploy_stable_diffusion_img2img import ( |
|
FastDeployStableDiffusionImg2ImgPipeline, |
|
) |
|
from .pipeline_fastdeploy_stable_diffusion_inpaint import ( |
|
FastDeployStableDiffusionInpaintPipeline, |
|
) |
|
from .pipeline_fastdeploy_stable_diffusion_inpaint_legacy import ( |
|
FastDeployStableDiffusionInpaintPipelineLegacy, |
|
) |
|
from .pipeline_fastdeploy_stable_diffusion_mega import ( |
|
FastDeployStableDiffusionMegaPipeline, |
|
) |
|
|