


'''simple docstring'''



from ..utils import DummyObject, requires_backends





class 							__UpperCamelCase				(		metaclass=lowerCAmelCase_					):
	A_				=    ["torch", "transformers", "onnx"]




	def __init__(   self						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(self						,				['torch', 'transformers', 'onnx']							)




	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





class 							__UpperCamelCase				(		metaclass=lowerCAmelCase_					):
	A_				=    ["torch", "transformers", "onnx"]




	def __init__(   self						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(self						,				['torch', 'transformers', 'onnx']							)




	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





class 							__UpperCamelCase				(		metaclass=lowerCAmelCase_					):
	A_				=    ["torch", "transformers", "onnx"]




	def __init__(   self						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(self						,				['torch', 'transformers', 'onnx']							)




	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





class 							__UpperCamelCase				(		metaclass=lowerCAmelCase_					):
	A_				=    ["torch", "transformers", "onnx"]




	def __init__(   self						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(self						,				['torch', 'transformers', 'onnx']							)




	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





class 							__UpperCamelCase				(		metaclass=lowerCAmelCase_					):
	A_				=    ["torch", "transformers", "onnx"]




	def __init__(   self						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(self						,				['torch', 'transformers', 'onnx']							)




	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





class 							__UpperCamelCase				(		metaclass=lowerCAmelCase_					):
	A_				=    ["torch", "transformers", "onnx"]




	def __init__(   self						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(self						,				['torch', 'transformers', 'onnx']							)




	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)





	@classmethod
	def       __UpperCAmelCase							(   cls						,				*__a						,				**__a							):

						'''simple docstring'''





						requires_backends(cls						,				['torch', 'transformers', 'onnx']							)







'''simple docstring'''



import unittest

import numpy as np

from diffusers import OnnxStableDiffusionInpaintPipelineLegacy
from diffusers.utils.testing_utils import (
    is_onnx_available,
    load_image,
    load_numpy,
    nightly,
    require_onnxruntime,
    require_torch_gpu,
)


if is_onnx_available():
	import onnxruntime as ort





@nightly
@require_onnxruntime
@require_torch_gpu
class 							__UpperCamelCase				(		unittest.TestCase					):




	@property
	def       __UpperCAmelCase							(   self							):

						'''simple docstring'''





						return (
						    "CUDAExecutionProvider",
						    {
						        "gpu_mem_limit": "15000000000",  # 15GB
						        "arena_extend_strategy": "kSameAsRequested",
						    },
						)




	@property
	def       __UpperCAmelCase							(   self							):

						'''simple docstring'''





						__a			:       Dict					    =  ort.SessionOptions()
						__a			:       Dict					    =  False
						return options





	def       __UpperCAmelCase							(   self							):

						'''simple docstring'''





						__a			:       Tuple					    =  load_image(
						    'https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main'
						    '/in_paint/overture-creations-5sI6fQgYIuo.png'							)
						__a			:       int					    =  load_image(
						    'https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main'
						    '/in_paint/overture-creations-5sI6fQgYIuo_mask.png'							)
						__a			:       Dict					    =  load_numpy(
						    'https://huggingface.co/datasets/hf-internal-testing/diffusers-images/resolve/main'
						    '/in_paint/red_cat_sitting_on_a_park_bench_onnx.npy'							)

						# using the PNDM scheduler by default
						__a			:       str					    =  OnnxStableDiffusionInpaintPipelineLegacy.from_pretrained(
						    'CompVis/stable-diffusion-v1-4'						,				revision='onnx'						,				safety_checker=__a						,				feature_extractor=__a						,				provider=self.gpu_provider						,				sess_options=self.gpu_options						,				)
						pipe.set_progress_bar_config(disable=__a							)

						__a			:       Tuple					    =  'A red cat sitting on a park bench'

						__a			:       int					    =  np.random.RandomState(0							)
						__a			:       Tuple					    =  pipe(
						    prompt=__a						,				image=__a						,				mask_image=__a						,				strength=0.75						,				guidance_scale=7.5						,				num_inference_steps=15						,				generator=__a						,				output_type='np'						,				)

						__a			:       Tuple					    =  output.images[0]

						assert image.shape == (512, 512, 3)
						assert np.abs(expected_image - image							).max() < 1E-2



