






'''simple docstring'''
from ..utils import (
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_invisible_watermark_available,
    is_k_diffusion_available,
    is_librosa_available,
    is_note_seq_available,
    is_onnx_available,
    is_torch_available,
    is_transformers_available,
)


try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_pt_objects import *  # noqa F403
else:
						from .consistency_models import ConsistencyModelPipeline
						from .dance_diffusion import DanceDiffusionPipeline
						from .ddim import DDIMPipeline
						from .ddpm import DDPMPipeline
						from .dit import DiTPipeline
						from .latent_diffusion import LDMSuperResolutionPipeline
						from .latent_diffusion_uncond import LDMPipeline
						from .pipeline_utils import AudioPipelineOutput, DiffusionPipeline, ImagePipelineOutput
						from .pndm import PNDMPipeline
						from .repaint import RePaintPipeline
						from .score_sde_ve import ScoreSdeVePipeline
						from .stochastic_karras_ve import KarrasVePipeline

try:
						if not (is_torch_available() and is_librosa_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_torch_and_librosa_objects import *  # noqa F403
else:
						from .audio_diffusion import AudioDiffusionPipeline, Mel

try:
						if not (is_torch_available() and is_transformers_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
						from .alt_diffusion import AltDiffusionImgaImgPipeline, AltDiffusionPipeline
						from .audioldm import AudioLDMPipeline
						from .controlnet import (
						    StableDiffusionControlNetImgaImgPipeline,
						    StableDiffusionControlNetInpaintPipeline,
						    StableDiffusionControlNetPipeline,
						)
						from .deepfloyd_if import (
						    IFImgaImgPipeline,
						    IFImgaImgSuperResolutionPipeline,
						    IFInpaintingPipeline,
						    IFInpaintingSuperResolutionPipeline,
						    IFPipeline,
						    IFSuperResolutionPipeline,
						)
						from .kandinsky import (
						    KandinskyImgaImgPipeline,
						    KandinskyInpaintPipeline,
						    KandinskyPipeline,
						    KandinskyPriorPipeline,
						)
						from .kandinskya_a import (
						    KandinskyVaaControlnetImgaImgPipeline,
						    KandinskyVaaControlnetPipeline,
						    KandinskyVaaImgaImgPipeline,
						    KandinskyVaaInpaintPipeline,
						    KandinskyVaaPipeline,
						    KandinskyVaaPriorEmbaEmbPipeline,
						    KandinskyVaaPriorPipeline,
						)
						from .latent_diffusion import LDMTextToImagePipeline
						from .paint_by_example import PaintByExamplePipeline
						from .semantic_stable_diffusion import SemanticStableDiffusionPipeline
						from .shap_e import ShapEImgaImgPipeline, ShapEPipeline
						from .stable_diffusion import (
						    CycleDiffusionPipeline,
						    StableDiffusionAttendAndExcitePipeline,
						    StableDiffusionDepthaImgPipeline,
						    StableDiffusionDiffEditPipeline,
						    StableDiffusionImageVariationPipeline,
						    StableDiffusionImgaImgPipeline,
						    StableDiffusionInpaintPipeline,
						    StableDiffusionInpaintPipelineLegacy,
						    StableDiffusionInstructPixaPixPipeline,
						    StableDiffusionLatentUpscalePipeline,
						    StableDiffusionLDMaDPipeline,
						    StableDiffusionModelEditingPipeline,
						    StableDiffusionPanoramaPipeline,
						    StableDiffusionParadigmsPipeline,
						    StableDiffusionPipeline,
						    StableDiffusionPixaPixZeroPipeline,
						    StableDiffusionSAGPipeline,
						    StableDiffusionUpscalePipeline,
						    StableUnCLIPImgaImgPipeline,
						    StableUnCLIPPipeline,
						)
						from .stable_diffusion_safe import StableDiffusionPipelineSafe
						from .text_to_video_synthesis import TextToVideoSDPipeline, TextToVideoZeroPipeline, VideoToVideoSDPipeline
						from .unclip import UnCLIPImageVariationPipeline, UnCLIPPipeline
						from .unidiffuser import ImageTextPipelineOutput, UniDiffuserModel, UniDiffuserPipeline, UniDiffuserTextDecoder
						from .versatile_diffusion import (
						    VersatileDiffusionDualGuidedPipeline,
						    VersatileDiffusionImageVariationPipeline,
						    VersatileDiffusionPipeline,
						    VersatileDiffusionTextToImagePipeline,
						)
						from .vq_diffusion import VQDiffusionPipeline


try:
						if not (is_torch_available() and is_transformers_available() and is_invisible_watermark_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_torch_and_transformers_and_invisible_watermark_objects import *  # noqa F403
else:
						from .stable_diffusion_xl import StableDiffusionXLImgaImgPipeline, StableDiffusionXLPipeline

try:
						if not is_onnx_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_onnx_objects import *  # noqa F403
else:
						from .onnx_utils import OnnxRuntimeModel

try:
						if not (is_torch_available() and is_transformers_available() and is_onnx_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_torch_and_transformers_and_onnx_objects import *  # noqa F403
else:
						from .stable_diffusion import (
						    OnnxStableDiffusionImgaImgPipeline,
						    OnnxStableDiffusionInpaintPipeline,
						    OnnxStableDiffusionInpaintPipelineLegacy,
						    OnnxStableDiffusionPipeline,
						    OnnxStableDiffusionUpscalePipeline,
						    StableDiffusionOnnxPipeline,
						)

try:
						if not (is_torch_available() and is_transformers_available() and is_k_diffusion_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_torch_and_transformers_and_k_diffusion_objects import *  # noqa F403
else:
						from .stable_diffusion import StableDiffusionKDiffusionPipeline

try:
						if not is_flax_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_flax_objects import *  # noqa F403
else:
						from .pipeline_flax_utils import FlaxDiffusionPipeline


try:
						if not (is_flax_available() and is_transformers_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_flax_and_transformers_objects import *  # noqa F403
else:
						from .controlnet import FlaxStableDiffusionControlNetPipeline
						from .stable_diffusion import (
						    FlaxStableDiffusionImgaImgPipeline,
						    FlaxStableDiffusionInpaintPipeline,
						    FlaxStableDiffusionPipeline,
						)
try:
						if not (is_transformers_available() and is_torch_available() and is_note_seq_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from ..utils.dummy_transformers_and_torch_and_note_seq_objects import *  # noqa F403
else:
						from .spectrogram_diffusion import MidiProcessor, SpectrogramDiffusionPipeline









'''simple docstring'''
from typing import List, Optional, Tuple, Union

import torch

from ...models import UNetaDModel
from ...schedulers import PNDMScheduler
from ...utils import randn_tensor
from ..pipeline_utils import DiffusionPipeline, ImagePipelineOutput


class    _snake_case   (				snake_case					):

					"""simple docstring"""





					_UpperCamelCase		 =      42
					_UpperCamelCase		 =      42




					def __init__(     self   , UpperCAmelCase__   , UpperCAmelCase__     )      ->	int:
										super().__init__()

										a_									=   PNDMScheduler.from_config(scheduler.config     )

										self.register_modules(unet=UpperCAmelCase__   , scheduler=UpperCAmelCase__     )




					@torch.no_grad()
					def __call__(     self   , UpperCAmelCase__ = 1   , UpperCAmelCase__ = 50   , UpperCAmelCase__ = None   , UpperCAmelCase__ = "pil"   , UpperCAmelCase__ = True   , **UpperCAmelCase__   , )      ->	Union[ImagePipelineOutput, Tuple]:
										a_									=   randn_tensor(
										    (batch_size, self.unet.config.in_channels, self.unet.config.sample_size, self.unet.config.sample_size)   , generator=UpperCAmelCase__   , device=self.device   , )

										self.scheduler.set_timesteps(UpperCAmelCase__     )
										for t in self.progress_bar(self.scheduler.timesteps     ):
															a_									=   self.unet(UpperCAmelCase__   , UpperCAmelCase__     ).sample

															a_									=   self.scheduler.step(UpperCAmelCase__   , UpperCAmelCase__   , UpperCAmelCase__     ).prev_sample

										a_									=   (image / 2 + 0.5).clamp(0   , 1     )
										a_									=   image.cpu().permute(0   , 2   , 3   , 1     ).numpy()
										if output_type == "pil":
															a_									=   self.numpy_to_pil(UpperCAmelCase__     )

										if not return_dict:
															return (image,)

										return ImagePipelineOutput(images=UpperCAmelCase__     )

