
    3j                         S SK J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	J
r
   " S S\
R                  5      rSS jr " S S\
R                  5      r " S	 S
\
R                  5      r " S S\	5      rS\4S jrg)    )overrideN)ComfyExtensionioc                   p    \ rS rSr\S\R                  4S j5       r\SS\R                  4S jj5       r	Sr
g)EmptyCosmosLatentVideo   returnc                    [         R                  " SS[         R                  R                  SSS[        R
                  SS9[         R                  R                  SSS[        R
                  SS9[         R                  R                  S	S
S[        R
                  SS9[         R                  R                  SSSSS9/[         R                  R                  5       /S9$ )Nr   zmodel/latent/cosmoswidth      defaultminmaxstepheight  lengthy         
batch_size   r   r   r   node_idcategoryinputsoutputs)r   SchemaIntInputnodesMAX_RESOLUTIONLatentOutputclss    9/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_cosmos.pydefine_schema$EmptyCosmosLatentVideo.define_schema   s    yy,*Wd@T@T[]^Xs@T@T[]^Xsu?S?SZ[\\1!F	 YY%%'(

 
	
    c                     [         R                  " USUS-
  S-  S-   US-  US-  /[        R                  R	                  5       S9n[
        R                  " SU05      $ )Nr   r   r   devicesamples)torchzeroscomfymodel_managementintermediate_devicer   
NodeOutput)r)   r   r   r   r   latents         r*   executeEmptyCosmosLatentVideo.execute   sj    j"
q/@A.EvQR{TY]^T^_hmh~h~  iS  iS  iU  V}}i011r-    Nr   __name__
__module____qualname____firstlineno__classmethodr   r!   r+   r7   r9   __static_attributes__r;   r-   r*   r   r      s>    
bii 
 
 2R]] 2 2r-   r   c                    [         R                  R                  USS S24   R                  SS5      X#SS5      R                  SS5      n[	        UR
                  S   U5      n[	        XGS-
  S-  S-   U-   S-  S	-
  5      n[        R                  " XUS45      S
-  n	US U U	S U& US-
  S-  S-   n
U R                  U	5      nUS S 2S S 2S U
24   $ )N.   r   bilinearcenterr   r      g      ?)	r4   utilscommon_upscalemovedimr   shaper2   onesencode)vaeimager   r   r   paddingpixels	pixel_lenpadded_lengthpadded_pixels
latent_lenlatent_temps               r*   vae_encode_with_paddingrY       s    [[''c2A2g(>(>r1(EuV`bjksstuwyzFFLLOV,Iq=Q"6!!;g!E JQ NOMJJua@ACGM &z	 2M*9q=Q&!+J**]+Kq![j[())r-   c                   p    \ rS rSr\S\R                  4S j5       r\SS\R                  4S jj5       r	Sr
g)CosmosImageToVideoLatent+   r	   c                 l   [         R                  " SS[         R                  R                  S5      [         R                  R                  SSS[
        R                  SS9[         R                  R                  SS	S[
        R                  SS9[         R                  R                  S
SS[
        R                  SS9[         R                  R                  SSSSS9[         R                  R                  SSS9[         R                  R                  SSS9/[         R                  R                  5       /S9$ )Nr[   model/conditioning/cosmosrP   r   r   r   r   r   r   r   r   r   r   r   r   r   start_imageToptional	end_imager   
r   r!   Vaer#   r"   r$   r%   Imager&   r'   r(   s    r*   r+   &CosmosImageToVideoLatent.define_schema,   s    yy.0U#Wd@T@T[]^Xs@T@T[]^Xsu?S?SZ[\\1!F}t<{T: YY%%'(
 	
r-   Nc           	         [         R                  " SSUS-
  S-  S-   US-  US-  /[        R                  R	                  5       S9nUc  Uc  0 n	XS'   [
        R                  " U	5      $ [         R                  " UR                  S   SUS-
  S-  S-   UR                  S   UR                  S   /[        R                  R	                  5       S9n
UbI  [        XX#USS	9nXS S 2S S 2S UR                  S
   24'   U
S S 2S S 2S UR                  S
   24==   S-  ss'   UbK  [        XX#USS	9nXS S 2S S 2UR                  S
   * S 24'   U
S S 2S S 2UR                  S
   * S 24==   S-  ss'   0 n	UR                  U4SUR                  S-
  -  -   5      U	S'   U
R                  U4SU
R                  S-
  -  -   5      U	S'   [
        R                  " U	5      $ )Nr   r   r   r/   r1   r   rF   rR           r<   
noise_mask)r2   r3   r4   r5   r6   r   r7   rN   rM   rY   repeatndim)r)   rP   r   r   r   r   r_   rb   r8   
out_latentmaskrX   s               r*   r9    CosmosImageToVideoLatent.execute=   s   avza&71%<fk5TU:V_d_u_u  `J  `J  `L  M9#4J$*y!==,,zz6<<?A!0AQ/FUWHXZ`ZfZfgiZjkty  uK  uK  u_  u_  ua  b"1#ESYcdeK3>1a/+++B///0A-))"---.#5. 1#%QWabcK4?1a+++B//001A))"--../36/
 &zntv{{UV?W.W X
9#';;
~		TU@V/V#W
< }}Z((r-   r;   NNr=   r;   r-   r*   r[   r[   +   sA    
bii 
 
  )bdbobo ) )r-   r[   c                   p    \ rS rSr\S\R                  4S j5       r\SS\R                  4S jj5       r	Sr
g) CosmosPredict2ImageToVideoLatentV   r	   c                 l   [         R                  " SS[         R                  R                  S5      [         R                  R                  SSS[
        R                  SS9[         R                  R                  SS	S[
        R                  SS9[         R                  R                  S
SS[
        R                  SS9[         R                  R                  SSSSS9[         R                  R                  SSS9[         R                  R                  SSS9/[         R                  R                  5       /S9$ )Nrt   r^   rP   r   iP  r   r   r   i  r   ]   r      r   r   r   r_   Tr`   rb   r   rc   r(   s    r*   r+   .CosmosPredict2ImageToVideoLatent.define_schemaW   s    yy60U#Wcru?S?SZ\]Xs@T@T[]^Xrqe>R>RYZ[\1!F}t<{T: YY%%'(
 	
r-   Nc           	         [         R                  " SSUS-
  S-  S-   US-  US-  /[        R                  R	                  5       S9nUc  Uc  0 n	XS'   [
        R                  " U	5      $ [         R                  " UR                  S   SUS-
  S-  S-   UR                  S   UR                  S	   /[        R                  R	                  5       S9n
UbI  [        XX#USS
9nXS S 2S S 2S UR                  S   24'   U
S S 2S S 2S UR                  S   24==   S-  ss'   UbK  [        XX#USS
9nXS S 2S S 2UR                  S   * S 24'   U
S S 2S S 2UR                  S   * S 24==   S-  ss'   0 n	[        R                  R                  5       nUR                  U5      U
-  USU
-
  -  -   nUR                  U4SUR                  S-
  -  -   5      U	S'   U
R                  U4SU
R                  S-
  -  -   5      U	S'   [
        R                  " U	5      $ )Nr   r   rx   r   r/   r1   r   rh   rF   ri   rj   rk   g      ?r<   rl   )r2   r3   r4   r5   r6   r   r7   rN   rM   rY   latent_formatsWan21process_outrm   rn   )r)   rP   r   r   r   r   r_   rb   r8   ro   rp   rX   latent_formats                r*   r9   (CosmosPredict2ImageToVideoLatent.executeh   sD   avza&71%<fk5TU:V_d_u_u  `J  `J  `L  M9#4J$*y!==,,zz6<<?A!0AQ/FUWHXZ`ZfZfgiZjkty  uK  uK  u_  u_  ua  b"1#ESYcdeK3>1a/+++B///0A-))"---.#5. 1#%QWabcK4?1a+++B//001A))"--../36/
,,224**62T9FcDj<QQ &zntv{{UV?W.W X
9#';;
~		TU@V/V#W
< }}Z((r-   r;   rr   r=   r;   r-   r*   rt   rt   V   sA    
bii 
 
  )bdbobo ) )r-   rt   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)CosmosExtension   r	   c                 ,   #    [         [        [        /$ 7fN)r   r[   rt   )selfs    r*   get_node_listCosmosExtension.get_node_list   s      #$,
 	
s   r;   N)r>   r?   r@   rA   r   listtyper   	ComfyNoder   rC   r;   r-   r*   r   r      s)    
T$r||*<%= 
 
r-   r   r	   c                     #    [        5       $ 7fr   )r   r;   r-   r*   comfy_entrypointr      s     s   )r   )typing_extensionsr   r$   r2   comfy.model_managementr4   comfy.utilscomfy.latent_formatscomfy_api.latestr   r   r   r   rY   r[   rt   r   r   r;   r-   r*   <module>r      si    &      /2R\\ 2**))r|| ))V+)r|| +)\
n 
 r-   