
    +j<-                        d dl Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z G d d	ej        j                  Z G d
 dej        j                  Z G d dej        j                  Z	 G d dej        j                  Z
 G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Z G d dej        j                  Zeeeeeee	e
eeeeeeedZdS )    Nc                   (    e Zd ZdZed             ZdS )ModelMergeSD1%advanced/model_merging/model_specificc                 @   ddd}ddddddf}||d<   ||d	<   t          d
          D ]}||d                    |          <   t          d          D ]}||d                    |          <   t          d
          D ]}||d                    |          <   ||d<   d|iS )NMODELmodel1model2FLOAT      ?        {Gz?defaultminmaxsteptime_embed.
label_emb.   zinput_blocks.{}.   zmiddle_block.{}.zoutput_blocks.{}.out.requiredrangeformatsarg_dictargumentis       O/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_model_merging_model_specific.pyINPUT_TYPESzModelMergeSD1.INPUT_TYPES   s    )(24 4 SdSST"*!)r 	> 	>A5=H'..q1122q 	> 	>A5=H'..q1122r 	? 	?A6>H(//2233#H%%    N__name__
__module____qualname__CATEGORYclassmethodr$    r%   r#   r   r      s2        6H& & [& & &r%   r   c                   (    e Zd ZdZed             ZdS )ModelMergeSDXLr   c                 @   ddd}ddddddf}||d<   ||d	<   t          d
          D ]}||d                    |          <   t          d          D ]}||d                    |          <   t          d
          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   r   r   	   zinput_blocks.{}r   zmiddle_block.{}zoutput_blocks.{}r   r   r   r   s       r#   r$   zModelMergeSDXL.INPUT_TYPES    s    )(24 4 SdSST"*!)q 	= 	=A4<H&--a0011q 	= 	=A4<H&--a0011q 	> 	>A5=H'..q1122#H%%r%   Nr&   r,   r%   r#   r.   r.      2        6H& & [& & &r%   r.   c                   (    e Zd ZdZed             ZdS )ModelMergeSD3_2Br   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   
pos_embed.x_embedder.context_embedder.y_embedder.t_embedder.   joint_blocks.{}.final_layer.r   r   r   s       r#   r$   zModelMergeSD3_2B.INPUT_TYPES:       )(24 4 SdSST!)"*(0$%"*"*r 	> 	>A5=H'..q1122#+ H%%r%   Nr&   r,   r%   r#   r3   r3   7   2        6H& & [& & &r%   r3   c                   (    e Zd ZdZed             ZdS )ModelMergeAuraflowr   c                    ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   t          d          D ]}||d                    |          <   ||d<   ||d<   d|iS )Nr   r	   r   r   r   r   r   zinit_x_linear.positional_encodingzcond_seq_linear.register_tokensr9      zdouble_layers.{}.    zsingle_layers.{}.zmodF.zfinal_linear.r   r   r   s       r#   r$   zModelMergeAuraflow.INPUT_TYPESR   s    )(24 4 SdSST%-!"*2&''/#$&."#"*q 	? 	?A6>H(//2233r 	? 	?A6>H(//2233$$,!H%%r%   Nr&   r,   r%   r#   r@   r@   O   s2        6H& & [& & &r%   r@   c                   (    e Zd ZdZed             ZdS )ModelMergeFlux1r   c                 
   ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   img_in.ztime_in.guidance_inz
