ó
    USh	  ã                   óf   • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
  SS jr  SS jrS rg)é    N)Úmake_beta_schedulec           	      óX  • U(       Gd  US-  n[         R                  " [        R                  " U5      * [         R                  " SU[         R
                  S9-  U-  5      R                  U R                  S9nU S S 2S 4   R                  5       US    -  n[         R                  " [         R                  " U5      [         R                  " U5      /SS9nUS-  (       a4  [         R                  " U[         R                  " US S 2S S24   5      /SS9nU$ [        R                  " U SUS	9nU$ )
Né   r   )ÚstartÚendÚdtype)Údeviceéÿÿÿÿ)Údimé   zb -> b d)Úd)ÚtorchÚexpÚmathÚlogÚarangeÚfloat32Útor	   ÚfloatÚcatÚcosÚsinÚ
zeros_likeÚeinopsÚrepeat)Ú	timestepsr   Ú
max_periodÚrepeat_onlyÚhalfÚfreqsÚargsÚ	embeddings           Ú;/home/gothic/public_html/Fooocus/modules/patch_precision.pyÚpatched_timestep_embeddingr$      sü   € ÷ Ø�a‰xˆÜ—	’	Ü�XŠX�jÓ!Ð!¤E§L¢L°q¸dÌ%Ï-É-Ñ$XÑXÐ[_Ñ_ó
ç
‰"�I×$Ñ$ˆ"Ð
%ð 	ð š˜D˜Ñ!×'Ñ'Ó)¨E°$©KÑ7ˆÜ—I’IœuŸyšy¨›´·	²	¸$³Ð@ÀbÑIˆ	Ø��7ÜŸ	š	 9¬e×.>Ò.>¸yÊÈBÈQÈBÈÑ?OÓ.PÐ"QÐWYÑZˆIð Ðô —M’M )¨Z¸3Ñ?ˆ	ØÐó    c                 ó”  • Ub  UnO[        UUUUUS9nSU-
  n[        R                  " USS9n	UR                  u  n[	        U5      U l        X@l        XPl        [        R                  " SU	-
  U	-  S-  [        R                  S9n
U R                  U
5        [        R                  " U	[        R                  S9n	U R                  U	5        g )N)Úlinear_startÚ
linear_endÚcosine_sg      ð?r   )Úaxisr   g      à?)r   )r   ÚnpÚcumprodÚshapeÚintÚnum_timestepsr'   r(   r   Útensorr   Ú
set_sigmasÚset_alphas_cumprod)ÚselfÚgiven_betasÚbeta_scheduler   r'   r(   r)   ÚbetasÚalphasÚalphas_cumprodÚsigmass              r#   Úpatched_register_scheduler:       s¼   € ð ÑØ‰ä"ØØØ%Ø!Øñˆð �%‰Z€FÜ—Z’Z ¨QÑ/€NØ—‘�J€IÜ˜Y›€DÔØ$ÔØ „OÜ�\Š\˜A Ñ.°.Ñ@ÀSÑHÔPU×P]ÑP]Ñ^€FØ‡O�O�FÔÜ—\’\ .¼¿¹ÑF€NØ×Ñ˜NÔ+Ø
r%   c                  óÌ   • [         [        R                  R                  R                  R
                  l        [        [        R                  R                  R                  l
        g )N)r$   Úldm_patchedÚldmÚmodulesÚdiffusionmodulesÚopenaimodelÚtimestep_embeddingr:   Úmodel_samplingÚModelSamplingDiscreteÚ_register_schedule© r%   r#   Úpatch_all_precisionrF   ;   s=   € ÜNh„K‡O�O×Ñ×,Ñ,×8Ñ8ÔKÜRk„K×Ñ×&Ñ&×<Ñ<ÔOØ
r%   )i'  F)NÚlineariè  g-Cëâ6?g{®Gáz”?gü©ñÒMb€?)r   r   r   Únumpyr+   Ú4ldm_patched.ldm.modules.diffusionmodules.openaimodelr<   Ú"ldm_patched.modules.model_samplingÚldm_patched.modules.sd1_clipÚ-ldm_patched.ldm.modules.diffusionmodules.utilr   r$   r:   rF   rE   r%   r#   Ú<module>rM      s8   ðó Û Û Û ã ;Û )Û #å Lôð" Y]ØGKôó6r%   