

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    _lowercase				(					__lowerCamelCase			):
   _lowercase     :       Union[List[PIL.Image.Image], np.ndarray]
   _lowercase     :       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    _lowercase				(					__lowerCamelCase			):
         _lowercase     :       np.ndarray
         _lowercase     :       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








# this script reports modified .py files under the desired list of top-level sub-dirs passed as a list of arguments, e.g.:
#   python ./utils/get_modified_files.py utils src tests examples
#
# it uses git to find the forking point and which files were modified - i.e. files not under git won't be considered
# since the output of this script is fed into Makefile commands it doesn't print a newline after the results

import re
import subprocess
import sys


__lowercase				      =						subprocess.check_output("""git merge-base main HEAD""".split()).decode("""utf-8""")
__lowercase				      =						(
    subprocess.check_output(f'git diff --diff-filter=d --name-only {fork_point_sha}'.split()).decode("""utf-8""").split()
)

__lowercase				      =						"""|""".join(sys.argv[1:])
__lowercase				      =						re.compile(rf'^({joined_dirs}).*?\.py$')

__lowercase				      =						[x for x in modified_files if regex.match(x)]
print(""" """.join(relevant_modified_files), end="""""")





