ó
    USh|&  ã                   ó   • S SK r S SKr/ SQr/ SQr/ r\" S5       GH5  r\" S5       Ha  rS\ S\ S3rS	S
\-  \-   S-    S3r	\R                  \	\45        \S
:  d  M6  S\ S\ S3rS	S
\-  \-   S-    S3r\R                  \\45        Mc     \" S
5       H[  rS\ S\ S3rSS
\-  \-    S3r\R                  \\45        \S :”  d  M3  S\ S\ S3rSS
\-  \-    S3r\R                  \\45        M]     \S
:  d  Mà  S\ S3rS	S
\S-   -   S3r\R                  \\45        S\ S3rSS
\-  S-    S\S :X  a  SOS S3r\R                  \\45        GM8     SrSr\R                  \\45        \" S5       H%  rS\ S3rSS\-   S3r\R                  \\45        M'     S r/ SQr\" S5       Hµ  r\" S5       H(  rS\ S\ S3rS\ S\ S3r\R                  \\45        M*     \S
:  aA  S\ S3rS\ S3r\R                  \\45        S\ S3rS S
\-
   S!3r\R                  \\45        \" S
5       H+  rS"\ S\ S3rS#S
\-
   S\ S3r\R                  \\45        M-     M·     \" S5       H%  rS\ S3rS$\S-    S3r\R                  \\45        M'     / S%QrS& r S' r!/ S(Qr"\" V s0 s H  n \ RG                  U S   5      U S    _M     sn r$\ RJ                  " S)RM                  \$RO                  5       5      5      r(S SSS*.r)S-S+ jr*S, r+gs  sn f ).é    N)
)ztime_embed.0.weightztime_embedding.linear_1.weight)ztime_embed.0.biasztime_embedding.linear_1.bias)ztime_embed.2.weightztime_embedding.linear_2.weight)ztime_embed.2.biasztime_embedding.linear_2.bias)zinput_blocks.0.0.weightzconv_in.weight)zinput_blocks.0.0.biaszconv_in.bias)zout.0.weightzconv_norm_out.weight)z
out.0.biaszconv_norm_out.bias)zout.2.weightzconv_out.weight)z
out.2.biaszconv_out.bias))zin_layers.0Únorm1)zin_layers.2Úconv1)zout_layers.0Únorm2)zout_layers.3Úconv2)zemb_layers.1Útime_emb_proj)Úskip_connectionÚconv_shortcuté   é   zdown_blocks.z	.resnets.Ú.zinput_blocks.é   é   z.0.z.attentions.z.1.z
up_blocks.zoutput_blocks.z.downsamplers.0.conv.z.0.op.z.upsamplers.0.úmid_block.attentions.0.zmiddle_block.1.zmid_block.resnets.zmiddle_block.c                 óÔ  • U R                  5        Vs0 s H  oU_M     nn[         H	  u  p4X2U'   M     UR                  5        H1  u  pSU;   d  M  [         H  u  pgUR	                  Xv5      nM     XRU'   M3     UR                  5        H)  u  p[
         H  u  pgUR	                  Xv5      nM     XRU'   M+     UR                  5        VVs0 s H
  u  pXPU   _M     nnnU$ s  snf s  snnf )NÚresnets)ÚkeysÚunet_conversion_mapÚitemsÚunet_conversion_map_resnetÚreplaceÚunet_conversion_map_layer)	Úunet_state_dictÚkÚmappingÚsd_nameÚhf_nameÚvÚsd_partÚhf_partÚnew_state_dicts	            ÚI/home/gothic/public_html/Fooocus/ldm_patched/modules/diffusers_convert.pyÚconvert_unet_state_dictr"   U   sã   € ð -×1Ñ1Ô3Ó4Ò3˜�!ŠtÑ3€GÐ4ß/ÑˆØ"�Óñ 0à—‘–‰ˆØ˜�>ß$>Ñ �Ø—I‘I˜gÓ/’ñ %?à�A‹Jñ	  ð
 —‘–‰ˆß 9ÑˆGØ—	‘	˜'Ó+ŠAñ !:à�‹
