"""simple docstring"""


from __future__ import annotations

import random
import unittest

from transformers import TransfoXLConfig, is_tf_available
from transformers.testing_utils import require_tf, slow

from ...test_configuration_common import ConfigTester
from ...test_modeling_tf_common import TFModelTesterMixin, ids_tensor
from ...test_pipeline_mixin import PipelineTesterMixin


if is_tf_available():
    import tensorflow as tf

    from transformers import (
        TF_TRANSFO_XL_PRETRAINED_MODEL_ARCHIVE_LIST,
        TFTransfoXLForSequenceClassification,
        TFTransfoXLLMHeadModel,
        TFTransfoXLModel,
    )




class  UpperCamelCase					:







       def __init__( self,							lowerCAmelCase__,							)      ->      List[str]:
            snake_case_					       =					parent
            snake_case_					       =					13
            snake_case_					       =					7
            snake_case_					       =					30
            snake_case_					       =					self.seq_length + self.mem_len
            snake_case_					       =					15
            snake_case_					       =					True
            snake_case_					       =					True
            snake_case_					       =					99
            snake_case_					       =					[10, 50, 80]
            snake_case_					       =					32
            snake_case_					       =					32
            snake_case_					       =					4
            snake_case_					       =					8
            snake_case_					       =					128
            snake_case_					       =					2
            snake_case_					       =					2
            snake_case_					       =					None
            snake_case_					       =					1
            snake_case_					       =					0
            snake_case_					       =					3
            snake_case_					       =					self.vocab_size - 1
            snake_case_					       =					0.01







       def 		a_						( self)      ->      int:
            snake_case_					       =					ids_tensor([self.batch_size, self.seq_length],							self.vocab_size)
            snake_case_					       =					ids_tensor([self.batch_size, self.seq_length],							self.vocab_size)

            snake_case_					       =					None
            if self.use_labels:
                 snake_case_					       =					ids_tensor([self.batch_size, self.seq_length],							self.vocab_size)

            snake_case_					       =					TransfoXLConfig(
                vocab_size=self.vocab_size,							mem_len=self.mem_len,							clamp_len=self.clamp_len,							cutoffs=self.cutoffs,							d_model=self.hidden_size,							d_embed=self.d_embed,							n_head=self.num_attention_heads,							d_head=self.d_head,							d_inner=self.d_inner,							div_val=self.div_val,							n_layer=self.num_hidden_layers,							eos_token_id=self.eos_token_id,							pad_token_id=self.vocab_size - 1,							init_range=self.init_range,							num_labels=self.num_labels,							)

            return (config, input_ids_a, input_ids_a, lm_labels)







       def 		a_						( self)      ->      int:
            random.seed(self.seed)
            tf.random.set_seed(self.seed)







       def 		a_						( self,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__)      ->      List[Any]:
            snake_case_					       =					TFTransfoXLModel(lowerCAmelCase__)

            snake_case_       ,	snake_case_					       =					model(lowerCAmelCase__).to_tuple()

            snake_case_					       =					{'input_ids': input_ids_a, 'mems': mems_a}

            snake_case_       ,	snake_case_					       =					model(lowerCAmelCase__).to_tuple()

            self.parent.assertEqual(hidden_states_a.shape,							(self.batch_size, self.seq_length, self.hidden_size))
            self.parent.assertEqual(hidden_states_a.shape,							(self.batch_size, self.seq_length, self.hidden_size))
            self.parent.assertListEqual(
                [mem.shape for mem in mems_a],							[(self.mem_len, self.batch_size, self.hidden_size)] * self.num_hidden_layers,							)
            self.parent.assertListEqual(
                [mem.shape for mem in mems_a],							[(self.mem_len, self.batch_size, self.hidden_size)] * self.num_hidden_layers,							)







       def 		a_						( self,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__)      ->      Tuple:
            snake_case_					       =					TFTransfoXLLMHeadModel(lowerCAmelCase__)

            snake_case_       ,	snake_case_					       =					model(lowerCAmelCase__).to_tuple()

            snake_case_					       =					{'input_ids': input_ids_a, 'labels': lm_labels}
            snake_case_       ,	snake_case_					       =					model(lowerCAmelCase__).to_tuple()

            snake_case_       ,	snake_case_					       =					model([input_ids_a, mems_a]).to_tuple()

            snake_case_					       =					{'input_ids': input_ids_a, 'mems': mems_a, 'labels': lm_labels}

            snake_case_       ,	snake_case_					       =					model(lowerCAmelCase__).to_tuple()

            self.parent.assertEqual(lm_logits_a.shape,							(self.batch_size, self.seq_length, self.vocab_size))
            self.parent.assertListEqual(
                [mem.shape for mem in mems_a],							[(self.mem_len, self.batch_size, self.hidden_size)] * self.num_hidden_layers,							)

            self.parent.assertEqual(lm_logits_a.shape,							(self.batch_size, self.seq_length, self.vocab_size))
            self.parent.assertListEqual(
                [mem.shape for mem in mems_a],							[(self.mem_len, self.batch_size, self.hidden_size)] * self.num_hidden_layers,							)







       def 		a_						( self,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__)      ->      str:
            snake_case_					       =					TFTransfoXLForSequenceClassification(lowerCAmelCase__)
            snake_case_					       =					model(lowerCAmelCase__)
            self.parent.assertEqual(result.logits.shape,							(self.batch_size, self.num_labels))







       def 		a_						( self)      ->      Optional[int]:
            snake_case_					       =					self.prepare_config_and_inputs()
            ((snake_case_)       ,	(snake_case_)       ,	(snake_case_)       ,	(snake_case_))					       =					config_and_inputs
            snake_case_					       =					{'input_ids': input_ids_a}
            return config, inputs_dict




