




'''simple docstring'''


import unittest

import torch
from torch import nn

from diffusers.models.activations import get_activation



class 					lowercase						(  unittest.TestCase ):


							def 						_snake_case							(			self)							->				Optional[int]:
								UpperCAmelCase_		:      Any       	=					get_activation('swish')

								self.assertIsInstance(_snake_case    ,			nn.SiLU)

								self.assertEqual(act(torch.tensor(-100    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertNotEqual(act(torch.tensor(-1    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(0    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(20    ,			dtype=torch.floataa)).item()    ,			20)


							def 						_snake_case							(			self)							->				Any:
								UpperCAmelCase_		:      Optional[int]       	=					get_activation('silu')

								self.assertIsInstance(_snake_case    ,			nn.SiLU)

								self.assertEqual(act(torch.tensor(-100    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertNotEqual(act(torch.tensor(-1    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(0    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(20    ,			dtype=torch.floataa)).item()    ,			20)


							def 						_snake_case							(			self)							->				Any:
								UpperCAmelCase_		:      List[str]       	=					get_activation('mish')

								self.assertIsInstance(_snake_case    ,			nn.Mish)

								self.assertEqual(act(torch.tensor(-200    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertNotEqual(act(torch.tensor(-1    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(0    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(20    ,			dtype=torch.floataa)).item()    ,			20)





							def 						_snake_case							(			self)							->				Tuple:
								UpperCAmelCase_		:      Optional[int]       	=					get_activation('gelu')

								self.assertIsInstance(_snake_case    ,			nn.GELU)

								self.assertEqual(act(torch.tensor(-100    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertNotEqual(act(torch.tensor(-1    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(0    ,			dtype=torch.floataa)).item()    ,			0)
								self.assertEqual(act(torch.tensor(20    ,			dtype=torch.floataa)).item()    ,			20)









'''simple docstring'''


import argparse

from transformers import CLIPImageProcessor, CLIPVisionModelWithProjection

from diffusers import UnCLIPImageVariationPipeline, UnCLIPPipeline


if __name__ == "__main__":
						lowerCAmelCase__										= argparse.ArgumentParser()

						parser.add_argument("--dump_path", default=None, type=str, required=True, help="Path to the output model.")

						parser.add_argument(
						    "--txt2img_unclip",
						    default="kakaobrain/karlo-v1-alpha",
						    type=str,
						    required=False,
						    help="The pretrained txt2img unclip.",
						)

						lowerCAmelCase__										= parser.parse_args()

						lowerCAmelCase__										= UnCLIPPipeline.from_pretrained(args.txtaimg_unclip)

						lowerCAmelCase__										= CLIPImageProcessor()
						lowerCAmelCase__										= CLIPVisionModelWithProjection.from_pretrained("openai/clip-vit-large-patch14")

						lowerCAmelCase__										= UnCLIPImageVariationPipeline(
						    decoder=txtaimg.decoder,
						    text_encoder=txtaimg.text_encoder,
						    tokenizer=txtaimg.tokenizer,
						    text_proj=txtaimg.text_proj,
						    feature_extractor=feature_extractor,
						    image_encoder=image_encoder,
						    super_res_first=txtaimg.super_res_first,
						    super_res_last=txtaimg.super_res_last,
						    decoder_scheduler=txtaimg.decoder_scheduler,
						    super_res_scheduler=txtaimg.super_res_scheduler,
						)

						imgaimg.save_pretrained(args.dump_path)