ñ  ð 9@¿¹¼ÔHº±°�a¨Ñ+Ò+¹€NÑHØÐùò 5ùó Is   “CÃ	C$))Únin_shortcutr	   )Únorm_outÚconv_norm_out)úmid.attn_1.r   zencoder.down_blocks.zencoder.down.z.block.z.downsamplers.0.zdown.z.downsample.zup.z
.upsample.zdecoder.up_blocks.zdecoder.up.z
mid.block_)	)znorm.zgroup_norm.)úq.zquery.)úk.zkey.)úv.zvalue.)r'   zto_q.)r(   zto_k.)r)   zto_v.)ú	proj_out.z	to_out.0.)r*   z
proj_attn.c                 óB   • U R                   " / U R                  QSPSP76 $ )Nr   )ÚreshapeÚshape)Úws    r!   Úreshape_weight_for_sdr/   Ÿ   s"   € à�9Š9Ð$�a—g‘gÐ$˜qÐ$ !Ò$Ð$ó    c                 óJ  • U R                  5        Vs0 s H  oU_M     nnUR                  5        H)  u  p[         H  u  pEUR                  XT5      nM     X2U'   M+     UR                  5        H1  u  pSU;   d  M  [         H  u  pEUR                  XT5      nM     X2U'   M3     UR                  5        VVs0 s H
  u  pX0U   _M     nnn/ SQnUR                  5        H6  u  pU H+  nSU S3U;   d  M  [        SU S35        [        U5      Xa'   M-     M8     U$ s  snf s  snnf )NÚ
attentions)Úqr   r   Úproj_outr&   z.weightz
Reshaping z for SD format)r   r   Úvae_conversion_mapr   Úvae_conversion_map_attnÚprintr/   )	Úvae_state_dictr   r   r   r   r   r    Úweights_to_convertÚweight_names	            r!   Úconvert_vae_state_dictr;   ¤   s"  € Ø+×0Ñ0Ô2Ó3Ò2˜�!ŠtÑ2€GÐ3Ø—‘–‰ˆß 2ÑˆGØ—	‘	˜'Ó+ŠAñ !3à�‹
ñ  ð —‘–‰ˆØ˜1Õß$;Ñ �Ø—I‘I˜gÓ/’ñ %<à�A‹Jñ	  ð
 8?·}±}´ÔG²©t¨q�a¨Ñ*Ò*±€NÑGÚ4ÐØ×$Ñ$Ö&‰ˆÛ-ˆKØ˜[˜M¨Ð1°QÕ6Ü˜
 1 # ^Ð4Ô5Ü$9¸!Ó$<�Ó!ó .ñ 'ð
 Ðùò# 4ùó Hs   “DÂ6D)	)z
resblocks.ztext_model.encoder.layers.)Úln_1Úlayer_norm1)Úln_2Úlayer_norm2)z.c_fc.z.fc1.)z.c_proj.z.fc2.)z.attnz
.self_attn)z	ln_final.z(transformer.text_model.final_layer_norm.)ztoken_embedding.weightz8transformer.text_model.embeddings.token_embedding.weight)Úpositional_embeddingz;transformer.text_model.embeddings.position_embedding.weightÚ|)r3   r   r   c                 ó  • 0 n0 n0 nU R                  5        GH0  u  pVUR                  U5      (       d  M  UR                  S5      (       d,  UR                  S5      (       d  UR                  S5      (       a9  US [        S5      *  nU[        S5      *    nXs;  a  / SQX7'   XcU   [        U   '   M™  UR                  S5      (       d,  UR                  S5      (       d  UR                  S	5      (       a:  US [        S
5      *  nU[        S5      *    nXt;  a  / SQXG'   XdU   [        U   '   GM  [
        R                  S U5      n	XbU	'   GM3     UR                  5        HH  u  pzS U
;   a  [        S5      e[
        R                  S U5      n	[        R                  " U
5      X)S-   '   MJ     UR                  5        HH  u  pzS U
;   a  [        S5      e[
        R                  S U5      n	[        R                  " U
5      X)S-   '   MJ     U$ )Nz.self_attn.q_proj.weightz.self_attn.k_proj.weightz.self_attn.v_proj.weightz.q_proj.weightzq_proj.weight)NNNz.self_attn.q_proj.biasz.self_attn.k_proj.biasz.self_attn.v_proj.biasz.q_proj.biaszq_proj.biasc                 óZ   • [         [        R                  " U R                  S5      5         $ ©Nr   ©Ú	protectedÚreÚescapeÚgroup©Úms    r!   Ú<lambda>Ú1convert_text_enc_state_dict_v20.<locals>.<lambda>ð   ó   € ´yÄÇÂÈ1Ï7É7ÐSTË:ÓAVÒ7Wr0   zICORRUPTED MODEL: one of the q-k-v values for the text encoder was missingc                 óZ   • [         [        R                  " U R                  S5      5         $ rD   rE   rJ   s    r!   rL   rM   ö   rN   r0   z.in_proj_weightc                 óZ   • [         [        R                  " U R                  S5      5         $ rD   rE   rJ   s    r!   rL   rM   ü   rN   r0   z.in_proj_bias)
r   Ú
startswithÚendswithÚlenÚcode2idxÚtextenc_patternÚsubÚ	ExceptionÚtorchÚcat)Útext_enc_dictÚprefixr    Úcapture_qkv_weightÚcapture_qkv_biasr   r   Úk_preÚk_codeÚrelabelled_keyÚtensorss              r!   Úconvert_text_enc_state_dict_v20rb   Ñ   s   € Ø€NØÐØÐØ×#Ñ#×%‰ˆØ�|‰|˜F×#Ñ#Ùà—
‘
Ð5×6Ñ6Ø—:‘:Ð8×9Ñ9Ø—:‘:Ð8×9Ñ9àÐ.œÐ-Ó.Ð.Ð/ˆEØœ˜OÓ,Ð,Ñ-ˆFØÓ.Ú,>Ð"Ñ)Ø:;˜uÑ%¤h¨vÑ&6Ñ7Ùð —
‘
Ð3×4Ñ4Ø—:‘:Ð6×7Ñ7Ø—:‘:Ð6×7Ñ7àÐ,œ˜^Ó,Ð,Ð-ˆEØœ˜MÓ*Ð*Ñ+ˆFØÓ,Ú*<Ð Ñ'Ø89˜UÑ#¤H¨VÑ$4Ñ5Úä(×,Ñ,Ñ-WÐYZÓ[ˆØ)*�~Ô&ñ9 &ð< -×2Ñ2Ö4‰ˆØ�7‹?ÜÐgÓhÐhÜ(×,Ñ,Ñ-WÐY^Ó_ˆÜ=B¿YºYÀwÓ=OˆÐ(9Ñ9Ó:ñ	 5ð +×0Ñ0Ö2‰ˆØ�7‹?ÜÐgÓhÐhÜ(×,Ñ,Ñ-WÐY^Ó_ˆÜ;@¿9º9ÀWÓ;Mˆ¨Ñ7Ó8ñ	 3ð Ðr0   c                 ó   • U $ )N© )rZ   s    r!   Úconvert_text_enc_state_dictre     s   € ØÐr0   )Ú ),rG   rX   r   r   r   ÚrangeÚiÚjÚhf_down_res_prefixÚsd_down_res_prefixÚappendÚhf_down_atn_prefixÚsd_down_atn_prefixÚhf_up_res_prefixÚsd_up_res_prefixÚhf_up_atn_prefixÚsd_up_atn_prefixÚhf_downsample_prefixÚsd_downsample_prefixÚhf_upsample_prefixÚsd_upsample_prefixÚhf_mid_atn_prefixÚsd_mid_atn_prefixÚhf_mid_res_prefixÚsd_mid_res_prefixr"   r5   Úhf_down_prefixÚsd_down_prefixÚhf_up_prefixÚsd_up_prefixr6   r/   r;   Útextenc_conversion_lstrH   rF   ÚcompileÚjoinr   rU   rT   rb   re   )Úxs   0r!   Ú<module>rƒ      s^  ðÛ 	Û òÐ òÐ ð Ð ñ 
ˆq�€Añ �1ŽXˆà+¨A¨3¨i¸°s¸!Ð<ÐØ,¨Q°©U°Q©Y¸©]¨O¸3Ð?ÐØ!×(Ñ(Ð*<Ð>PÐ)QÔRàˆq�5à#/°¨s°,¸q¸cÀÐ!CÐØ#0°°Q±¸±¸Q±°¸sÐ!CÐØ%×,Ñ,Ð.@ÐBTÐ-UÖVñ ñ �1ŽXˆà'¨ s¨)°A°3°aÐ8ÐØ+¨A°©E°A©I¨;°cÐ:ÐØ!×(Ñ(Ð*:Ð<LÐ)MÔNàˆq�5à!+¨A¨3¨l¸1¸#¸QÐ?ÐØ!/°°A±¸±	¨{¸#Ð>ÐØ%×,Ñ,Ð.>Ð@PÐ-QÖRñ ð 	ˆ1…uà!-¨a¨SÐ0EÐFÐØ!.¨q°A¸±E©{¨m¸6ÐBÐØ!×(Ñ(Ð*>Ð@TÐ)UÔVð  *¨!¨¨NÐ;ÐØ-¨a°!©e°a©i¨[¸¸qÀA»v¹!È1Ð9MÈQÐOÐØ!×(Ñ(Ð*<Ð>PÐ)Q×RñI 
ðL .Ð Ø%Ð Ø ×  Ñ  Ð"3Ð5FÐ!GÔ Há	ˆqŽ€AØ,¨Q¨C¨qÐ1ÐØ'¨¨A© w¨aÐ0ÐØ×$Ñ$Ð&7Ð9JÐ%KÖLñ 
òò0Ð ñ 
ˆqŽ€Aá�1ŽXˆØ/°¨s°)¸A¸3¸aÐ@ˆØ(¨¨¨7°1°#°QÐ7ˆØ×!Ñ! >°>Ð"BÖCñ ð
 	ˆ1ƒuØ!-¨a¨SÐ0@ÐAÐØ!& q c¨Ð6ÐØ×!Ñ!Ð#7Ð9MÐ"NÔOà)¨!¨¨NÐ;ÐØ" 1 q¡5 '¨Ð4ÐØ×!Ñ!Ð#5Ð7IÐ"JÔKñ �1ŽXˆØ+¨A¨3¨i¸°s¸!Ð<ˆØ$ Q¨¡U G¨7°1°#°QÐ7ˆØ×!Ñ! <°Ð">Ö?ó ñ% 
ñ0 
ˆqŽ€AØ,¨Q¨C¨qÐ1ÐØ$ Q¨¡U G¨1Ð-ÐØ×ÑÐ0Ð2CÐDÖEñ 
ò
Ð ò%ò
ò4Ð ñ -CÓCÒ,B qˆR�Y‰Y�q˜‘t‹_˜a ™dÒ"Ñ,BÑC€	Ø—*’*˜SŸX™X i§n¡nÓ&6Ó7Ó8€ð ˜ Ñ#€ô.óbùòq Ds   Ê("L