@require_tf
class  UpperCamelCase					(				lowerCAmelCase__    ,		lowerCAmelCase__    ,		unittest.TestCase   ):
       SCREAMING_SNAKE_CASE_			=      (
           (TFTransfoXLModel, TFTransfoXLLMHeadModel, TFTransfoXLForSequenceClassification) if is_tf_available() else ()
       )
       SCREAMING_SNAKE_CASE_			=      () if is_tf_available() else ()
       SCREAMING_SNAKE_CASE_			=      (
           {
               "feature-extraction": TFTransfoXLModel,
               "text-classification": TFTransfoXLForSequenceClassification,
               "text-generation": TFTransfoXLLMHeadModel,
               "zero-shot": TFTransfoXLForSequenceClassification,
           }
           if is_tf_available()
           else {}
       )
       # TODO: add this test when TFTransfoXLLMHead has a linear output layer implemented
       SCREAMING_SNAKE_CASE_			=      False
       SCREAMING_SNAKE_CASE_			=      False
       SCREAMING_SNAKE_CASE_			=      False
       SCREAMING_SNAKE_CASE_			=      False







       def 		a_						( self,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__,							lowerCAmelCase__)      ->      Dict:
            if pipeline_test_casse_name == "TextGenerationPipelineTests":
                 # Get `ValueError: AttributeError: 'NoneType' object has no attribute 'new_ones'` or `AssertionError`.
                 # `TransfoXLConfig` was never used in pipeline tests: cannot create a simple
                 # tokenizer.
                 return True

            return False







       def 		a_						( self)      ->      List[Any]:
            snake_case_					       =					TFTransfoXLModelTester(self)
            snake_case_					       =					ConfigTester(self,							config_class=lowerCAmelCase__,							d_embed=37)







       def 		a_						( self)      ->      Dict:
            self.config_tester.run_common_tests()







       def 		a_						( self)      ->      Dict:
            self.model_tester.set_seed()
            snake_case_					       =					self.model_tester.prepare_config_and_inputs()
            self.model_tester.create_and_check_transfo_xl_model(*lowerCAmelCase__)







       def 		a_						( self)      ->      Tuple:
            self.model_tester.set_seed()
            snake_case_					       =					self.model_tester.prepare_config_and_inputs()
            self.model_tester.create_and_check_transfo_xl_lm_head(*lowerCAmelCase__)







       def 		a_						( self)      ->      Union[str, Any]:
            snake_case_					       =					self.model_tester.prepare_config_and_inputs()
            self.model_tester.create_and_check_transfo_xl_for_sequence_classification(*lowerCAmelCase__)







       def 		a_						( self)      ->      Any:
            snake_case_       ,	snake_case_					       =					self.model_tester.prepare_config_and_inputs_for_common()
            snake_case_					       =					[TFTransfoXLForSequenceClassification]

            for model_class in self.all_model_classes:
                 snake_case_					       =					model_class(lowerCAmelCase__)
                 assert isinstance(model.get_input_embeddings(),							tf.keras.layers.Layer)
                 if model_class in list_other_models_with_output_ebd:
                      snake_case_					       =					model.get_output_embeddings()
                      assert isinstance(lowerCAmelCase__,							tf.keras.layers.Layer)
                      snake_case_					       =					model.get_bias()
                      assert name is None
                 else:
                      snake_case_					       =					model.get_output_embeddings()
                      assert x is None
                      snake_case_					       =					model.get_bias()
                      assert name is None







       def 		a_						( self)      ->      Optional[int]:
            # TODO JP: Make TransfoXL XLA compliant
            pass







       @slow
       def 		a_						( self)      ->      str:
            for model_name in TF_TRANSFO_XL_PRETRAINED_MODEL_ARCHIVE_LIST[:1]:
                 snake_case_					       =					TFTransfoXLModel.from_pretrained(lowerCAmelCase__)
                 self.assertIsNotNone(lowerCAmelCase__)







       @unittest.skip(reason='This model doesn\'t play well with fit() due to not returning a single loss.')
       def 		a_						( self)      ->      Union[str, Any]:
            pass




