
SCREAMING_SNAKE_CASE :		Dict       			=							"""0.18.2"""

from .configuration_utils import ConfigMixin
from .utils import (
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_inflect_available,
    is_invisible_watermark_available,
    is_k_diffusion_available,
    is_k_diffusion_version,
    is_librosa_available,
    is_note_seq_available,
    is_onnx_available,
    is_scipy_available,
    is_torch_available,
    is_torchsde_available,
    is_transformers_available,
    is_transformers_version,
    is_unidecode_available,
    logging,
)


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

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from .utils.dummy_pt_objects import *  # noqa F403
else:
						from .models import (
						    AutoencoderKL,
						    ControlNetModel,
						    ModelMixin,
						    PriorTransformer,
						    TaFilmDecoder,
						    TransformeraDModel,
						    UNetaDModel,
						    UNetaDConditionModel,
						    UNetaDModel,
						    UNetaDConditionModel,
						    VQModel,
						)
						from .optimization import (
						    get_constant_schedule,
						    get_constant_schedule_with_warmup,
						    get_cosine_schedule_with_warmup,
						    get_cosine_with_hard_restarts_schedule_with_warmup,
						    get_linear_schedule_with_warmup,
						    get_polynomial_decay_schedule_with_warmup,
						    get_scheduler,
						)
						from .pipelines import (
						    AudioPipelineOutput,
						    ConsistencyModelPipeline,
						    DanceDiffusionPipeline,
						    DDIMPipeline,
						    DDPMPipeline,
						    DiffusionPipeline,
						    DiTPipeline,
						    ImagePipelineOutput,
						    KarrasVePipeline,
						    LDMPipeline,
						    LDMSuperResolutionPipeline,
						    PNDMPipeline,
						    RePaintPipeline,
						    ScoreSdeVePipeline,
						)
						from .schedulers import (
						    CMStochasticIterativeScheduler,
						    DDIMInverseScheduler,
						    DDIMParallelScheduler,
						    DDIMScheduler,
						    DDPMParallelScheduler,
						    DDPMScheduler,
						    DEISMultistepScheduler,
						    DPMSolverMultistepInverseScheduler,
						    DPMSolverMultistepScheduler,
						    DPMSolverSinglestepScheduler,
						    EulerAncestralDiscreteScheduler,
						    EulerDiscreteScheduler,
						    HeunDiscreteScheduler,
						    IPNDMScheduler,
						    KarrasVeScheduler,
						    KDPMaAncestralDiscreteScheduler,
						    KDPMaDiscreteScheduler,
						    PNDMScheduler,
						    RePaintScheduler,
						    SchedulerMixin,
						    ScoreSdeVeScheduler,
						    UnCLIPScheduler,
						    UniPCMultistepScheduler,
						    VQDiffusionScheduler,
						)
						from .training_utils import EMAModel

