
    
3jw              
          S SK r S SKJr  S SKrS SKJr  S SKJs  Jr  SSK	J
r
Jr  SSKJrJr  SSKJrJrJr  SSKJr  SS	KJrJr  SS
KJrJrJr  SSKJr  SSKJr  SSK J!r!J"r"J#r#J$r$  SSK%J&r&  SSK'J(r(  SSK)J*r*  \RV                  " \,5      r-SSS\R\                  S\R\                  4S jr/SSS\R\                  4S jr0 " S S5      r1 " S S5      r2 " S S\R
                  Rf                  \5      r4 " S S\R
                  Rf                  5      r5 " S S \Rf                  5      r6 " S! S"\Rf                  5      r7\ " S# S$\Rf                  5      5       r8 " S% S&\(\
\\\\5      r9g)'    N)Any   )ConfigMixinregister_to_config)FromOriginalModelMixinPeftAdapterMixin)apply_lora_scale	deprecatelogging)maybe_allow_in_graph   )ContextParallelInputContextParallelOutput)AttentionMixinAttentionModuleMixinFeedForward)dispatch_attention_fn)
CacheMixin)PixArtAlphaTextProjectionTimestepEmbedding	Timestepsget_1d_rotary_pos_embed)Transformer2DModelOutput)
ModelMixin)FP32LayerNormattnWanAttentionhidden_statesencoder_hidden_statesc                 j   Uc  UnU R                   (       ag  U R                  (       d#  U R                  U5      R                  SSS9u  p4nOfU R	                  U5      nU R                  U5      R                  SSS9u  pEO3U R	                  U5      nU R                  U5      nU R                  U5      nX4U4$ )Nr   dimr   )fused_projectionsis_cross_attentionto_qkvchunkto_qto_kvto_kto_v)r   r   r   querykeyvalues         n/home/wildlama/miniconda3/lib/python3.13/site-packages/diffusers/models/transformers/transformer_chronoedit.py_get_qkv_projectionsr0   (   s    $ -&& $M : @ @ @ KE IIm,E$9:@@@KJC		-(ii-.		/0u    encoder_hidden_states_imgc                     U R                   (       a$  U R                  U5      R                  SSS9u  p#X#4$ U R                  U5      nU R	                  U5      nX#4$ )Nr   r!   r"   )r$   to_added_kvr'   
add_k_proj
add_v_proj)r   r2   key_img	value_imgs       r/   _get_added_kv_projectionsr9   =   sd    !--.GHNNqVXNY  //";<OO$=>	r1   c                       \ rS rSrSrSrS r   SSSS\R                  S\R                  S-  S\R                  S-  S	\	\R                  \R                  4   S-  S
\R                  4S jjr
Srg)WanAttnProcessorG   Nc                 D    [        [        S5      (       d  [        S5      eg )Nscaled_dot_product_attentionzbWanAttnProcessor requires PyTorch 2.0. To use it, please upgrade PyTorch to version 2.0 or higher.)hasattrFImportErrorselfs    r/   __init__WanAttnProcessor.__init__K   s%    q899t  :r1   r   r   r   r   attention_mask
rotary_embreturnc                 P   S nUR                   b(  UR                  S   S-
  nUS S 2S U24   nUS S 2US 24   n[        XU5      u  pn
UR                  U5      nUR	                  U	5      n	UR                  SUR                  S45      nU	R                  SUR                  S45      n	U
R                  SUR                  S45      n
UbG  S[        R                  S[        R                  S[        R                  4S jnU" U/UQ76 nU" U	/UQ76 n	S nUb  [        X5      u  pUR                  U5      nUR                  SUR                  S45      nUR                  SUR                  S45      n[        UUUS S	S
U R                  S S9nUR                  SS5      nUR                  U5      n[        UU	U
US	S
U R                  Uc  U R                  OS S9nUR                  SS5      nUR                  U5      nUb  X,-   nUR                   S   " U5      nUR                   S   " U5      nU$ )N   i   r   r!   r   	freqs_cos	freqs_sinc                    U R                  SS5      R                  S5      u  p4USSS S24   nUSSS S24   n[        R                  " U 5      nX5-  XF-  -
  USSS S24'   X6-  XE-  -   USSS S24'   UR	                  U 5      $ )Nr!   )r!   r   .r   r   rJ   )	unflattenunbindtorch
empty_liketype_as)r   rK   rL   x1x2cossinouts           r/   apply_rotary_emb3WanAttnProcessor.__call__.<locals>.apply_rotary_embk   s    
 '00W=DDRHQTT	*QTT	*&&}5!#BH!4CAI!#BH!4CAI{{=11r1           F)	attn_mask	dropout_p	is_causalbackendparallel_configr   r   )r5   shaper0   norm_qnorm_krN   headsrP   Tensorr9   norm_added_kr   _attention_backendflattenrR   _parallel_configto_out)rC   r   r   r   rF   rG   r2   image_context_lengthr,   r-   r.   rX   hidden_states_imgr7   r8   s                  r/   __call__WanAttnProcessor.__call__Q   sa    %)!??&#8#>#>q#AC#G (=aAVBVAV>V(W%$9!=Q=R:R$S!0F[\EE"kk#DJJ#34mmA

B/0DJJ#34!2$||2 <<2 !<<2 %U8Z8E"344C !$0!:4![G''0G''DJJ+;<G!++A

B/?@I 5// $
! !2 9 9!Q ? 1 9 9% @-$++6K6ST22Y]

 &--a3%--e4()=MA}5A}5r1    NNN)__name__
__module____qualname____firstlineno__rf   rh   rD   rP   rd   tuplerl   __static_attributes__rn   r1   r/   r;   r;   G   s     6:.2?CTT ||T  %||d2	T
 t+T %,,45<T 
T Tr1   r;   c                       \ rS rSrS rSrg)WanAttnProcessor2_0   c                 4    Sn[        SSUSS9  [        U0 UD6$ )NzzThe WanAttnProcessor2_0 class is deprecated and will be removed in a future version. Please use WanAttnProcessor instead. rw   z1.0.0F)standard_warn)r
   r;   )clsargskwargsdeprecation_messages       r/   __new__WanAttnProcessor2_0.__new__   s/    4 	 	'2EUZ[000r1   rn   N)rp   rq   rr   rs   r   ru   rn   r1   r/   rw   rw      s    1r1   rw   c                   b  ^  \ rS rSr\r\/r        SS\S\S\S\S\S\S-  S	\S-  4U 4S
 jjjr	S r