@require_tf
class  UpperCamelCase					(				unittest.TestCase   ):







       @unittest.skip('Skip test until #12651 is resolved.')
       @slow
       def 		a_						( self)      ->      List[Any]:
            snake_case_					       =					TFTransfoXLLMHeadModel.from_pretrained('transfo-xl-wt103')
            # fmt: off
            snake_case_					       =					tf.convert_to_tensor([[33,1297,2,1,1009,4,1109,1_1739,4762,358,5,25,245,22,1706,17,2_0098,5,3215,21,37,1110,3,13,1041,4,24,603,490,2,7_1477,2_0098,10_4447,2,2_0961,1,2604,4,1,329,3,6224,831,1_6002,2,8,603,7_8967,2_9546,23,803,20,25,416,5,8,232,4,277,6,1855,4601,3,2_9546,54,8,3609,5,5_7211,49,4,1,277,18,8,1755,1_5691,3,341,25,416,693,4_2573,71,17,401,94,31,1_7919,2,2_9546,7873,18,1,435,23,1_1011,755,5,5167,3,7983,98,84,2,2_9546,3267,8,3609,4,1,4865,1075,2,6087,71,6,346,8,5854,3,2_9546,824,1400,1868,2,19,160,2,311,8,5496,2,2_0920,17,25,1_5097,3,24,24,0]],							dtype=tf.intaa)  # noqa: E231
            # fmt: on
            #  In 1991 , the remains of Russian Tsar Nicholas II and his family
            #  ( except for Alexei and Maria ) are discovered .
            #  The voice of Nicholas's young son , Tsarevich Alexei Nikolaevich , narrates the
            #  remainder of the story . 1883 Western Siberia ,
            #  a young Grigori Rasputin is asked by his father and a group of men to perform magic .
            #  Rasputin has a vision and denounces one of the men as a horse thief . Although his
            #  father initially slaps him for making such an accusation , Rasputin watches as the
            #  man is chased outside and beaten . Twenty years later , Rasputin sees a vision of
            #  the Virgin Mary , prompting him to become a priest . Rasputin quickly becomes famous ,
            #  with people , even a bishop , begging for his blessing . <eod> </s> <eos>

            # fmt: off
            snake_case_					       =					[33,1297,2,1,1009,4,1109,1_1739,4762,358,5,25,245,22,1706,17,2_0098,5,3215,21,37,1110,3,13,1041,4,24,603,490,2,7_1477,2_0098,10_4447,2,2_0961,1,2604,4,1,329,3,6224,831,1_6002,2,8,603,7_8967,2_9546,23,803,20,25,416,5,8,232,4,277,6,1855,4601,3,2_9546,54,8,3609,5,5_7211,49,4,1,277,18,8,1755,1_5691,3,341,25,416,693,4_2573,71,17,401,94,31,1_7919,2,2_9546,7873,18,1,435,23,1_1011,755,5,5167,3,7983,98,84,2,2_9546,3267,8,3609,4,1,4865,1075,2,6087,71,6,346,8,5854,3,2_9546,824,1400,1868,2,19,160,2,311,8,5496,2,2_0920,17,25,1_5097,3,24,24,0,33,1,1857,2,1,1009,4,1109,1_1739,4762,358,5,25,245,28,1110,3,13,1041,4,24,603,490,2,7_1477,2_0098,10_4447,2,2_0961,1,2604,4,1,329,3,0]  # noqa: E231
            # fmt: on
            #  In 1991, the remains of Russian Tsar Nicholas II and his family (
            #  except for Alexei and Maria ) are discovered. The voice of young son,
            #  Tsarevich Alexei Nikolaevich, narrates the remainder of the story.
            #  1883 Western Siberia, a young Grigori Rasputin is asked by his father
            #  and a group of men to perform magic. Rasputin has a vision and
            #  denounces one of the men as a horse thief. Although his father initially
            #  slaps him for making such an accusation, Rasputin watches as the man
            #  is chased outside and beaten. Twenty years later, Rasputin sees a vision
            #  of the Virgin Mary, prompting him to become a priest.
            #  Rasputin quickly becomes famous, with people, even a bishop, begging for
            #  his blessing. <unk> <unk> <eos> In the 1990s, the remains of Russian Tsar
            # Nicholas II and his family were discovered. The voice of <unk> young son,
            # Tsarevich Alexei Nikolaevich, narrates the remainder of the story.<eos>

            snake_case_					       =					model.generate(lowerCAmelCase__,							max_length=200,							do_sample=lowerCAmelCase__)
            self.assertListEqual(output_ids[0].numpy().tolist(),							lowerCAmelCase__)





