





import gc
import tempfile
import unittest

import numpy as np
import torch

from diffusers import VersatileDiffusionDualGuidedPipeline
from diffusers.utils.testing_utils import load_image, nightly, require_torch_gpu, torch_device


_UpperCAmelCase										=					False



@nightly
@require_torch_gpu
class 				_UpperCamelCase       (						unittest.TestCase  ):

       def lowercase			(		self:			Dict		)							->			List[Any]:




              """simple docstring"""


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

       def lowercase			(		self:			int		)							->			Optional[Any]:




              """simple docstring"""


              UpperCamelCase_ 							=	VersatileDiffusionDualGuidedPipeline.from_pretrained("shi-labs/versatile-diffusion"		)
              # remove text_unet
              pipe.remove_unused_weights()
              pipe.to(_SCREAMING_SNAKE_CASE		)
              pipe.set_progress_bar_config(disable=_SCREAMING_SNAKE_CASE		)

              UpperCamelCase_ 							=	load_image(
                  "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/versatile_diffusion/benz.jpg"		)

              UpperCamelCase_ 							=	torch.manual_seed(0		)
              UpperCamelCase_ 							=	pipe(
                  prompt="first prompt"       , image=_SCREAMING_SNAKE_CASE       , text_to_image_strength=0.75       , generator=_SCREAMING_SNAKE_CASE       , guidance_scale=7.5       , num_inference_steps=2       , output_type="numpy"       , ).images

              with tempfile.TemporaryDirectory() as tmpdirname:
                     pipe.save_pretrained(_SCREAMING_SNAKE_CASE		)
                     UpperCamelCase_ 							=	VersatileDiffusionDualGuidedPipeline.from_pretrained(_SCREAMING_SNAKE_CASE		)

              pipe.to(_SCREAMING_SNAKE_CASE		)
              pipe.set_progress_bar_config(disable=_SCREAMING_SNAKE_CASE		)

              UpperCamelCase_ 							=	generator.manual_seed(0		)
              UpperCamelCase_ 							=	pipe(
                  prompt="first prompt"       , image=_SCREAMING_SNAKE_CASE       , text_to_image_strength=0.75       , generator=_SCREAMING_SNAKE_CASE       , guidance_scale=7.5       , num_inference_steps=2       , output_type="numpy"       , ).images

              assert np.abs(image - new_image		).sum() < 1e-5, "Models don't have the same forward pass"



       def lowercase			(		self:			Tuple		)							->			List[str]:




              """simple docstring"""


              UpperCamelCase_ 							=	VersatileDiffusionDualGuidedPipeline.from_pretrained("shi-labs/versatile-diffusion"		)
              pipe.remove_unused_weights()
              pipe.to(_SCREAMING_SNAKE_CASE		)
              pipe.set_progress_bar_config(disable=_SCREAMING_SNAKE_CASE		)

              UpperCamelCase_ 							=	"cyberpunk 2077"
              UpperCamelCase_ 							=	load_image(
                  "https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main/versatile_diffusion/benz.jpg"		)
              UpperCamelCase_ 							=	torch.manual_seed(0		)
              UpperCamelCase_ 							=	pipe(
                  prompt=_SCREAMING_SNAKE_CASE       , image=_SCREAMING_SNAKE_CASE       , text_to_image_strength=0.75       , generator=_SCREAMING_SNAKE_CASE       , guidance_scale=7.5       , num_inference_steps=50       , output_type="numpy"       , ).images

              UpperCamelCase_ 							=	image[0, 253:256, 253:256, -1]

              assert image.shape == (1, 512, 512, 3)
              UpperCamelCase_ 							=	np.array([0.07_87, 0.08_49, 0.08_26, 0.08_12, 0.08_07, 0.07_95, 0.08_18, 0.07_98, 0.07_79]		)

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



'''simple docstring'''







def 				_snake_case (		lowercase = 2_0						)       ->       int:

				try:
								__a       :     Optional[Any]								=	int(lowercase						)
				except (TypeError, ValueError):
								raise TypeError("""Parameter n must be int or castable to int."""						)
				if n <= 0:
								raise ValueError("""Parameter n must be greater than or equal to one."""						)
				__a       :     List[Any]								=	0
				while 1:
								i += n * (n - 1)
								__a       :     Union[str, Any]								=	0
								for j in range(2			,    lowercase						):
												if i % j != 0:
																__a       :     Any								=	1
																break
								if nfound == 0:
												if i == 0:
																__a       :     List[str]								=	1
												return i
				return None


if __name__ == "__main__":
					print(f'''{solution() = }''')