CoolFace
Apppublic

fred-dev/comfy_ui_ali

sourceHugging Facemitupdated 1y agoView on Hugging Face
0likes
sd.cpython-312.pyc205 linesDownload Raw Back to __pycache__
1�

2���g������ddlmZddlZddlZddlmZddlZddlmZddl	m3Z4ddlmZm
Z
ddlmZdd	lmZdd5lmZddlZddlZddlZddlZddlZddlZddl	ZddlmZddlmZdd
lmZddlmZddlmZddlm Z ddl!Zddl"Zddl#Zddl$Zddl%Zddl&Zddl'Zddl(Zddl)Zddl*Zddl+Zddl,Zddl-Zddl.Zddl/Zddl0Zddl1Zddl2Zddl3Zddl4Zddl5Zd�Z6Gd�d�Z7Gd�d�Z8Gd�d�Z9d�Z:Gd�de�Z;de;jxifd�Z=Gd�de�Z>d�Z?d�Z@d �ZAgde;jxifd!�ZBd"�ZCd-d$�ZDd#d#d%dd#iifd&�ZEd#d#d%dd#iidfd'�ZFifd(�ZGifd)�ZHd.d*�ZId.d+�ZJddddifd,�ZKy)/�)�annotationsN)�Enum)�model_management)�ProgressBar�)�
AutoencoderKL�AutoencodingEngine)�StageA)�StageC_coder)�AudioOobleckVAE)�clip_vision)�gligen)�diffusers_convert)�model_detection)�sd1_clip)�	sdxl_clipc�v�i}|�*tjj|j|�}|�*tjj	|j6|�}tjj|�}tjj||�}|�#|j�}|j||�}nd}d}|�#|j�}	|	j||�}7nd}8d}	t|�}t|9�}10|D]0}||vs�||11vs�
tjdj|���2||	fS)N�z
NOT LOADED {})�comfy�lora�model_lora_keys_unet�model�model_lora_keys_clip�cond_stage_model�lora_convert�convert_lora�	load_lora�clone�add_patches�set�logging�warning�format)r�clipr�strength_model�
strength_clip�key_map�loaded�new_modelpatcher�k�new_clip�k1�xs            �S/Users/fredrodrigues/Library/CloudStorage/Dropbox/Code/comfyui_hardware/comfy/sd.py�load_lora_for_modelsr/5s���G����*�*�1�1�%�+�+�w�G�����*�*�1�1�$�2G�2G��Q�����*�*�4�0�D�
�Z�Z�
!�
!�$��
0�F��� �;�;�=���(�(���@���������:�:�<��
�
!�
!�&�-�
8��
�����A��A�	�R��B�
��
�Q�J�Q�b�[��O�O�O�2�2�1�5�6��
�h�'�'�c�|�eZdZdddidifd�Zd�Zdd�Zd�Zdd�Zdd	�Zdid12fdd�Z	dd�Z13d
�Zdd�Zd�Z
d�Zd�Zy)�CLIPNFrc��|ry|jj�}|j}|j}	|j	dtj��}14|j	dtj��}|j	dd�}|�tj|15�}||d<|j	dtj|16||tj|�z��|d<||d<|di|��|_|jjD]T}
tj|17|
�r�|}18|d|k7s�%|jj|�tj d��V|	||��|_t"j$j'|j|19|�	�|_t"j*j,j.|j(_d20|j(_d|_|d|21k(r"tj6|j(gd22��d|_d|_tj<d
j?|23||d|��y)N�load_device�offload_device�dtype�initial_device�device�
model_optionszHad to shift TE back.)�embedding_directory�tokenizer_data�r4r5T��force_full_loadFzSCLIP/text encoder model load device: {}, offload device: {}, current: {}, dtype: {}r) �params�copyr$�	tokenizer�getr�text_encoder_device�text_encoder_offload_device�text_encoder_dtype�text_encoder_initial_device�24dtype_sizer�dtypes�
supports_cast�tor!r"r�
model_patcher�ModelPatcher�patcher�hooks�EnumHookMode�MinVram�	hook_mode�is_clip�apply_hooks_to_conds�load_models_gpu�	layer_idx�use_clip_schedule�infor#)�self�targetr:�no_initr;�25parametersr9r?r$rAr4r5r6�dts              r.�__init__z
CLIP.__init__UsR�������#�#�%���{�{���$�$�	�#�'�'�
�7G�7[�7[�7]�^��&�*�*�+;�=M�=i�=i�=k�l���!�!�'�4�0���=�$�7�7��D�E���w��(�,�,�-=�?O�?k�?k�lw�zH�JT�Wg�Wr�Wr�sx�Wy�Jy�@z�{��x��"/���� $� 0�� 0����'�'�.�.�B�#�1�1�+�r�B�,���(�#�~�5��)�)�,�,�^�<��O�O�$;�<�/�#�7J�[i�j����*�*�7�7��8M�8M�[f�xF�7�G���!&���!9�!9�!A�!A�����#�����$(��!��(��{�*��,�,�d�l�l�^�T�R����!&������j�q�q�r}�@N�PV�W_�P`�bg�h�	ir0c��td��}|jj�|_|j|_|j|_|j26|_|j|_|j|_|S)NT)rZ)r2rMrrrArUrVrS)rX�ns  r.rz27CLIP.clonezse�������L�L�&�&�(��	�!�2�2����n�n����n�n���"�4�4���!%�!:�!:����r0c�<�|jj|||�S�N)rMr)rX�patches�strength_patchr%s    r.rzCLIP.add_patches�s���|�|�'�'����P�Pr0c��||_yra)rU)rXrUs  r.�28clip_layerzCLIP.clip_layer�s	��"��r0c�>�|jj||fi|��Sra)rA�tokenize_with_weights)rX�text�return_word_ids�kwargss    r.�tokenizez
CLIP.tokenize�s ��3�t�~�~�3�3�D�/�T�V�T�Tr0c�<�|jr|j|d<|S)NrN)rS)rX�pooled_dicts  r.�add_hooks_to_dictzCLIP.add_hooks_to_dict�s!���$�$�#'�#<�#<�K�� ��r0Tc��g}|jj}|�|jsQ|rdnd}|j||d��}|j	d�}	|j|�|j
|	|g�|S|j�}29|jj�|j�'|jjd|ji�|r|jjddi�|j�|j�|jjd�|rtt!|30��}|31D]�}|d}
d	|vr|
d32|d	kr�d|vr|
d|dkDr�(|d33}|D]\}}||j"_�|jj|�|jj'|�}|dd\}	}d
|i}|
d|d<|
d34|d<|j|�|j)|�|j
|	|g�|rjd35�t+j,���|j�|S)N�unprojectedT)�
return_pooled�return_dict�cond�layer�projected_pooledFr�
start_percentr�end_percent��
pooled_output�clip_start_percent�clip_end_percent)rM�forced_hooksrV�encode_from_tokens�pop�update�append�get_hooks_for_clip_scheduler�reset_clip_optionsrU�set_clip_options�36load_model�reset�patch_hooksr�len�
hook_keyframe�_current_keyframe�encode_token_weightsrnr�)throw_exception_if_processing_interrupted)rX�tokensrp�add_dict�	show_pbar�all_cond_pooled�	all_hooksrqrmrs�scheduled_keyframes�pbar�scheduled_opts�t_range�hooks_keyframes�hook�keyframe�o�pooleds                   r.�encode_from_tokens_scheduledz!CLIP.encode_from_tokens_scheduled�sL��@B���L�L�-�-�	���D�$:�$:�-8�M�d�M��1�1�&�
�cg�1�h�K��?�?�6�*�D����x�(��"�"�D�+�#6�7�\��Y#,�"G�"G�"I���!�!�4�4�6��~�~�)��%�%�6�6�����7P�Q���%�%�6�6�8J�E�7R�S��O�O���O�O���L�L�$�$�T�*��"�3�':�#;�<��"5��(��+��"�h�.��q�z�H�_�$=�=� � �H�,��q�z�H�]�$;�;� �"0��"3��&5�N�D�(�;C�D�&�&�8�'6����(�(��3��)�)�>�>�v�F�� ��!�u���f�.��7��4;�A�J��0�1�29�!�*��.�/��"�"�8�,��&�&�{�3��&�&��k�':�;���K�K��N� �J�J�L�9#6�:
�O�O���r0c���|jj�|j�'|jjd|ji�|dk(r|jjddi�|j	�|jj|�}|dd\}}|r;||d�}t
|�dkDr|dD]
}|d|||<�|j|�|S|r||fS|S)NrtrpruFrx)rsry)rr�rUr�r�r�r�rn)	rXr�rqrrr�rsr��outr*s	         r.r}zCLIP.encode_from_tokens�s������0�0�2��>�>�%��!�!�2�2�G�T�^�^�3L�M��M�)��!�!�2�2�4F��3N�O������!�!�6�6�v�>����!�u���f���&�9�C��1�v��z��1��A��q�T�!�W�C��F���"�"�3�'��J����<���r0c�F�|j|�}|j|�Sra)rkr})rXrhr�s   r.�encodezCLIP.encode�s!�����t�$���&�&�v�.�.r0c�v�|r|jj|d��S|jj|�S)NF��strict)r�load_state_dict�load_sd)rX�sd�37full_models   r.r�zCLIP.load_sd�s8����(�(�8�8��E�8�J�J��(�(�0�0��4�4r0c��|jj�}|jj�}|D]38}||||<�|Sra)r�39state_dictrA)rX�sd_clip�sd_tokenizerr*s    r.�get_sdzCLIP.get_sd�sD���'�'�2�2�4���~�~�0�0�2���A�%�a��G�A�J���r0c�X�tj|j�|jSra)r�load_model_gpurM�rXs r.r�zCLIP.load_model�s���'�'����5��|�|�r0c�6�|jj�Sra)rM�get_key_patchesr�s r.r�zCLIP.get_key_patches�s���|�|�+�+�-�-r0)��?r�)F)rm�	dict[str])r�r�)FF)�__name__�40__module__�__qualname__r]rrrerkrnr�r}r�r�r�r�r�rr0r.r2r2Tse��"��e�\^�kl�|~�#i�J�Q�#�U��41@E�Z\�hl�8�t�0/�5���.r0r2c��eZdZdd�Zd�Zd�Zdd�Zdd�Zdd�Zdd�Z	dd	�Z42dd43�Zd�Zdd�Z
d
�Zdd�Zd�Zd�Zd�Zd�Zy)�VAENc�8�d|j�vrtj|�}d�|_d�|_d|_d|_d|_d|_d|_	d�|_44d	�|_tjtjg|_d|_d|_|��-d45|vrHdddddd
gd�dgdd�46}|j%�}gd�|d<d|d<t'ddid|d�d|d���|_�n�d|vrR|dj*d|_t,j.j.j1|j��|_�n�d|vr/t3�|_d|_d|_d�|_47d�|_�nkd |vrAt5�|_d!|_d"|_i}|D]}	||	|d#j7|	�<�|}�n&d$|vr:t5�|_d"|_i}|D]}	||	|d%j7|	�<�|}�n�d&|vrt5�|_d!|_d"|_�n�d'|vr�dddddd
gd�dgdd�48}49d(|vrd)|vrgd*�|50d+<d|_d|_|d'j*dx|_|51d,<d-|vr$t9|52|d-j*d�.�|_�nQt'ddid|53d�d/|54d���|_�n4d0|vr�t;�|_d1�|_d2�|_d3|_d|_	d4|_d4|_d|_d5�|_d6�|_55tj<tjtjg|_�n�d7|vsd8|vsd9|vsd:|vr�d7|vr"t,j>jA|d;d<i�}d9|vr"t,j>jA|d;d=i�}t,jBjDjFjHjK�|_d>|_d|_d?�|_d@�|_dA�ddf|_dB|_dC�ddf|_dB|_tj<tjg|_�n�dD|v�r|dD}dE}|j*dEdFk(rdE}n|j*dEdGk(rd}dH|vrd}d}
|�,dI|vr(tMjN|dI�jQdJd�}
t,jBjRjFjTjK||
�K�|_d
|_d|_dL�|_dM�|_dN�d!d!f|_dO|_dP�d!d!f|_dO|_tjtjg|_�n�dQ|vr�dddddd
gd�dgdd�56}57d|58dR<d|59dS<dT�ddf|_dU|_dV�ddf|_dU|_d|_|dQj*dx|_|60d,<t9|61|d-j*d�.�|_dW�|_dX�|_tjtj<tjg|_�n�dY|vr�dZ�ddf|_d[|_d\�ddf|_d[|_d|_d"|_d"|jddGddd
gd]�dd!gdddddd^�}62t-jBjVjFjXdqi|63��|_d_�|_d`�|_tjtjg|_n�da|vr�db�ddf|_dU|_dc�ddf|_dU|_d|_d"|_dd|jgd�dggde�ddf�}64t-jBjZjFj\dqi|65��|_tjtj<tjg|_dg�|_dh�|_n0t_j`di�d|_yt9dqi|dj��|_|j(jc�|_|j(je|dk�l�\}}tg|�dEkDr$t_j`dmj7|��tg|�dEkDr$t_jhdnj7|��|�tkjl�}||_7tkjp�}|�*tkjr|jn|j�}||_9|j(ju|jr�tkjv�|_<t,jzj}|j(|jn|�o�|_?t_j�dpj7|jn||jr��y)rNz*decoder.up_blocks.0.resnets.0.norm1.weightc�J�d|dz|dztj|�zS)Ni�rx��rrG��shaper6s  r.�<lambda>zVAE.__init__.<locals>.<lambda>s(���u�Q�x��%�PQ�(�8R�Vf�Vq�Vq�rw�Vx�7xr0c�P�d|dz|dzdztj|�zS)Ni�rxr��@r�r�s  r.r�zVAE.__init__.<locals>.<lambda>s.���u�Q�x��%�PQ�(�8R�UW�8W�[k�[v�[v�w|�[}�7}r0��rxr�c��|dzdz66S)N�@r�r��images r.r�zVAE.__init__.<locals>.<lambda>s
��5�3�;��+<r0c�>�tj|dzdzdd��S)Nr�r��)�min�max)�torch�clampr�s r.r�zVAE.__init__.<locals>.<lambda>	s��E�K�K�����8K�QT�Z]�,^r0zdecoder.mid.block_1.mix_factorT��)rrxr�r�r�)67�double_z�68z_channels�69resolution�in_channels�out_ch�ch�ch_mult�num_res_blocks�attn_resolutions�dropout)r�rr�video_kernel_size�alpharYz8comfy.ldm.models.autoencoder.DiagonalGaussianRegularizerz0comfy.ldm.modules.diffusionmodules.model.Encoder)rYr?z*comfy.ldm.modules.temporal_ae.VideoDecoder)�regularizer_config�encoder_config�decoder_configztaesd_decoder.1.weightr)�latent_channelszvquantizer.codebook.weightc��|Srarr�s r.r�zVAE.__init__.<locals>.<lambda>"���5r0c��|Srarr�s r.r�zVAE.__init__.<locals>.<lambda>#���Er0z*backbone.1.0.block.0.1.num_batches_tracked� �z70encoder.{}zblocks.11.num_batches_trackedzpreviewer.{}z2encoder.backbone.1.0.block.0.1.num_batches_trackedzdecoder.conv_in.weightz%encoder.down.2.downsample.conv.weightz!decoder.up.3.upsample.conv.weight)rrxr�r�r�zpost_quant_conv.weight)�ddconfig�	embed_dimz0comfy.ldm.modules.diffusionmodules.model.Decoderzdecoder.layers.1.layers.0.betac�>�d|dztj|�zS)N��rxr�r�s  r.r�zVAE.__init__.<locals>.<lambda>Is���u�Q�x��Sc�Sn�Sn�ot�Su�?ur0c�D�d|dzdztj|�zS)Nr�rx�r�r�s  r.r�zVAE.__init__.<locals>.<lambda>Js$���u�Q�x��RV�@V�Zj�Zu�Zu�v{�Z|�?|r0r�r�c��|Srar��audios r.r�zVAE.__init__.<locals>.<lambda>Pr�r0c��|Srarr�s r.r�zVAE.__init__.<locals>.<lambda>Qr�r0z blocks.2.blocks.3.stack.5.weightz(decoder.blocks.2.blocks.3.stack.5.weightz,layers.4.layers.1.attn_block.attn.qkv.weightz4encoder.layers.4.layers.1.attn_block.attn.qkv.weight�zdecoder.zencoder.�c�\�d|dz|dz|dzdztj|�zS)Nr�rxr�r��r�r�s  r.r�zVAE.__init__.<locals>.<lambda>[�T���u�Q�x��RW�XY�RZ�@Z�]b�cd�]e�@e�ir�@s�xH�xS�xS�TY�xZ�@Zr0c�p�dt|dd�z|dz|dzdztj|�zS)Ng�?rx�r�r�r��r�rrGr�s  r.r�zVAE.__init__.<locals>.<lambda>\s^���c�%�PQ�(�TU�FV�@V�Y^�_`�Ya�@a�di�jk�dl�@l�py�@z�O�Z�Z�[`�a�@ar0c�&�td|dzdz71�S)Nr���r���as r.r�zVAE.__init__.<locals>.<lambda>]����A�q�1�u�q�y�0Ar0)r�r�r�c�L�tdtj|dzdz��S)Nrr�r��r��math�floorr�s r.r�zVAE.__init__.<locals>.<lambda>_���#�a����Q��U�a�K�9P�2Qr0z2decoder.up_blocks.0.res_blocks.0.conv1.conv.weightr��z$encoder.down_blocks.1.conv.conv.bias�config�vae)�versionrc�\�d|dz|dz|dzdztj|�zS)N�rxr�r�rr�r�s  r.r�zVAE.__init__.<locals>.<lambda>qsT���e�A�h��QV�WX�QY�@Y�\a�bc�\d�@d�hq�@r�wG�wR�wR�SX�wY�@Yr0c�j�dt|dd�z|dz|dztj|�zS)N�Frxr�r�r�r�r�s  r.r�zVAE.__init__.<locals>.<lambda>rsS���S��q��ST�EU�@U�X]�^_�X`�@`�ch�ij�ck�@k�o�pK�pK�LQ�pR�@Rr0c�&�td|dzdz72�S�Nrr�r�r�r�s r.r�zVAE.__init__.<locals>.<lambda>sr�r0)r�r�r�c�L�tdtj|dzdz��S�Nrr�r�r�r�s r.r�zVAE.__init__.<locals>.<lambda>urr0zdecoder.conv_in.conv.weight�conv3d�
time_compressc�&�td|dzdz73�S�Nrr�r�r�r�s r.r�zVAE.__init__.<locals>.<lambda>|r�r0)r�r�r�c�L�tdtj|dzdz��S�Nrr�r�r�r�s r.r�zVAE.__init__.<locals>.<lambda>~rr0c�\�d|dz|dz|dzdztj|�zS)Ni�rxr�r�r�r�r�s  r.r�zVAE.__init__.<locals>.<lambda>�r�r0c�j�dt|dd�z|dz|dztj|�zS)Nrrxr�r�r�r�s  r.r�zVAE.__init__.<locals>.<lambda>�sX���c�%�PQ�(�TU�FV�@V�Y^�_`�Ya�@a�di�jk�dl�@l�qA�qL�qL�MR�qS�@Sr0zdecoder.unpatcher3d.waveletsc�&�td|dzdz74�Srr�r�s r.r�zVAE.__init__.<locals>.<lambda>�r�r0)r�r�r�c�L�tdtj|dzdz��Srr�r�s r.r�zVAE.__init__.<locals>.<lambda>�rr0)rxr�r�)r�r��z_factorr�r��out_channels�channels�
channels_multr�r�r��75patch_size�76num_groups�temporal_compression�spacial_compressionc�\�d|dz|dz|dzdztj|�zS)N�2rxr�r�rr�r�s  r.r�zVAE.__init__.<locals>.<lambda>�sT���U�1�X�
�PU�VW�PX�@X�[`�ab�[c�@c�gp�@q�vF�vQ�vQ�RW�vX�@Xr0c�z�dt|ddzdz�dzz|dz|dztj|�zS)Nr"rxr�r�r�r�)�roundrrGr�s  r.r�zVAE.__init__.<locals>.<lambda>�sf���e�U�ST�X�XY�\�]^�L^�F_�bc�Fc�@d�gl�mn�go�@o�rw�xy�rz�@z�O�Z�Z�[`�a�@ar0z!decoder.middle.0.residual.0.gammac�&�td|dzdz77�Srr�r�s r.r�zVAE.__init__.<locals>.<lambda>�r�r0c�L�tdtj|dzdz��Srr�r�s r.r�zVAE.__init__.<locals>.<lambda>�rr0�`)FTT)�dim�z_dim�dim_multr��attn_scales�temperal_downsampler�c�J�d|dz|dztj|�zS)Nipr�r�r�r�s  r.r�zVAE.__init__.<locals>.<lambda>�s*��t�e�A�h��QV�WX�QY�?Y�\l�\w�\w�x}�\~�?~r0c�P�d|dz|dzdztj|�zS)NiXr�r�r�r�r�s  r.r�zVAE.__init__.<locals>.<lambda>�sD��t�e�A�h��QV�WX�QY�?Y�]b�?c�fv�gB�gB�CH�gI�@Ir0z5WARNING: No VAE weights detected, VAE not initalized.r?Fr�zMissing VAE keys {}zLeftover VAE keys {}r<z2VAE load device: {}, offload device: {}, dtype: {}r)A�keysr�convert_vae_state_dict�memory_used_encode�memory_used_decode�downscale_ratio�
upscale_ratior��78latent_dim�output_channels�
process_input�process_outputr��bfloat16�float32�working_dtypes�downscale_index_formula�upscale_index_formular@r	�first_stage_modelr�r�taesd�TAESDr79rr#rr�float16�utils�state_dict_prefix_replace�ldm�genmorr�VideoVAE�json�loadsrB�80lightricks�causal_video_autoencoder�cosmos�CausalContinuousVideoTokenizer�wan�WanVAEr!r"�evalr�r��debugr�81vae_devicer8�vae_offload_device�	vae_dtyperJ�intermediate_device�
output_devicerKrLrMrW)rXr�r8rr6�metadatar�r��new_sdr*r��tensor_conv1r�82vae_config�m�ur5s                 r.r]zVAE.__init__�sm83��7�2�7�7�9�D�"�9�9�"�=�B�"x���"}��� ������ ������ ���<���^���$�~�~�u�}�}�=���'+��$�%)��"��>�/�2�5�.2�!�SV�gh�tu�~A�NZ�no�EG�TW�"X��!/�!4�!4�!6��6?��2�3�*-��w�'�);�PX�[U�PV�WI�Uc�Ld�WC�O]�L^�*_��&�*�R�/�')�*B�'C�'I�'I�!�'L��$�).���):�):�)@�)@�QU�Qe�Qe�)@�)f��&�-��3�)/���&�'(��$�%&��"�&9��"�&9��#�=��C�)5���&�')��$�')��$����A�57��U�F�<�.�.�q�1�2����0�B�6�)5���&�')��$����A�79�!�u�F�>�0�0��3�4����E��K�)5���&�')��$�')��$�)�R�/�(,�A�S�ab�no�wz�HT�hi�A�NQ�R��:�"�D�Il�tv�Iv�*3�H�Y�'�+,�D�(�)*�D�&�@B�C[�@\�@b�@b�cd�@e�e��$�x��'=�+�r�1�-:�H�XZ�[s�Xt�Xz�Xz�{|�X}�-~�D�*�-?�T\�_Y�TZ�[M�Ya�Pb�[M�Ya�Pb�.c�D�*�2�R�7�)8�):��&�*u��'�*|��'�')��$�'(��$�%)��"�(,��$�"#���&9��#�%8��"�',�}�}�e�n�n�e�m�m�&T��#�3�r�9�=g�km�=m�r`�df�rf�j`�df�jf�5��;����>�>�r�B�84�CS�T�B�A�R�G����>�>�r�B�85�CS�T�B�).�����)<�)<�)B�)B�)K�)K�)M��&�')��$�"#���+Z��'�+a��'�&A�1�a�%H��"�-6��*�(Q�ST�VW�'X��$�/8��,�',�}�}�e�m�m�&D��#�E��K�!�"V�W�����%�%�a�(�C�/��G�!�'�'��*�d�2��G�=��C�"#��!�86��'�H��,@�!%���H�X�,>�!?�!C�!C�E�4�!P�J�).���)=�)=�)A�)A�)Z�)Z�)c�)c�ls�}G�)c�*H��&�'*��$�"#���+Y��'�+R��'�&A�2�r�%J��"�-8��*�(Q�SU�WY�'Z��$�/:��,�',�~�~�u�}�}�&E��#�.�"�4�(,�A�S�ab�no�wz�HT�hi�A�NQ�R��%)���"�,-���)�&A�1�a�%H��"�-6��*�(Q�ST�VW�'X��$�/8��,�"#���@B�C`�@a�@g�@g�hi�@j�j��$�x��'=�)6��TV�Wo�Tp�Tv�Tv�wx�Ty�)z��&�+Z��'�+S��'�',�~�~�u�}�}�e�m�m�&T��#�/�2�5�&A�1�a�%H��"�-6��*�(Q�ST�VW�'X��$�/8��,�"#���')��$�*,��AU�AU�cd�tx�JK�]^�lo�BK�_`�wy�vz�GJ�Z[�kl�FG�`a�b��).���)9�)9�)=�)=�)\�)\�)h�_g�)h��&�+X��'�+a��'�',�~�~�u�}�}�&E��#�4��:�&A�1�a�%H��"�-6��*�(Q�ST�VW�'X��$�/8��,�"#���')��$�#%��0D�0D�R^�rs�EG�`s�@C�D��).�����):�):�)A�)A�)M�H�)M��&�',�~�~�u�}�}�e�m�m�&T��#�*~��'�+I��'���� W�X�)-��&��%2�%H�f�X�6F�%H�D�"�!%�!7�!7�!<�!<�!>����%�%�5�5�b��5�G���1��q�6�A�:��O�O�1�8�8��;�<��q�6�A�:��M�M�0�7�7��:�;��>�%�0�0�2�F����)�<�<�>���=�$�.�.�t�{�{�D�<O�<O�P�E�������!�!�$�.�.�1�-�A�A�C����*�*�7�7��8N�8N�\`�\g�\g�yG�7�H������I�P�P�QU�Q\�Q\�^l�nr�n|�n|�}�~r0c�2�|j�td��y)NzvERROR: VAE is invalid: None87 88If the VAE is from a checkpoint loader node your checkpoint does not contain a valid VAE.)r>�RuntimeErrorr�s r.�throw_exception_if_invalidzVAE.throw_exception_if_invalid�s(���!�!�)�� Z�[�
[�*r0c���|j�}|jdd}tt|��D]7}|||z|z}|||zdz}|||k7s�"|j	|dz||�}�9|S)Nr�����rx)�spacial_compression_encoder��ranger��narrow)rX�pixelsr3�dims�dr-�x_offsets       r.�vae_encode_crop_pixelszVAE.vae_encode_crop_pixels�s����9�9�;���|�|�A�b�!���s�4�y�!�A��a��O�+��>�A��Q��/�1�a�7�H��D��G�|����q�1�u�h��:��	"�89�
r0c
����|jdtjj|jd|jd|||�z}||jdtjj|jd|jd|dz|dz|�zz
}||jdtjj|jd|jd|dz|dz|�zz
}tjj	|�}�fd�}�jtjj
|||dz|dz|�j�j|��tjj
|||dz|dz|�j�j|��ztjj
|||||�j�j|��zdz�}|S)Nrr�rxc����jj|j�j�j�j��j�Sra�r>�decoderJrSr8�float�r�rXs �r.r�z#VAE.decode_tiled_.<locals>.<lambda>��>���d�4�4�;�;�A�D�D����<P�<S�<S�TX�T_�T_�<`�a�g�g�ir0)�upscale_amountrUr��@)	r�rrB�get_tiled_scale_stepsrr8�tiled_scaler4rU)	rX�samples�tile_x�tile_y�overlap�stepsr��	decode_fn�outputs	`        r.�
decode_tiled_zVAE.decode_tiled_�sL����
�
�a� �5�;�;�#D�#D�W�]�]�ST�EU�W^�Wd�Wd�ef�Wg�io�qw�zA�$B�B��
����q�!�E�K�K�$E�$E�g�m�m�TU�FV�X_�Xe�Xe�fg�Xh�jp�tu�ju�w}�AB�xB�DK�%L�L�	L��
����q�!�E�K�K�$E�$E�g�m�m�TU�FV�X_�Xe�Xe�fg�Xh�jp�st�jt�v|�AB�wB�DK�%L�L�	L���{�{�&�&�u�-��i�	��$�$�
�[�[�
$�
$�W�i��1��f�q�j�RY�lp�l~�l~�OS�Oa�Oa�jn�
$�o��K�K�#�#�G�Y���90�F�a�K�QX�ko�k}�k}�NR�N`�N`�im�#�
n�n�
�[�[�
$�
$�W�i����cg�cu�cu�FJ�FX�FX�ae�
$�f�f��
���91�
r0c����fd�}�jtjj|||f|�j�j92�j���S)Nc����jj|j�j�j�j��j�Srarkrns �r.r�z%VAE.decode_tiled_1d.<locals>.<lambda>�ror0��tilerwrprrU)r8rrB�tiled_scale_multidimr4r6rU)rXrtrurwrys`    r.�decode_tiled_1dzVAE.decode_tiled_1d�s~���i�	��"�"�5�;�;�#C�#C�G�Y�^d�]f�pw�IM�I[�I[�jn�j~�j~�NR�N`�N`�#C�$a�b�	br0c�����fd�}�jtjj|||||f|�j�j93�j�j���S)Nc����jj|j�j�j�j��j�Srarkrns �r.r�z%VAE.decode_tiled_3d.<locals>.<lambda>�ror0)rrwrpr�index_formulasrU)r8rrBr�r4r6r=rU)rXrt�tile_trurvrwrys`      r.�decode_tiled_3dzVAE.decode_tiled_3d�s����i�	��"�"�5�;�;�#C�#C�G�Y�^d�fl�nt�]u�@G�X\�Xj�Xj�y}�yM�yM�^b�^x�^x�HL�HZ�HZ�#C�$[�\�	\r0c�&��|jdtjj|jd|jd|||�z}||jdtjj|jd|jd|dz|dz|�zz
}||jdtjj|jd|jd|dz|dz|�zz
}tjj	|�}�fd�}tjj|||||d�jz�j�j|��	}|tjj|||dz|dz|d�jz�j�j|��	z
}|tjj|||dz|dz|d�jz�j�j|��	z
}|dz}|S)Nrr�rxc�����jj�j|�j�j�j�j94��j
�Sra�r>r�r7rJrSr8rmrns �r.r�z#VAE.encode_tiled_.<locals>.<lambda>��O���d�4�4�;�;�T�=O�=O�PQ�=R�<V�<V�W[�We�We�<f�<i�<i�jn�ju�ju�<v�w�}�}�r0r)rprrUr�rq)	r�rrBrrrrsr3r�rU)	rX�
pixel_samplesrurvrwrxr��	encode_fnrts	`        r.�
encode_tiled_zVAE.encode_tiled_�s�����#�#�A�&����)J�)J�=�K^�K^�_`�Ka�cp�cv�cv�wx�cy�|B�DJ�LS�*T�T��
��$�$�Q�'�%�+�+�*K�*K�M�L_�L_�`a�Lb�dq�dw�dw�xy�dz�}C�GH�}H�JP�ST�JT�V]�+^�^�	^��
��$�$�Q�'�%�+�+�*K�*K�M�L_�L_�`a�Lb�dq�dw�dw�xy�dz�}C�FG�}G�IO�ST�IT�V]�+^�^�	^���{�{�&�&�u�-���	��+�+�)�)�-��F�F�T[�op�qu�rF�rF�pF�VZ�Vj�Vj�z~�zL�zL�SW�)�X���5�;�;�*�*�=�)�V�a�Z�QW�[\�Q\�^e�yz�{�|P�|P�zP�`d�`t�`t�DH�DV�DV�]a�*�b�	b���5�;�;�*�*�=�)�V�q�[�RX�[\�R\�^e�yz�{�|P�|P�zP�`d�`t�`t�DH�DV�DV�]a�*�b�	b���3����r0c	����fd�}tjj|||f|d�jz�j�j95��S)Nc�����jj�j|�j�j�j�j96��j
�Srar�rns �r.r�z%VAE.encode_tiled_1d.<locals>.<lambda>�r�r0rr~)rrBr�r3r�rU)rXrtrurwr�s`    r.�encode_tiled_1dzVAE.encode_tiled_1d�st����	��{�{�/�/���&��\c�uv�w{�xL�xL�vL�\`�\p�\p�@D�@R�@R�/�S�	Sr0c����fd�}tjj|||||f|�j�jd�j97�j��	S)Nc�����jj�j|�j�j�j�j98��j
�Srar�rns �r.r�z%VAE.encode_tiled_3d.<locals>.<lambda>�r�r0T)rrwrpr�	downscaler�rU)rrBr�r3r�r<rU)rXrtr�rurvrwr�s`      r.�encode_tiled_3dzVAE.encode_tiled_3d�s�����	��{�{�/�/���&�RX�Z`�Ia�kr�DH�DX�DX�gk�g{�g{�GK�\`�\x�\x�HL�HZ�HZ�/�[�	[r0c	��|j�d}	|j|j|j�}t	j99|jg|��t	j|j�}t||z�}td|�}td|jd|�D]�}||||zj|j�j|j�}|j|jj|�j|j �j#��}|�Ht%j&|jdft)|jdd�z|j ��}|||||z��	|j|j �j;dd�}|S#tj*$r�t-j.d�|j0dz100}	|	dk(r|j3|�}nL|	dk(r|j5|�}n5|	dk(r0d|j7�z}101|102d	z}|j9||103|104d||f�105�}Y��wxYw)N��memory_requiredrr�r8zWWarning: Ran out of memory when regular VAE decoding, retrying with tiled VAE decoding.rxr�r�r��rurvrwr`)r^r2r�rSrrTrM�get_free_memoryr8�intr�rbrJr8r>rlrUrmr��empty�tuple�
OOM_EXCEPTIONr!r"�ndimr�r{�spacial_compression_decoder��movedim)rX�106samples_inr��memory_used�free_memory�batch_numberr-rtr�rerrws            r.rlz107VAE.decode�s)���'�'�)��
�	z��1�1�*�2B�2B�D�N�N�S�K��,�,�d�l�l�^�[�Y�*�:�:�4�;�;�G�K��{�[�8�9�L��q�,�/�L��1�j�.�.�q�1�<�@��$�Q�q��~�6�9�9�$�.�.�I�L�L�T�[�[�Y���)�)�$�*@�*@�*G�*G��*P�*S�*S�TX�Tf�Tf�*g�*m�*m�*o�p�� �(�$)�K�K��1A�1A�!�1D�0F��s�y�y�YZ�Y[�}�I]�0]�fj�fx�fx�$y�M�25�
�a��,��/�A�$&�(�(��);�);�<�D�D�Q�r�J�
���� �-�-�108	z��O�O�u�v��?�?�Q�&�D��q�y� $� 4� 4�Z� @�
���� $� 2� 2�:� >�
�����d�=�=�?�?���!�)�� $� 4� 4�Z��UY�de�gn�pw�cx� 4� y�
��109	z�s�E=F?�?BI�Ic�4�|j�|j|j|j�}t	j110|jg|��|jdz111}i}	|�||	d<|�||	d<|�||	d<|dk(r%|	jd�|j|fi|	��}112n_|dk(r|j|fi|	��}113nF|dk(rA|�	d||f|	d<ntd|�||f|	d<|�td|�|	d<|j|fi|	��}114115jdd	�S)116Nr�rxrurvrwrr�r�r`)r^r2r�rSrrTrMr�r~r�r{r�r�r�)rXrtrurvrwr��	overlap_tr�re�argsrzs           r.�decode_tiledzVAE.decode_tileds7���'�'�)��-�-�g�m�m�T�^�^�L���(�(�$�,�,���U��|�|�a�������#�D��N���#�D��N���%�D��O��1�9��H�H�X��)�T�)�)�'�:�T�:�F�
�Q�Y�'�T�'�'��8�4�8�F�
�Q�Y�� �#$�g�w�"7��Y��#&�q�)�#4�g�w�"G��Y���!�!$�Q����X��)�T�)�)�'�:�T�:�F��~�~�a��$�$r0c	�(�|j�|j|�}|jdd�}|jdk(r0|jdkr!|jdd�jd�}	|j
|j|j�}tj|jg|��tj|j�}t|td|�z�}td|�}d}t!d|jd|�D]�}|j#||||z�j%|j�j%|j�}|j&j)|�j%|j*�j-�}|�Ht/j0|jdft3|jdd�z|j*��}|||||z��	|S#tj4$r~t7j8d�|jdk(r"d	}	|	d117z}118|j;||	|	d|119|120f��}Y|S|jdk(r|j=|�}Y|S|j?|�}Y|SwxYw)Nr`rr�r�rr�r�zWWarning: Ran out of memory when regular VAE encoding, retrying with tiled VAE encoding.r�r�r�) r^rhr�r5r��	unsqueezer1r�rSrrTrMr�r8r�r�rbr7rJr>r�rUrmr�r�r�r�r!r"r�r�r�)rXr�r�r�r�rtr-�	pixels_inr�rrws           r.r�z121VAE.encode1sd���'�'�)��3�3�M�B�
�%�-�-�b�!�4�
��?�?�a��M�$6�$6��$:�)�1�1�!�Q�7�A�A�!�D�M�	<��1�1�-�2E�2E�t�~�~�V�K��,�,�d�l�l�^�[�Y�*�:�:�4�;�;�G�K��{�S��K�-@�@�A�L��q�,�/�L��G��1�m�1�1�!�4�l�C�� �.�.�}�Q�q�<�?O�/P�Q�T�T�UY�Uc�Uc�d�g�g�hl�hs�hs�t�	��,�,�3�3�I�>�A�A�$�BT�BT�U�[�[�]���?�#�k�k�=�+>�+>�q�+A�*C�e�C�I�I�VW�VX�M�FZ�*Z�cg�cu�cu�v�G�.1���!�l�*�+�D�$��� �-�-�		<��O�O�u�v����!�#����!�)���.�.�}�T�RV�ab�dk�mt�`u�.�v�������A�%��.�.�}�=�����,�,�]�;����		<�s �4F	H�AJ� J�<J�Jc���|j�|j|�}|j}|jdd�}|dk(r!|jdd�j	d�}|j|j|j�}tj|jg|��i}	|�||	d<|�||	d<|�||	d<|dk(r&|	jd�|j|fi|	��}122|123S|d	k(r|j|fi|	��}124|125S|dk(r�|� td	|jd|��}nd126}|j d|�|	d<|�	d||f|	d<nE|j dtdt#|d	z|jd|����||f|	d<|jd	}|j d|jd|��}|j$|dd�dd�d|�ffi|	��}127128S)Nr`rr�rr�rurvrwrx�'r�)r^rhr5r�r�r1r�rSrrTrMr~r�r�r�r3r4r�r�)
rXr�rurvrwr�r�rer�r�rt�
tile_t_latent�maximums
             r.�encode_tiledzVAE.encode_tiledRs;���'�'�)��3�3�M�B�
�����%�-�-�b�!�4�
��1�9�)�1�1�!�Q�7�A�A�!�D�M��-�-�m�.A�.A�4�>�>�R���(�(�$�,�,���U�����#�D��N���#�D��N���%�D��O��1�9��H�H�X��*�d�*�*�=�A�D�A�G�&��%�Q�Y�(�d�(�(��?�$�?�G�"��!�Q�Y��!� #�A�'>�t�';�';�A�'>�v�'F� G�
� $�
�2�T�/�/��2�=�A�D��N�� �#$�g�w�"7��Y��#8�4�#5�#5�a�#8��Q��M�UV�DV�Xo�X\�Xl�Xl�mn�Xo�py�Xz�@{�9|�#}�@G�IP�#Q��Y��#�)�)�!�,�G�+�d�(�(��+�,C�D�,@�,@��,C�G�,L�M�G�*�d�*�*�=��1�X�g�X��+F�O�$�O�G��r0c�6�|jj�Sra)r>r�r�s r.r�z129VAE.get_sd|s���%�%�0�0�2�2r0c�H�	|jdS#|jcYSxYw�Nr`)r4r�s r.r�zVAE.spacial_compression_decodes+��	&��%�%�b�)�)��	&��%�%�%����!c�H�	|jdS#|jcYSxYwr�)r3r�s r.razVAE.spacial_compression_encode�s+��	(��'�'��+�+��	(��'�'�'�r�c�T�	t|jdd�dz�S#YyxYw)Nri )r$r4r�s r.�temporal_compression_decodezVAE.temporal_compression_decode�s4��	��.��+�+�A�.�t�4�t�;�<�<��	��s� #�')NNNNN)r�r�r�)r�r�)i�r�r�)rr�r�)rrr�)ii)r�rr)rr�r�)r�r�r�r]r^rhr{r�r�r�r�r�rlr�r�r�r�r�rar�rr0r.r�r��sa��|�|[�	��b�\��S�[��>%�:�B(�T3�&�(�r0r�c��eZdZdd�Zd�Zy)�130StyleModelc��||_yra)r)rXrr8s   r.r]zStyleModel.__init__�s	����131r0c�8�|j|j�Sra)r�last_hidden_state)rX�inputs  r.�get_condzStyleModel.get_cond�s���z�z�%�1�1�2�2r0N)�cpu)r�r�r�r]r�rr0r.r�r��s���3r0r�c��tjj|d��}|j�}d|vr/tjj132j
ddddd��}nQd	|vr3tjjjj�}ntd133j|���|j|�t|�S)NT��	safe_load�style_embeddingrir�r�)�width�context_dim�num_head�n_layes�	num_tokenzredux_down.weightzinvalid style model {})rrB�load_torch_filer/�t2i_adapter�adapter�StyleAdapterrD�flux�redux�ReduxImageEncoder�	Exceptionr#r�r�)�	ckpt_path�134model_datar/rs    r.�load_style_modelr��s������,�,�Y�$�,�G�J��?�?��D��D� ��!�!�)�)�6�6�T�s�]^�hi�uv�6�w��	��	$��	�	���$�$�6�6�8���0�7�7�	�B�C�C�	���*�%��e��r0c�@�eZdZdZdZdZdZdZdZdZ	dZ135d	Zd136ZdZ
dZd
Zy)�CLIPTyperrxr�r�r�r�r�r��	�137�r��
N)r�r�r��STABLE_DIFFUSION�STABLE_CASCADE�SD3�STABLE_AUDIO�HUNYUAN_DIT�FLUX�MOCHI�LTXV�
HUNYUAN_VIDEO�PIXART�COSMOS�LUMINA2�WANrr0r.r�r��sD�����N�138�C��L��K��D�
�E��D��M�
�F�
�F��G�139�Cr0r�c��g}|D]2}|jtjj|d����4t	||||��S)NTr�)r:�	clip_typer9)r�rrBr��load_text_encoder_state_dicts)�140ckpt_pathsr:r�r9�	clip_data�ps      r.�	load_clipr��sQ���I�
��������4�4�Q�$�4�G�H��(��H[�gp�AN�O�Or0c�0�eZdZdZdZdZdZdZdZdZ	dZ141d	Zy142)�TEModelrrxr�r�r�r�r�r�r�N)r�r�r��CLIP_L�CLIP_H�CLIP_G�T5_XXL�T5_XL�T5_BASE�LLAMA3_8�143T5_XXL_OLD�144GEMMA_2_2Brr0r.r�r��s/��
�F�
�F�
�F�
�F�
�E��G��H��J��Jr0r�c��d|vrtjSd|vrtjSd|vrtjSd|vrI|d}|jddk(rtj145S|jddk(rtjSd|vrtjSd	|vrtjSd146|vrtjSd|vrtjSy)Nz+text_model.encoder.layers.30.mlp.fc1.weightz+text_model.encoder.layers.22.mlp.fc1.weightz*text_model.encoder.layers.0.mlp.fc1.weight�3encoder.block.23.layer.1.DenseReluDense.wi_1.weightr`ir��1encoder.block.23.layer.1.DenseReluDense.wi.weightz.encoder.block.0.layer.0.SelfAttention.k.weightz0model.layers.0.post_feedforward_layernorm.weightz.model.layers.0.post_attention_layernorm.weight)r�r�r�r�r�r�r�r�r�r�r�)r��weights  r.�detect_te_modelr��s���4��:��~�~��4��:��~�~��3�r�9��~�~��<��B��I�J���<�<���t�#��>�>�!�
�\�\�"�
��
%��=�=� �:�b�@��!�!�!�7�2�=�����9�R�?��!�!�!�7�2�=�����r0c��d}d}|D]5}||vs||vs�tjjj|�cSiS)Nr�r�)r�
text_encoders�sd3_clip�
t5_xxl_detect)r��weight_name�weight_name_oldr�s    r.�t5xxl_detectr�sI��G�K�I�O����"���2� 5��&�&�/�/�=�=�b�A�A���Ir0c�v�d}|D]1}||vs�tjjj|�cSiS)Nz&model.layers.0.self_attn.k_proj.weight)rr�
hunyuan_video�llama_detect)r�rr�s   r.rr�s=��:�K����"���&�&�4�4�A�A�"�E�E���Ir0c���|}Gd�d�}tt|��D]W}d||vr(tjj	||dd�||<�2d||vs�:||djdd�||d<�Yi}|�}i|_t|�dk(�r3t|d�}	|	tjk(r�|tjk(r,tj|_tj|_�n�|tj"k(r\tj$j&j'd	d147d	��|_tj$j&j(|_�n!tj*|_tj,|_�n�|	tj.k(rTtj$j0j2|_tj$j0j4|_�n�|	tj6k(�rR|tj"k(rftj$j&j&dd	d	d148d�t9|���|_tj$j&j(|_�n|tj:k(rbtj$j<j>dit9|���|_tj$j<j@|_�n�|tjBk(rbtj$jDjFdit9|���|_tj$jDjH|_�n|tjJk(rztj$jLjNdit9|���|_tj$jLjP|_|djSdd�|d<�n�tj$jTjVdit9|���|_tj$jTjX|_�n(|	tjZk(rbtj$j\jNdit9|���|_tj$j\j^|_�n�|	tj`k(rTtj$jbjd|_tj$jbjf|_�nL|	tjhk(rTtj$jjjl|_tj$jjjn|_�n�|	tjpk(rztj$jrjNditu|���|_tj$jrjv|_|djSdd�|d<�nX|tj"k(r\tj$j&j'd149d	d	��|_tj$j&j(|_�n�txjz|_txj||_�n�t|�d
k(�r@|tj"k(r�t|d�t|d�g}150tj$j&j&dtj~|151vtj|152vtj6|153vd�t9|���|_tj$j&j(|_�n�|tj�k(rTtj$j�j�|_tj$j�j�|_�n�|tj�k(rbtj$j�j�dit9|���|_tj$j�j�|_�n
|tj�k(ratj$j�j�ditu|���|_tj$j�j�|_n�tj�|_tj,|_nnt|�dk(r`tj$j&j&dit9|���|_tj$j&j(|_d}|D]R}|tjj�|�z
}tj$j�j�|||�\}}�Tt�|||||��}
|D]{}|
j�|�\}}t|�dkDr$t�j�dj�|��t|�dkDs�Xt�j�dj�|���}|
S)Nc��eZdZy)�1load_text_encoder_state_dicts.<locals>.EmptyClassN�r�r�r�rr0r.�154EmptyClassr�s��r0r
z#transformer.resblocks.0.ln_1.weightr��text_projectionrrztext_projection.weightFT)�clip_l�clip_g�t5�spiece_modelrxr�)r:r[r;r9�clip missing: {}zclip unexpected: {}r)Vrbr�rrB�clip_text_transformers_convert�	transposer?r�r�r�r�r�r�StableCascadeClipModelr$�StableCascadeTokenizerrAr�rr�SD3Tokenizer�SDXLRefinerClipModel�
SDXLTokenizerr��sd2_clip�SD2ClipModel�SD2Tokenizerr�rr��lt�ltxv_te�LTXVT5Tokenizerr��	pixart_t5�	pixart_te�PixArtTokenizerr�rM�te�WanT5TokenizerrBrE�mochi_te�MochiT5Tokenizerr�rK�CosmosT5Tokenizerr��aura_t5�AuraT5Model�AuraT5Tokenizerr��sa_t5�	SAT5Model�
SAT5Tokenizerr��lumina2r�LuminaTokenizerr�SD1ClipModel�SD1Tokenizerr�r��hydit�155HyditModel�HyditTokenizerr�r��	flux_clip�
FluxTokenizerr�r�hunyuan_video_clip�HunyuanVideoTokenizer�
SDXLClipModel�calculate_parameters�156long_clipl�model_options_long_clipr2r�r!r"r#rP)�state_dictsr:r�r9r�r
�ir;�clip_target�te_model�	te_modelsr[�cr$rZr[s                r.r�r��s����I�
�
��3�y�>�
"��0�I�a�L�@� �;�;�E�E�i�PQ�l�TV�XZ�[�I�a�L� �I�a�L�0�9B�1��FW�9X�9b�9b�cd�fg�9h�	�!��5�6�#��N��,�K��K��157�9�~���"�9�Q�<�0���w�~�~�%��H�3�3�3�#,�#C�#C�� �(1�(H�(H��%��h�l�l�*�#(�#6�#6�#?�#?�#H�#H�PU�^b�gl�#H�#m�� �(-�(;�(;�(D�(D�(Q�(Q��%�#,�#A�#A�� �(1�(?�(?��%�
����
'�$�2�2�;�;�H�H�K��$)�$7�$7�$@�$@�$M�$M�K�!�
����
'��H�L�L�(�#(�#6�#6�#?�#?�#H�#H�$I�PU�^c�hl�$I�p|�~G�qH�$I�� �(-�(;�(;�(D�(D�(Q�(Q��%��h�m�m�+�#(�#6�#6�#9�#9�#A�#A�#\�L�QZ�D[�#\�� �(-�(;�(;�(>�(>�(N�(N��%��h�o�o�-�#(�#6�#6�#@�#@�#J�#J�#e�\�Zc�Md�#e�� �(-�(;�(;�(E�(E�(U�(U��%��h�l�l�*�#(�#6�#6�#:�#:�#=�#=�#X��Y�@W�#X�� �(-�(;�(;�(?�(?�(N�(N��%�1:�1��1A�1A�.�RV�1W��~�.�#(�#6�#6�#<�#<�#E�#E�#`��U^�H_�#`�� �(-�(;�(;�(A�(A�(R�(R��%�
��+�+�
+�$�2�2�9�9�<�<�W�|�I�?V�W�K��$)�$7�$7�$>�$>�$P�$P�K�!�
����
&�$�2�2�:�:�F�F�K��$)�$7�$7�$?�$?�$O�$O�K�!�
����
(�$�2�2�8�8�B�B�K��$)�$7�$7�$=�$=�$K�$K�K�!�
��+�+�
+�$�2�2�:�:�=�=�X��Y�@W�X�K��$)�$7�$7�$?�$?�$O�$O�K�!�-6�q�\�-=�-=�n�d�-S�N�>�*��H�L�L�(�#(�#6�#6�#?�#?�#H�#H�PT�]b�gl�#H�#m�� �(-�(;�(;�(D�(D�(Q�(Q��%�#+�#8�#8�� �(0�(=�(=��%�	�Y��1�	�����$�(��1��6��	�RS��8U�V�I�$�2�2�;�;�D�D� H�G�N�N�^g�Lg�pw�p~�p~�CL�qL�QX�Q_�Q_�cl�Ql� H�p|�}F�pG� H�K��$)�$7�$7�$@�$@�$M�$M�K�!�
�(�.�.�
.�$�2�2�8�8�C�C�K��$)�$7�$7�$=�$=�$L�$L�K�!�
�(�-�-�
'�$�2�2�7�7�A�A�\�L�QZ�D[�\�K��$)�$7�$7�$<�$<�$J�$J�K�!�
�(�0�0�
0�$�2�2�@�@�S�S�n�Vb�cl�Vm�n�K��$)�$7�$7�$E�$E�$[�$[�K�!�(�6�6�K��$-�$;�$;�K�!�	�Y��1�	� �.�.�7�7�@�@�[�<�PY�CZ�[��� %� 3� 3� <� <� I� I����J�
���e�k�k�6�6�q�9�9�158�(-�(;�(;�(F�(F�(^�(^�_`�bp�r�)A�%��
����1D�Q[�lz�KX�Y�D�
���|�|�A����1��q�6�A�:��O�O�.�5�5�a�8�9��q�6�A�:��M�M�/�6�6�q�9�:�
��Kr0c�B�tjj|d��}tj|�}tj�r|j�}tjj|tj�tj���S)NTr�r<)rrBr�r�load_gligenr�should_use_fp16�halfrKrL�get_torch_device�unet_offload_device)r��datars   r.rErEZs����;�;�&�&�y�D�&�A�D����t�$�E��'�'�)��159�160������+�+�E�?O�?`�?`�?b�tD�tX�tX�tZ�+�[�[r0Tc�b�tjd�t|||d|d��\}}}	}161|�*t|d�5}t	j162|�}ddd�|dd}|d}
d	|vr�|d	d163k(rz|j
�}Gd�dtjjtjj�}|jd
||jj��|}|
jdi�jdd�}|�|j|�|||	fS#1swY��xYw)NzyWarning: The load checkpoint with config function is deprecated and will eventually be removed, please use the other one.FT)�164output_vae�output_clip�output_clipvisionr:�output_model�rrr?�cond_stage_config�parameterization�vc��eZdZy)�.load_checkpoint.<locals>.ModelSamplingAdvancedNrrr0r.�ModelSamplingAdvancedrUns��r0rV�model_samplingrU)r!r"�load_checkpoint_guess_config�open�yamlr�rrrW�ModelSamplingDiscrete�V_PREDICTION�add_object_patchr�model_configrBre)�config_pathr�rLrMr:r�rrr$r�_�stream�model_config_params�clip_configrZrVrUs                 r.�load_checkpointrdas7���O�O�P�Q�6�y�Z�ep�EJ�`s�BF�G��E�4��a�
�~�
�+�s�
#�v��^�^�F�+�F�$� ��/�(�3��%�&9�:�K��0�0��1�2�c�9����
�A�
��(<�(<�(R�(R�TY�Th�Th�Tu�Tu�
�
���/�1F�u�{�{�G_�G_�1`�a��E�����"�-�1�1�+�t�D�I������	�"��4����#$�
#�s�D%�%D.Fc��tjj|d��\}}	t|||||||||	��	}165|166�t	dj|���|167S)NT)�return_metadata)�te_model_optionsrV�)ERROR: Could not detect model type of: {})rrBr��load_state_dict_guess_configr]r#)r�rLrMrNr:rOr9rgr�rVr�s           r.rXrXyso���;�;�.�.�y�$�.�O�L�B��168&�r�:�{�DU�Wj�lx�{H�[k�v~��C�169�{��F�M�M�i�X�Y�Y��Jr0c	�v�d}	d}170d}d}d}
tj|�}tjj	||�}tjj||�}t
j�}tj|||��}|�5tjd�t|i��}|�y|dti��dfSt|j�}|j�d}|j!dd�|_|j!d|j!dd��}|�t
j$|||��}t
j&|||j�}|j)||�|j*�#|r!t-j.||j*d	�}171|r<t
j0||�}|j3|||�172�}|j5||�|rYtjj7||j8D�cic]}|d��c}d	��}|j;|�}t||�
�}|�r<|j=|��}|��'|j?|�}tA|�dkDr�tjj	|�}tC|||||��}	|	jE|d	��\}}tA|�dkDrmttGd�|��}tA|�dkDr%tjdjI|��n$tjJdjI|��tA|�dkDr:tjJdjI|��ntjd�|jM�}tA|�dkDr$tjJdjI|��|rytjNjQ||t
jR���}
tUjVd�k7r-tjXd�t
jZ|
gd	��|
|	||173fScc}w)N�rVzTWarning, This is not a checkpoint file, trying to load it as a diffusion model only.�r9)r��custom_operationsr6�weight_dtype��model_params�supported_dtypesrnTr�r���filter_keys)r�rV)r�r)r:r;r[r9)r�c��d|vxrd|vS)Nz.logit_scalez#.transformer.text_projection.weightrr�s r.r�z.load_state_dict_guess_config.<locals>.<lambda>�s��^�1�5L�5�Qv�~�Q�5r0rzclip unexpected {}:zVno CLIP/text encoder weights in checkpoint, the text encoder model will not be loaded.zleft over keys: {}r<r�z&loaded diffusion model directly to GPUr=).r�unet_prefix_from_state_dictrrBr;rnrrH�model_config_from_unetr!r"�load_diffusion_model_state_dictr��list�supported_inference_dtypes�174scaled_fp8rBrm�175unet_dtype�unet_manual_cast�set_inference_dtype�clip_vision_prefixr
�load_clipvision_from_sd�unet_inital_load_device�	get_model�load_model_weightsrC�vae_key_prefix�process_vae_state_dictr@�process_clip_state_dictr�r2r��filterr#rPr/rKrLrIr�r8rWrT) r�rLrMrNr:rOr9rgrVr$�176clipvisionrrrK�diffusion_model_prefixr[rnr4r^�diffusion_model�unet_weight_dtyper{�manual_cast_dtype�inital_load_devicer*�vae_sdr@�clip_sdrZr[�m_filter�	left_overs                                 r.riri�s����D��J�177�C��E��M�,�H�H��L�����1�1�"�6L�M�J��;�;�+�+�B�0F�G�L�"�3�3�5�K�"�9�9�"�>T�_g�h�L������n�o�9�"�B�O���"����s�b�z�4�8�8��\�D�D�E�����*���%2�%6�%6�7J�D�%Q�L�"��"�"�7�M�,=�,=�n�d�,S�T�J���%�0�0�j�[l�|H�I�178�(�9�9�*�k�S_�Sz�Sz�{���$�$�Z�1B�C��&�&�2��$�<�<�R��A`�A`�bf�g�J��-�E�E�j�R\�]���&�&�r�+A�J\�&�]��
� � ��%;�<�����6�6�r�<�Kf�Kf�;g�Kf�a�A�r�E�Kf�;g�uy�6�z���4�4�V�<���V�h�/���"�.�.�"�.�=���"�"�:�:�2�>�G��7�|�a��"�[�[�=�=�g�F�179��K�=P�ah�u�P`�a���|�|�G��|�=���1��q�6�A�:�#�F�+�BC�%D� E�H��8�}�q�(����(:�(A�(A�!�(D�E��
�
�&8�&?�&?��&B�C��q�6�A�:��M�M�"7�">�">�q�"A�B���� x�y����	�I�180�9�~����
�
�*�1�1�)�<�=���+�+�8�8��K�hx�iM�iM�iO�8�P�
�����e�!4�4��L�L�A�B��,�,�m�_�d�S��4��j�1�1��E<hs�181P6182c���|jdd�}tj|�}tjj||did��}t
|�dkDr|}tjj|�}tjj|�}tj�}tj|d�}|�|}	n�tj|d�}	|	�tj|	d�}|��ytj|�}|�ytjj|j�}183i}	|184D]F}||vr|j!|�|	|185|<�t#j$dj'|186||���Htj(�}t+|j,�}
|j.�d}|�tj0||
|��}n|}tj2|||j,�}|j5||�|jd|j6�|_|jd	d187�rd|j8d<|j;|	d�}|j=|�}|j?|	d�|jA�}t
|�dkDr$t#jBdj'|��tjDjG|||�
�S)Nr6r�Trrrz{} {}rorm�fp8_optimizationsF�fp8zleft over keys in unet: {}r<)$rBrrurrBrCr�r;rnrrHrv�convert_diffusers_mmdit� model_config_from_diffusers_unet�unet_to_diffusers�unet_configr~r!r"r#rIrxryrzr{r|r}rm�
optimizationsr�rJr�r/rWrKrL)r�r9r6r��temp_sdr[rnr4r^rW�diffusers_keysr*r5r�r{r�rr�s                  r.rwrw�s������g�t�,�E�-�H�H��L���k�k�3�3�B�9O�QS�8T�bf�3�g�G�188�7�|�a��
�����1�1�"�5�J��;�;�+�+�B�/�L�"�3�3�5�K�"�9�9�"�b�A�L����� �8�8��R�@����*�A�A�&�"�M�L��#��*�K�K�B�O�L��#��"�[�[�:�:�<�;S�;S�T�N��F�#����7�02���q�	�F�>�!�,�-��O�O�G�N�N�>�!�3D�a�$H�I�	$�&�9�9�;�N��\�D�D�E�����*����}�%�0�0�j�[l�|H�I�189��190�(�9�9�*�k�S_�Sz�Sz�{���$�$�Z�1B�C�%2�%6�%6�7J�L�Lj�Lj�%k�L�"����,�e�4�,0��"�"�5�)��"�"�6�2�.�E��H�H�^�$�E�	���V�R�(����	�I�191�9�~������1�8�8��C�D����+�+�E�{�[i�+�j�jr0c���tjj|�}t||��}|�>t	j192dj
|��tdj
|���|S)NrlzERROR UNSUPPORTED UNET {}rh)rrBr�rwr!�errorr#r])�	unet_pathr9r�rs    r.�load_diffusion_modelr�s[��	���	$�	$�Y�	/�B�+�B�m�L�E��}��
�
�1�8�8��C�D��F�M�M�i�X�Y�Y��Lr0c�J�tjd�t|d|i��S)NzeThe load_unet function has been deprecated and will be removed please switch to: load_diffusion_modelr6rl)r!r"r�)r�r6s  r.�	load_unetr�s!���O�O�{�|��	�'�5�9I�J�Jr0c�J�tjd�t|d|i��S)Nz{The load_unet_state_dict function has been deprecated and will be removed please switch to: load_diffusion_model_state_dictr6rl)r!r"rw)r�r6s  r.�load_unet_state_dictr�s'���O�O�R�S�*�2�g�u�=M�N�Nr0c���d}|g}|�/|j|j��|j�}d}	|�|j�}	tj|d��|�|j�nd}193|j194j
||	|195�}|D]196}||||<�|D]+}||}
|
j�r�|
j�||<�-tjj|||��y)NT)�force_patch_weightsrk)r�r�r�rrTr�state_dict_for_saving�
is_contiguous�197contiguousrrB�save_torch_file)�output_pathrr$rr
rV�198extra_keysr��load_modelsr��clip_vision_sdr�r*�ts              r.�save_checkpointr�s����G��'�K������4�?�?�,�-��+�+�-��
�F�199��������$�$�[�d�K�-8�-D�'�[�'�'�)�$�N�	���	*�	*�7�F�N�	K�B�
���1�
��1������q�E����� ��L�L�N�B�q�E��200201�K�K����K�(��Cr0)NNTTNNNra)L�202__future__rrGr��enumrr!rr�comfy.utilsr�ldm.models.autoencoderrr	�ldm.cascade.stage_ar203�ldm.cascade.stage_c_coderr�ldm.audio.autoencoderr�comfy.ldm.genmo.vae.model�1comfy.ldm.lightricks.vae.causal_video_autoencoder�comfy.ldm.cosmos.vae�comfy.ldm.wan.vaerZr�r�r
rrrrr�comfy.text_encoders.sd2_clip�comfy.text_encoders.sd3_clip�comfy.text_encoders.sa_t5�comfy.text_encoders.aura_t5�comfy.text_encoders.pixart_t5�comfy.text_encoders.hydit�comfy.text_encoders.flux�comfy.text_encoders.long_clipl�comfy.text_encoders.genmo�comfy.text_encoders.lt�!comfy.text_encoders.hunyuan_video�comfy.text_encoders.cosmos�comfy.text_encoders.lumina2�comfy.text_encoders.wan�comfy.model_patcher�204comfy.lora�comfy.lora_convert�comfy.hooks�comfy.t2i_adapter.adapter�comfy.taesd.taesd�comfy.ldm.flux.reduxr/r2r�r�r�r�r�r�r�r�rrr�rErdrXrirwr�r�r�r�rr0r.�<module>r�s���"�����"�#�E�'�3�2� �8������������#�#� �"�$� ��%� ��(�!�"������ ���(�>f.�f.�PS�S�j3�3�205�

�t�

� /3�h�>W�>W�gi�O�	�d�	��0��/1�d�V^�Vo�Vo�@B�f�P[��08<��af�}A�PT�df�y{��15�$�Z_�uy�IM�]_�rt�C�N2�b79�;k�|35��K�O�.2�t��X\�ik�Dr0