try:
						if not (is_torch_available() and is_scipy_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from .utils.dummy_torch_and_scipy_objects import *  # noqa F403
else:
						from .schedulers import LMSDiscreteScheduler

try:
						if not (is_torch_available() and is_torchsde_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from .utils.dummy_torch_and_torchsde_objects import *  # noqa F403
else:
						from .schedulers import DPMSolverSDEScheduler

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 .pipelines import (
						    AltDiffusionImgaImgPipeline,
						    AltDiffusionPipeline,
						    AudioLDMPipeline,
						    CycleDiffusionPipeline,
						    IFImgaImgPipeline,
						    IFImgaImgSuperResolutionPipeline,
						    IFInpaintingPipeline,
						    IFInpaintingSuperResolutionPipeline,
						    IFPipeline,
						    IFSuperResolutionPipeline,
						    ImageTextPipelineOutput,
						    KandinskyImgaImgPipeline,
						    KandinskyInpaintPipeline,
						    KandinskyPipeline,
						    KandinskyPriorPipeline,
						    KandinskyVaaControlnetImgaImgPipeline,
						    KandinskyVaaControlnetPipeline,
						    KandinskyVaaImgaImgPipeline,
						    KandinskyVaaInpaintPipeline,
						    KandinskyVaaPipeline,
						    KandinskyVaaPriorEmbaEmbPipeline,
						    KandinskyVaaPriorPipeline,
						    LDMTextToImagePipeline,
						    PaintByExamplePipeline,
						    SemanticStableDiffusionPipeline,
						    ShapEImgaImgPipeline,
						    ShapEPipeline,
						    StableDiffusionAttendAndExcitePipeline,
						    StableDiffusionControlNetImgaImgPipeline,
						    StableDiffusionControlNetInpaintPipeline,
						    StableDiffusionControlNetPipeline,
						    StableDiffusionDepthaImgPipeline,
						    StableDiffusionDiffEditPipeline,
						    StableDiffusionImageVariationPipeline,
						    StableDiffusionImgaImgPipeline,
						    StableDiffusionInpaintPipeline,
						    StableDiffusionInpaintPipelineLegacy,
						    StableDiffusionInstructPixaPixPipeline,
						    StableDiffusionLatentUpscalePipeline,
						    StableDiffusionLDMaDPipeline,
						    StableDiffusionModelEditingPipeline,
						    StableDiffusionPanoramaPipeline,
						    StableDiffusionParadigmsPipeline,
						    StableDiffusionPipeline,
						    StableDiffusionPipelineSafe,
						    StableDiffusionPixaPixZeroPipeline,
						    StableDiffusionSAGPipeline,
						    StableDiffusionUpscalePipeline,
						    StableUnCLIPImgaImgPipeline,
						    StableUnCLIPPipeline,
						    TextToVideoSDPipeline,
						    TextToVideoZeroPipeline,
						    UnCLIPImageVariationPipeline,
						    UnCLIPPipeline,
						    UniDiffuserModel,
						    UniDiffuserPipeline,
						    UniDiffuserTextDecoder,
						    VersatileDiffusionDualGuidedPipeline,
						    VersatileDiffusionImageVariationPipeline,
						    VersatileDiffusionPipeline,
						    VersatileDiffusionTextToImagePipeline,
						    VideoToVideoSDPipeline,
						    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 .pipelines import StableDiffusionXLImgaImgPipeline, StableDiffusionXLPipeline

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 .pipelines import StableDiffusionKDiffusionPipeline

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 .pipelines import (
						    OnnxStableDiffusionImgaImgPipeline,
						    OnnxStableDiffusionInpaintPipeline,
						    OnnxStableDiffusionInpaintPipelineLegacy,
						    OnnxStableDiffusionPipeline,
						    OnnxStableDiffusionUpscalePipeline,
						    StableDiffusionOnnxPipeline,
						)

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 .pipelines import AudioDiffusionPipeline, Mel

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 .pipelines import SpectrogramDiffusionPipeline

try:
						if not is_flax_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from .utils.dummy_flax_objects import *  # noqa F403
else:
						from .models.controlnet_flax import FlaxControlNetModel
						from .models.modeling_flax_utils import FlaxModelMixin
						from .models.unet_ad_condition_flax import FlaxUNetaDConditionModel
						from .models.vae_flax import FlaxAutoencoderKL
						from .pipelines import FlaxDiffusionPipeline
						from .schedulers import (
						    FlaxDDIMScheduler,
						    FlaxDDPMScheduler,
						    FlaxDPMSolverMultistepScheduler,
						    FlaxKarrasVeScheduler,
						    FlaxLMSDiscreteScheduler,
						    FlaxPNDMScheduler,
						    FlaxSchedulerMixin,
						    FlaxScoreSdeVeScheduler,
						)


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 .pipelines import (
						    FlaxStableDiffusionControlNetPipeline,
						    FlaxStableDiffusionImgaImgPipeline,
						    FlaxStableDiffusionInpaintPipeline,
						    FlaxStableDiffusionPipeline,
						)

try:
						if not (is_note_seq_available()):
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						from .utils.dummy_note_seq_objects import *  # noqa F403
else:
						from .pipelines import MidiProcessor







'''simple docstring'''



from typing import List, Optional, Union

import numpy as np
import PIL.Image

from ...image_processing_utils import BaseImageProcessor, BatchFeature
from ...image_transforms import rescale, resize, to_channel_dimension_format
from ...image_utils import (
    ChannelDimension,
    PILImageResampling,
    get_image_size,
    make_list_of_images,
    to_numpy_array,
    valid_images,
)
from ...utils import TensorType, logging


__UpperCamelCase   :							Dict         =   logging.get_logger(__name__)
class 				__SCREAMING_SNAKE_CASE							(				_lowerCAmelCase  ):
      __a	       =["pixel_values"]




      def __init__(	self			, lowerCamelCase = True			, lowerCamelCase = 32			, lowerCamelCase=PILImageResampling.BILINEAR			, lowerCamelCase = True			, **lowerCamelCase			, )				->None:



         '''simple docstring'''
         __a					  =     do_resize
         __a					  =     do_rescale
         __a					  =     size_divisor
         __a					  =     resample
         super().__init__(**lowerCamelCase   )




      def 			__UpperCamelCase				(	self			, lowerCamelCase			, lowerCamelCase			, lowerCamelCase			, lowerCamelCase = None			, **lowerCamelCase   )				->np.ndarray:



         '''simple docstring'''
         __a  ,      __a					  =     get_image_size(lowerCamelCase   )
         # Rounds the height and width down to the closest multiple of size_divisor
         __a					  =     height // size_divisor * size_divisor
         __a					  =     width // size_divisor * size_divisor
         __a					  =     resize(lowerCamelCase			, (new_h, new_w)			, resample=lowerCamelCase			, data_format=lowerCamelCase			, **lowerCamelCase   )
         return image




      def 			__UpperCamelCase				(	self			, lowerCamelCase			, lowerCamelCase			, lowerCamelCase = None			, **lowerCamelCase   )				->np.ndarray:



         '''simple docstring'''
         return rescale(image=lowerCamelCase			, scale=lowerCamelCase			, data_format=lowerCamelCase			, **lowerCamelCase   )






      def 			__UpperCamelCase				(	self			, lowerCamelCase			, lowerCamelCase = None			, lowerCamelCase = None			, lowerCamelCase=None			, lowerCamelCase = None			, lowerCamelCase = None			, lowerCamelCase = ChannelDimension.FIRST			, **lowerCamelCase			, )				->BatchFeature:



         '''simple docstring'''
         __a					  =     do_resize if do_resize is not None else self.do_resize
         __a					  =     do_rescale if do_rescale is not None else self.do_rescale
         __a					  =     size_divisor if size_divisor is not None else self.size_divisor
         __a					  =     resample if resample is not None else self.resample

         if do_resize and size_divisor is None:
            raise ValueError('size_divisor is required for resizing'   )

         __a					  =     make_list_of_images(lowerCamelCase   )

         if not valid_images(lowerCamelCase   ):
            raise ValueError('Invalid image(s)'   )

         # All transformations expect numpy arrays.
         __a					  =     [to_numpy_array(lowerCamelCase   ) for img in images]

         if do_resize:
            __a					  =     [self.resize(lowerCamelCase			, size_divisor=lowerCamelCase			, resample=lowerCamelCase   ) for image in images]

         if do_rescale:
            __a					  =     [self.rescale(lowerCamelCase			, scale=1 / 255   ) for image in images]

         __a					  =     [to_channel_dimension_format(lowerCamelCase			, lowerCamelCase   ) for image in images]

         __a					  =     {'pixel_values': images}
         return BatchFeature(data=lowerCamelCase			, tensor_type=lowerCamelCase   )