code: 
  
  
  
  
  """simple docstring"""
  
  
  
  
  import random
  import unittest
  
  import numpy as np
  import torch
  from PIL import Image
  from torch import nn
  from transformers import (
      CLIPImageProcessor,
      CLIPTextConfig,
      CLIPTextModelWithProjection,
      CLIPTokenizer,
      CLIPVisionConfig,
      CLIPVisionModelWithProjection,
  )
  
  from diffusers import KandinskyVaaPriorEmbaEmbPipeline, PriorTransformer, UnCLIPScheduler
  from diffusers.utils import floats_tensor, torch_device
  from diffusers.utils.testing_utils import enable_full_determinism, skip_mps
  
  from ..test_pipelines_common import PipelineTesterMixin
  
  
  enable_full_determinism()
  class 							lowerCamelCase		( _UpperCAmelCase	,  unittest.TestCase				):
     lowercase       :  Any      =				KandinskyVaaPriorEmbaEmbPipeline
     lowercase       :  Union[str, Any]      =				['prompt', 'image']
     lowercase       :  str      =				['prompt', 'image']
     lowercase       :  Optional[int]      =				[
         'num_images_per_prompt',
         'strength',
         'generator',
         'num_inference_steps',
         'latents',
         'negative_prompt',
         'guidance_scale',
         'output_type',
         'return_dict',
     ]
     lowercase       :  List[Any]      =				False
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         return 32
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         return 32
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         return self.time_input_dim
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         return self.time_input_dim * 4
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         return 100
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         UpperCamelCase				:   Union[str, Any]          =							CLIPTokenizer.from_pretrained("""hf-internal-testing/tiny-random-clip""" )
         return tokenizer
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         torch.manual_seed(0 )
         UpperCamelCase				:   Tuple          =							CLIPTextConfig(
             bos_token_id=0    ,      eos_token_id=2    ,      hidden_size=self.text_embedder_hidden_size    ,      projection_dim=self.text_embedder_hidden_size    ,      intermediate_size=37    ,      layer_norm_eps=1e-05    ,      num_attention_heads=4    ,      num_hidden_layers=5    ,      pad_token_id=1    ,      vocab_size=1000    ,      )
         return CLIPTextModelWithProjection(SCREAMING_SNAKE_CASE_ )
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         torch.manual_seed(0 )
  
         UpperCamelCase				:   List[str]          =							{
             """num_attention_heads""": 2,
             """attention_head_dim""": 12,
             """embedding_dim""": self.text_embedder_hidden_size,
             """num_layers""": 1,
         }
  
         UpperCamelCase				:   List[Any]          =							PriorTransformer(**SCREAMING_SNAKE_CASE_ )
         # clip_std and clip_mean is initialized to be 0 so PriorTransformer.post_process_latents will always return 0 - set clip_std to be 1 so it won't return 0
         UpperCamelCase				:   Any          =							nn.Parameter(torch.ones(model.clip_std.shape ) )
         return model
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         torch.manual_seed(0 )
         UpperCamelCase				:   Union[str, Any]          =							CLIPVisionConfig(
             hidden_size=self.text_embedder_hidden_size    ,      image_size=224    ,      projection_dim=self.text_embedder_hidden_size    ,      intermediate_size=37    ,      num_attention_heads=4    ,      num_channels=3    ,      num_hidden_layers=5    ,      patch_size=14    ,      )
  
         UpperCamelCase				:   List[str]          =							CLIPVisionModelWithProjection(SCREAMING_SNAKE_CASE_ )
         return model
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         UpperCamelCase				:   str          =							CLIPImageProcessor(
             crop_size=224    ,      do_center_crop=SCREAMING_SNAKE_CASE_    ,      do_normalize=SCREAMING_SNAKE_CASE_    ,      do_resize=SCREAMING_SNAKE_CASE_    ,      image_mean=[0.48145466, 0.4578275, 0.40821073]    ,      image_std=[0.26862954, 0.26130258, 0.27577711]    ,      resample=3    ,      size=224    ,      )
  
         return image_processor
  
  
  
  
  
  
  
     def       a_							(							self ):
         UpperCamelCase				:   List[Any]          =							self.dummy_prior
         UpperCamelCase				:   Optional[Any]          =							self.dummy_image_encoder
         UpperCamelCase				:   Optional[int]          =							self.dummy_text_encoder
         UpperCamelCase				:   Tuple          =							self.dummy_tokenizer
         UpperCamelCase				:   Any          =							self.dummy_image_processor
  
         UpperCamelCase				:   Union[str, Any]          =							UnCLIPScheduler(
             variance_type="""fixed_small_log"""    ,      prediction_type="""sample"""    ,      num_train_timesteps=1000    ,      clip_sample=SCREAMING_SNAKE_CASE_    ,      clip_sample_range=10.0    ,      )
  
         UpperCamelCase				:   List[str]          =							{
             """prior""": prior,
             """image_encoder""": image_encoder,
             """text_encoder""": text_encoder,
             """tokenizer""": tokenizer,
             """scheduler""": scheduler,
             """image_processor""": image_processor,
         }
  
         return components
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_=0 ):
         if str(SCREAMING_SNAKE_CASE_ ).startswith("""mps""" ):
             UpperCamelCase				:   Optional[int]          =							torch.manual_seed(SCREAMING_SNAKE_CASE_ )
         else:
             UpperCamelCase				:   Optional[int]          =							torch.Generator(device=SCREAMING_SNAKE_CASE_ ).manual_seed(SCREAMING_SNAKE_CASE_ )
  
         UpperCamelCase				:   Dict          =							floats_tensor((1, 3, 64, 64)    ,      rng=random.Random(SCREAMING_SNAKE_CASE_ ) ).to(SCREAMING_SNAKE_CASE_ )
         UpperCamelCase				:   List[Any]          =							image.cpu().permute(0    ,      2    ,      3    ,      1 )[0]
         UpperCamelCase				:   Any          =							Image.fromarray(np.uinta(SCREAMING_SNAKE_CASE_ ) ).convert("""RGB""" ).resize((256, 256) )
  
         UpperCamelCase				:   Optional[int]          =							{
             """prompt""": """horse""",
             """image""": init_image,
             """strength""": 0.5,
             """generator""": generator,
             """guidance_scale""": 4.0,
             """num_inference_steps""": 2,
             """output_type""": """np""",
         }
         return inputs
  
  
  
  
  
  
  
     def       a_							(							self ):
         UpperCamelCase				:   List[Any]          =							"""cpu"""
  
         UpperCamelCase				:   str          =							self.get_dummy_components()
  
         UpperCamelCase				:   List[Any]          =							self.pipeline_class(**SCREAMING_SNAKE_CASE_ )
         UpperCamelCase				:   Optional[int]          =							pipe.to(SCREAMING_SNAKE_CASE_ )
  
         pipe.set_progress_bar_config(disable=SCREAMING_SNAKE_CASE_ )
  
         UpperCamelCase				:   List[Any]          =							pipe(**self.get_dummy_inputs(SCREAMING_SNAKE_CASE_ ) )
         UpperCamelCase				:   Dict          =							output.image_embeds
  
         UpperCamelCase				:   Any          =							pipe(
             **self.get_dummy_inputs(SCREAMING_SNAKE_CASE_ )    ,      return_dict=SCREAMING_SNAKE_CASE_    ,      )[0]
  
         UpperCamelCase				:   Dict          =							image[0, -10:]
         UpperCamelCase				:   List[str]          =							image_from_tuple[0, -10:]
  
         assert image.shape == (1, 32)
  
         UpperCamelCase				:   Any          =							np.array(
             [
                 0.1071284,
                 1.3330271,
                 0.61260223,
                 -0.6691065,
                 -0.3846852,
                 -1.0303661,
                 0.22716111,
                 0.03348901,
                 0.30040675,
                 -0.24805029,
             ] )
  
         assert np.abs(image_slice.flatten() - expected_slice ).max() < 1e-2
         assert np.abs(image_from_tuple_slice.flatten() - expected_slice ).max() < 1e-2
  
  
  
  
  
  
  
     @skip_mps
     def       a_							(							self ):
         UpperCamelCase				:   Dict          =							torch_device == """cpu"""
         UpperCamelCase				:   Tuple          =							True
         UpperCamelCase				:   Optional[int]          =							False
  
         self._test_inference_batch_single_identical(
             test_max_difference=SCREAMING_SNAKE_CASE_    ,      relax_max_difference=SCREAMING_SNAKE_CASE_    ,      test_mean_pixel_difference=SCREAMING_SNAKE_CASE_    ,      )
  
  
  
  
  
  
  
     @skip_mps
     def       a_							(							self ):
         UpperCamelCase				:   Optional[int]          =							torch_device == """cpu"""
         UpperCamelCase				:   Any          =							False
  
         self._test_attention_slicing_forward_pass(
             test_max_difference=SCREAMING_SNAKE_CASE_    ,      test_mean_pixel_difference=SCREAMING_SNAKE_CASE_    ,      )
  
  
  
  
  
