

"""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 is_torch_available
from transformers.testing_utils import require_sentencepiece, require_tokenizers, require_torch, slow


if is_torch_available():
       import torch

       from transformers import XLMRobertaModel

@require_sentencepiece
@require_tokenizers
@require_torch
class 		UpperCAmelCase_      (  unittest.TestCase		):





     @slow
     def 							__UpperCAmelCase      ( self       :      str    )				->  List[str]:
        lowerCAmelCase     =			XLMRobertaModel.from_pretrained('xlm-roberta-base'    )
        lowerCAmelCase     =			torch.tensor([[0, 5_8_1, 1_0_2_6_9, 8_3, 9_9_9_4_2, 1_3_6, 6_0_7_4_2, 2_3, 7_0, 8_0_5_8_3, 1_8_2_7_6, 2]]    )
        # The dog is cute and lives in the garden house

        lowerCAmelCase     =			torch.Size((1, 1_2, 7_6_8)    )  # batch_size, sequence_length, embedding_vector_dim
        lowerCAmelCase     =			torch.tensor(
            [[-0.0_101, 0.1_218, -0.0_803, 0.0_801, 0.1_327, 0.0_776, -0.1_215, 0.2_383, 0.3_338, 0.3_106, 0.0_300, 0.0_252]]    )
        #  xlmr = torch.hub.load('pytorch/fairseq', 'xlmr.base')
        #  xlmr.eval()
        #  expected_output_values_last_dim = xlmr.extract_features(input_ids[0])[:, :, -1]
        with torch.no_grad():
           lowerCAmelCase     =			model(UpperCAmelCase__    )['last_hidden_state'].detach()
        self.assertEqual(output.shape    ,      UpperCAmelCase__    )
        # compare the actual values for a slice of last dim
        self.assertTrue(torch.allclose(output[:, :, -1]    ,      UpperCAmelCase__    ,      atol=1E-3    )    )





     @slow
     def 							__UpperCAmelCase      ( self       :      List[Any]    )				->  Tuple:
        lowerCAmelCase     =			XLMRobertaModel.from_pretrained('xlm-roberta-large'    )
        lowerCAmelCase     =			torch.tensor([[0, 5_8_1, 1_0_2_6_9, 8_3, 9_9_9_4_2, 1_3_6, 6_0_7_4_2, 2_3, 7_0, 8_0_5_8_3, 1_8_2_7_6, 2]]    )
        # The dog is cute and lives in the garden house

        lowerCAmelCase     =			torch.Size((1, 1_2, 1_0_2_4)    )  # batch_size, sequence_length, embedding_vector_dim
        lowerCAmelCase     =			torch.tensor(
            [[-0.0_699, -0.0_318, 0.0_705, -0.1_241, 0.0_999, -0.0_520, 0.1_004, -0.1_838, -0.4_704, 0.1_437, 0.0_821, 0.0_126]]    )
        #  xlmr = torch.hub.load('pytorch/fairseq', 'xlmr.large')
        #  xlmr.eval()
        #  expected_output_values_last_dim = xlmr.extract_features(input_ids[0])[:, :, -1]
        with torch.no_grad():
           lowerCAmelCase     =			model(UpperCAmelCase__    )['last_hidden_state'].detach()
        self.assertEqual(output.shape    ,      UpperCAmelCase__    )
        # compare the actual values for a slice of last dim
        self.assertTrue(torch.allclose(output[:, :, -1]    ,      UpperCAmelCase__    ,      atol=1E-3    )    )





