
"""simple docstring"""


import warnings

from ...processing_utils import ProcessorMixin
from ...tokenization_utils_base import BatchEncoding



class   __a  (      _lowerCAmelCase	):
       UpperCamelCase_		:					Dict   =			['''image_processor''', '''tokenizer''']
       UpperCamelCase_		:					List[str]   =			'''ViTImageProcessor'''
       UpperCamelCase_		:					List[str]   =			('''CLIPTokenizer''', '''CLIPTokenizerFast''')






       def __init__(  self :							List[str]       ,      UpperCAmelCase_ :							Dict=None       ,      UpperCAmelCase_ :							int=None       ,      **UpperCAmelCase_ :							Union[str, Any]			)->  int:







              """simple docstring"""
              UpperCamelCase					 =		None
              if "feature_extractor" in kwargs:
                     warnings.warn(
                         "The `feature_extractor` argument is deprecated and will be removed in v5, use `image_processor`"
                         " instead."       ,      UpperCAmelCase_       ,      )
                     UpperCamelCase					 =		kwargs.pop("feature_extractor"			)

              UpperCamelCase					 =		image_processor if image_processor is not None else feature_extractor
              if image_processor is None:
                     raise ValueError("You need to specify an `image_processor`."			)
              if tokenizer is None:
                     raise ValueError("You need to specify a `tokenizer`."			)

              super().__init__(UpperCAmelCase_       ,      UpperCAmelCase_			)






       def __call__(  self :							Tuple       ,      UpperCAmelCase_ :							int=None       ,      UpperCAmelCase_ :							Union[str, Any]=None       ,      UpperCAmelCase_ :							Dict=None       ,      UpperCAmelCase_ :							str=None       ,      **UpperCAmelCase_ :							Union[str, Any]			)->  Optional[int]:







              """simple docstring"""
              if text is None and visual_prompt is None and images is None:
                     raise ValueError("You have to specify either text, visual prompt or images."			)

              if text is not None and visual_prompt is not None:
                     raise ValueError("You have to specify exactly one type of prompt. Either text or visual prompt."			)

              if text is not None:
                     UpperCamelCase					 =		self.tokenizer(UpperCAmelCase_       ,      return_tensors=UpperCAmelCase_       ,      **UpperCAmelCase_			)

              if visual_prompt is not None:
                     UpperCamelCase					 =		self.image_processor(UpperCAmelCase_       ,      return_tensors=UpperCAmelCase_       ,      **UpperCAmelCase_			)

              if images is not None:
                     UpperCamelCase					 =		self.image_processor(UpperCAmelCase_       ,      return_tensors=UpperCAmelCase_       ,      **UpperCAmelCase_			)

              if visual_prompt is not None and images is not None:
                     UpperCamelCase					 =		{
                         "pixel_values": image_features.pixel_values,
                         "conditional_pixel_values": prompt_features.pixel_values,
                     }
                     return encoding
              elif text is not None and images is not None:
                     UpperCamelCase					 =		image_features.pixel_values
                     return encoding
              elif text is not None:
                     return encoding
              elif visual_prompt is not None:
                     UpperCamelCase					 =		{
                         "conditional_pixel_values": prompt_features.pixel_values,
                     }
                     return encoding
              else:
                     return BatchEncoding(data=dict(**UpperCAmelCase_			)       ,      tensor_type=UpperCAmelCase_			)






       def 	_SCREAMING_SNAKE_CASE       (  self :							Tuple       ,      *UpperCAmelCase_ :							Any       ,      **UpperCAmelCase_ :							Union[str, Any]			)->  int:







              """simple docstring"""
              return self.tokenizer.batch_decode(*UpperCAmelCase_       ,      **UpperCAmelCase_			)






       def 	_SCREAMING_SNAKE_CASE       (  self :							str       ,      *UpperCAmelCase_ :							str       ,      **UpperCAmelCase_ :							Tuple			)->  Union[str, Any]:







              """simple docstring"""
              return self.tokenizer.decode(*UpperCAmelCase_       ,      **UpperCAmelCase_			)






       @property
       def 	_SCREAMING_SNAKE_CASE       (  self :							Optional[int]			)->  Union[str, Any]:







              """simple docstring"""
              warnings.warn(
                  "`feature_extractor_class` is deprecated and will be removed in v5. Use `image_processor_class` instead."       ,      UpperCAmelCase_       ,      )
              return self.image_processor_class






       @property
       def 	_SCREAMING_SNAKE_CASE       (  self :							Union[str, Any]			)->  Optional[int]:







              """simple docstring"""
              warnings.warn(
                  "`feature_extractor` is deprecated and will be removed in v5. Use `image_processor` instead."       ,      UpperCAmelCase_       ,      )
              return self.image_processor







"""simple docstring"""


from dataclasses import dataclass
from typing import List, Optional, Union

import numpy as np
import PIL
from PIL import Image