"""simple docstring"""







import gc
import random
import unittest

import numpy as np
import torch
from PIL import Image
from transformers import CLIPTextConfig, CLIPTextModel, CLIPTokenizer

from diffusers import AutoencoderKL, PNDMScheduler, StableDiffusionInpaintPipeline, UNetaDConditionModel
from diffusers.utils import floats_tensor, load_image, load_numpy, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu, slow

from ..pipeline_params import TEXT_GUIDED_IMAGE_INPAINTING_BATCH_PARAMS, TEXT_GUIDED_IMAGE_INPAINTING_PARAMS
from ..test_pipelines_common import PipelineKarrasSchedulerTesterMixin, PipelineLatentTesterMixin, PipelineTesterMixin


enable_full_determinism()






class 						_A  (  _a    ,_a    ,_a    ,unittest.TestCase  ):







    """simple docstring"""




    UpperCAmelCase       :							str	=       StableDiffusionInpaintPipeline
    UpperCAmelCase       :							Optional[Any]	=       TEXT_GUIDED_IMAGE_INPAINTING_PARAMS
    UpperCAmelCase       :							Any	=       TEXT_GUIDED_IMAGE_INPAINTING_BATCH_PARAMS
    UpperCAmelCase       :							Union[str, Any]	=       frozenset(
        []  )  # TO-DO: update image_params once pipeline is refactored with VaeImageProcessor.preprocess
    UpperCAmelCase       :							int	=       frozenset([]  )






    def 	__snake_case							(					self				:    Dict):
      torch.manual_seed(0)
      a						:		List[Any]      							=			UNetaDConditionModel(
          block_out_channels=(32, 64)				, layers_per_block=2				, sample_size=32				, in_channels=9				, out_channels=4				, down_block_types=("DownBlock2D", "CrossAttnDownBlock2D")				, up_block_types=("CrossAttnUpBlock2D", "UpBlock2D")				, cross_attention_dim=32				, attention_head_dim=(2, 4)				, use_linear_projection=__UpperCAmelCase				, )
      a						:		Tuple      							=			PNDMScheduler(skip_prk_steps=__UpperCAmelCase)
      torch.manual_seed(0)
      a						:		str      							=			AutoencoderKL(
          block_out_channels=[32, 64]				, in_channels=3				, out_channels=3				, down_block_types=["DownEncoderBlock2D", "DownEncoderBlock2D"]				, up_block_types=["UpDecoderBlock2D", "UpDecoderBlock2D"]				, latent_channels=4				, sample_size=128				, )
      torch.manual_seed(0)
      a						:		List[str]      							=			CLIPTextConfig(
          bos_token_id=0				, eos_token_id=2				, hidden_size=32				, intermediate_size=37				, layer_norm_eps=1e-05				, num_attention_heads=4				, num_hidden_layers=5				, pad_token_id=1				, vocab_size=1000				, hidden_act="gelu"				, projection_dim=512				, )
      a						:		Any      							=			CLIPTextModel(__UpperCAmelCase)
      a						:		List[str]      							=			CLIPTokenizer.from_pretrained("hf-internal-testing/tiny-random-clip")

      a						:		Optional[Any]      							=			{
          "unet": unet,
          "scheduler": scheduler,
          "vae": vae,
          "text_encoder": text_encoder,
          "tokenizer": tokenizer,
          "safety_checker": None,
          "feature_extractor": None,
      }
      return components






    def 	__snake_case							(					self				:    Union[str, Any]				, __UpperCAmelCase				:    Any				, __UpperCAmelCase				:    Union[str, Any]=0):
      # TODO: use tensor inputs instead of PIL, this is here just to leave the old expected_slices untouched
      a						:		Dict      							=			floats_tensor((1, 3, 32, 32)				, rng=random.Random(__UpperCAmelCase)).to(__UpperCAmelCase)
      a						:		List[str]      							=			image.cpu().permute(0				, 2				, 3				, 1)[0]
      a						:		Union[str, Any]      							=			Image.fromarray(np.uinta(__UpperCAmelCase)).convert("RGB").resize((64, 64))
      a						:		Dict      							=			Image.fromarray(np.uinta(image + 4)).convert("RGB").resize((64, 64))
      if str(__UpperCAmelCase).startswith("mps"):
        a						:		Tuple      							=			torch.manual_seed(__UpperCAmelCase)
      else:
        a						:		Tuple      							=			torch.Generator(device=__UpperCAmelCase).manual_seed(__UpperCAmelCase)
      a						:		Optional[Any]      							=			{
          "prompt": "A painting of a squirrel eating a burger",
          "image": init_image,
          "mask_image": mask_image,
          "generator": generator,
          "num_inference_steps": 2,
          "guidance_scale": 6.0,
          "output_type": "numpy",
      }
      return inputs






    def 	__snake_case							(					self				:    List[str]):
      a						:		Union[str, Any]      							=			"cpu"  # ensure determinism for the device-dependent torch.Generator
      a						:		Tuple      							=			self.get_dummy_components()
      a						:		Optional[int]      							=			StableDiffusionInpaintPipeline(**__UpperCAmelCase)
      a						:		int      							=			sd_pipe.to(__UpperCAmelCase)
      sd_pipe.set_progress_bar_config(disable=__UpperCAmelCase)

      a						:		Any      							=			self.get_dummy_inputs(__UpperCAmelCase)
      a						:		Optional[int]      							=			sd_pipe(**__UpperCAmelCase).images
      a						:		Optional[int]      							=			image[0, -3:, -3:, -1]

      assert image.shape == (1, 64, 64, 3)
      a						:		int      							=			np.array([0.4_727, 0.5_735, 0.3_941, 0.5_446, 0.5_926, 0.4_394, 0.5_062, 0.4_654, 0.4_476])

      assert np.abs(image_slice.flatten() - expected_slice).max() < 1e-2






    def 	__snake_case							(					self				:    str):
      super().test_inference_batch_single_identical(expected_max_diff=3e-3)






