

"""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 					_lowerCAmelCase  (	lowercase   ):







 """simple docstring"""







 __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 					_lowerCAmelCase  (	lowercase   ):







    """simple docstring"""







    __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







"""simple docstring"""





import unittest

from transformers import load_tool

from .test_tools_common import ToolTesterMixin




class 					_lowerCAmelCase  (	unittest.TestCase     ,lowercase   ):







 """simple docstring"""







 def 					_lowercase (			self							:			List[Any]	):
    __lowercase								=						load_tool("text-classification"	)
    self.tool.setup()
    __lowercase								=						load_tool("text-classification",					remote=UpperCAmelCase__	)


 def 					_lowercase (			self							:			str	):
    __lowercase								=						self.tool("That's quite cool",					["positive", "negative"]	)
    self.assertEqual(UpperCAmelCase__,					"positive"	)


 def 					_lowercase (			self							:			str	):
    __lowercase								=						self.remote_tool("That's quite cool",					["positive", "negative"]	)
    self.assertEqual(UpperCAmelCase__,					"positive"	)


 def 					_lowercase (			self							:			List[str]	):
    __lowercase								=						self.tool(text="That's quite cool",					labels=["positive", "negative"]	)
    self.assertEqual(UpperCAmelCase__,					"positive"	)



 def 					_lowercase (			self							:			Tuple	):
    __lowercase								=						self.remote_tool(text="That's quite cool",					labels=["positive", "negative"]	)
    self.assertEqual(UpperCAmelCase__,					"positive"	)