style_context: 
  
  
  
  
  """simple docstring"""
  
  
  
  
  import os
  from shutil import copyfile
  from typing import List, Optional, Tuple
  
  from tokenizers import processors
  
  from ...tokenization_utils import AddedToken, BatchEncoding
  from ...tokenization_utils_fast import PreTrainedTokenizerFast
  from ...utils import is_sentencepiece_available, logging
  
  
  if is_sentencepiece_available():
    from .tokenization_mbartaa import MBartaaTokenizer
  else:
    __A :		Tuple      							=    None
  
  
  __A :		Optional[Any]      							=    logging.get_logger(__name__)
  
  __A :		Optional[Any]      							=    {'''vocab_file''': '''sentencepiece.bpe.model''', '''tokenizer_file''': '''tokenizer.json'''}
  
  __A :		Optional[Any]      							=    {
      '''vocab_file''': {
          '''facebook/mbart-large-50-one-to-many-mmt''': (
              '''https://huggingface.co/facebook/mbart-large-50-one-to-many-mmt/resolve/main/sentencepiece.bpe.model'''
          ),
      },
      '''tokenizer_file''': {
          '''facebook/mbart-large-50-one-to-many-mmt''': (
              '''https://huggingface.co/facebook/mbart-large-50-one-to-many-mmt/resolve/main/tokenizer.json'''
          ),
      },
  }
  
  __A :		List[Any]      							=    {
      '''facebook/mbart-large-50-one-to-many-mmt''': 1024,
  }
  
  # fmt: off
  __A :		Dict      							=    ['''ar_AR''', '''cs_CZ''', '''de_DE''', '''en_XX''', '''es_XX''', '''et_EE''', '''fi_FI''', '''fr_XX''', '''gu_IN''', '''hi_IN''', '''it_IT''', '''ja_XX''', '''kk_KZ''', '''ko_KR''', '''lt_LT''', '''lv_LV''', '''my_MM''', '''ne_NP''', '''nl_XX''', '''ro_RO''', '''ru_RU''', '''si_LK''', '''tr_TR''', '''vi_VN''', '''zh_CN''', '''af_ZA''', '''az_AZ''', '''bn_IN''', '''fa_IR''', '''he_IL''', '''hr_HR''', '''id_ID''', '''ka_GE''', '''km_KH''', '''mk_MK''', '''ml_IN''', '''mn_MN''', '''mr_IN''', '''pl_PL''', '''ps_AF''', '''pt_XX''', '''sv_SE''', '''sw_KE''', '''ta_IN''', '''te_IN''', '''th_TH''', '''tl_XX''', '''uk_UA''', '''ur_PK''', '''xh_ZA''', '''gl_ES''', '''sl_SI''']
  class 							lowerCamelCase		( _UpperCAmelCase				):
     lowercase       :  List[Any]      =				VOCAB_FILES_NAMES
     lowercase       :  Optional[Any]      =				PRETRAINED_POSITIONAL_EMBEDDINGS_SIZES
     lowercase       :  List[Any]      =				PRETRAINED_VOCAB_FILES_MAP
     lowercase       :  Tuple      =				['input_ids', 'attention_mask']
     lowercase       :  Optional[int]      =				MBartaaTokenizer
  
     lowercase       :  List[int]      =				[]
     lowercase       :  List[int]      =				[]
  
  
  
  
  
  
  
     def __init__(							self    ,      SCREAMING_SNAKE_CASE_=None    ,      SCREAMING_SNAKE_CASE_=None    ,      SCREAMING_SNAKE_CASE_=None    ,      SCREAMING_SNAKE_CASE_=None    ,      SCREAMING_SNAKE_CASE_="</s>"    ,      SCREAMING_SNAKE_CASE_="</s>"    ,      SCREAMING_SNAKE_CASE_="<s>"    ,      SCREAMING_SNAKE_CASE_="<unk>"    ,      SCREAMING_SNAKE_CASE_="<pad>"    ,      SCREAMING_SNAKE_CASE_="<mask>"    ,      **SCREAMING_SNAKE_CASE_    ,      ):
         # Mask token behave like a normal word, i.e. include the space before it
         UpperCamelCase				:   Optional[int]          =							AddedToken(SCREAMING_SNAKE_CASE_    ,      lstrip=SCREAMING_SNAKE_CASE_    ,      rstrip=SCREAMING_SNAKE_CASE_ ) if isinstance(SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_ ) else mask_token
  
         UpperCamelCase				:   Dict          =							kwargs.get("""additional_special_tokens"""    ,      [] )
         kwargs["additional_special_tokens"] += [
             code for code in FAIRSEQ_LANGUAGE_CODES if code not in kwargs["additional_special_tokens"]
         ]
  
         super().__init__(
             SCREAMING_SNAKE_CASE_    ,      src_lang=SCREAMING_SNAKE_CASE_    ,      tgt_lang=SCREAMING_SNAKE_CASE_    ,      tokenizer_file=SCREAMING_SNAKE_CASE_    ,      eos_token=SCREAMING_SNAKE_CASE_    ,      sep_token=SCREAMING_SNAKE_CASE_    ,      cls_token=SCREAMING_SNAKE_CASE_    ,      unk_token=SCREAMING_SNAKE_CASE_    ,      pad_token=SCREAMING_SNAKE_CASE_    ,      mask_token=SCREAMING_SNAKE_CASE_    ,      **SCREAMING_SNAKE_CASE_    ,      )
  
         UpperCamelCase				:   int          =							vocab_file
         UpperCamelCase				:   Optional[Any]          =							False if not self.vocab_file else True
  
         UpperCamelCase				:   List[Any]          =							{
             lang_code: self.convert_tokens_to_ids(SCREAMING_SNAKE_CASE_ ) for lang_code in FAIRSEQ_LANGUAGE_CODES
         }
  
         UpperCamelCase				:   List[str]          =							src_lang if src_lang is not None else """en_XX"""
         UpperCamelCase				:   Union[str, Any]          =							tgt_lang
         UpperCamelCase				:   Union[str, Any]          =							self.lang_code_to_id[self._src_lang]
         self.set_src_lang_special_tokens(self._src_lang )
  
  
  
  
  
  
  
     @property
     def       a_							(							self ):
         return self._src_lang
  
  
  
  
  
  
  
     @src_lang.setter
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_ ):
         UpperCamelCase				:   str          =							new_src_lang
         self.set_src_lang_special_tokens(self._src_lang )
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_ = None ):
         if token_ids_a is None:
             return self.prefix_tokens + token_ids_a + self.suffix_tokens
         # We don't expect to process pairs, but leave the pair logic for API consistency
         return self.prefix_tokens + token_ids_a + token_ids_a + self.suffix_tokens
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_ = "en_XX"    ,      SCREAMING_SNAKE_CASE_ = None    ,      SCREAMING_SNAKE_CASE_ = "ro_RO"    ,      **SCREAMING_SNAKE_CASE_    ,      ):
         UpperCamelCase				:   str          =							src_lang
         UpperCamelCase				:   Optional[Any]          =							tgt_lang
         return super().prepare_seqaseq_batch(SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_    ,      **SCREAMING_SNAKE_CASE_ )
  
  
  
  
  
  
  
     def       a_							(							self ):
         return self.set_src_lang_special_tokens(self.src_lang )
  
  
  
  
  
  
  
     def       a_							(							self ):
         return self.set_tgt_lang_special_tokens(self.tgt_lang )
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_ ):
         UpperCamelCase				:   Optional[Any]          =							self.convert_tokens_to_ids(SCREAMING_SNAKE_CASE_ )
         UpperCamelCase				:   Tuple          =							[self.cur_lang_code_id]
         UpperCamelCase				:   Optional[int]          =							[self.eos_token_id]
  
         UpperCamelCase				:   Dict          =							self.convert_ids_to_tokens(self.prefix_tokens )
         UpperCamelCase				:   Any          =							self.convert_ids_to_tokens(self.suffix_tokens )
  
         UpperCamelCase				:   Any          =							processors.TemplateProcessing(
             single=prefix_tokens_str + ["""$A"""] + suffix_tokens_str    ,      pair=prefix_tokens_str + ["""$A""", """$B"""] + suffix_tokens_str    ,      special_tokens=list(zip(prefix_tokens_str + suffix_tokens_str    ,      self.prefix_tokens + self.suffix_tokens ) )    ,      )
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_ ):
         UpperCamelCase				:   Any          =							self.convert_tokens_to_ids(SCREAMING_SNAKE_CASE_ )
         UpperCamelCase				:   Optional[Any]          =							[self.cur_lang_code_id]
         UpperCamelCase				:   Tuple          =							[self.eos_token_id]
  
         UpperCamelCase				:   str          =							self.convert_ids_to_tokens(self.prefix_tokens )
         UpperCamelCase				:   Dict          =							self.convert_ids_to_tokens(self.suffix_tokens )
  
         UpperCamelCase				:   Dict          =							processors.TemplateProcessing(
             single=prefix_tokens_str + ["""$A"""] + suffix_tokens_str    ,      pair=prefix_tokens_str + ["""$A""", """$B"""] + suffix_tokens_str    ,      special_tokens=list(zip(prefix_tokens_str + suffix_tokens_str    ,      self.prefix_tokens + self.suffix_tokens ) )    ,      )
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_    ,      **SCREAMING_SNAKE_CASE_ ):
         if src_lang is None or tgt_lang is None:
             raise ValueError("""Translation requires a `src_lang` and a `tgt_lang` for this model""" )
         UpperCamelCase				:   Optional[int]          =							src_lang
         UpperCamelCase				:   Optional[int]          =							self(SCREAMING_SNAKE_CASE_    ,      add_special_tokens=SCREAMING_SNAKE_CASE_    ,      return_tensors=SCREAMING_SNAKE_CASE_    ,      **SCREAMING_SNAKE_CASE_ )
         UpperCamelCase				:   Dict          =							self.convert_tokens_to_ids(SCREAMING_SNAKE_CASE_ )
         UpperCamelCase				:   str          =							tgt_lang_id
         return inputs
  
  
  
  
  
  
  
     def       a_							(							self    ,      SCREAMING_SNAKE_CASE_    ,      SCREAMING_SNAKE_CASE_ = None ):
         if not self.can_save_slow_tokenizer:
             raise ValueError(
                 """Your fast tokenizer does not have the necessary information to save the vocabulary for a slow """
                 """tokenizer.""" )
  
         if not os.path.isdir(SCREAMING_SNAKE_CASE_ ):
             logger.error(f'Vocabulary path ({save_directory}) should be a directory' )
             return
         UpperCamelCase				:   Optional[int]          =							os.path.join(
             SCREAMING_SNAKE_CASE_    ,      (filename_prefix + """-""" if filename_prefix else """""") + VOCAB_FILES_NAMES["""vocab_file"""] )
  
         if os.path.abspath(self.vocab_file ) != os.path.abspath(SCREAMING_SNAKE_CASE_ ):
             copyfile(self.vocab_file    ,      SCREAMING_SNAKE_CASE_ )
  
         return (out_vocab_file,)
  
  
  
  
  