"""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 		snake_case (				self    ):






										"""simple docstring"""

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

				def 		snake_case (				self    ):






										"""simple docstring"""

										snake_case								=			StableDiffusionKDiffusionPipeline.from_pretrained('CompVis/stable-diffusion-v1-4'    )
										snake_case								=			sd_pipe.to(lowerCAmelCase    )
										sd_pipe.set_progress_bar_config(disable=lowerCAmelCase    )

										sd_pipe.set_scheduler('sample_euler'    )

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

										snake_case								=			output.images

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

										assert image.shape == (1, 5_12, 5_12, 3)
										snake_case								=			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 		snake_case (				self    ):






										"""simple docstring"""

										snake_case								=			StableDiffusionKDiffusionPipeline.from_pretrained('stabilityai/stable-diffusion-2-1-base'    )
										snake_case								=			sd_pipe.to(lowerCAmelCase    )
										sd_pipe.set_progress_bar_config(disable=lowerCAmelCase    )

										sd_pipe.set_scheduler('sample_euler'    )

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

										snake_case								=			output.images

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

										assert image.shape == (1, 5_12, 5_12, 3)
										snake_case								=			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 		snake_case (				self    ):






										"""simple docstring"""

										snake_case								=			StableDiffusionKDiffusionPipeline.from_pretrained('stabilityai/stable-diffusion-2-1-base'    )
										snake_case								=			sd_pipe.to(lowerCAmelCase    )
										sd_pipe.set_progress_bar_config(disable=lowerCAmelCase    )

										sd_pipe.set_scheduler('sample_dpmpp_2m'    )

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

										snake_case								=			output.images

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

										assert image.shape == (1, 5_12, 5_12, 3)
										snake_case								=			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 ...utils import (
    OptionalDependencyNotAvailable,
    is_torch_available,
    is_transformers_available,
    is_transformers_version,
)


try:
					if not (is_transformers_available() and is_torch_available()):
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					from ...utils.dummy_torch_and_transformers_objects import ShapEPipeline
else:
					from .camera import create_pan_cameras
					from .pipeline_shap_e import ShapEPipeline
					from .pipeline_shap_e_img2img import ShapEImgaImgPipeline
					from .renderer import (
					    BoundingBoxVolume,
					    ImportanceRaySampler,
					    MLPNeRFModelOutput,
					    MLPNeRSTFModel,
					    ShapEParamsProjModel,
					    ShapERenderer,
					    StratifiedRaySampler,
					    VoidNeRFModel,
					)