vector_in.txt_in.   zdouble_blocks.{}.&   zsingle_blocks.{}.r<   r   r   r   s       r#   r$   zModelMergeFlux1.INPUT_TYPESm   s    )(24 4 SdSST&'"*!)&r 	? 	?A6>H(//2233r 	? 	?A6>H(//2233#+ H%%r%   Nr&   r,   r%   r#   rG   rG   j   r1   r%   rG   c                   (    e Zd ZdZed             ZdS )ModelMergeSD35_Larger   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   r5   r6   r7   r8   r9   rM   r;   r<   r   r   r   s       r#   r$   z ModelMergeSD35_Large.INPUT_TYPES   r=   r%   Nr&   r,   r%   r#   rO   rO      r>   r%   rO   c                   (    e Zd ZdZed             ZdS )ModelMergeMochiPreviewr   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   zpos_frequencies.r9   zt5_y_embedder.z	t5_yproj.0   
blocks.{}.r<   r   r   r   s       r#   r$   z"ModelMergeMochiPreview.INPUT_TYPES   s    )(24 4 SdSST'/#$"*%-!" (r 	8 	8A/7H\((++,,#+ H%%r%   Nr&   r,   r%   r#   rR   rR      2        6H& & [& & &r%   rR   c                   (    e Zd ZdZed             ZdS )ModelMergeLTXVr   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   t          d          D ]}||d                    |          <   ||d<   ||d<   d|iS )Nr   r	   r   r   r   r   r   zpatchify_proj.zadaln_single.zcaption_projection.   transformer_blocks.{}.scale_shift_table	proj_out.r   r   r   s       r#   r$   zModelMergeLTXV.INPUT_TYPES   s    )(24 4 SdSST%-!"$,!*2&'r 	D 	DA;CH-44Q7788(0$% (H%%r%   Nr&   r,   r%   r#   rX   rX      rV   r%   rX   c                   (    e Zd ZdZed             ZdS )ModelMergeCosmos7Br   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   pos_embedder.extra_pos_embedder.r6   r9   affline_norm.rZ   blocks.block{}.r<   r   r   r   s       r#   r$   zModelMergeCosmos7B.INPUT_TYPES       )(24 4 SdSST$,!*2&'"*"*$,! r 	= 	=A4<H&--a0011#+ H%%r%   Nr&   r,   r%   r#   r_   r_      2        6H& & [& & &r%   r_   c                   (    e Zd ZdZed             ZdS )ModelMergeCosmos14Br   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   ra   rb   r6   r9   rc   $   rd   r<   r   r   r   s       r#   r$   zModelMergeCosmos14B.INPUT_TYPES   re   r%   Nr&   r,   r%   r#   rh   rh      rf   r%   rh   c                   ,    e Zd ZdZdZed             ZdS )ModelMergeWAN2_1r   z^1.3B model has 30 blocks, 14B model has 40 blocks. Image to video model has the extra img_emb.c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   zpatch_embedding.ztime_embedding.ztime_projection.ztext_embedding.zimg_emb.(   rU   zhead.r   r   r   s       r#   r$   zModelMergeWAN2_1.INPUT_TYPES   s    )(24 4 SdSST'/#$&."#'/#$&."#'r 	8 	8A/7H\((++,,$H%%r%   N)r'   r(   r)   r*   DESCRIPTIONr+   r$   r,   r%   r#   rl   rl      s7        6HrK& & [& & &r%   rl   c                   (    e Zd ZdZed             ZdS )ModelMergeCosmosPredict2_2Br   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   ra   r6   r9   t_embedding_norm.rZ   rU   r<   r   r   r   s       r#   r$   z'ModelMergeCosmosPredict2_2B.INPUT_TYPES      )(24 4 SdSST$,!"*"*(0$% r 	8 	8A/7H\((++,,#+ H%%r%   Nr&   r,   r%   r#   rq   rq     r>   r%   rq   c                   (    e Zd ZdZed             ZdS )ModelMergeCosmosPredict2_14Br   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   ra   r6   r9   rs   rj   rU   r<   r   r   r   s       r#   r$   z(ModelMergeCosmosPredict2_14B.INPUT_TYPES)  rt   r%   Nr&   r,   r%   r#   rv   rv   &  r>   r%   rv   c                   (    e Zd ZdZed             ZdS )ModelMergeQwenImager   c                     ddd}ddddddf}||d<   ||d	<   ||d
<   ||d<   ||d<   t          d          D ]}||d                    |          <   ||d<   d|iS )Nr   r	   r   r   r   r   r   zpos_embeds.rI   z	txt_norm.rK   ztime_text_embed.<   r[   r]   r   r   r   s       r#   r$   zModelMergeQwenImage.INPUT_TYPES@  s    )(24 4 SdSST"*& (&'/#$r 	D 	DA;CH-44Q7788 (H%%r%   Nr&   r,   r%   r#   ry   ry   =  r>   r%   ry   )r   ModelMergeSD2r.   r3   r@   rG   rO   rR   rX   r_   rh   rl   rq   rv   ry   ) comfy_extras.nodes_model_mergingcomfy_extrasnodes_model_mergingModelMergeBlocksr   r.   r3   r@   rG   rO   rR   rX   r_   rh   rl   rq   rv   ry   NODE_CLASS_MAPPINGSr,   r%   r#   <module>r      s   ' ' ' '& & & & &L4E & & &4& & & & &\5F & & &4& & & & &|7H & & &0& & & & &9J & & &6& & & & &l6G & & &4& & & & &<;L & & &.& & & & &\=N & & &,& & & & &\5F & & &,& & & & &9J & & &0& & & & &,:K & & &0& & & & &|7H & & &0& & & & &,"B"S & & &.& & & & &<#C#T & & &.& & & & &,:K & & &0 #"$(,&04$,.(#>$@.    r%   