o
    ¶Ïi²  ã                   @   s4   d dl Z d dlZdd„ Zdd„ Zdd„ Zdd	„ ZdS )
é    Nc                 C   s^   i }| D ]}d  | dd¡ dd¡¡}| | ||< qt | d jd | d jd	 g¡|d
< |S )Núdiffusion_model.{}z.lora_B.biasz.diff_bz_norm.scalez_norm.set_weightzimg_in.lora_B.weightr   úimg_in.lora_A.weighté   z%diffusion_model.img_in.reshape_weight)ÚformatÚreplaceÚtorchÚtensorÚshape)ÚsdÚsd_outÚkÚk_to© r   ú0/mnt/c/Users/fbmor/ComfyUI/comfy/lora_convert.pyÚconvert_lora_bfl_control   s   &r   c                 C   s   t j | ddi¡S )NÚlora_unet__Ú
lora_unet_)ÚcomfyÚutilsÚstate_dict_prefix_replace©r
   r   r   r   Úconvert_lora_wan_fun   s   r   c                 C   st   i }| D ]3}| | }d  | dd¡ dd¡ dd¡ dd	¡ d
d¡ dd¡ dd¡ dd¡ dd¡¡}|||< q|S )Nr   z.down.weightz.lora_down.weightz
.up.weightz.lora_up.weightz.qkv_lora2.z.txt_attn.qkv.z.qkv_lora1.z.img_attn.qkv.z.proj_lora1.z.img_attn.proj.z.proj_lora2.z.txt_attn.proj.z
.qkv_lora.z.linear1_qkv.z.proj_lora.z	.linear2.z.processor.Ú.)r   r   )r
   r   r   r   r   r   r   r   Úconvert_uso_lora   s   ø

r   c                 C   sD   d| v rd| v rt | ƒS d| v rt| ƒS d| v r d| v r t| ƒS | S )Nr   z#single_blocks.0.norm.key_norm.scalez1lora_unet__blocks_0_cross_attn_k.lora_down.weightz-single_blocks.37.processor.qkv_lora.up.weightz.double_blocks.18.processor.qkv_lora2.up.weight)r   r   r   r   r   r   r   Úconvert_lora$   s   r   )r   Úcomfy.utilsr   r   r   r   r   r   r   r   r   Ú<module>   s    
