'''simple docstring'''






import unittest
from pathlib import Path
from shutil import copyfile

from transformers import SPIECE_UNDERLINE, is_sentencepiece_available
from transformers.models.speech_to_text import SpeechaTextTokenizer
from transformers.models.speech_to_text.tokenization_speech_to_text import VOCAB_FILES_NAMES, save_json
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow

from ...test_tokenization_common import TokenizerTesterMixin


_UpperCAmelCase    :     int         =       get_tests_dir('''fixtures/test_sentencepiece.model''')

if is_sentencepiece_available():
   import sentencepiece as sp


_UpperCAmelCase    :     Union[str, Any]         =       5
_UpperCAmelCase    :     List[str]         =       10







@require_sentencepiece
@require_tokenizers
class lowercase_       (		_UpperCamelCase    ,    unittest.TestCase			):







   """simple docstring"""

   __lowerCAmelCase         =   SpeechaTextTokenizer
   __lowerCAmelCase         =   False
   __lowerCAmelCase         =   True
   def 	__UpperCAmelCase   (      self      :			Optional[Any]     )  ->			Union[str, Any]:
        super().setUp()

        _A    		=  sp.SentencePieceProcessor()
        spm_model.Load(UpperCamelCase__     )
        _A    		=  ['<s>', '<pad>', '</s>', '<unk>']

        vocab += [spm_model.IdToPiece(id_     ) for id_ in range(len(UpperCamelCase__     )     )]
        _A    		=  dict(zip(UpperCamelCase__, range(len(UpperCamelCase__     )     )     )     )

        _A    		=  Path(self.tmpdirname     )
        save_json(UpperCamelCase__, save_dir / VOCAB_FILES_NAMES['vocab_file']     )
        if not (save_dir / VOCAB_FILES_NAMES["spm_file"]).exists():
             copyfile(UpperCamelCase__, save_dir / VOCAB_FILES_NAMES['spm_file']     )

        _A    		=  SpeechaTextTokenizer.from_pretrained(self.tmpdirname     )
        tokenizer.save_pretrained(self.tmpdirname     )
   def 	__UpperCAmelCase   (      self      :			Optional[Any]     )  ->			List[str]:
        _A    		=  '<pad>'
        _A    		=  1

        self.assertEqual(self.get_tokenizer()._convert_token_to_id(UpperCamelCase__     ), UpperCamelCase__     )
        self.assertEqual(self.get_tokenizer()._convert_id_to_token(UpperCamelCase__     ), UpperCamelCase__     )
   def 	__UpperCAmelCase   (      self      :			Optional[Any]     )  ->			Optional[int]:
        _A    		=  list(self.get_tokenizer().get_vocab().keys()     )

        self.assertEqual(vocab_keys[0], '<s>'     )
        self.assertEqual(vocab_keys[1], '<pad>'     )
        self.assertEqual(vocab_keys[-1], 'j'     )
        self.assertEqual(len(UpperCamelCase__     ), 10_01     )
   def 	__UpperCAmelCase   (      self      :			Any     )  ->			int:
        self.assertEqual(self.get_tokenizer().vocab_size, 10_01     )
   def 	__UpperCAmelCase   (      self      :			Tuple     )  ->			Tuple:
        _A    		=  SpeechaTextTokenizer.from_pretrained(self.tmpdirname     )

        _A    		=  tokenizer.tokenize('This is a test'     )
        self.assertListEqual(UpperCamelCase__, ['▁This', '▁is', '▁a', '▁t', 'est']     )

        self.assertListEqual(
            tokenizer.convert_tokens_to_ids(UpperCamelCase__     ), [2_89, 50, 14, 1_74, 3_86], )

        _A    		=  tokenizer.tokenize('I was born in 92000, and this is falsé.'     )
        self.assertListEqual(
            UpperCamelCase__, [SPIECE_UNDERLINE + 'I', SPIECE_UNDERLINE + 'was', SPIECE_UNDERLINE + 'b', 'or', 'n', SPIECE_UNDERLINE + 'in', SPIECE_UNDERLINE + '', '9', '2', '0', '0', '0', ',', SPIECE_UNDERLINE + 'and', SPIECE_UNDERLINE + 'this', SPIECE_UNDERLINE + 'is', SPIECE_UNDERLINE + 'f', 'al', 's', 'é', '.'], )
        _A    		=  tokenizer.convert_tokens_to_ids(UpperCamelCase__     )
        self.assertListEqual(UpperCamelCase__, [12, 25, 88, 59, 28, 23, 11, 4, 6_06, 3_51, 3_51, 3_51, 7, 16, 70, 50, 76, 84, 10, 4, 8]     )

        _A    		=  tokenizer.convert_ids_to_tokens(UpperCamelCase__     )
        self.assertListEqual(
            UpperCamelCase__, [SPIECE_UNDERLINE + 'I', SPIECE_UNDERLINE + 'was', SPIECE_UNDERLINE + 'b', 'or', 'n', SPIECE_UNDERLINE + 'in', SPIECE_UNDERLINE + '', '<unk>', '2', '0', '0', '0', ',', SPIECE_UNDERLINE + 'and', SPIECE_UNDERLINE + 'this', SPIECE_UNDERLINE + 'is', SPIECE_UNDERLINE + 'f', 'al', 's', '<unk>', '.'], )

   @slow
   def 	__UpperCAmelCase   (      self      :			Union[str, Any]     )  ->			List[Any]:
        # fmt: off
        _A    		=  {'input_ids': [[37_91, 7_97, 31, 11, 64, 7_97, 31, 24_29, 4_33, 12, 11_76, 12, 20, 7_86, 9_15, 1_42, 24_13, 2_40, 37, 32_38, 7_97, 31, 11, 35, 93, 9_15, 1_42, 24_13, 2_40, 37, 55_40, 5_67, 12_76, 93, 37, 6_10, 40, 62, 4_55, 6_57, 10_42, 1_23, 7_80, 1_77, 37, 3_09, 2_41, 12_98, 5_14, 20, 2_92, 27_37, 1_14, 24_69, 2_41, 85, 64, 3_02, 5_48, 5_28, 4_23, 4, 5_09, 4_06, 4_23, 37, 6_01, 4, 7_77, 3_02, 5_48, 5_28, 4_23, 2_84, 4, 33_88, 5_11, 4_59, 4, 35_55, 40, 3_21, 3_02, 7_05, 4, 33_88, 5_11, 5_83, 3_26, 5, 5, 5, 62, 33_10, 5_60, 1_77, 26_80, 2_17, 15_08, 32, 31, 8_53, 4_18, 64, 5_83, 5_11, 16_05, 62, 35, 93, 5_60, 1_77, 26_80, 2_17, 15_08, 15_21, 64, 5_83, 5_11, 5_19, 62, 20, 15_15, 7_64, 20, 1_49, 2_61, 56_25, 79_72, 20, 55_40, 5_67, 12_76, 93, 39_25, 16_75, 11, 15, 8_02, 79_72, 5_76, 2_17, 15_08, 11, 35, 93, 12_53, 24_41, 15, 2_89, 6_52, 31, 4_16, 3_21, 38_42, 1_15, 40, 9_11, 8, 4_76, 6_19, 4, 3_80, 1_42, 4_23, 3_35, 2_40, 35, 93, 2_64, 8, 11, 3_35, 5_69, 4_20, 1_63, 5, 2], [2_60, 5_48, 5_28, 4_23, 20, 4_51, 20, 26_81, 11_53, 34_34, 20, 55_40, 37, 5_67, 1_26, 12_53, 24_41, 33_76, 4_49, 2_10, 4_31, 15_63, 1_77, 7_67, 55_40, 11, 12_03, 4_72, 11, 29_53, 6_85, 2_85, 3_64, 7_06, 11_53, 20, 67_99, 20, 28_69, 20, 44_64, 1_26, 40, 24_29, 20, 10_40, 8_66, 26_64, 4_18, 20, 3_18, 20, 17_26, 1_86, 20, 2_65, 5_22, 35, 93, 21_91, 46_34, 20, 10_40, 12, 67_99, 15, 2_28, 23_56, 1_42, 31, 11, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [25_75, 26_66, 6_84, 15_82, 11_76, 12, 6_27, 1_49, 6_19, 20, 49_02, 5_63, 11, 20, 1_49, 2_61, 34_20, 23_56, 1_74, 1_42, 47_14, 1_31, 5, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]], 'attention_mask': [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]}  # noqa: E501
        # fmt: on

        self.tokenizer_integration_test_util(
            expected_encoding=UpperCamelCase__, model_name='facebook/s2t-small-mustc-en-de-st', revision='a14f04cf0776c02f62a8cb800cf7909e15ea23ad', )







@require_sentencepiece
class lowercase_       (		unittest.TestCase			):







   """simple docstring"""

   __lowerCAmelCase         =   "valhalla/s2t_mustc_multilinguial_medium"

   __lowerCAmelCase         =   "C'est trop cool"
   __lowerCAmelCase         =   "Esto es genial"
   @classmethod
   def 	__UpperCAmelCase   (      cls      :			Any     )  ->			List[str]:
        _A    		=  SpeechaTextTokenizer.from_pretrained(cls.checkpoint_name     )
        return cls
   def 	__UpperCAmelCase   (      self      :			Tuple     )  ->			Optional[int]:
        self.assertEqual(self.tokenizer.lang_code_to_id['pt'], 4     )
        self.assertEqual(self.tokenizer.lang_code_to_id['ru'], 6     )
        self.assertEqual(self.tokenizer.lang_code_to_id['it'], 9     )
        self.assertEqual(self.tokenizer.lang_code_to_id['de'], 11     )
   def 	__UpperCAmelCase   (      self      :			Any     )  ->			Optional[int]:
        self.assertEqual(self.tokenizer.vocab_size, 1_00_00     )
   def 	__UpperCAmelCase   (      self      :			List[str]     )  ->			int:
        self.assertIn(UpperCamelCase__, self.tokenizer.all_special_ids     )
        _A    		=  [ES_CODE, 4, 16_01, 47, 76_47, 2]
        _A    		=  self.tokenizer.decode(UpperCamelCase__, skip_special_tokens=UpperCamelCase__     )
        _A    		=  self.tokenizer.decode(generated_ids[1:], skip_special_tokens=UpperCamelCase__     )
        self.assertEqual(UpperCamelCase__, UpperCamelCase__     )
        self.assertNotIn(self.tokenizer.eos_token, UpperCamelCase__     )
   def 	__UpperCAmelCase   (      self      :			Optional[Any]     )  ->			str:
        _A    		=  'fr'
        _A    		=  self.tokenizer(self.french_text     ).input_ids
        self.assertEqual(encoded[0], UpperCamelCase__     )
        self.assertEqual(encoded[-1], self.tokenizer.eos_token_id     )

   def 	__UpperCAmelCase   (      self      :			List[str]     )  ->			Any:
        _A    		=  'fr'
        self.assertListEqual(self.tokenizer.prefix_tokens, [FR_CODE]     )

        _A    		=  'es'
        self.assertListEqual(self.tokenizer.prefix_tokens, [ES_CODE]     )







"""simple docstring"""

import gc
import random
import unittest

import torch

from diffusers import (
    IFImgaImgPipeline,
    IFImgaImgSuperResolutionPipeline,
    IFInpaintingPipeline,
    IFInpaintingSuperResolutionPipeline,
    IFPipeline,
    IFSuperResolutionPipeline,
)
from diffusers.models.attention_processor import AttnAddedKVProcessor
from diffusers.utils.import_utils import is_xformers_available
from diffusers.utils.testing_utils import floats_tensor, load_numpy, require_torch_gpu, skip_mps, slow, torch_device

from ..pipeline_params import TEXT_TO_IMAGE_BATCH_PARAMS, TEXT_TO_IMAGE_PARAMS
from ..test_pipelines_common import PipelineTesterMixin, assert_mean_pixel_difference
from . import IFPipelineTesterMixin





@skip_mps
class  lowerCamelCase__    (		_a      , _a      , unittest.TestCase     ):
      a			:  Any           =		IFPipeline
      a			:  str           =		TEXT_TO_IMAGE_PARAMS - {"""width""", """height""", """latents"""}
      a			:  Dict           =		TEXT_TO_IMAGE_BATCH_PARAMS
      a			:  int           =		PipelineTesterMixin.required_optional_params - {"""latents"""}
      def SCREAMING_SNAKE_CASE_						(		self						:						List[Any]				):






       '''simple docstring'''


       return self._get_dummy_components()
      def SCREAMING_SNAKE_CASE_						(		self						:						Any   ,							A_						:						int   ,							A_						:						Dict=0				):






       '''simple docstring'''


       if str(A_				).startswith("""mps"""				):
        __lowercase						=						torch.manual_seed(A_				)
       else:
        __lowercase						=						torch.Generator(device=A_				).manual_seed(A_				)

       __lowercase						=						{
           """prompt""": """A painting of a squirrel eating a burger""",
           """generator""": generator,
           """num_inference_steps""": 2,
           """output_type""": """numpy""",
       }

       return inputs
      def SCREAMING_SNAKE_CASE_						(		self						:						Union[str, Any]				):






       '''simple docstring'''


       self._test_save_load_optional_components()
      @unittest.skipIf(torch_device != """cuda"""   ,							reason="""float16 requires CUDA"""				)
      def SCREAMING_SNAKE_CASE_						(		self						:						List[str]				):






       '''simple docstring'''


       super().test_save_load_floataa(expected_max_diff=1e-1				)
      def SCREAMING_SNAKE_CASE_						(		self						:						List[Any]				):






       '''simple docstring'''


       self._test_attention_slicing_forward_pass(expected_max_diff=1e-2				)
      def SCREAMING_SNAKE_CASE_						(		self						:						List[str]				):






       '''simple docstring'''


       self._test_save_load_local()
      def SCREAMING_SNAKE_CASE_						(		self						:						Union[str, Any]				):






       '''simple docstring'''


       self._test_inference_batch_single_identical(
           expected_max_diff=1e-2   ,							)






      @unittest.skipIf(
          torch_device != """cuda""" or not is_xformers_available()   ,							reason="""XFormers attention is only available with CUDA and `xformers` installed"""   ,							)
      def SCREAMING_SNAKE_CASE_						(		self						:						Tuple				):






       '''simple docstring'''


       self._test_xformers_attention_forwardGenerator_pass(expected_max_diff=1e-3				)






@slow
@require_torch_gpu
class  lowerCamelCase__    (		unittest.TestCase     ):
      def SCREAMING_SNAKE_CASE_						(		self						:						str				):






       '''simple docstring'''


       super().tearDown()
       gc.collect()
       torch.cuda.empty_cache()
      def SCREAMING_SNAKE_CASE_						(		self						:						Union[str, Any]				):






       '''simple docstring'''


       __lowercase						=						IFPipeline.from_pretrained("""DeepFloyd/IF-I-XL-v1.0"""   ,							variant="""fp16"""   ,							torch_dtype=torch.floataa				)

       __lowercase						=						IFSuperResolutionPipeline.from_pretrained(
           """DeepFloyd/IF-II-L-v1.0"""   ,							variant="""fp16"""   ,							torch_dtype=torch.floataa   ,							text_encoder=A_   ,							tokenizer=A_				)

       # pre compute text embeddings and remove T5 to save memory

       pipe_a.text_encoder.to("""cuda"""				)

       __lowercase				,		__lowercase						=						pipe_a.encode_prompt("""anime turtle"""   ,							device="""cuda"""				)

       del pipe_a.tokenizer
       del pipe_a.text_encoder
       gc.collect()

       __lowercase						=						None
       __lowercase						=						None

       pipe_a.enable_model_cpu_offload()
       pipe_a.enable_model_cpu_offload()

       pipe_a.unet.set_attn_processor(AttnAddedKVProcessor()				)
       pipe_a.unet.set_attn_processor(AttnAddedKVProcessor()				)

       self._test_if(A_   ,							A_   ,							A_   ,							A_				)

       pipe_a.remove_all_hooks()
       pipe_a.remove_all_hooks()

       # img2img

       __lowercase						=						IFImgaImgPipeline(**pipe_a.components				)
       __lowercase						=						IFImgaImgSuperResolutionPipeline(**pipe_a.components				)

       pipe_a.enable_model_cpu_offload()
       pipe_a.enable_model_cpu_offload()

       pipe_a.unet.set_attn_processor(AttnAddedKVProcessor()				)
       pipe_a.unet.set_attn_processor(AttnAddedKVProcessor()				)

       self._test_if_imgaimg(A_   ,							A_   ,							A_   ,							A_				)

       pipe_a.remove_all_hooks()
       pipe_a.remove_all_hooks()

       # inpainting

       __lowercase						=						IFInpaintingPipeline(**pipe_a.components				)
       __lowercase						=						IFInpaintingSuperResolutionPipeline(**pipe_a.components				)

       pipe_a.enable_model_cpu_offload()
       pipe_a.enable_model_cpu_offload()

       pipe_a.unet.set_attn_processor(AttnAddedKVProcessor()				)
       pipe_a.unet.set_attn_processor(AttnAddedKVProcessor()				)

       self._test_if_inpainting(A_   ,							A_   ,							A_   ,							A_				)
      def SCREAMING_SNAKE_CASE_						(		self						:						Optional[int]   ,							A_						:						Any   ,							A_						:						int   ,							A_						:						str   ,							A_						:						Dict				):






       '''simple docstring'''


       _start_torch_memory_measurement()

       __lowercase						=						torch.Generator(device="""cpu"""				).manual_seed(0				)
       __lowercase						=						pipe_a(
           prompt_embeds=A_   ,							negative_prompt_embeds=A_   ,							num_inference_steps=2   ,							generator=A_   ,							output_type="""np"""   ,							)

       __lowercase						=						output.images[0]

       assert image.shape == (6_4, 6_4, 3)

       __lowercase						=						torch.cuda.max_memory_allocated()
       assert mem_bytes < 1_3 * 1_0**9

       __lowercase						=						load_numpy(
           """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/if/test_if.npy"""				)
       assert_mean_pixel_difference(A_   ,							A_				)

       # pipeline 2

       _start_torch_memory_measurement()

       __lowercase						=						torch.Generator(device="""cpu"""				).manual_seed(0				)

       __lowercase						=						floats_tensor((1, 3, 6_4, 6_4)   ,							rng=random.Random(0				)				).to(A_				)

       __lowercase						=						pipe_a(
           prompt_embeds=A_   ,							negative_prompt_embeds=A_   ,							image=A_   ,							generator=A_   ,							num_inference_steps=2   ,							output_type="""np"""   ,							)

       __lowercase						=						output.images[0]

       assert image.shape == (2_5_6, 2_5_6, 3)

       __lowercase						=						torch.cuda.max_memory_allocated()
       assert mem_bytes < 4 * 1_0**9

       __lowercase						=						load_numpy(
           """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/if/test_if_superresolution_stage_II.npy"""				)
       assert_mean_pixel_difference(A_   ,							A_				)
      def SCREAMING_SNAKE_CASE_						(		self						:						Optional[Any]   ,							A_						:						Tuple   ,							A_						:						List[Any]   ,							A_						:						List[Any]   ,							A_						:						Any				):






       '''simple docstring'''


       _start_torch_memory_measurement()

       __lowercase						=						floats_tensor((1, 3, 6_4, 6_4)   ,							rng=random.Random(0				)				).to(A_				)

       __lowercase						=						torch.Generator(device="""cpu"""				).manual_seed(0				)

       __lowercase						=						pipe_a(
           prompt_embeds=A_   ,							negative_prompt_embeds=A_   ,							image=A_   ,							num_inference_steps=2   ,							generator=A_   ,							output_type="""np"""   ,							)

       __lowercase						=						output.images[0]

       assert image.shape == (6_4, 6_4, 3)

       __lowercase						=						torch.cuda.max_memory_allocated()
       assert mem_bytes < 1_0 * 1_0**9

       __lowercase						=						load_numpy(
           """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/if/test_if_img2img.npy"""				)
       assert_mean_pixel_difference(A_   ,							A_				)

       # pipeline 2

       _start_torch_memory_measurement()

       __lowercase						=						torch.Generator(device="""cpu"""				).manual_seed(0				)

       __lowercase						=						floats_tensor((1, 3, 2_5_6, 2_5_6)   ,							rng=random.Random(0				)				).to(A_				)
       __lowercase						=						floats_tensor((1, 3, 6_4, 6_4)   ,							rng=random.Random(0				)				).to(A_				)

       __lowercase						=						pipe_a(
           prompt_embeds=A_   ,							negative_prompt_embeds=A_   ,							image=A_   ,							original_image=A_   ,							generator=A_   ,							num_inference_steps=2   ,							output_type="""np"""   ,							)

       __lowercase						=						output.images[0]

       assert image.shape == (2_5_6, 2_5_6, 3)

       __lowercase						=						torch.cuda.max_memory_allocated()
       assert mem_bytes < 4 * 1_0**9

       __lowercase						=						load_numpy(
           """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/if/test_if_img2img_superresolution_stage_II.npy"""				)
       assert_mean_pixel_difference(A_   ,							A_				)






      def SCREAMING_SNAKE_CASE_						(		self						:						List[str]   ,							A_						:						List[Any]   ,							A_						:						str   ,							A_						:						List[Any]   ,							A_						:						List[Any]				):






       '''simple docstring'''


       _start_torch_memory_measurement()

       __lowercase						=						floats_tensor((1, 3, 6_4, 6_4)   ,							rng=random.Random(0				)				).to(A_				)
       __lowercase						=						floats_tensor((1, 3, 6_4, 6_4)   ,							rng=random.Random(1				)				).to(A_				)

       __lowercase						=						torch.Generator(device="""cpu"""				).manual_seed(0				)
       __lowercase						=						pipe_a(
           prompt_embeds=A_   ,							negative_prompt_embeds=A_   ,							image=A_   ,							mask_image=A_   ,							num_inference_steps=2   ,							generator=A_   ,							output_type="""np"""   ,							)

       __lowercase						=						output.images[0]

       assert image.shape == (6_4, 6_4, 3)

       __lowercase						=						torch.cuda.max_memory_allocated()
       assert mem_bytes < 1_0 * 1_0**9

       __lowercase						=						load_numpy(
           """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/if/test_if_inpainting.npy"""				)
       assert_mean_pixel_difference(A_   ,							A_				)

       # pipeline 2

       _start_torch_memory_measurement()

       __lowercase						=						torch.Generator(device="""cpu"""				).manual_seed(0				)

       __lowercase						=						floats_tensor((1, 3, 6_4, 6_4)   ,							rng=random.Random(0				)				).to(A_				)
       __lowercase						=						floats_tensor((1, 3, 2_5_6, 2_5_6)   ,							rng=random.Random(0				)				).to(A_				)
       __lowercase						=						floats_tensor((1, 3, 2_5_6, 2_5_6)   ,							rng=random.Random(1				)				).to(A_				)

       __lowercase						=						pipe_a(
           prompt_embeds=A_   ,							negative_prompt_embeds=A_   ,							image=A_   ,							mask_image=A_   ,							original_image=A_   ,							generator=A_   ,							num_inference_steps=2   ,							output_type="""np"""   ,							)

       __lowercase						=						output.images[0]

       assert image.shape == (2_5_6, 2_5_6, 3)

       __lowercase						=						torch.cuda.max_memory_allocated()
       assert mem_bytes < 4 * 1_0**9

       __lowercase						=						load_numpy(
           """https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/if/test_if_inpainting_superresolution_stage_II.npy"""				)
       assert_mean_pixel_difference(A_   ,							A_				)






def lowerCAmelCase_   (					):






 """simple docstring"""







 torch.cuda.empty_cache()
 torch.cuda.reset_max_memory_allocated()
 torch.cuda.reset_peak_memory_stats()