\R                  " 5       S 5       r   SS\R                  S\R                  S-  S\R                  S-  S\\R                  \R                  4   S-  S\R                  4
S jjrSrU =r$ )r      Nr#   rc   dim_headepsdropoutadded_kv_proj_dimcross_attention_dim_headc
                 j  > [         T
U ]  5         X2-  U l        X l        X`l        Xpl        Uc  U R                  OXr-  U l        [        R                  R                  XR                  SS9U l
        [        R                  R                  XR                  SS9U l        [        R                  R                  XR                  SS9U l        [        R                  R                  [        R                  R                  U R                  USS9[        R                  R                  U5      /5      U l        [        R                  R!                  X2-  USS9U l        [        R                  R!                  X2-  USS9U l        S =U l        U l        Ub  [        R                  R                  X`R                  SS9U l        [        R                  R                  X`R                  SS9U l        [        R                  R!                  X2-  US9U l        U	b  Xl        O	US LU l        U R/                  U5        g )NTbias)r   elementwise_affine)r   )superrD   	inner_dimrc   r   r   kv_inner_dimrP   nnLinearr(   r*   r+   
ModuleListDropoutri   RMSNormra   rb   r5   r6   re   r%   set_processor)rC   r#   rc   r   r   r   r   r   	processorr%   	__class__s             r/   rD   WanAttention.__init__   s    	!)
!2(@%.F.NDNNTlTtHHOOCdOC	HHOOC):):OF	HHOOC):):OF	hh))$?  )
 hh&&x'7SUY&Zhh&&x'7SUY&Z,00$/(#hhoo.?VZo[DO#hhoo.?VZo[DO % 0 01As 0 KD)&8#&>d&JD#9%r1   c                    [        U SS5      (       a  g U R                  (       GdL  [        R                  " U R                  R
                  R                  U R                  R
                  R                  U R                  R
                  R                  /5      n[        R                  " U R                  R                  R                  U R                  R                  R                  U R                  R                  R                  /5      nUR                  u  p4[        R                  " S5         [        R                  " XCSS9U l        S S S 5        U R                  R                  XS.SSS9  GO[        R                  " U R                  R
                  R                  U R                  R
                  R                  /5      n[        R                  " U R                  R                  R                  U R                  R                  R                  /5      nUR                  u  p4[        R                  " S5         [        R                  " XCSS9U l        S S S 5        U R                   R                  XS.SSS9  U R"                  Gb  [        R                  " U R$                  R
                  R                  U R&                  R
                  R                  /5      n[        R                  " U R$                  R                  R                  U R&                  R                  R                  /5      nUR                  u  p4[        R                  " S5         [        R                  " XCSS9U l        S S S 5        U R(                  R                  XS.SSS9  SU l        g ! , (       d  f       GN\= f! , (       d  f       GN`= f! , (       d  f       NW= f)Nr$   FmetaTr   )weightr   )strictassign)getattrr%   rP   catr(   r   datar*   r+   r   r`   devicer   r   r&   load_state_dictr)   r   r5   r6   r4   r$   )rC   concatenated_weightsconcatenated_biasout_featuresin_featuress        r/   fuse_projectionsWanAttention.fuse_projections   s   4,e44&&&#(99dii.>.>.C.CTYYEUEUEZEZ\`\e\e\l\l\q\q-r#s  %		499>>+>+>		@S@SUYU^U^UcUcUhUh*i j(<(B(B%Lf% iiM &KK''/KTXae (  $)99dii.>.>.C.CTYYEUEUEZEZ-[#\  %		499>>+>+>		@S@S*T U(<(B(B%Lf%YY{tL
 &JJ&&/KTXae '  !!-#(99doo.D.D.I.I4??KaKaKfKf-g#h  %		4??+?+?+D+DdooFZFZF_F_*` a(<(B(B%Lf%#%99[T#R  &,,/KTXae -  "&3 &% &% &%s$   0N >N2O 
N/2
O
Oc                     [        U SS5      (       d  g [        U S5      (       a  [        U S5        [        U S5      (       a  [        U S5        [        U S5      (       a  [        U S5        SU l        g )Nr$   Fr&   r)   r4   )r   r?   delattrr$   rB   s    r/   unfuse_projectionsWanAttention.unfuse_projections  sb    t0%884""D(#4!!D'"4''D-(!&r1   r   r   rF   rG   rH   c                 ,    U R                   " XX#U40 UD6$ N)r   )rC   r   r   rF   rG   r}   s         r/   forwardWanAttention.forward  s     ~~d3HZdohnoor1   )r5   r6   r   r   r$   rc   r   r%   r   re   rb   ra   r4   r*   r)   ri   r(   r&   r+   )   @   gh㈵>rZ   NNNNro   )rp   rq   rr   rs   r;   _default_processor_cls_available_processorsintfloatrD   r   rP   no_gradr   rd   rt   r   ru   __classcell__r   s   @r/   r   r      s    --.
 (,/3+&+& +& 	+&
 +& +& :+& #&*+& +&Z!&F ]]_' '  6:.2?Cp||p  %||d2p t+	p
 %,,45<p 
p pr1   c                   r   ^  \ rS rSrS	S\S\4U 4S jjjrS\R                  S\R                  4S jrSr	U =r
$ )
WanImageEmbeddingi"  r   r   c                    > [         TU ]  5         [        U5      U l        [	        XSSS9U l        [        U5      U l        Ub1  [        R                  " [        R                  " SX15      5      U l        g S U l        g )NrJ   gelu)multactivation_fn)r   rD   r   norm1r   ffnorm2r   	ParameterrP   zeros	pos_embed)rC   r   r   pos_embed_seq_lenr   s       r/   rD   WanImageEmbedding.__init__#  s_    ";/
kavV"<0
(\\%++a9J*XYDN!DNr1   encoder_hidden_states_imagerH   c                     U R                   b3  UR                  u  p#nUR                  SSU-  U5      nXR                   -   nU R                  U5      nU R	                  U5      nU R                  U5      nU$ )Nr!   r   )r   r`   viewr   r   r   )rC   r   
batch_sizeseq_len	embed_dimr   s         r/   r   WanImageEmbedding.forward.  su    >>%-H-N-N*J*E*J*J2qSZ{\e*f'*E*V'

#>?.

=1r1   )r   r   r   r   r   rp   rq   rr   rs   r   rD   rP   rd   r   ru   r   r   s   @r/   r   r   "  s;    	"C 	"s 	" 	"	5<< 	ELL 	 	r1   r   c                      ^  \ rS rSr  SS\S\S\S\S\S-  S\S-  4U 4S	 jjjr  SS
\R                  S\R                  S\R                  S-  S\S-  4S jjrSr	U =r
$ )WanTimeTextImageEmbeddingi;  Nr#   time_freq_dimtime_proj_dimtext_embed_dimimage_embed_dimr   c                   > [         TU ]  5         [        USSS9U l        [	        X!S9U l        [        R                  " 5       U l        [        R                  " X5      U l
        [        XASS9U l        S U l        Ub  [        XQUS9U l        g g )NTr   )num_channelsflip_sin_to_cosdownscale_freq_shift)in_channelstime_embed_dim	gelu_tanh)act_fn)r   )r   rD   r   timesteps_projr   time_embedderr   SiLUr   r   	time_projr   text_embedderimage_embedderr   )rC   r#   r   r   r   r   r   r   s          r/   rD   "WanTimeTextImageEmbedding.__init__<  s     	']TXopq.=]ggi366~S^_"&"3O\m"nD 'r1   timestepr   r   timestep_seq_lenc                    U R                  U5      nUb  UR                  SSU45      n[        [        U R                  R                  5       5      5      R                  nUR                  U:w  a%  U[        R                  :w  a  UR                  U5      nU R	                  U5      R                  U5      nU R                  U R                  U5      5      nU R                  U5      nUb  U R                  U5      nXgX#4$ )Nr   r!   )r   rN   nextiterr   
parametersdtyperP   int8torR   r   r   r   r   )rC   r   r   r   r   time_embedder_dtypetembtimestep_projs           r/   r   !WanTimeTextImageEmbedding.forwardQ  s     &&x0'))!b2B-CDH"4(:(:(E(E(G#HIOO>>005HEJJ5V{{#67H!!(+334IJt{{4'89 $ 2 23H I&2*.*=*=>Y*Z'$9VVr1   )r   r   r   r   r   r   )NNr   r   s   @r/   r   r   ;  s     '+(,oo o 	o
 o to :o o2 <@'+W,,W  %||W &+\\D%8	W
 *W Wr1   r   c                      ^  \ rS rSr  SS\S\\\\4   S\S\S\4
U 4S jjjrS\R                  S	\R                  4S
 jr
SrU =r$ )ChronoEditRotaryPosEmbedii  attention_head_dim
patch_sizemax_seq_lenthetatemporal_skip_lenc           
        > [         TU ]  5         Xl        X l        X0l        XPl        SUS-  -  =pgX-
  U-
  n[        R                  R                  R                  5       (       a  [        R                  O[        R                  n	/ n
/ nXU4 H5  n[        UUUSSU	S9u  pU
R                  U5        UR                  U5        M7     U R                  S[        R                  " U
SS9SS	9  U R                  S
[        R                  " USS9SS	9  g )Nr      T)use_realrepeat_interleave_realfreqs_dtyperK   rJ   r"   F)
persistentrL   )r   rD   r   r   r   r   rP   backendsmpsis_availablefloat32float64r   appendregister_bufferr   )rC   r   r   r   r   r   h_dimw_dimt_dimr   rK   rL   r#   freq_cosfreq_sinr   s                  r/   rD   !ChronoEditRotaryPosEmbed.__init__j  s    	"4$&!2/1455"*U2',~~'9'9'F'F'H'Hemmemm		%(C!8'+'"H X&X& ) 	[%))I1*ERWX[%))I1*ERWXr1   r   rH   c                     UR                   u  p#pEnU R                  u  pxn	XG-  XX-  Xi-  pn
U R                  SU R                  S-  -  -
  U R                  S-  U R                  S-  /nU R                  R	                  USS9nU R
                  R	                  USS9nUS:X  a;  US   S U R                   SS/   R                  U
SSS5      R                  XUS5      nO+US   S U
 R                  U
SSS5      R                  XUS5      nUS   S U R                  SUSS5      R                  XUS5      nUS   S U R                  SSUS5      R                  XUS5      nUS:X  a;  US   S U R                   SS/   R                  U
SSS5      R                  XUS5      nO+US   S U
 R                  U
SSS5      R                  XUS5      nUS   S U R                  SUSS5      R                  XUS5      nUS   S U R                  SSUS5      R                  XUS5      n[        R                  " UUU/SS9R                  SX-  U-  SS5      n[        R                  " UUU/SS9R                  SX-  U-  SS5      nX4$ )Nr   r   rJ   r"   r   r!   )r`   r   r   rK   splitrL   r   r   expandrP   r   reshape)rC   r   r   r   
num_framesheightwidthp_tp_hp_wppfpphppwsplit_sizesrK   rL   freqs_cos_ffreqs_cos_hfreqs_cos_wfreqs_sin_ffreqs_sin_hfreqs_sin_ws                         r/   r    ChronoEditRotaryPosEmbed.forward  s   >K>Q>Q;
*e#")6=%,# ##a4+B+Ba+G&HH##q(##q(
 NN((!(<	NN((!(<	?#A,'?)?)?@!RINNsTUWXZ\]ddehortvwK#A,t,11#q!R@GGRUWYZKl4C(--aa<CCCcSUVl4C(--aC<CCCcSUV?#A,'?)?)?@!RINNsTUWXZ\]ddehortvwK#A,t,11#q!R@GGRUWYZKl4C(--aa<CCCcSUVl4C(--aC<CCCcSUVII{KE2NVVWXZ]ZcfiZiklnpq	II{KE2NVVWXZ]ZcfiZiklnpq	##r1   )r   r   r   r   )g     @r   )rp   rq   rr   rs   r   rt   r   rD   rP   rd   r   ru   r   r   s   @r/   r   r   i  sx     !"#Y#Y #sC-(#Y 	#Y
 #Y #Y #YJ$U\\ $ell $ $r1   r   c                      ^  \ rS rSr    SS\S\S\S\S\S\S	\S-  4U 4S
 jjjrS\	R                  S\	R                  S\	R                  S\	R                  S\	R                  4
S jrSrU =r$ )WanTransformerBlocki  Nr#   ffn_dim	num_headsqk_normcross_attn_normr   r   c           
        > [         TU ]  5         [        XSS9U l        [	        UUX-  US [        5       S9U l        [	        UUX-  UUX-  [        5       S9U l        U(       a
  [        XSS9O[        R                  " 5       U l
        [        XSS9U l        [        XSS9U l        [        R                  " [        R                   " SS	U5      US
-  -  5      U l        g )NFr   )r#   rc   r   r   r   r   )r#   rc   r   r   r   r   r   Tzgelu-approximate)r   r   rJ   r         ?)r   rD   r   r   r   r;   attn1attn2r   Identityr   r   ffnnorm3r   rP   randnscale_shift_table)	rC   r#   r"  r#  r$  r%  r   r   r   s	           r/   rD   WanTransformerBlock.__init__  s     	 #3F
!%%)&(

 "%/%(%5&(

 JY]3E^`^i^i^k
 sEWX"3F
!#ekk!Q.DsCx.O!Pr1   r   r   r   rG   rH   c                 ,   UR                   S:X  a  U R                  R                  S5      UR                  5       -   R	                  SSS9u  pVpxpUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nU	R                  S5      n	U
R                  S5      n
O/U R                  UR                  5       -   R	                  SSS9u  pVpxpU R                  UR                  5       5      SU-   -  U-   R                  U5      nU R                  US S U5      nUR                  5       X-  -   R                  U5      nU R                  UR                  5       5      R                  U5      nU R                  XS S 5      nX-   nU R                  UR                  5       5      SU	-   -  U-   R                  U5      nU R                  U5      nUR                  5       UR                  5       U
-  -   R                  U5      nU$ )N   r   r   r   r"   rJ   )ndimr/  	unsqueezer   r'   squeezer   rR   r)  r   r*  r-  r,  )rC   r   r   r   rG   	shift_msa	scale_msagate_msac_shift_msac_scale_msa
c_gate_msanorm_hidden_statesattn_output	ff_outputs                 r/   r   WanTransformerBlock.forward  s     99> &&003djjlBeA1eo QI( "))!,I!))!,I''*H%--a0K%--a0K#++A.J &&5eA1eo QI(
 #jj)<)<)>?1y=QT]]ffgtujj!3T4L&,,.1GGPPQ^_ "ZZ(;(;(=>FF}Ujj!3DRVW%3 #jj)<)<)>?1{?SVaajj
 HH/0	&,,.1BZ1OOXXYfgr1   )r)  r*  r,  r   r   r-  r/  )rms_norm_across_headsFư>N)rp   rq   rr   rs   r   strboolr   rD   rP   rd   r   ru   r   r   s   @r/   r!  r!    s     / %(,'Q'Q 'Q 	'Q
 'Q 'Q 'Q :'Q 'QR*||*  %||* ll	*
 LL* 
* *r1   r!  c            &         ^  \ rS rSrSrSr/ SQrS/r/ SQrS/r	S/r
\" SS	SS
9\" SS	SS
9S.S\" SSSS
90\" SSS9S.r\                 S,S\\   S\S\S\S\S\S\S\S\S\S\S-  S\S\S-  S\S-  S \S!\S-  S"\S#S4$U 4S$ jjj5       r\" S%5         S-S\R.                  S&\R0                  S'\R.                  S(\R.                  S-  S)\S%\\\4   S-  S#\R.                  \\\R.                  4   -  4S* jj5       rS+rU =r$ ).ChronoEditTransformer3DModeli  aC  
A Transformer model for video-like data used in the ChronoEdit model.

Args:
    patch_size (`tuple[int]`, defaults to `(1, 2, 2)`):
        3D patch dimensions for video embedding (t_patch, h_patch, w_patch).
    num_attention_heads (`int`, defaults to `40`):
        Fixed length for text embeddings.
    attention_head_dim (`int`, defaults to `128`):
        The number of channels in each head.
    in_channels (`int`, defaults to `16`):
        The number of channels in the input.
    out_channels (`int`, defaults to `16`):
        The number of channels in the output.
    text_dim (`int`, defaults to `512`):
        Input dimension for text embeddings.
    freq_dim (`int`, defaults to `256`):
        Dimension for sinusoidal time embeddings.
    ffn_dim (`int`, defaults to `13824`):
        Intermediate dimension in feed-forward network.
    num_layers (`int`, defaults to `40`):
        The number of layers of transformer blocks to use.
    window_size (`tuple[int]`, defaults to `(-1, -1)`):
        Window size for local attention (-1 indicates global attention).
    cross_attn_norm (`bool`, defaults to `True`):
        Enable cross-attention normalization.
    qk_norm (`bool`, defaults to `True`):
        Enable query/key normalization.
    eps (`float`, defaults to `1e-6`):
        Epsilon value for normalization layers.
    add_img_emb (`bool`, defaults to `False`):
        Whether to use img_emb.
    added_kv_proj_dim (`int`, *optional*, defaults to `None`):
        The number of channels to use for the added key and value projections. If `None`, no projection is used.
T)patch_embeddingcondition_embeddernormr!  )r   r/  r   r   r-  norm_added_qrJ   r2  )	split_dimexpected_dimssplit_output)r   rJ   r   r   F)
gather_dimrK  )ropezblocks.0proj_outNr   num_attention_headsr   r   out_channelstext_dimfreq_dimr"  
num_layersr%  r$  r   	image_dimr   rope_max_seq_lenr   rope_temporal_skip_lenrH   c                 P  > [         TU ]  5         X#-  nU=(       d    Un[        X1UUS9U l        [        R
                  " UUXS9U l        [        UUUS-  UUUS9U l        [        R                  " [        U	5       Vs/ s H  n[        UXXX5      PM     sn5      U l        [        UUSS9U l        [        R                  " UU[         R"                  " U5      -  5      U l        [        R&                  " [(        R*                  " SSU5      US	-  -  5      U l        SU l        g s  snf )
N)r   )kernel_sizestrider   )r#   r   r   r   r   r   Fr'  rJ   r   r(  )r   rD   r   rN  r   Conv3drF  r   rG  r   ranger!  blocksr   norm_outr   mathprodrO  r   rP   r.  r/  gradient_checkpointing)rC   r   rP  r   r   rQ  rR  rS  r"  rT  r%  r$  r   rU  r   rV  r   rW  r   _r   s                       r/   rD   %ChronoEditTransformer3DModel.__init__H  s#   * 	'<	#2{ -,<Pf
	  "yyiZk #<"#a-#%/#
 mm
 z*	 +A $wWWZ +	
 &iO		)\DIIj<Q-QR!#ekk!Q	.JYX[^.[!\&+#s   =D#attention_kwargsr   r   r   return_dictc           
      h   UR                   u  pxpnU R                  R                  u  pnX-  nX-  nX-  nU R                  U5      nU R	                  U5      nUR                  S5      R                  SS5      nUR                  S:X  a   UR                   S   nUR                  5       nOS nU R                  X#UUS9u  nnp4Ub  UR                  SS5      nOUR                  SS5      nUb  [        R                  " XC/SS9n[        R                  " 5       (       a9  U R                  (       a(  U R                   H  nU R                  UXUU5      nM     OU R                   H  nU" XUU5      nM     UR                  S:X  az  U R                   R#                  S5      R%                  UR&                  5      UR#                  S5      -   R)                  SSS9u  nnUR+                  S5      nUR+                  S5      nOHU R                   R%                  UR&                  5      UR#                  S5      -   R)                  SSS9u  nnUR%                  UR&                  5      nUR%                  UR&                  5      nU R-                  UR/                  5       5      SU-   -  U-   R1                  U5      nU R3                  U5      nUR5                  XUUXUS5      nUR7                  SS	SS
SSSS5      nUR                  SS	5      R                  S
S5      R                  SS5      nU(       d  U4$ [9        US9$ )Nr   rJ   )r   )r   r!   r"   r   r   r!      r2     r   )sample)r`   configr   rN  rF  rg   	transposer3  rG  rN   rP   concatis_grad_enabledra  r]  _gradient_checkpointing_funcr/  r4  r   r   r'   r5  r^  r   rR   rO  r  permuter   )rC   r   r   r   r   re  rd  r   r   r  r  r  r  r  r  post_patch_num_framespost_patch_heightpost_patch_widthrG   
ts_seq_lenr   r   blockshiftscaleoutputs                             r/   r   $ChronoEditTransformer3DModel.forward  s$    ?L>Q>Q;
*e..# * 1"M <YY}-
,,];%--a0::1a@ ==A!*J'')HJRVRiRi-H[e Sj S
Om2 !)33Aw?M *33Aw?M&2$)LL2M1ekl$m!   ""t'B'B $ A A=PZ! %
  %mM[e f % 99> 22<<Q?BB4;;ORVR`R`abRccjjklrsjtLE5MM!$EMM!$E !2255dkkBT^^TUEVV]]^_ef]gLE5 --.--.}':':'<=UKeS\\]jkm4%--/@BRTW^ace
 &--aAq!Q1E&&q!,44Q:BB1aH9'v66r1   )r]  rG  ra  r^  rF  rO  rN  r/  ))rJ   r   r   (         r{  i      i 6  ry  Tr@  rA  NNi   Nr   )NTN)rp   rq   rr   rs   __doc__ _supports_gradient_checkpointing _skip_layerwise_casting_patterns_no_split_modules_keep_in_fp32_modules"_keys_to_ignore_on_load_unexpected_repeated_blocksr   r   _cp_planr   rt   r   rC  rB  r   rD   r	   rP   rd   
LongTensordictr   r   ru   r   r   s   @r/   rE  rE    s?   "H (,$'X$./]*8)9&-. $aqtT#aqtT

 1AQ]bc
 *QaHH   "+#%"% $5 $(, $(,&'%9,#J9, !9,  	9,
 9, 9, 9, 9, 9, 9, 9, t9, 9, :9, :9,  !9," :#9,$ !$%9,& 
'9, 9,v () <@ 26O7||O7 ""O7  %||	O7
 &+\\D%8O7 O7 sCx.4/O7 
S%,,./	/O7 *O7r1   rE  ):r_  typingr   rP   torch.nnr   torch.nn.functional
functionalr@   configuration_utilsr   r   loadersr   r   utilsr	   r
   r   utils.torch_utilsr   _modeling_parallelr   r   	attentionr   r   r   attention_dispatchr   cache_utilsr   
embeddingsr   r   r   r   modeling_outputsr   modeling_utilsr   normalizationr   
get_loggerrp   loggerrd   r0   r9   r;   rw   Moduler   r   r   r   r!  rE  rn   r1   r/   <module>r     s@         B ? 9 9 5 L I I 6 $ i i 7 ' ) 
		H	%~ ell chcoco *N u|| ^ ^D1 1jp588??$8 jp\ 2+W		 +W\E$ryy E$P T")) T TpI7-/EzSaI7r1   