





import gc
import unittest

import numpy as np
import torch

from diffusers import StableDiffusionKDiffusionPipeline
from diffusers.utils import slow, torch_device
from diffusers.utils.testing_utils import enable_full_determinism, require_torch_gpu


enable_full_determinism()
@slow
@require_torch_gpu
class SCREAMING_SNAKE_CASE_  (   unittest.TestCase   ):






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







							"""simple docstring"""


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






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







							"""simple docstring"""


							snake_case_						:     Dict     =		StableDiffusionKDiffusionPipeline.from_pretrained('CompVis/stable-diffusion-v1-4'		)
							snake_case_						:     List[str]     =		sd_pipe.to(UpperCamelCase_		)
							sd_pipe.set_progress_bar_config(disable=UpperCamelCase_		)

							sd_pipe.set_scheduler('sample_euler'		)

							snake_case_						:     Optional[int]     =		'A painting of a squirrel eating a burger'
							snake_case_						:     str     =		torch.manual_seed(0		)
							snake_case_						:     List[str]     =		sd_pipe([prompt]						,				generator=UpperCamelCase_						,				guidance_scale=9.0						,				num_inference_steps=20						,				output_type='np'		)

							snake_case_						:     Dict     =		output.images

							snake_case_						:     Optional[Any]     =		image[0, -3:, -3:, -1]

							assert image.shape == (1, 512, 512, 3)
							snake_case_						:     Tuple     =		np.array([0.0_4_4_7, 0.0_4_9_2, 0.0_4_6_8, 0.0_4_0_8, 0.0_3_8_3, 0.0_4_0_8, 0.0_3_5_4, 0.0_3_8_0, 0.0_3_3_9]		)

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






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







							"""simple docstring"""


							snake_case_						:     Tuple     =		StableDiffusionKDiffusionPipeline.from_pretrained('stabilityai/stable-diffusion-2-1-base'		)
							snake_case_						:     Optional[Any]     =		sd_pipe.to(UpperCamelCase_		)
							sd_pipe.set_progress_bar_config(disable=UpperCamelCase_		)

							sd_pipe.set_scheduler('sample_euler'		)

							snake_case_						:     str     =		'A painting of a squirrel eating a burger'
							snake_case_						:     Any     =		torch.manual_seed(0		)
							snake_case_						:     List[str]     =		sd_pipe([prompt]						,				generator=UpperCamelCase_						,				guidance_scale=9.0						,				num_inference_steps=20						,				output_type='np'		)

							snake_case_						:     Any     =		output.images

							snake_case_						:     Optional[Any]     =		image[0, -3:, -3:, -1]

							assert image.shape == (1, 512, 512, 3)
							snake_case_						:     Dict     =		np.array([0.1_2_3_7, 0.1_3_2_0, 0.1_4_3_8, 0.1_3_5_9, 0.1_3_9_0, 0.1_1_3_2, 0.1_2_7_7, 0.1_1_7_5, 0.1_1_1_2]		)

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






						def UpperCAmelCase_			( self : Dict		)							->      int:







							"""simple docstring"""


							snake_case_						:     int     =		StableDiffusionKDiffusionPipeline.from_pretrained('stabilityai/stable-diffusion-2-1-base'		)
							snake_case_						:     List[str]     =		sd_pipe.to(UpperCamelCase_		)
							sd_pipe.set_progress_bar_config(disable=UpperCamelCase_		)

							sd_pipe.set_scheduler('sample_dpmpp_2m'		)

							snake_case_						:     Any     =		'A painting of a squirrel eating a burger'
							snake_case_						:     Dict     =		torch.manual_seed(0		)
							snake_case_						:     Tuple     =		sd_pipe(
							    [prompt]						,				generator=UpperCamelCase_						,				guidance_scale=7.5						,				num_inference_steps=15						,				output_type='np'						,				use_karras_sigmas=UpperCamelCase_						,				)

							snake_case_						:     str     =		output.images

							snake_case_						:     List[Any]     =		image[0, -3:, -3:, -1]

							assert image.shape == (1, 512, 512, 3)
							snake_case_						:     Optional[int]     =		np.array(
							    [0.1_1_3_8_1_6_8_9, 0.1_2_1_1_2_9_2_1, 0.1_3_8_9_4_5_7, 0.1_2_5_4_9_6_0_6, 0.1_2_4_4_9_6_4, 0.1_0_8_3_1_5_1_7, 0.1_1_5_6_2_8_6_6, 0.1_0_8_6_7_8_1_6, 0.1_0_4_9_9_0_4_8]		)

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












from typing import TYPE_CHECKING

# rely on isort to merge the imports
from ...utils import OptionalDependencyNotAvailable, _LazyModule, is_torch_available


_SCREAMING_SNAKE_CASE 		=						{
    """configuration_informer""": [
        """INFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """InformerConfig""",
    ],
}

try:
						if not is_torch_available():
												raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
						pass
else:
						_SCREAMING_SNAKE_CASE 		=						[
						    """INFORMER_PRETRAINED_MODEL_ARCHIVE_LIST""",
						    """InformerForPrediction""",
						    """InformerModel""",
						    """InformerPreTrainedModel""",
						]


if TYPE_CHECKING:
						from .configuration_informer import INFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP, InformerConfig

						try:
												if not is_torch_available():
																		raise OptionalDependencyNotAvailable()
						except OptionalDependencyNotAvailable:
												pass
						else:
												from .modeling_informer import (
												    INFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
												    InformerForPrediction,
												    InformerModel,
												    InformerPreTrainedModel,
												)

else:
						import sys

						_SCREAMING_SNAKE_CASE 		=						_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)

