


from __future__ import annotations
class 	UpperCAmelCase_					:

   '''simple docstring'''




   def __init__(		self						,				__A=None ):






     """simple docstring"""





     lowerCamelCase :					List[str]    =				data
     lowerCamelCase :					Any    =				None






   def __repr__(		self ):






     """simple docstring"""





     lowerCamelCase :					Union[str, Any]    =				[]
     lowerCamelCase :					Optional[Any]    =				self
     while temp:
       string_rep.append(F"""{temp.data}""" )
       lowerCamelCase :					Tuple    =				temp.next
     return "->".join(__A )






def 		lowercase_(  SCREAMING_SNAKE_CASE_	):


  '''simple docstring'''

  if not elements_list:
    raise Exception("The Elements List is empty"	)

  lowerCamelCase :					Optional[Any]    =				Node(elements_list[0]	)
  for i in range(1      ,						len(SCREAMING_SNAKE_CASE_	)	):
    lowerCamelCase :					int    =				Node(elements_list[i]	)
    lowerCamelCase :					List[str]    =				current.next
  return head






def 		lowercase_(  SCREAMING_SNAKE_CASE_	):


  '''simple docstring'''

  if head_node is not None and isinstance(SCREAMING_SNAKE_CASE_      ,						SCREAMING_SNAKE_CASE_	):
    print_reverse(head_node.next	)
    print(head_node.data	)






def 		lowercase_(  ):


  '''simple docstring'''

  from doctest import testmod

  testmod()

  lowerCamelCase :					List[str]    =				make_linked_list([14, 52, 14, 12, 43]	)
  print("Linked List:"	)
  print(SCREAMING_SNAKE_CASE_	)
  print("Elements in Reverse:"	)
  print_reverse(SCREAMING_SNAKE_CASE_	)


if __name__ == "__main__":
   main()







import argparse

import intel_extension_for_pytorch as ipex
import torch

from diffusers import DPMSolverMultistepScheduler, StableDiffusionPipeline


_snake_case             =     argparse.ArgumentParser('''Stable Diffusion script with intel optimization''', add_help=False)
parser.add_argument('''--dpm''', action='''store_true''', help='''Enable DPMSolver or not''')
parser.add_argument('''--steps''', default=None, type=int, help='''Num inference steps''')
_snake_case             =     parser.parse_args()


_snake_case             =     '''cpu'''
_snake_case             =     '''a lovely <dicoo> in red dress and hat, in the snowly and brightly night, with many brighly buildings'''

_snake_case             =     '''path-to-your-trained-model'''
_snake_case             =     StableDiffusionPipeline.from_pretrained(model_id)
if args.dpm:
   _snake_case             =     DPMSolverMultistepScheduler.from_config(pipe.scheduler.config)
_snake_case             =     pipe.to(device)

# to channels last
_snake_case             =     pipe.unet.to(memory_format=torch.channels_last)
_snake_case             =     pipe.vae.to(memory_format=torch.channels_last)
_snake_case             =     pipe.text_encoder.to(memory_format=torch.channels_last)
if pipe.requires_safety_checker:
   _snake_case             =     pipe.safety_checker.to(memory_format=torch.channels_last)

# optimize with ipex
_snake_case             =     torch.randn(2, 4, 64, 64)
_snake_case             =     torch.rand(1) * 9_99
_snake_case             =     torch.randn(2, 77, 7_68)
_snake_case             =     (sample, timestep, encoder_hidden_status)
try:
   _snake_case             =     ipex.optimize(pipe.unet.eval(), dtype=torch.bfloataa, inplace=True, sample_input=input_example)
except Exception:
   _snake_case             =     ipex.optimize(pipe.unet.eval(), dtype=torch.bfloataa, inplace=True)
_snake_case             =     ipex.optimize(pipe.vae.eval(), dtype=torch.bfloataa, inplace=True)
_snake_case             =     ipex.optimize(pipe.text_encoder.eval(), dtype=torch.bfloataa, inplace=True)
if pipe.requires_safety_checker:
   _snake_case             =     ipex.optimize(pipe.safety_checker.eval(), dtype=torch.bfloataa, inplace=True)

# compute
_snake_case             =     6_66
_snake_case             =     torch.Generator(device).manual_seed(seed)
_snake_case             =     {'''generator''': generator}
if args.steps is not None:
   _snake_case             =     args.steps

with torch.cpu.amp.autocast(enabled=True, dtype=torch.bfloataa):
   _snake_case             =     pipe(prompt, **generate_kwargs).images[0]

# save image
image.save('''generated.png''')