@slow
@require_torch_gpu
class 						_A  (  unittest.TestCase  ):







    """simple docstring"""




    def 	__snake_case							(					self				:    Union[str, Any]):
      # clean up the VRAM after each test
      super().tearDown()
      gc.collect()
      torch.cuda.empty_cache()






    def 	__snake_case							(					self				:    Dict):
      a						:		str      							=			load_image(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
          "/sd2-inpaint/init_image.png")
      a						:		str      							=			load_image(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint/mask.png")
      a						:		List[Any]      							=			load_numpy(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint"
          "/yellow_cat_sitting_on_a_park_bench.npy")

      a						:		Tuple      							=			"stabilityai/stable-diffusion-2-inpainting"
      a						:		Optional[Any]      							=			StableDiffusionInpaintPipeline.from_pretrained(__UpperCAmelCase				, safety_checker=__UpperCAmelCase)
      pipe.to(__UpperCAmelCase)
      pipe.set_progress_bar_config(disable=__UpperCAmelCase)
      pipe.enable_attention_slicing()

      a						:		Any      							=			"Face of a yellow cat, high resolution, sitting on a park bench"

      a						:		str      							=			torch.manual_seed(0)
      a						:		Union[str, Any]      							=			pipe(
          prompt=__UpperCAmelCase				, image=__UpperCAmelCase				, mask_image=__UpperCAmelCase				, generator=__UpperCAmelCase				, output_type="np"				, )
      a						:		List[str]      							=			output.images[0]

      assert image.shape == (512, 512, 3)
      assert np.abs(expected_image - image).max() < 9e-3






    def 	__snake_case							(					self				:    Any):
      a						:		str      							=			load_image(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
          "/sd2-inpaint/init_image.png")
      a						:		Optional[Any]      							=			load_image(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint/mask.png")
      a						:		str      							=			load_numpy(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint"
          "/yellow_cat_sitting_on_a_park_bench_fp16.npy")

      a						:		Optional[Any]      							=			"stabilityai/stable-diffusion-2-inpainting"
      a						:		Any      							=			StableDiffusionInpaintPipeline.from_pretrained(
          __UpperCAmelCase				, torch_dtype=torch.floataa				, safety_checker=__UpperCAmelCase				, )
      pipe.to(__UpperCAmelCase)
      pipe.set_progress_bar_config(disable=__UpperCAmelCase)
      pipe.enable_attention_slicing()

      a						:		Optional[int]      							=			"Face of a yellow cat, high resolution, sitting on a park bench"

      a						:		Dict      							=			torch.manual_seed(0)
      a						:		List[Any]      							=			pipe(
          prompt=__UpperCAmelCase				, image=__UpperCAmelCase				, mask_image=__UpperCAmelCase				, generator=__UpperCAmelCase				, output_type="np"				, )
      a						:		Optional[Any]      							=			output.images[0]

      assert image.shape == (512, 512, 3)
      assert np.abs(expected_image - image).max() < 5e-1






    def 	__snake_case							(					self				:    int):
      torch.cuda.empty_cache()
      torch.cuda.reset_max_memory_allocated()
      torch.cuda.reset_peak_memory_stats()

      a						:		Tuple      							=			load_image(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main"
          "/sd2-inpaint/init_image.png")
      a						:		Optional[int]      							=			load_image(
          "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/sd2-inpaint/mask.png")

      a						:		Optional[Any]      							=			"stabilityai/stable-diffusion-2-inpainting"
      a						:		Optional[int]      							=			PNDMScheduler.from_pretrained(__UpperCAmelCase				, subfolder="scheduler")
      a						:		int      							=			StableDiffusionInpaintPipeline.from_pretrained(
          __UpperCAmelCase				, safety_checker=__UpperCAmelCase				, scheduler=__UpperCAmelCase				, torch_dtype=torch.floataa				, )
      pipe.to(__UpperCAmelCase)
      pipe.set_progress_bar_config(disable=__UpperCAmelCase)
      pipe.enable_attention_slicing(1)
      pipe.enable_sequential_cpu_offload()

      a						:		Optional[int]      							=			"Face of a yellow cat, high resolution, sitting on a park bench"

      a						:		Optional[int]      							=			torch.manual_seed(0)
      a						:		str      							=			pipe(
          prompt=__UpperCAmelCase				, image=__UpperCAmelCase				, mask_image=__UpperCAmelCase				, generator=__UpperCAmelCase				, num_inference_steps=2				, output_type="np"				, )

      a						:		int      							=			torch.cuda.max_memory_allocated()
      # make sure that less than 2.65 GB is allocated
      assert mem_bytes < 2.65 * 10**9






