





'''simple docstring'''

import pickle
import shutil
import tempfile
import unittest

from transformers import SPIECE_UNDERLINE, XGLMTokenizer, XGLMTokenizerFast
from transformers.testing_utils import get_tests_dir, require_sentencepiece, require_tokenizers, slow
from transformers.utils import cached_property

from ...test_tokenization_common import TokenizerTesterMixin


lowercase__						:			Any       =				get_tests_dir('fixtures/test_sentencepiece.model')
@require_sentencepiece
@require_tokenizers
class 				__lowerCAmelCase     (    _UpperCAmelCase						,						unittest.TestCase ):






       """simple docstring"""
       _snake_case	:     Union[str, Any]										=    XGLMTokenizer
       _snake_case	:     Dict										=    XGLMTokenizerFast
       _snake_case	:     Union[str, Any]										=    True
       _snake_case	:     List[str]										=    True





       def snake_case__						(							self   :		str     )    ->     List[str]:

            '''simple docstring'''




            super().setUp()

            # We have a SentencePiece fixture for testing
            _UpperCamelCase				    =       XGLMTokenizer(A_       , keep_accents=A_     )
            tokenizer.save_pretrained(self.tmpdirname     )





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

            '''simple docstring'''




            _UpperCamelCase				    =       '''<pad>'''
            _UpperCamelCase				    =       1

            self.assertEqual(self.get_tokenizer()._convert_token_to_id(A_     )       , A_     )
            self.assertEqual(self.get_tokenizer()._convert_id_to_token(A_     )       , A_     )





       def snake_case__						(							self   :		Any     )    ->     List[Any]:

            '''simple docstring'''




            _UpperCamelCase				    =       list(self.get_tokenizer().get_vocab().keys()     )

            self.assertEqual(vocab_keys[0]       , '''<s>'''     )
            self.assertEqual(vocab_keys[1]       , '''<pad>'''     )
            self.assertEqual(len(A_     )       , 1008     )





       def snake_case__						(							self   :		List[str]     )    ->     Optional[int]:

            '''simple docstring'''




            self.assertEqual(self.get_tokenizer().vocab_size       , 1008     )





       def snake_case__						(							self   :		Optional[int]     )    ->     List[str]:

            '''simple docstring'''




            _UpperCamelCase				    =       XGLMTokenizer(A_       , keep_accents=A_     )

            _UpperCamelCase				    =       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 [285, 46, 10, 170, 382]]       , )

            _UpperCamelCase				    =       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''',
                    '''é''',
                    '''.''',
                ]       , )
            _UpperCamelCase				    =       tokenizer.convert_tokens_to_ids(A_     )
            self.assertListEqual(
                A_       , [
                    value + tokenizer.fairseq_offset
                    for value in [8, 21, 84, 55, 24, 19, 7, 2, 602, 347, 347, 347, 3, 12, 66, 46, 72, 80, 6, 2, 4]
                ]       , )

            _UpperCamelCase				    =       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>''',
                    '''.''',
                ]       , )





       @cached_property
       def snake_case__						(							self   :		Any     )    ->     Union[str, Any]:

            '''simple docstring'''




            return XGLMTokenizer.from_pretrained('''facebook/xglm-564M'''     )





       def snake_case__						(							self   :		List[Any]     )    ->     List[str]:

            '''simple docstring'''




            with tempfile.NamedTemporaryFile() as f:
                 shutil.copyfile(A_       , f.name     )
                 _UpperCamelCase				    =       XGLMTokenizer(f.name       , keep_accents=A_     )
                 _UpperCamelCase				    =       pickle.dumps(A_     )
            pickle.loads(A_     )





       def snake_case__						(							self   :		int     )    ->     List[Any]:

            '''simple docstring'''




            if not self.test_rust_tokenizer:
                 return

            _UpperCamelCase				    =       self.get_tokenizer()
            _UpperCamelCase				    =       self.get_rust_tokenizer()

            _UpperCamelCase				    =       '''I was born in 92000, and this is falsé.'''

            _UpperCamelCase				    =       tokenizer.tokenize(A_     )
            _UpperCamelCase				    =       rust_tokenizer.tokenize(A_     )
            self.assertListEqual(A_       , A_     )

            _UpperCamelCase				    =       tokenizer.encode(A_       , add_special_tokens=A_     )
            _UpperCamelCase				    =       rust_tokenizer.encode(A_       , add_special_tokens=A_     )
            self.assertListEqual(A_       , A_     )

            _UpperCamelCase				    =       self.get_rust_tokenizer()
            _UpperCamelCase				    =       tokenizer.encode(A_     )
            _UpperCamelCase				    =       rust_tokenizer.encode(A_     )
            self.assertListEqual(A_       , A_     )





       @slow
       def snake_case__						(							self   :		Optional[int]     )    ->     List[str]:

            '''simple docstring'''




            _UpperCamelCase				    =       '''Hello World!'''
            _UpperCamelCase				    =       [2, 31227, 4447, 35]

            self.assertListEqual(A_       , self.big_tokenizer.encode(A_     )     )





       @slow
       def snake_case__						(							self   :		List[Any]     )    ->     Tuple:

            '''simple docstring'''




            _UpperCamelCase				    =       (
                '''This is a very long text with a lot of weird characters, such as: . , ~ ? ( ) " [ ] ! : - . Also we will'''
                ''' add words that should not exsist and be tokenized to unk, such as saoneuhaoesuth'''
            )
            # fmt: off
            _UpperCamelCase				    =       [2, 1018, 67, 11, 1988, 2617, 5631, 278, 11, 3407, 48, 71630, 28085, 4, 3234, 157, 13, 6, 5, 6, 4, 3526, 768, 15, 659, 57, 298, 3983, 864, 129, 21, 6, 5, 13675, 377, 652, 7580, 10341, 155, 2817, 422, 1666, 7, 1674, 53, 113, 202277, 17892, 33, 60, 87, 4, 3234, 157, 61, 2667, 52376, 19, 88, 23, 735]
            # fmt: on

            self.assertListEqual(A_       , self.big_tokenizer.encode(A_     )     )







       @slow
       def snake_case__						(							self   :		Any     )    ->     List[Any]:

            '''simple docstring'''




            _UpperCamelCase				    =       {
                '''input_ids''': [[2, 108825, 1163, 15, 88010, 473, 15898, 157, 13672, 1857, 312, 8, 238021, 1163, 53, 13672, 1857, 312, 8, 53283, 182396, 8, 18566, 16, 36733, 4101, 8, 230, 244017, 122553, 7, 15, 132597, 4, 293, 12511, 7610, 4, 3414, 132597, 9, 4, 32361, 362, 4, 734, 28512, 32569, 18, 4, 32361, 26096, 14982, 73, 18715, 21433, 235261, 15, 492, 12427, 16, 53, 18715, 21433, 65454, 15, 23659, 563, 16, 278, 597, 2843, 595, 7931, 182396, 64186, 22, 886, 595, 132981, 53, 25540, 3449, 43982, 39901, 5951, 878, 330, 4, 27694, 80269, 312, 53, 6517, 11780, 611, 20408, 5], [2, 6, 132597, 67, 42897, 33, 592, 8, 163729, 25540, 361, 136997, 109514, 173230, 7, 501, 60, 102913, 196, 5631, 235, 63243, 473, 6, 231757, 74, 5277, 7905, 53, 3095, 37317, 22, 454, 183874, 5], [2, 268, 31298, 46530, 6, 132935, 43831, 7, 597, 32, 24, 3688, 9865, 5]],
                '''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]]
            }  # noqa: E501
            # fmt: on

            self.tokenizer_integration_test_util(
                expected_encoding=A_       , model_name='''facebook/xglm-564M'''       , padding=A_       , )






import gc
import unittest

import numpy as np
import torch
from torch.backends.cuda import sdp_kernel

from diffusers import (
    CMStochasticIterativeScheduler,
    ConsistencyModelPipeline,
    UNetaDModel,
)
from diffusers.utils import randn_tensor, slow, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_a, require_torch_gpu

from ..pipeline_params import UNCONDITIONAL_IMAGE_GENERATION_BATCH_PARAMS, UNCONDITIONAL_IMAGE_GENERATION_PARAMS
from ..test_pipelines_common import PipelineTesterMixin


enable_full_determinism()







class   __lowercase      (_UpperCAmelCase		,   unittest.TestCase ):
 _UpperCamelCase			  =  ConsistencyModelPipeline
 _UpperCamelCase			  =  UNCONDITIONAL_IMAGE_GENERATION_PARAMS
 _UpperCamelCase			  =  UNCONDITIONAL_IMAGE_GENERATION_BATCH_PARAMS

 # Override required_optional_params to remove num_images_per_prompt
 _UpperCamelCase			  =  frozenset(
     [
         """num_inference_steps""",
         """generator""",
         """latents""",
         """output_type""",
         """return_dict""",
         """callback""",
         """callback_steps""",
     ] )
 @property
 def 	UpperCamelCase__  (							self					)					->List[str]:



       '''simple docstring'''





       __lowerCAmelCase					:						List[Any]					=					UNetaDModel.from_pretrained(
           '''diffusers/consistency-models-test'''      ,							subfolder='''test_unet'''      ,							)
       return unet
 @property
 def 	UpperCamelCase__  (							self					)					->Optional[int]:



       '''simple docstring'''





       __lowerCAmelCase					:						List[str]					=					UNetaDModel.from_pretrained(
           '''diffusers/consistency-models-test'''      ,							subfolder='''test_unet_class_cond'''      ,							)
       return unet
 def 	UpperCamelCase__  (							self      ,							A_=False					)					->Dict:



       '''simple docstring'''





       if class_cond:
             __lowerCAmelCase					:						List[str]					=					self.dummy_cond_unet
       else:
             __lowerCAmelCase					:						Optional[Any]					=					self.dummy_uncond_unet

       # Default to CM multistep sampler
       __lowerCAmelCase					:						List[str]					=					CMStochasticIterativeScheduler(
           num_train_timesteps=40      ,							sigma_min=0.002      ,							sigma_max=80.0      ,							)

       __lowerCAmelCase					:						Dict					=					{
           '''unet''': unet,
           '''scheduler''': scheduler,
       }

       return components
 def 	UpperCamelCase__  (							self      ,							A_      ,							A_=0					)					->Tuple:



       '''simple docstring'''





       if str(A_					).startswith('''mps'''					):
             __lowerCAmelCase					:						str					=					torch.manual_seed(A_					)
       else:
             __lowerCAmelCase					:						Dict					=					torch.Generator(device=A_					).manual_seed(A_					)

       __lowerCAmelCase					:						Tuple					=					{
           '''batch_size''': 1,
           '''num_inference_steps''': None,
           '''timesteps''': [22, 0],
           '''generator''': generator,
           '''output_type''': '''np''',
       }

       return inputs
 def 	UpperCamelCase__  (							self					)					->Tuple:



       '''simple docstring'''





       __lowerCAmelCase					:						Union[str, Any]					=					'''cpu'''  # ensure determinism for the device-dependent torch.Generator
       __lowerCAmelCase					:						Tuple					=					self.get_dummy_components()
       __lowerCAmelCase					:						Union[str, Any]					=					ConsistencyModelPipeline(**A_					)
       __lowerCAmelCase					:						List[str]					=					pipe.to(A_					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						Any					=					self.get_dummy_inputs(A_					)
       __lowerCAmelCase					:						int					=					pipe(**A_					).images
       assert image.shape == (1, 32, 32, 3)

       __lowerCAmelCase					:						Tuple					=					image[0, -3:, -3:, -1]
       __lowerCAmelCase					:						str					=					np.array([0.3_572, 0.6_273, 0.4_031, 0.3_961, 0.4_321, 0.5_730, 0.5_266, 0.4_780, 0.5_004]					)

       assert np.abs(image_slice.flatten() - expected_slice					).max() < 1e-3
 def 	UpperCamelCase__  (							self					)					->Tuple:



       '''simple docstring'''





       __lowerCAmelCase					:						List[Any]					=					'''cpu'''  # ensure determinism for the device-dependent torch.Generator
       __lowerCAmelCase					:						str					=					self.get_dummy_components(class_cond=A_					)
       __lowerCAmelCase					:						List[str]					=					ConsistencyModelPipeline(**A_					)
       __lowerCAmelCase					:						List[Any]					=					pipe.to(A_					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						Optional[Any]					=					self.get_dummy_inputs(A_					)
       __lowerCAmelCase					:						Optional[int]					=					0
       __lowerCAmelCase					:						int					=					pipe(**A_					).images
       assert image.shape == (1, 32, 32, 3)

       __lowerCAmelCase					:						Optional[int]					=					image[0, -3:, -3:, -1]
       __lowerCAmelCase					:						List[str]					=					np.array([0.3_572, 0.6_273, 0.4_031, 0.3_961, 0.4_321, 0.5_730, 0.5_266, 0.4_780, 0.5_004]					)

       assert np.abs(image_slice.flatten() - expected_slice					).max() < 1e-3
 def 	UpperCamelCase__  (							self					)					->Optional[Any]:



       '''simple docstring'''





       __lowerCAmelCase					:						Any					=					'''cpu'''  # ensure determinism for the device-dependent torch.Generator
       __lowerCAmelCase					:						Union[str, Any]					=					self.get_dummy_components()
       __lowerCAmelCase					:						List[Any]					=					ConsistencyModelPipeline(**A_					)
       __lowerCAmelCase					:						int					=					pipe.to(A_					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						Tuple					=					self.get_dummy_inputs(A_					)
       __lowerCAmelCase					:						Any					=					1
       __lowerCAmelCase					:						List[Any]					=					None
       __lowerCAmelCase					:						Dict					=					pipe(**A_					).images
       assert image.shape == (1, 32, 32, 3)

       __lowerCAmelCase					:						Any					=					image[0, -3:, -3:, -1]
       __lowerCAmelCase					:						List[Any]					=					np.array([0.5_004, 0.5_004, 0.4_994, 0.5_008, 0.4_976, 0.5_018, 0.4_990, 0.4_982, 0.4_987]					)

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





 def 	UpperCamelCase__  (							self					)					->Optional[Any]:



       '''simple docstring'''





       __lowerCAmelCase					:						List[Any]					=					'''cpu'''  # ensure determinism for the device-dependent torch.Generator
       __lowerCAmelCase					:						Optional[Any]					=					self.get_dummy_components(class_cond=A_					)
       __lowerCAmelCase					:						List[str]					=					ConsistencyModelPipeline(**A_					)
       __lowerCAmelCase					:						Union[str, Any]					=					pipe.to(A_					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						Any					=					self.get_dummy_inputs(A_					)
       __lowerCAmelCase					:						List[str]					=					1
       __lowerCAmelCase					:						Dict					=					None
       __lowerCAmelCase					:						Tuple					=					0
       __lowerCAmelCase					:						Dict					=					pipe(**A_					).images
       assert image.shape == (1, 32, 32, 3)

       __lowerCAmelCase					:						List[Any]					=					image[0, -3:, -3:, -1]
       __lowerCAmelCase					:						Any					=					np.array([0.5_004, 0.5_004, 0.4_994, 0.5_008, 0.4_976, 0.5_018, 0.4_990, 0.4_982, 0.4_987]					)

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







@slow
@require_torch_gpu
class   __lowercase      (unittest.TestCase ):
 def 	UpperCamelCase__  (							self					)					->int:



       '''simple docstring'''





       super().tearDown()
       gc.collect()
       torch.cuda.empty_cache()
 def 	UpperCamelCase__  (							self      ,							A_=0      ,							A_=False      ,							A_="cpu"      ,							A_=torch.floataa      ,							A_=(1, 3, 64, 64)					)					->str:



       '''simple docstring'''





       __lowerCAmelCase					:						Dict					=					torch.manual_seed(A_					)

       __lowerCAmelCase					:						Tuple					=					{
           '''num_inference_steps''': None,
           '''timesteps''': [22, 0],
           '''class_labels''': 0,
           '''generator''': generator,
           '''output_type''': '''np''',
       }

       if get_fixed_latents:
             __lowerCAmelCase					:						List[str]					=					self.get_fixed_latents(seed=A_      ,							device=A_      ,							dtype=A_      ,							shape=A_					)
             __lowerCAmelCase					:						Union[str, Any]					=					latents

       return inputs
 def 	UpperCamelCase__  (							self      ,							A_=0      ,							A_="cpu"      ,							A_=torch.floataa      ,							A_=(1, 3, 64, 64)					)					->Optional[int]:



       '''simple docstring'''





       if type(A_					) == str:
             __lowerCAmelCase					:						int					=					torch.device(A_					)
       __lowerCAmelCase					:						Optional[Any]					=					torch.Generator(device=A_					).manual_seed(A_					)
       __lowerCAmelCase					:						Union[str, Any]					=					randn_tensor(A_      ,							generator=A_      ,							device=A_      ,							dtype=A_					)
       return latents
 def 	UpperCamelCase__  (							self					)					->Optional[Any]:



       '''simple docstring'''





       __lowerCAmelCase					:						int					=					UNetaDModel.from_pretrained('''diffusers/consistency_models'''      ,							subfolder='''diffusers_cd_imagenet64_l2'''					)
       __lowerCAmelCase					:						List[Any]					=					CMStochasticIterativeScheduler(
           num_train_timesteps=40      ,							sigma_min=0.002      ,							sigma_max=80.0      ,							)
       __lowerCAmelCase					:						List[str]					=					ConsistencyModelPipeline(unet=A_      ,							scheduler=A_					)
       pipe.to(torch_device=A_					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						str					=					self.get_inputs()
       __lowerCAmelCase					:						Any					=					pipe(**A_					).images
       assert image.shape == (1, 64, 64, 3)

       __lowerCAmelCase					:						Dict					=					image[0, -3:, -3:, -1]

       __lowerCAmelCase					:						Optional[int]					=					np.array([0.0_888, 0.0_881, 0.0_666, 0.0_479, 0.0_292, 0.0_195, 0.0_201, 0.0_163, 0.0_254]					)

       assert np.abs(image_slice.flatten() - expected_slice					).max() < 2e-2
 def 	UpperCamelCase__  (							self					)					->Any:



       '''simple docstring'''





       __lowerCAmelCase					:						int					=					UNetaDModel.from_pretrained('''diffusers/consistency_models'''      ,							subfolder='''diffusers_cd_imagenet64_l2'''					)
       __lowerCAmelCase					:						Optional[Any]					=					CMStochasticIterativeScheduler(
           num_train_timesteps=40      ,							sigma_min=0.002      ,							sigma_max=80.0      ,							)
       __lowerCAmelCase					:						List[str]					=					ConsistencyModelPipeline(unet=A_      ,							scheduler=A_					)
       pipe.to(torch_device=A_					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						List[Any]					=					self.get_inputs()
       __lowerCAmelCase					:						Tuple					=					1
       __lowerCAmelCase					:						Optional[Any]					=					None
       __lowerCAmelCase					:						str					=					pipe(**A_					).images
       assert image.shape == (1, 64, 64, 3)

       __lowerCAmelCase					:						Optional[int]					=					image[0, -3:, -3:, -1]

       __lowerCAmelCase					:						List[Any]					=					np.array([0.0_340, 0.0_152, 0.0_063, 0.0_267, 0.0_221, 0.0_107, 0.0_416, 0.0_186, 0.0_217]					)

       assert np.abs(image_slice.flatten() - expected_slice					).max() < 2e-2
 @require_torch_a
 def 	UpperCamelCase__  (							self					)					->Optional[Any]:



       '''simple docstring'''





       __lowerCAmelCase					:						Tuple					=					UNetaDModel.from_pretrained('''diffusers/consistency_models'''      ,							subfolder='''diffusers_cd_imagenet64_l2'''					)
       __lowerCAmelCase					:						List[str]					=					CMStochasticIterativeScheduler(
           num_train_timesteps=40      ,							sigma_min=0.002      ,							sigma_max=80.0      ,							)
       __lowerCAmelCase					:						Union[str, Any]					=					ConsistencyModelPipeline(unet=A_      ,							scheduler=A_					)
       pipe.to(torch_device=A_      ,							torch_dtype=torch.floataa					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						Any					=					self.get_inputs(get_fixed_latents=A_      ,							device=A_					)
       # Ensure usage of flash attention in torch 2.0
       with sdp_kernel(enable_flash=A_      ,							enable_math=A_      ,							enable_mem_efficient=A_					):
             __lowerCAmelCase					:						Dict					=					pipe(**A_					).images
       assert image.shape == (1, 64, 64, 3)

       __lowerCAmelCase					:						Dict					=					image[0, -3:, -3:, -1]

       __lowerCAmelCase					:						Optional[int]					=					np.array([0.1_875, 0.1_428, 0.1_289, 0.2_151, 0.2_092, 0.1_477, 0.1_877, 0.1_641, 0.1_353]					)

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





 @require_torch_a
 def 	UpperCamelCase__  (							self					)					->List[str]:



       '''simple docstring'''





       __lowerCAmelCase					:						Optional[Any]					=					UNetaDModel.from_pretrained('''diffusers/consistency_models'''      ,							subfolder='''diffusers_cd_imagenet64_l2'''					)
       __lowerCAmelCase					:						List[Any]					=					CMStochasticIterativeScheduler(
           num_train_timesteps=40      ,							sigma_min=0.002      ,							sigma_max=80.0      ,							)
       __lowerCAmelCase					:						Union[str, Any]					=					ConsistencyModelPipeline(unet=A_      ,							scheduler=A_					)
       pipe.to(torch_device=A_      ,							torch_dtype=torch.floataa					)
       pipe.set_progress_bar_config(disable=A_					)

       __lowerCAmelCase					:						Union[str, Any]					=					self.get_inputs(get_fixed_latents=A_      ,							device=A_					)
       __lowerCAmelCase					:						Any					=					1
       __lowerCAmelCase					:						int					=					None
       # Ensure usage of flash attention in torch 2.0
       with sdp_kernel(enable_flash=A_      ,							enable_math=A_      ,							enable_mem_efficient=A_					):
             __lowerCAmelCase					:						int					=					pipe(**A_					).images
       assert image.shape == (1, 64, 64, 3)

       __lowerCAmelCase					:						str					=					image[0, -3:, -3:, -1]

       __lowerCAmelCase					:						Any					=					np.array([0.1_663, 0.1_948, 0.2_275, 0.1_680, 0.1_204, 0.1_245, 0.1_858, 0.1_338, 0.2_095]					)

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


