


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 A      (				self						)   ->			Optional[Any]:







								'''simple docstring'''

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






					def A      (				self						)   ->			Tuple:







								'''simple docstring'''

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

								sd_pipe.set_scheduler('''sample_euler'''						)

								__lowercase 					=   '''A painting of a squirrel eating a burger'''
								__lowercase 					=   torch.manual_seed(0						)
								__lowercase 					=   sd_pipe([prompt] ,       generator=_lowerCamelCase ,       guidance_scale=9.0 ,       num_inference_steps=2_0 ,       output_type='''np'''						)

								__lowercase 					=   output.images

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

								assert image.shape == (1, 5_1_2, 5_1_2, 3)
								__lowercase 					=   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 A      (				self						)   ->			List[Any]:







								'''simple docstring'''

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

								sd_pipe.set_scheduler('''sample_euler'''						)

								__lowercase 					=   '''A painting of a squirrel eating a burger'''
								__lowercase 					=   torch.manual_seed(0						)
								__lowercase 					=   sd_pipe([prompt] ,       generator=_lowerCamelCase ,       guidance_scale=9.0 ,       num_inference_steps=2_0 ,       output_type='''np'''						)

								__lowercase 					=   output.images

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

								assert image.shape == (1, 5_1_2, 5_1_2, 3)
								__lowercase 					=   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 A      (				self						)   ->			Optional[Any]:







								'''simple docstring'''

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

								sd_pipe.set_scheduler('''sample_dpmpp_2m'''						)

								__lowercase 					=   '''A painting of a squirrel eating a burger'''
								__lowercase 					=   torch.manual_seed(0						)
								__lowercase 					=   sd_pipe(
								    [prompt] ,       generator=_lowerCamelCase ,       guidance_scale=7.5 ,       num_inference_steps=1_5 ,       output_type='''np''' ,       use_karras_sigmas=_lowerCamelCase ,       )

								__lowercase 					=   output.images

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

								assert image.shape == (1, 5_1_2, 5_1_2, 3)
								__lowercase 					=   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






# limitations under the License.

# NOTE: This file is deprecated and will be removed in a future version.
# It only exists so that temporarely `from diffusers.pipelines import DiffusionPipeline` works

from .pipelines import DiffusionPipeline, ImagePipelineOutput  # noqa: F401
from .utils import deprecate


deprecate(
    '''pipelines_utils''',
    '''0.22.0''',
    '''Importing `DiffusionPipeline` or `ImagePipelineOutput` from diffusers.pipeline_utils is deprecated. Please import from diffusers.pipelines.pipeline_utils instead.''',
    standard_warn=False,
    stacklevel=3,
)


