o
    i.                     @   sH  d dl ZG dd dejjZG dd dejjZG dd dejjZG dd	 d	ejjZG d
d dejjZG dd dejjZ	G dd dejjZ
G dd dejjZG dd dejjZG dd dejjZG dd dejjZG dd dejjZG dd dejjZG d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d ZdS )ModelMergeSD1%advanced/model_merging/model_specificc                 C      ddd}ddddddf}||d< ||d	< t d
D ]	}||d|< qt dD ]	}||d|< q(t d
D ]	}||d|< q6||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i r"   M/mnt/c/Users/fbmor/ComfyUI/comfy_extras/nodes_model_merging_model_specific.pyINPUT_TYPES      zModelMergeSD1.INPUT_TYPESN__name__
__module____qualname__CATEGORYclassmethodr$   r"   r"   r"   r#   r      s    r   c                   @   r   )ModelMergeSDXLr   c                 C   r   )Nr   r   r   r   r   r   r   r   r   	   zinput_blocks.{}r   zmiddle_block.{}zoutput_blocks.{}r   r   r   r   r"   r"   r#   r$       r%   zModelMergeSDXL.INPUT_TYPESNr&   r"   r"   r"   r#   r,          r,   c                   @   r   )ModelMergeSD3_2Br   c                 C   p   ddd}ddddddf}||d< ||d	< ||d
< ||d< ||d< t dD ]	}||d|< q&||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   r"   r"   r#   r$   :      zModelMergeSD3_2B.INPUT_TYPESNr&   r"   r"   r"   r#   r/   7   r.   r/   c                   @   r   )ModelMergeAuraflowr   c                 C   s   ddd}ddddddf}||d< ||d	< ||d
< ||d< ||d< t dD ]	}||d|< q&t dD ]	}||d|< q4||d< ||d< d|iS )Nr   r   r   r   r   r   r   zinit_x_linear.positional_encodingzcond_seq_linear.register_tokensr5      zdouble_layers.{}.    zsingle_layers.{}.zmodF.zfinal_linear.r   r   r   r"   r"   r#   r$   R   s    zModelMergeAuraflow.INPUT_TYPESNr&   r"   r"   r"   r#   r:   O   r.   r:   c                   @   r   )ModelMergeFlux1r   c                 C   s   ddd}ddddddf}||d< ||d	< ||d
< ||d< ||d< t dD ]	}||d|< q&t dD ]	}||d|< q4||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.{}.r8   r   r   r   r"   r"   r#   r$   m   s   zModelMergeFlux1.INPUT_TYPESNr&   r"   r"   r"   r#   r?   j   r.   r?   c                   @   r   )ModelMergeSD35_Larger   c                 C   r0   )Nr   r   r   r   r   r   r   r1   r2   r3   r4   r5   rD   r7   r8   r   r   r   r"   r"   r#   r$      r9   z ModelMergeSD35_Large.INPUT_TYPESNr&   r"   r"   r"   r#   rE      r.   rE   c                   @   r   )ModelMergeMochiPreviewr   c                 C   h   ddd}ddddddf}||d< ||d	< ||d
< ||d< t dD ]	}||d|< q"||d< d|iS )Nr   r   r   r   r   r   r   zpos_frequencies.r5   zt5_y_embedder.z	t5_yproj.0   
blocks.{}.r8   r   r   r   r"   r"   r#   r$      s   z"ModelMergeMochiPreview.INPUT_TYPESNr&   r"   r"   r"   r#   rF      r.   rF   c                   @   r   )ModelMergeLTXVr   c                 C   sh   ddd}ddddddf}||d< ||d	< ||d
< t dD ]	}||d|< q||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   r"   r"   r#   r$      s   zModelMergeLTXV.INPUT_TYPESNr&   r"   r"   r"   r#   rJ      r.   rJ   c                   @   r   )ModelMergeCosmos7Br   c                 C   r0   )Nr   r   r   r   r   r   r   pos_embedder.extra_pos_embedder.r2   r5   affline_norm.rK   blocks.block{}.r8   r   r   r   r"   r"   r#   r$         zModelMergeCosmos7B.INPUT_TYPESNr&   r"   r"   r"   r#   rO      r.   rO   c                   @   r   )ModelMergeCosmos14Br   c                 C   r0   )Nr   r   r   r   r   r   r   rP   rQ   r2   r5   rR   $   rS   r8   r   r   r   r"   r"   r#   r$      rT   zModelMergeCosmos14B.INPUT_TYPESNr&   r"   r"   r"   r#   rU      r.   rU   c                   @   s    e Zd ZdZdZed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                 C   r0   )Nr   r   r   r   r   r   r   zpatch_embedding.ztime_embedding.ztime_projection.ztext_embedding.zimg_emb.(   rI   zhead.r   r   r   r"   r"   r#   r$      r9   zModelMergeWAN2_1.INPUT_TYPESN)r'   r(   r)   r*   DESCRIPTIONr+   r$   r"   r"   r"   r#   rW      s
    rW   c                   @   r   )ModelMergeCosmosPredict2_2Br   c                 C   rG   )Nr   r   r   r   r   r   r   rP   r2   r5   t_embedding_norm.rK   rI   r8   r   r   r   r"   r"   r#   r$        z'ModelMergeCosmosPredict2_2B.INPUT_TYPESNr&   r"   r"   r"   r#   rZ     r.   rZ   c                   @   r   )ModelMergeCosmosPredict2_14Br   c                 C   rG   )Nr   r   r   r   r   r   r   rP   r2   r5   r[   rV   rI   r8   r   r   r   r"   r"   r#   r$   )  r\   z(ModelMergeCosmosPredict2_14B.INPUT_TYPESNr&   r"   r"   r"   r#   r]   &  r.   r]   c                   @   r   )ModelMergeQwenImager   c                 C   r0   )Nr   r   r   r   r   r   r   zpos_embeds.r@   z	txt_norm.rB   ztime_text_embed.<   rL   rN   r   r   r   r"   r"   r#   r$   @  r9   zModelMergeQwenImage.INPUT_TYPESNr&   r"   r"   r"   r#   r^   =  r.   r^   )r   ModelMergeSD2r,   r/   r:   r?   rE   rF   rJ   rO   rU   rW   rZ   r]   r^   ) comfy_extras.nodes_model_mergingcomfy_extrasnodes_model_mergingModelMergeBlocksr   r,   r/   r:   r?   rE   rF   rJ   rO   rU   rW   rZ   r]   r^   NODE_CLASS_MAPPINGSr"   r"   r"   r#   <module>   s>    
