



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



					def        UpperCAmelCase_ (    self     )     ->			Any:
						# clean up the VRAM after each test
						super().tearDown()
						gc.collect()
						torch.cuda.empty_cache()



					def        UpperCAmelCase_ (    self     )     ->			List[Any]:
						__lowerCAmelCase												=  StableDiffusionKDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4"     )
						__lowerCAmelCase												=  sd_pipe.to(A_     )
						sd_pipe.set_progress_bar_config(disable=A_     )

						sd_pipe.set_scheduler("sample_euler"     )

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

						__lowerCAmelCase												=  output.images

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

						assert image.shape == (1, 512, 512, 3)
						__lowerCAmelCase												=  np.array([0.04_47, 0.04_92, 0.04_68, 0.04_08, 0.03_83, 0.04_08, 0.03_54, 0.03_80, 0.03_39]     )

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



					def        UpperCAmelCase_ (    self     )     ->			Tuple:
						__lowerCAmelCase												=  StableDiffusionKDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1-base"     )
						__lowerCAmelCase												=  sd_pipe.to(A_     )
						sd_pipe.set_progress_bar_config(disable=A_     )

						sd_pipe.set_scheduler("sample_euler"     )

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

						__lowerCAmelCase												=  output.images

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

						assert image.shape == (1, 512, 512, 3)
						__lowerCAmelCase												=  np.array([0.12_37, 0.13_20, 0.14_38, 0.13_59, 0.13_90, 0.11_32, 0.12_77, 0.11_75, 0.11_12]     )

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



					def        UpperCAmelCase_ (    self     )     ->			Any:
						__lowerCAmelCase												=  StableDiffusionKDiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1-base"     )
						__lowerCAmelCase												=  sd_pipe.to(A_     )
						sd_pipe.set_progress_bar_config(disable=A_     )

						sd_pipe.set_scheduler("sample_dpmpp_2m"     )

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

						__lowerCAmelCase												=  output.images

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

						assert image.shape == (1, 512, 512, 3)
						__lowerCAmelCase												=  np.array(
						    [0.11_38_16_89, 0.12_11_29_21, 0.1_38_94_57, 0.12_54_96_06, 0.1_24_49_64, 0.10_83_15_17, 0.11_56_28_66, 0.10_86_78_16, 0.10_49_90_48]     )

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




'''simple docstring'''



from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


lowerCAmelCase	:		Union[str, Any]				=   {
    '''configuration_distilbert''': [
        '''DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP''',
        '''DistilBertConfig''',
        '''DistilBertOnnxConfig''',
    ],
    '''tokenization_distilbert''': ['''DistilBertTokenizer'''],
}

try:
	if not is_tokenizers_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		Tuple				=   ['''DistilBertTokenizerFast''']

try:
	if not is_torch_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		Tuple				=   [
	    '''DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''DistilBertForMaskedLM''',
	    '''DistilBertForMultipleChoice''',
	    '''DistilBertForQuestionAnswering''',
	    '''DistilBertForSequenceClassification''',
	    '''DistilBertForTokenClassification''',
	    '''DistilBertModel''',
	    '''DistilBertPreTrainedModel''',
	]

try:
	if not is_tf_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		List[str]				=   [
	    '''TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST''',
	    '''TFDistilBertForMaskedLM''',
	    '''TFDistilBertForMultipleChoice''',
	    '''TFDistilBertForQuestionAnswering''',
	    '''TFDistilBertForSequenceClassification''',
	    '''TFDistilBertForTokenClassification''',
	    '''TFDistilBertMainLayer''',
	    '''TFDistilBertModel''',
	    '''TFDistilBertPreTrainedModel''',
	]

try:
	if not is_flax_available():
		raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
	pass
else:
	lowerCAmelCase	:		Optional[int]				=   [
	    '''FlaxDistilBertForMaskedLM''',
	    '''FlaxDistilBertForMultipleChoice''',
	    '''FlaxDistilBertForQuestionAnswering''',
	    '''FlaxDistilBertForSequenceClassification''',
	    '''FlaxDistilBertForTokenClassification''',
	    '''FlaxDistilBertModel''',
	    '''FlaxDistilBertPreTrainedModel''',
	]


if TYPE_CHECKING:
	from .configuration_distilbert import (
	    DISTILBERT_PRETRAINED_CONFIG_ARCHIVE_MAP,
	    DistilBertConfig,
	    DistilBertOnnxConfig,
	)
	from .tokenization_distilbert import DistilBertTokenizer

	try:
		if not is_tokenizers_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .tokenization_distilbert_fast import DistilBertTokenizerFast

	try:
		if not is_torch_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_distilbert import (
		    DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    DistilBertForMaskedLM,
		    DistilBertForMultipleChoice,
		    DistilBertForQuestionAnswering,
		    DistilBertForSequenceClassification,
		    DistilBertForTokenClassification,
		    DistilBertModel,
		    DistilBertPreTrainedModel,
		)

	try:
		if not is_tf_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_tf_distilbert import (
		    TF_DISTILBERT_PRETRAINED_MODEL_ARCHIVE_LIST,
		    TFDistilBertForMaskedLM,
		    TFDistilBertForMultipleChoice,
		    TFDistilBertForQuestionAnswering,
		    TFDistilBertForSequenceClassification,
		    TFDistilBertForTokenClassification,
		    TFDistilBertMainLayer,
		    TFDistilBertModel,
		    TFDistilBertPreTrainedModel,
		)

	try:
		if not is_flax_available():
			raise OptionalDependencyNotAvailable()
	except OptionalDependencyNotAvailable:
		pass
	else:
		from .modeling_flax_distilbert import (
		    FlaxDistilBertForMaskedLM,
		    FlaxDistilBertForMultipleChoice,
		    FlaxDistilBertForQuestionAnswering,
		    FlaxDistilBertForSequenceClassification,
		    FlaxDistilBertForTokenClassification,
		    FlaxDistilBertModel,
		    FlaxDistilBertPreTrainedModel,
		)

else:
	import sys

	lowerCAmelCase	:		List[str]				=   _LazyModule(__name__, globals()['''__file__'''], _import_structure, module_spec=__spec__)