"""simple docstring"""
import unittest

import numpy as np
import torch

from diffusers import KarrasVePipeline, KarrasVeScheduler, UNetaDModel
from diffusers.utils.testing_utils import enable_full_determinism, require_torch, slow, torch_device


enable_full_determinism()



class 					lowerCAmelCase_      (     unittest.TestCase   ):



				"""simple docstring"""

				@property
				def 						snake_case	(			self      ):






										"""simple docstring"""

										torch.manual_seed(0      )
										snake_case        =     UNetaDModel(
										    block_out_channels=(32, 64)						,      layers_per_block=2						,      sample_size=32						,      in_channels=3						,      out_channels=3						,      down_block_types=('DownBlock2D', 'AttnDownBlock2D')						,      up_block_types=('AttnUpBlock2D', 'UpBlock2D')						,      )
										return model

				def 						snake_case	(			self      ):






										"""simple docstring"""

										snake_case        =     self.dummy_uncond_unet
										snake_case        =     KarrasVeScheduler()

										snake_case        =     KarrasVePipeline(unet=__lowerCamelCase						,      scheduler=__lowerCamelCase      )
										pipe.to(__lowerCamelCase      )
										pipe.set_progress_bar_config(disable=__lowerCamelCase      )

										snake_case        =     torch.manual_seed(0      )
										snake_case        =     pipe(num_inference_steps=2						,      generator=__lowerCamelCase						,      output_type='numpy'      ).images

										snake_case        =     torch.manual_seed(0      )
										snake_case        =     pipe(num_inference_steps=2						,      generator=__lowerCamelCase						,      output_type='numpy'						,      return_dict=__lowerCamelCase      )[0]

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

										assert image.shape == (1, 32, 32, 3)
										snake_case        =     np.array([0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]      )

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





@slow
@require_torch
class 					lowerCAmelCase_      (     unittest.TestCase   ):



				"""simple docstring"""

				def 						snake_case	(			self      ):






										"""simple docstring"""

										snake_case        =     """google/ncsnpp-celebahq-256"""
										snake_case        =     UNetaDModel.from_pretrained(__lowerCamelCase      )
										snake_case        =     KarrasVeScheduler()

										snake_case        =     KarrasVePipeline(unet=__lowerCamelCase						,      scheduler=__lowerCamelCase      )
										pipe.to(__lowerCamelCase      )
										pipe.set_progress_bar_config(disable=__lowerCamelCase      )

										snake_case        =     torch.manual_seed(0      )
										snake_case        =     pipe(num_inference_steps=20						,      generator=__lowerCamelCase						,      output_type='numpy'      ).images

										snake_case        =     image[0, -3:, -3:, -1]
										assert image.shape == (1, 2_56, 2_56, 3)
										snake_case        =     np.array([0.5_78, 0.58_11, 0.59_24, 0.58_09, 0.5_87, 0.58_86, 0.58_61, 0.58_02, 0.5_86]      )

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



"""simple docstring"""
from ..utils import DummyObject, requires_backends



class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Dict     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Optional[Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Optional[Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Optional[int]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Dict     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Optional[int]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Any     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      List[Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      str     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Tuple     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      str     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Tuple     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Any     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Tuple     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Tuple     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      int     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Any     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Optional[int]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      int     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Dict     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Any     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Union[str, Any]     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      str     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Dict     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )





class 					lowerCAmelCase_      (     metaclass=lowerCAmelCase   ):



				"""simple docstring"""
				_lowerCAmelCase       :      Tuple     					=  ["""sentencepiece"""]

				def __init__(			self						,      *lowerCAmelCase						,      **lowerCAmelCase      ):






										"""simple docstring"""

										requires_backends(self						,      ['sentencepiece']      )


