"""simple docstring"""




import tempfile

import numpy as np
import torch
from transformers import AutoTokenizer, TaEncoderModel

from diffusers import DDPMScheduler, UNetaDConditionModel
from diffusers.models.attention_processor import AttnAddedKVProcessor
from diffusers.pipelines.deepfloyd_if import IFWatermarker
from diffusers.utils.testing_utils import torch_device

from ..test_pipelines_common import to_np

class       a_      :




					def 						_SCREAMING_SNAKE_CASE						(	self						:     List[str]     ):
							torch.manual_seed(0     )
							lowerCAmelCase__        =   TaEncoderModel.from_pretrained("""hf-internal-testing/tiny-random-t5"""     )

							torch.manual_seed(0     )
							lowerCAmelCase__        =   AutoTokenizer.from_pretrained("""hf-internal-testing/tiny-random-t5"""     )

							torch.manual_seed(0     )
							lowerCAmelCase__        =   UNetaDConditionModel(
							    sample_size=32  ,						layers_per_block=1  ,						block_out_channels=[32, 64]  ,						down_block_types=[
							        """ResnetDownsampleBlock2D""",
							        """SimpleCrossAttnDownBlock2D""",
							    ]  ,						mid_block_type="""UNetMidBlock2DSimpleCrossAttn"""  ,						up_block_types=["""SimpleCrossAttnUpBlock2D""", """ResnetUpsampleBlock2D"""]  ,						in_channels=3  ,						out_channels=6  ,						cross_attention_dim=32  ,						encoder_hid_dim=32  ,						attention_head_dim=8  ,						addition_embed_type="""text"""  ,						addition_embed_type_num_heads=2  ,						cross_attention_norm="""group_norm"""  ,						resnet_time_scale_shift="""scale_shift"""  ,						act_fn="""gelu"""  ,						)
							unet.set_attn_processor(AttnAddedKVProcessor()     )  # For reproducibility tests

							torch.manual_seed(0     )
							lowerCAmelCase__        =   DDPMScheduler(
							    num_train_timesteps=1000  ,						beta_schedule="""squaredcos_cap_v2"""  ,						beta_start=0.0001  ,						beta_end=0.02  ,						thresholding=snake_case__  ,						dynamic_thresholding_ratio=0.95  ,						sample_max_value=1.0  ,						prediction_type="""epsilon"""  ,						variance_type="""learned_range"""  ,						)

							torch.manual_seed(0     )
							lowerCAmelCase__        =   IFWatermarker()

							return {
							    "text_encoder": text_encoder,
							    "tokenizer": tokenizer,
							    "unet": unet,
							    "scheduler": scheduler,
							    "watermarker": watermarker,
							    "safety_checker": None,
							    "feature_extractor": None,
							}




					def 						_SCREAMING_SNAKE_CASE						(	self						:     str     ):
							torch.manual_seed(0     )
							lowerCAmelCase__        =   TaEncoderModel.from_pretrained("""hf-internal-testing/tiny-random-t5"""     )

							torch.manual_seed(0     )
							lowerCAmelCase__        =   AutoTokenizer.from_pretrained("""hf-internal-testing/tiny-random-t5"""     )

							torch.manual_seed(0     )
							lowerCAmelCase__        =   UNetaDConditionModel(
							    sample_size=32  ,						layers_per_block=[1, 2]  ,						block_out_channels=[32, 64]  ,						down_block_types=[
							        """ResnetDownsampleBlock2D""",
							        """SimpleCrossAttnDownBlock2D""",
							    ]  ,						mid_block_type="""UNetMidBlock2DSimpleCrossAttn"""  ,						up_block_types=["""SimpleCrossAttnUpBlock2D""", """ResnetUpsampleBlock2D"""]  ,						in_channels=6  ,						out_channels=6  ,						cross_attention_dim=32  ,						encoder_hid_dim=32  ,						attention_head_dim=8  ,						addition_embed_type="""text"""  ,						addition_embed_type_num_heads=2  ,						cross_attention_norm="""group_norm"""  ,						resnet_time_scale_shift="""scale_shift"""  ,						act_fn="""gelu"""  ,						class_embed_type="""timestep"""  ,						mid_block_scale_factor=1.414  ,						time_embedding_act_fn="""gelu"""  ,						time_embedding_dim=32  ,						)
							unet.set_attn_processor(AttnAddedKVProcessor()     )  # For reproducibility tests

							torch.manual_seed(0     )
							lowerCAmelCase__        =   DDPMScheduler(
							    num_train_timesteps=1000  ,						beta_schedule="""squaredcos_cap_v2"""  ,						beta_start=0.0001  ,						beta_end=0.02  ,						thresholding=snake_case__  ,						dynamic_thresholding_ratio=0.95  ,						sample_max_value=1.0  ,						prediction_type="""epsilon"""  ,						variance_type="""learned_range"""  ,						)

							torch.manual_seed(0     )
							lowerCAmelCase__        =   DDPMScheduler(
							    num_train_timesteps=1000  ,						beta_schedule="""squaredcos_cap_v2"""  ,						beta_start=0.0001  ,						beta_end=0.02  ,						)

							torch.manual_seed(0     )
							lowerCAmelCase__        =   IFWatermarker()

							return {
							    "text_encoder": text_encoder,
							    "tokenizer": tokenizer,
							    "unet": unet,
							    "scheduler": scheduler,
							    "image_noising_scheduler": image_noising_scheduler,
							    "watermarker": watermarker,
							    "safety_checker": None,
							    "feature_extractor": None,
							}




					def 						_SCREAMING_SNAKE_CASE						(	self						:     List[Any]     ):
							lowerCAmelCase__        =   self.get_dummy_components()
							lowerCAmelCase__        =   self.pipeline_class(**snake_case__     )
							pipe.to(snake_case__     )
							pipe.set_progress_bar_config(disable=snake_case__     )

							lowerCAmelCase__        =   self.get_dummy_inputs(snake_case__     )

							lowerCAmelCase__        =   inputs["""prompt"""]
							lowerCAmelCase__        =   inputs["""generator"""]
							lowerCAmelCase__        =   inputs["""num_inference_steps"""]
							lowerCAmelCase__        =   inputs["""output_type"""]

							if "image" in inputs:
									lowerCAmelCase__        =   inputs["""image"""]
							else:
									lowerCAmelCase__        =   None

							if "mask_image" in inputs:
									lowerCAmelCase__        =   inputs["""mask_image"""]
							else:
									lowerCAmelCase__        =   None

							if "original_image" in inputs:
									lowerCAmelCase__        =   inputs["""original_image"""]
							else:
									lowerCAmelCase__        =   None

							lowerCAmelCase__   ,					lowerCAmelCase__        =   pipe.encode_prompt(snake_case__     )

							# inputs with prompt converted to embeddings
							lowerCAmelCase__        =   {
							    """prompt_embeds""": prompt_embeds,
							    """negative_prompt_embeds""": negative_prompt_embeds,
							    """generator""": generator,
							    """num_inference_steps""": num_inference_steps,
							    """output_type""": output_type,
							}

							if image is not None:
									lowerCAmelCase__        =   image

							if mask_image is not None:
									lowerCAmelCase__        =   mask_image

							if original_image is not None:
									lowerCAmelCase__        =   original_image

							# set all optional components to None
							for optional_component in pipe._optional_components:
									setattr(snake_case__  ,						snake_case__  ,						snake_case__     )

							lowerCAmelCase__        =   pipe(**snake_case__     )[0]

							with tempfile.TemporaryDirectory() as tmpdir:
									pipe.save_pretrained(snake_case__     )
									lowerCAmelCase__        =   self.pipeline_class.from_pretrained(snake_case__     )
									pipe_loaded.to(snake_case__     )
									pipe_loaded.set_progress_bar_config(disable=snake_case__     )

							pipe_loaded.unet.set_attn_processor(AttnAddedKVProcessor()     )  # For reproducibility tests

							for optional_component in pipe._optional_components:
									self.assertTrue(
									    getattr(snake_case__  ,						snake_case__     ) is None  ,						F"""`{optional_component}` did not stay set to None after loading."""  ,						)

							lowerCAmelCase__        =   self.get_dummy_inputs(snake_case__     )

							lowerCAmelCase__        =   inputs["""generator"""]
							lowerCAmelCase__        =   inputs["""num_inference_steps"""]
							lowerCAmelCase__        =   inputs["""output_type"""]

							# inputs with prompt converted to embeddings
							lowerCAmelCase__        =   {
							    """prompt_embeds""": prompt_embeds,
							    """negative_prompt_embeds""": negative_prompt_embeds,
							    """generator""": generator,
							    """num_inference_steps""": num_inference_steps,
							    """output_type""": output_type,
							}

							if image is not None:
									lowerCAmelCase__        =   image

							if mask_image is not None:
									lowerCAmelCase__        =   mask_image

							if original_image is not None:
									lowerCAmelCase__        =   original_image

							lowerCAmelCase__        =   pipe_loaded(**snake_case__     )[0]

							lowerCAmelCase__        =   np.abs(to_np(snake_case__     ) - to_np(snake_case__     )     ).max()
							self.assertLess(snake_case__  ,						1E-4     )




					def 						_SCREAMING_SNAKE_CASE						(	self						:     Optional[Any]     ):
							lowerCAmelCase__        =   self.get_dummy_components()
							lowerCAmelCase__        =   self.pipeline_class(**snake_case__     )
							pipe.to(snake_case__     )
							pipe.set_progress_bar_config(disable=snake_case__     )

							lowerCAmelCase__        =   self.get_dummy_inputs(snake_case__     )
							lowerCAmelCase__        =   pipe(**snake_case__     )[0]

							with tempfile.TemporaryDirectory() as tmpdir:
									pipe.save_pretrained(snake_case__     )
									lowerCAmelCase__        =   self.pipeline_class.from_pretrained(snake_case__     )
									pipe_loaded.to(snake_case__     )
									pipe_loaded.set_progress_bar_config(disable=snake_case__     )

							pipe_loaded.unet.set_attn_processor(AttnAddedKVProcessor()     )  # For reproducibility tests

							lowerCAmelCase__        =   self.get_dummy_inputs(snake_case__     )
							lowerCAmelCase__        =   pipe_loaded(**snake_case__     )[0]

							lowerCAmelCase__        =   np.abs(to_np(snake_case__     ) - to_np(snake_case__     )     ).max()
							self.assertLess(snake_case__  ,						1E-4     )





"""simple docstring"""




import pprint

import requests

__lowerCAmelCase    :							Union[str, Any]													=						"https://zenquotes.io/api"







def 							_UpperCAmelCase		(       ):





		"""simple docstring"""




		return requests.get(API_ENDPOINT_URL + """/today"""     ).json()







def 							_UpperCAmelCase		(       ):





		"""simple docstring"""




		return requests.get(API_ENDPOINT_URL + """/random"""     ).json()


if __name__ == "__main__":
			__lowerCAmelCase    :							Union[str, Any]													=						random_quotes()
			pprint.pprint(response)




