





import tempfile
import unittest

from transformers import SPIECE_UNDERLINE, BatchEncoding, PLBartTokenizer, is_torch_available
from transformers.testing_utils import (
    get_tests_dir,
    nested_simplify,
    require_sentencepiece,
    require_tokenizers,
    require_torch,
)

from ...test_tokenization_common import TokenizerTesterMixin


_A					:				List[str]				=			get_tests_dir("""fixtures/test_sentencepiece.model""")


if is_torch_available():
  from transformers.models.plbart.modeling_plbart import shift_tokens_right

_A					:				List[str]				=			5_00_03
_A					:				int				=			5_00_02



@require_sentencepiece
@require_tokenizers
class 					__snake_case	(  __SCREAMING_SNAKE_CASE			,     unittest.TestCase    ):


    '''simple docstring'''







    lowerCamelCase__    :		Optional[Any]				=	PLBartTokenizer
    lowerCamelCase__    :		Optional[int]				=	None
    lowerCamelCase__    :		Union[str, Any]				=	False



    def  lowercase_					(       self     ):





        '''simple docstring'''

        super().setUp()

        # We have a SentencePiece fixture for testing
        SCREAMING_SNAKE_CASE__											=			PLBartTokenizer(A_   ,				language_codes='''base'''   ,				keep_accents=A_     )
        tokenizer.save_pretrained(self.tmpdirname     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			PLBartTokenizer(A_   ,				language_codes='''base'''   ,				keep_accents=A_     )

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

        self.assertListEqual(
            tokenizer.convert_tokens_to_ids(A_     )   ,				[value + tokenizer.fairseq_offset for value in [2_85, 46, 10, 1_70, 3_82]]   ,				)

        SCREAMING_SNAKE_CASE__											=			tokenizer.tokenize('''I was born in 92000, and this is falsé.'''     )
        self.assertListEqual(
            A_   ,				[
                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''',
                '''é''',
                '''.''',
            ]   ,				)
        SCREAMING_SNAKE_CASE__											=			tokenizer.convert_tokens_to_ids(A_     )
        self.assertListEqual(
            A_   ,				[
                value + tokenizer.fairseq_offset
                for value in [8, 21, 84, 55, 24, 19, 7, 2, 6_02, 3_47, 3_47, 3_47, 3, 12, 66, 46, 72, 80, 6, 2, 4]
            ]   ,				)

        SCREAMING_SNAKE_CASE__											=			tokenizer.convert_ids_to_tokens(A_     )
        self.assertListEqual(
            A_   ,				[
                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>''',
                '''.''',
            ]   ,				)

        SCREAMING_SNAKE_CASE__											=			tokenizer.vocab_size
        SCREAMING_SNAKE_CASE__											=			[tokenizer.convert_ids_to_tokens(A_     ) for x in range(end - 4   ,				A_     )]

        self.assertListEqual(A_   ,				['''__java__''', '''__python__''', '''__en_XX__''', '''<mask>''']     )

        SCREAMING_SNAKE_CASE__											=			'''java.lang.Exception, python.lang.Exception, javascript, php, ruby, go'''
        SCREAMING_SNAKE_CASE__											=			tokenizer(A_     ).input_ids
        self.assertEqual(
            tokenizer.decode(A_   ,				skip_special_tokens=A_   ,				clean_up_tokenization_spaces=A_     )   ,				A_   ,				)




    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			PLBartTokenizer(A_   ,				language_codes='''multi'''   ,				keep_accents=A_     )

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

        self.assertListEqual(
            tokenizer.convert_tokens_to_ids(A_     )   ,				[value + tokenizer.fairseq_offset for value in [2_85, 46, 10, 1_70, 3_82]]   ,				)

        SCREAMING_SNAKE_CASE__											=			tokenizer.tokenize('''I was born in 92000, and this is falsé.'''     )
        self.assertListEqual(
            A_   ,				[
                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''',
                '''é''',
                '''.''',
            ]   ,				)
        SCREAMING_SNAKE_CASE__											=			tokenizer.convert_tokens_to_ids(A_     )
        self.assertListEqual(
            A_   ,				[
                value + tokenizer.fairseq_offset
                for value in [8, 21, 84, 55, 24, 19, 7, 2, 6_02, 3_47, 3_47, 3_47, 3, 12, 66, 46, 72, 80, 6, 2, 4]
            ]   ,				)

        SCREAMING_SNAKE_CASE__											=			tokenizer.convert_ids_to_tokens(A_     )
        self.assertListEqual(
            A_   ,				[
                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>''',
                '''.''',
            ]   ,				)
        SCREAMING_SNAKE_CASE__											=			tokenizer.vocab_size
        SCREAMING_SNAKE_CASE__											=			[tokenizer.convert_ids_to_tokens(A_     ) for x in range(end - 7   ,				A_     )]

        self.assertListEqual(
            A_   ,				['''__java__''', '''__python__''', '''__en_XX__''', '''__javascript__''', '''__php__''', '''__ruby__''', '''__go__''']     )
        SCREAMING_SNAKE_CASE__											=			'''java.lang.Exception, python.lang.Exception, javascript, php, ruby, go'''
        SCREAMING_SNAKE_CASE__											=			tokenizer(A_     ).input_ids
        self.assertEqual(
            tokenizer.decode(A_   ,				skip_special_tokens=A_   ,				clean_up_tokenization_spaces=A_     )   ,				A_   ,				)





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


    '''simple docstring'''







    lowerCamelCase__    :		int				=	"""uclanlp/plbart-python-en_XX"""
    lowerCamelCase__    :		int				=	[
        """def maximum(a,b,c):NEW_LINE_INDENTreturn max([a,b,c])""",
        """def sum(a,b,c):NEW_LINE_INDENTreturn sum([a,b,c])""",
    ]
    lowerCamelCase__    :		Tuple				=	[
        """Returns the maximum value of a b c.""",
        """Sums the values of a b c.""",
    ]
    lowerCamelCase__    :		int				=	[
        1_3_4,
        5_4_5_2,
        3_3_4_6_0,
        3_3_4_4_1,
        3_3_4_6_3,
        3_3_4_6_5,
        3_3_4_6_3,
        3_3_4_4_9,
        9_8_8,
        2_0,
        3_3_4_5_6,
        1_9,
        3_3_4_5_6,
        7_7_1,
        3_9,
        4_2_5_8,
        8_8_9,
        3_3_1_8,
        3_3_4_4_1,
        3_3_4_6_3,
        3_3_4_6_5,
        3_3_4_6_3,
        3_3_4_4_9,
        2_4_7_1,
        2,
        PYTHON_CODE,
    ]



    @classmethod
    def  lowercase_					(       cls     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			PLBartTokenizer.from_pretrained(
            cls.checkpoint_name   ,				language_codes='''base'''   ,				src_lang='''python'''   ,				tgt_lang='''en_XX'''     )
        SCREAMING_SNAKE_CASE__											=			1
        return cls



    def  lowercase_					(       self     ):





        '''simple docstring'''

        self.assertEqual(self.tokenizer.fairseq_tokens_to_ids['''__java__''']   ,				5_00_01     )
        self.assertEqual(self.tokenizer.fairseq_tokens_to_ids['''__python__''']   ,				5_00_02     )
        self.assertEqual(self.tokenizer.fairseq_tokens_to_ids['''__en_XX__''']   ,				5_00_03     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			self.tokenizer.batch_encode_plus(self.src_text     ).input_ids[0]
        self.assertListEqual(self.expected_src_tokens   ,				A_     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        self.assertIn(A_   ,				self.tokenizer.all_special_ids     )
        SCREAMING_SNAKE_CASE__											=			[EN_CODE, 90_37, 3_34_42, 57, 7_52, 1_53, 14, 56, 18, 9, 2]
        SCREAMING_SNAKE_CASE__											=			self.tokenizer.decode(A_   ,				skip_special_tokens=A_     )
        SCREAMING_SNAKE_CASE__											=			self.tokenizer.decode(generated_ids[1:]   ,				skip_special_tokens=A_     )
        self.assertEqual(A_   ,				A_     )
        self.assertNotIn(self.tokenizer.eos_token   ,				A_     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			['''def sum(a,b,c):NEW_LINE_INDENTreturn sum([a,b,c])''' * 20]
        self.assertIsInstance(src_text[0]   ,				A_     )
        SCREAMING_SNAKE_CASE__											=			10
        SCREAMING_SNAKE_CASE__											=			self.tokenizer(A_   ,				max_length=A_   ,				truncation=A_     ).input_ids[0]
        self.assertEqual(ids[-2]   ,				2     )
        self.assertEqual(ids[-1]   ,				A_     )
        self.assertEqual(len(A_     )   ,				A_     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        self.assertListEqual(self.tokenizer.convert_tokens_to_ids(['''<mask>''', '''__java__''']     )   ,				[5_00_04, 5_00_01]     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			tempfile.mkdtemp()
        SCREAMING_SNAKE_CASE__											=			self.tokenizer.fairseq_tokens_to_ids
        self.tokenizer.save_pretrained(A_     )
        SCREAMING_SNAKE_CASE__											=			PLBartTokenizer.from_pretrained(A_     )
        self.assertDictEqual(new_tok.fairseq_tokens_to_ids   ,				A_     )



    @require_torch
    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			self.tokenizer(self.src_text   ,				text_target=self.tgt_text   ,				padding=A_   ,				return_tensors='''pt'''     )
        SCREAMING_SNAKE_CASE__											=			shift_tokens_right(batch['''labels''']   ,				self.tokenizer.pad_token_id     )

        # fairseq batch: https://gist.github.com/sshleifer/cba08bc2109361a74ac3760a7e30e4f4
        self.assertEqual(batch.input_ids[1][-2:].tolist()   ,				[2, PYTHON_CODE]     )
        self.assertEqual(batch.decoder_input_ids[1][0]   ,				A_     )
        self.assertEqual(batch.decoder_input_ids[1][-1]   ,				2     )
        self.assertEqual(batch.labels[1][-2:].tolist()   ,				[2, EN_CODE]     )



    @require_torch
    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			self.tokenizer(
            self.src_text   ,				text_target=self.tgt_text   ,				padding=A_   ,				truncation=A_   ,				max_length=len(self.expected_src_tokens     )   ,				return_tensors='''pt'''   ,				)
        SCREAMING_SNAKE_CASE__											=			shift_tokens_right(batch['''labels''']   ,				self.tokenizer.pad_token_id     )

        self.assertIsInstance(A_   ,				A_     )

        self.assertEqual((2, 26)   ,				batch.input_ids.shape     )
        self.assertEqual((2, 26)   ,				batch.attention_mask.shape     )
        SCREAMING_SNAKE_CASE__											=			batch.input_ids.tolist()[0]
        self.assertListEqual(self.expected_src_tokens   ,				A_     )
        self.assertEqual(2   ,				batch.decoder_input_ids[0, -1]     )  # EOS
        # Test that special tokens are reset
        self.assertEqual(self.tokenizer.prefix_tokens   ,				[]     )
        self.assertEqual(self.tokenizer.suffix_tokens   ,				[self.tokenizer.eos_token_id, PYTHON_CODE]     )



    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			self.tokenizer(self.src_text   ,				padding=A_   ,				truncation=A_   ,				max_length=3   ,				return_tensors='''pt'''     )
        SCREAMING_SNAKE_CASE__											=			self.tokenizer(
            text_target=self.tgt_text   ,				padding=A_   ,				truncation=A_   ,				max_length=10   ,				return_tensors='''pt'''     )
        SCREAMING_SNAKE_CASE__											=			targets['''input_ids''']
        SCREAMING_SNAKE_CASE__											=			shift_tokens_right(A_   ,				self.tokenizer.pad_token_id     )

        self.assertEqual(batch.input_ids.shape[1]   ,				3     )
        self.assertEqual(batch.decoder_input_ids.shape[1]   ,				10     )




    @require_torch
    def  lowercase_					(       self     ):





        '''simple docstring'''

        SCREAMING_SNAKE_CASE__											=			self.tokenizer._build_translation_inputs(
            '''A test'''   ,				return_tensors='''pt'''   ,				src_lang='''en_XX'''   ,				tgt_lang='''java'''     )

        self.assertEqual(
            nested_simplify(A_     )   ,				{
                # A, test, EOS, en_XX
                '''input_ids''': [[1_50, 2_42, 2, 5_00_03]],
                '''attention_mask''': [[1, 1, 1, 1]],
                # java
                '''forced_bos_token_id''': 5_00_01,
            }   ,				)








import gc
import unittest

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

from diffusers import TransformeraDModel, VQDiffusionPipeline, VQDiffusionScheduler, VQModel
from diffusers.pipelines.vq_diffusion.pipeline_vq_diffusion import LearnedClassifierFreeSamplingEmbeddings
from diffusers.utils import load_numpy, slow, torch_device
from diffusers.utils.testing_utils import require_torch_gpu


UpperCAmelCase__							  =						False






class 						lowercase_   (      unittest.TestCase  ):






      '''simple docstring'''




      def  __lowerCAmelCase   ( self :		Dict    )       ->str:




       """simple docstring"""


       super().tearDown()
       gc.collect()
       torch.cuda.empty_cache()







      @property
      def  __lowerCAmelCase   ( self :		List[str]    )       ->Any:




       """simple docstring"""


       return 12







      @property
      def  __lowerCAmelCase   ( self :		Optional[Any]    )       ->Dict:




       """simple docstring"""


       return 12







      @property
      def  __lowerCAmelCase   ( self :		Any    )       ->Any:




       """simple docstring"""


       return 32







      @property
      def  __lowerCAmelCase   ( self :		int    )       ->List[str]:




       """simple docstring"""


       torch.manual_seed(0    )
       a						    = VQModel(
           block_out_channels=[32, 64]					,   in_channels=3					,   out_channels=3					,   down_block_types=['''DownEncoderBlock2D''', '''DownEncoderBlock2D''']					,   up_block_types=['''UpDecoderBlock2D''', '''UpDecoderBlock2D''']					,   latent_channels=3					,   num_vq_embeddings=self.num_embed					,   vq_embed_dim=3					,   )
       return model







      @property
      def  __lowerCAmelCase   ( self :		str    )       ->str:




       """simple docstring"""


       a						    = CLIPTokenizer.from_pretrained('''hf-internal-testing/tiny-random-clip'''    )
       return tokenizer







      @property
      def  __lowerCAmelCase   ( self :		str    )       ->Union[str, Any]:




       """simple docstring"""


       torch.manual_seed(0    )
       a						    = CLIPTextConfig(
           bos_token_id=0					,   eos_token_id=2					,   hidden_size=self.text_embedder_hidden_size					,   intermediate_size=37					,   layer_norm_eps=1e-0_5					,   num_attention_heads=4					,   num_hidden_layers=5					,   pad_token_id=1					,   vocab_size=1_000					,   )
       return CLIPTextModel(__UpperCAmelCase    )







      @property
      def  __lowerCAmelCase   ( self :		Any    )       ->Tuple:




       """simple docstring"""


       torch.manual_seed(0    )

       a						    = 12
       a						    = 12

       a						    = {
           '''attention_bias''': True,
           '''cross_attention_dim''': 32,
           '''attention_head_dim''': height * width,
           '''num_attention_heads''': 1,
           '''num_vector_embeds''': self.num_embed,
           '''num_embeds_ada_norm''': self.num_embeds_ada_norm,
           '''norm_num_groups''': 32,
           '''sample_size''': width,
           '''activation_fn''': '''geglu-approximate''',
       }

       a						    = TransformeraDModel(**__UpperCAmelCase    )
       return model







      def  __lowerCAmelCase   ( self :		Dict    )       ->Any:




       """simple docstring"""


       a						    = '''cpu'''

       a						    = self.dummy_vqvae
       a						    = self.dummy_text_encoder
       a						    = self.dummy_tokenizer
       a						    = self.dummy_transformer
       a						    = VQDiffusionScheduler(self.num_embed    )
       a						    = LearnedClassifierFreeSamplingEmbeddings(learnable=__UpperCAmelCase    )

       a						    = VQDiffusionPipeline(
           vqvae=__UpperCAmelCase					,   text_encoder=__UpperCAmelCase					,   tokenizer=__UpperCAmelCase					,   transformer=__UpperCAmelCase					,   scheduler=__UpperCAmelCase					,   learned_classifier_free_sampling_embeddings=__UpperCAmelCase					,   )
       a						    = pipe.to(__UpperCAmelCase    )
       pipe.set_progress_bar_config(disable=__UpperCAmelCase    )

       a						    = '''teddy bear playing in the pool'''

       a						    = torch.Generator(device=__UpperCAmelCase    ).manual_seed(0    )
       a						    = pipe([prompt]					,   generator=__UpperCAmelCase					,   num_inference_steps=2					,   output_type='''np'''    )
       a						    = output.images

       a						    = torch.Generator(device=__UpperCAmelCase    ).manual_seed(0    )
       a						    = pipe(
           [prompt]					,   generator=__UpperCAmelCase					,   output_type='''np'''					,   return_dict=__UpperCAmelCase					,   num_inference_steps=2    )[0]

       a						    = image[0, -3:, -3:, -1]
       a						    = image_from_tuple[0, -3:, -3:, -1]

       assert image.shape == (1, 24, 24, 3)

       a						    = np.array([0.6551, 0.6168, 0.5008, 0.5676, 0.5659, 0.4295, 0.6073, 0.5599, 0.4992]    )

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







      def  __lowerCAmelCase   ( self :		Tuple    )       ->str:




       """simple docstring"""


       a						    = '''cpu'''

       a						    = self.dummy_vqvae
       a						    = self.dummy_text_encoder
       a						    = self.dummy_tokenizer
       a						    = self.dummy_transformer
       a						    = VQDiffusionScheduler(self.num_embed    )
       a						    = LearnedClassifierFreeSamplingEmbeddings(
           learnable=__UpperCAmelCase					,   hidden_size=self.text_embedder_hidden_size					,   length=tokenizer.model_max_length    )

       a						    = VQDiffusionPipeline(
           vqvae=__UpperCAmelCase					,   text_encoder=__UpperCAmelCase					,   tokenizer=__UpperCAmelCase					,   transformer=__UpperCAmelCase					,   scheduler=__UpperCAmelCase					,   learned_classifier_free_sampling_embeddings=__UpperCAmelCase					,   )
       a						    = pipe.to(__UpperCAmelCase    )
       pipe.set_progress_bar_config(disable=__UpperCAmelCase    )

       a						    = '''teddy bear playing in the pool'''

       a						    = torch.Generator(device=__UpperCAmelCase    ).manual_seed(0    )
       a						    = pipe([prompt]					,   generator=__UpperCAmelCase					,   num_inference_steps=2					,   output_type='''np'''    )
       a						    = output.images

       a						    = torch.Generator(device=__UpperCAmelCase    ).manual_seed(0    )
       a						    = pipe(
           [prompt]					,   generator=__UpperCAmelCase					,   output_type='''np'''					,   return_dict=__UpperCAmelCase					,   num_inference_steps=2    )[0]

       a						    = image[0, -3:, -3:, -1]
       a						    = image_from_tuple[0, -3:, -3:, -1]

       assert image.shape == (1, 24, 24, 3)

       a						    = np.array([0.6693, 0.6075, 0.4959, 0.5701, 0.5583, 0.4333, 0.6171, 0.5684, 0.4988]    )

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






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






      '''simple docstring'''




      def  __lowerCAmelCase   ( self :		Union[str, Any]    )       ->Union[str, Any]:




       """simple docstring"""


       super().tearDown()
       gc.collect()
       torch.cuda.empty_cache()







      def  __lowerCAmelCase   ( self :		Dict    )       ->int:




       """simple docstring"""


       a						    = load_numpy(
           '''https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main'''
           '''/vq_diffusion/teddy_bear_pool_classifier_free_sampling.npy'''    )

       a						    = VQDiffusionPipeline.from_pretrained('''microsoft/vq-diffusion-ithq'''    )
       a						    = pipeline.to(__UpperCAmelCase    )
       pipeline.set_progress_bar_config(disable=__UpperCAmelCase    )

       # requires GPU generator for gumbel softmax
       # don't use GPU generator in tests though
       a						    = torch.Generator(device=__UpperCAmelCase    ).manual_seed(0    )
       a						    = pipeline(
           '''teddy bear playing in the pool'''					,   num_images_per_prompt=1					,   generator=__UpperCAmelCase					,   output_type='''np'''					,   )

       a						    = output.images[0]

       assert image.shape == (256, 256, 3)
       assert np.abs(expected_image - image    ).max() < 2.0


