

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	):




	def        lowerCAmelCase_       (     self						:     Tuple							):
		# clean up the VRAM after each test
		super().tearDown()
		gc.collect()
		torch.cuda.empty_cache()




	def        lowerCAmelCase_       (     self						:     Any							):
		__A :			List[Any]		    =			StableDiffusionKDiffusionPipeline.from_pretrained("""CompVis/stable-diffusion-v1-4"""							)
		__A :			Dict		    =			sd_pipe.to(__A							)
		sd_pipe.set_progress_bar_config(disable=__A							)

		sd_pipe.set_scheduler("""sample_euler"""							)

		__A :			str		    =			"""A painting of a squirrel eating a burger"""
		__A :			int		    =			torch.manual_seed(0							)
		__A :			Tuple		    =			sd_pipe([prompt]					,      generator=__A					,      guidance_scale=9.0					,      num_inference_steps=20					,      output_type="""np"""							)

		__A :			List[str]		    =			output.images

		__A :			Union[str, Any]		    =			image[0, -3:, -3:, -1]

		assert image.shape == (1, 512, 512, 3)
		__A :			List[Any]		    =			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        lowerCAmelCase_       (     self						:     Union[str, Any]							):
		__A :			Union[str, Any]		    =			StableDiffusionKDiffusionPipeline.from_pretrained("""stabilityai/stable-diffusion-2-1-base"""							)
		__A :			Tuple		    =			sd_pipe.to(__A							)
		sd_pipe.set_progress_bar_config(disable=__A							)

		sd_pipe.set_scheduler("""sample_euler"""							)

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

		__A :			Any		    =			output.images

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

		assert image.shape == (1, 512, 512, 3)
		__A :			int		    =			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        lowerCAmelCase_       (     self						:     Optional[int]							):
		__A :			str		    =			StableDiffusionKDiffusionPipeline.from_pretrained("""stabilityai/stable-diffusion-2-1-base"""							)
		__A :			Tuple		    =			sd_pipe.to(__A							)
		sd_pipe.set_progress_bar_config(disable=__A							)

		sd_pipe.set_scheduler("""sample_dpmpp_2m"""							)

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

		__A :			Union[str, Any]		    =			output.images

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

		assert image.shape == (1, 512, 512, 3)
		__A :			List[str]		    =			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










a_      :      str    =     6_55_21






def     __a					(		__UpperCAmelCase       ):
 a__												= 1
 a__												= 0
 for plain_chr in plain_text:
  a__												= (a + ord(__UpperCAmelCase       )) % MOD_ADLER
  a__												= (b + a) % MOD_ADLER
 return (b << 16) | a