from ...utils import (
    BaseOutput,
    OptionalDependencyNotAvailable,
    is_flax_available,
    is_k_diffusion_available,
    is_k_diffusion_version,
    is_onnx_available,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)



@dataclass
class   __a  (      _lowerCAmelCase	):
       UpperCamelCase_		:					Union[List[PIL.Image.Image], np.ndarray]
       UpperCamelCase_		:					Optional[List[bool]]


try:
      if not (is_transformers_available() and is_torch_available()):
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      from ...utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
      from .pipeline_cycle_diffusion import CycleDiffusionPipeline
      from .pipeline_stable_diffusion import StableDiffusionPipeline
      from .pipeline_stable_diffusion_attend_and_excite import StableDiffusionAttendAndExcitePipeline
      from .pipeline_stable_diffusion_imgaimg import StableDiffusionImgaImgPipeline
      from .pipeline_stable_diffusion_inpaint import StableDiffusionInpaintPipeline
      from .pipeline_stable_diffusion_inpaint_legacy import StableDiffusionInpaintPipelineLegacy
      from .pipeline_stable_diffusion_instruct_pixapix import StableDiffusionInstructPixaPixPipeline
      from .pipeline_stable_diffusion_latent_upscale import StableDiffusionLatentUpscalePipeline
      from .pipeline_stable_diffusion_ldmad import StableDiffusionLDMaDPipeline
      from .pipeline_stable_diffusion_model_editing import StableDiffusionModelEditingPipeline
      from .pipeline_stable_diffusion_panorama import StableDiffusionPanoramaPipeline
      from .pipeline_stable_diffusion_paradigms import StableDiffusionParadigmsPipeline
      from .pipeline_stable_diffusion_sag import StableDiffusionSAGPipeline
      from .pipeline_stable_diffusion_upscale import StableDiffusionUpscalePipeline
      from .pipeline_stable_unclip import StableUnCLIPPipeline
      from .pipeline_stable_unclip_imgaimg import StableUnCLIPImgaImgPipeline
      from .safety_checker import StableDiffusionSafetyChecker
      from .stable_unclip_image_normalizer import StableUnCLIPImageNormalizer

try:
      if not (is_transformers_available() and is_torch_available() and is_transformers_version(""">=""", """4.25.0""")):
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      from ...utils.dummy_torch_and_transformers_objects import StableDiffusionImageVariationPipeline
else:
      from .pipeline_stable_diffusion_image_variation import StableDiffusionImageVariationPipeline


try:
      if not (is_transformers_available() and is_torch_available() and is_transformers_version(""">=""", """4.26.0""")):
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      from ...utils.dummy_torch_and_transformers_objects import (
          StableDiffusionDepthaImgPipeline,
          StableDiffusionDiffEditPipeline,
          StableDiffusionPixaPixZeroPipeline,
      )
else:
      from .pipeline_stable_diffusion_depthaimg import StableDiffusionDepthaImgPipeline
      from .pipeline_stable_diffusion_diffedit import StableDiffusionDiffEditPipeline
      from .pipeline_stable_diffusion_pixapix_zero import StableDiffusionPixaPixZeroPipeline


try:
      if not (
          is_torch_available()
          and is_transformers_available()
          and is_k_diffusion_available()
          and is_k_diffusion_version(""">=""", """0.0.12""")
      ):
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      from ...utils.dummy_torch_and_transformers_and_k_diffusion_objects import *  # noqa F403
else:
      from .pipeline_stable_diffusion_k_diffusion import StableDiffusionKDiffusionPipeline

try:
      if not (is_transformers_available() and is_onnx_available()):
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      from ...utils.dummy_onnx_objects import *  # noqa F403
else:
      from .pipeline_onnx_stable_diffusion import OnnxStableDiffusionPipeline, StableDiffusionOnnxPipeline
      from .pipeline_onnx_stable_diffusion_imgaimg import OnnxStableDiffusionImgaImgPipeline
      from .pipeline_onnx_stable_diffusion_inpaint import OnnxStableDiffusionInpaintPipeline
      from .pipeline_onnx_stable_diffusion_inpaint_legacy import OnnxStableDiffusionInpaintPipelineLegacy
      from .pipeline_onnx_stable_diffusion_upscale import OnnxStableDiffusionUpscalePipeline

if is_transformers_available() and is_flax_available():
      import flax



      @flax.struct.dataclass
      class   __a  (      _lowerCAmelCase	):
             UpperCamelCase_		:					np.ndarray
             UpperCamelCase_		:					List[bool]





      from ...schedulers.scheduling_pndm_flax import PNDMSchedulerState
      from .pipeline_flax_stable_diffusion import FlaxStableDiffusionPipeline
      from .pipeline_flax_stable_diffusion_imgaimg import FlaxStableDiffusionImgaImgPipeline
      from .pipeline_flax_stable_diffusion_inpaint import FlaxStableDiffusionInpaintPipeline
      from .safety_checker_flax import FlaxStableDiffusionSafetyChecker





