


"""simple docstring"""






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 			lowerCamelCase_		(			unittest.TestCase   ):





				"""simple docstring"""







				def   lowerCAmelCase__		(						self     ):
								super().tearDown()
								gc.collect()
								torch.cuda.empty_cache()



				def   lowerCAmelCase__		(						self     ):
								SCREAMING_SNAKE_CASE__     							=				StableDiffusionKDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4"     )
								SCREAMING_SNAKE_CASE__     							=				sd_pipe.to(UpperCAmelCase__     )
								sd_pipe.set_progress_bar_config(disable=UpperCAmelCase__     )

								sd_pipe.set_scheduler("sample_euler"     )

								SCREAMING_SNAKE_CASE__     							=				'''A painting of a squirrel eating a burger'''
								SCREAMING_SNAKE_CASE__     							=				torch.manual_seed(0     )
								SCREAMING_SNAKE_CASE__     							=				sd_pipe([prompt]       ,		generator=UpperCAmelCase__       ,		guidance_scale=9.0       ,		num_inference_steps=20       ,		output_type="np"     )

								SCREAMING_SNAKE_CASE__     							=				output.images

								SCREAMING_SNAKE_CASE__     							=				image[0, -3:, -3:, -1]

								assert image.shape == (1, 512, 512, 3)
								SCREAMING_SNAKE_CASE__     							=				np.array([0.0_447, 0.0_492, 0.0_468, 0.0_408, 0.0_383, 0.0_408, 0.0_354, 0.0_380, 0.0_339]     )

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



				def   lowerCAmelCase__		(						self     ):
								SCREAMING_SNAKE_CASE__     							=				StableDiffusionKDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1-base"     )
								SCREAMING_SNAKE_CASE__     							=				sd_pipe.to(UpperCAmelCase__     )
								sd_pipe.set_progress_bar_config(disable=UpperCAmelCase__     )

								sd_pipe.set_scheduler("sample_euler"     )

								SCREAMING_SNAKE_CASE__     							=				'''A painting of a squirrel eating a burger'''
								SCREAMING_SNAKE_CASE__     							=				torch.manual_seed(0     )
								SCREAMING_SNAKE_CASE__     							=				sd_pipe([prompt]       ,		generator=UpperCAmelCase__       ,		guidance_scale=9.0       ,		num_inference_steps=20       ,		output_type="np"     )

								SCREAMING_SNAKE_CASE__     							=				output.images

								SCREAMING_SNAKE_CASE__     							=				image[0, -3:, -3:, -1]

								assert image.shape == (1, 512, 512, 3)
								SCREAMING_SNAKE_CASE__     							=				np.array([0.1_237, 0.1_320, 0.1_438, 0.1_359, 0.1_390, 0.1_132, 0.1_277, 0.1_175, 0.1_112]     )

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






				def   lowerCAmelCase__		(						self     ):
								SCREAMING_SNAKE_CASE__     							=				StableDiffusionKDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1-base"     )
								SCREAMING_SNAKE_CASE__     							=				sd_pipe.to(UpperCAmelCase__     )
								sd_pipe.set_progress_bar_config(disable=UpperCAmelCase__     )

								sd_pipe.set_scheduler("sample_dpmpp_2m"     )

								SCREAMING_SNAKE_CASE__     							=				'''A painting of a squirrel eating a burger'''
								SCREAMING_SNAKE_CASE__     							=				torch.manual_seed(0     )
								SCREAMING_SNAKE_CASE__     							=				sd_pipe(
								    [prompt]       ,		generator=UpperCAmelCase__       ,		guidance_scale=7.5       ,		num_inference_steps=15       ,		output_type="np"       ,		use_karras_sigmas=UpperCAmelCase__       ,		)

								SCREAMING_SNAKE_CASE__     							=				output.images

								SCREAMING_SNAKE_CASE__     							=				image[0, -3:, -3:, -1]

								assert image.shape == (1, 512, 512, 3)
								SCREAMING_SNAKE_CASE__     							=				np.array(
								    [0.11_381_689, 0.12_112_921, 0.1_389_457, 0.12_549_606, 0.1_244_964, 0.10_831_517, 0.11_562_866, 0.10_867_816, 0.10_499_048]     )

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




"""simple docstring"""






from typing import TYPE_CHECKING

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


_lowerCamelCase     =  {
    'configuration_autoformer': [
        'AUTOFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'AutoformerConfig',
    ],
}

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	_lowerCamelCase     =  [
	    'AUTOFORMER_PRETRAINED_MODEL_ARCHIVE_LIST',
	    'AutoformerForPrediction',
	    'AutoformerModel',
	    'AutoformerPreTrainedModel',
	]


if TYPE_CHECKING:
	from .configuration_autoformer import (
	    AUTOFORMER_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    AutoformerConfig,
	)

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_autoformer import (
		    AUTOFORMER_PRETRAINED_MODEL_ARCHIVE_LIST,
		    AutoformerForPrediction,
		    AutoformerModel,
		    AutoformerPreTrainedModel,
		)

else:
	import sys

	_lowerCamelCase     =  _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)
