CoolFace
Apppublic

fred-dev/comfy_ui_ali

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

2���g�/����ddlZddlmZddlZd�ZGd�d�ZGd�de�ZGd�d	e�ZGd3�d�ZGd�d
ejj�ZGd�de�ZGd�dejj�Z
Gd�de
�Zd�ZGd�dejj�ZGd�de�Zdedefd�ZGd�dejj�Zy)�N)�make_beta_schedulec���d||zdzz}|j�}|dj�}|dj�}||z}||||z4zz}|dz}d|d<d|z5|zdzS)N�r������gj�_'�Jj>��?)�sqrt�clone)�sigmas�alphas_cumprod�alphas_bar_sqrt�alphas_bar_sqrt_0�alphas_bar_sqrt_T�6alphas_bars      �_/Users/fredrodrigues/Library/CloudStorage/Dropbox/Code/comfyui_hardware/comfy/model_sampling.py� rescale_zero_terminal_snr_sigmasrs����6�F�?�a�/�0�N�$�)�)�+�O�(��*�0�0�2��'��+�1�1�3���)�*�O��(�,=�@Q�,Q�R�R�O�!�!�#�J�+�J�r�N�
��^�z�)�c�1�1�c�&�eZdZd�Zd�Zdd�Zd�Zy)�EPSc��|j|jddd|jdz7zz�}||dz|jdzzdzzS�Nr�rrr��view�shape�ndim�8sigma_data��self�sigma�noises   r�calculate_inputzEPS.calculate_inputsN���9�10�5�;�;�r��?�T�U�Z�Z�!�^�-D�D�E�����11�T�_�_��%9�9�c�A�A�Arc�t�|j|jddd|jdz12zz�}|||zz13S�Nrr�rrr�rr �model_output�model_inputs    r�calculate_denoisedzEPS.calculate_denoised�?���14�15�5�;�;�r��?�T�\�5F�5F��5J�-K�K�L���\�E�1�1�1rc��|j|jddd|jdz16zz�}|r|tjd|dzz�z}n||z}||z
}|S)Nrr��?g@)rrr�torchr	�rr r!�latent_image�max_denoises     r�
noise_scalingzEPS.noise_scaling!sc���17�18�5�;�;�r��?�T�U�Z�Z�!�^�-D�D�E����E�J�J�s�U�c�\�'9�:�:�E��E�M�E�
�����rc��|S�N��rr �latents   r�inverse_noise_scalingzEPS.inverse_noise_scaling+s���
rN�F��__name__�19__module__�__qualname__r"r)r1r7r4rrrrs��B�2��rrc��eZdZd�Zy)�V_PREDICTIONc��|j|jddd|jdz20zz�}||jdzz|dz|jdzzz||z|jz|dz|jdzzdzzz21Srrr&s    rr)zV_PREDICTION.calculate_denoised/�����22�23�5�;�;�r��?�T�\�5F�5F��5J�-K�K�L���T�_�_��1�1�U�a�Z�$�/�/�UV�BV�5V�W�Zf�in�Zn�qu�rA�rA�[A�EJ�NO�EO�RV�Ra�Ra�ef�Rf�Ef�kn�Dn�[n�n�	nrN�r:r;r<r)r4rrr>r>.���nrr>c��eZdZd�Zy)�EDMc��|j|jddd|jdz24zz�}||jdzz|dz|jdzzz||z|jz|dz|jdzzdzzzSrrr&s    rr)zEDM.calculate_denoised4r@rNrAr4rrrDrD3rBrrDc�&�eZdZd�Zd�Zdd�Zd�Zy)�CONSTc��|Sr3r4rs   rr"zCONST.calculate_input9����rc�t�|j|jddd|jdz25zz�}|||zz26Sr$r%r&s    rr)zCONST.calculate_denoised<r*rc��|j|jddd|jdz27zz�}||zd|z28|zzS�Nrrr,r%r.s     rr1zCONST.noise_scaling@sD���29�30�5�;�;�r��?�T�U�Z�Z�!�^�-D�D�E���u�}��e��|�;�;�;rc�t�|j|jddd|jdz31zz�}|d|z32zSrLr%r5s   rr7zCONST.inverse_noise_scalingDs;���33�34�5�;�;�r��?�T�V�[�[�1�_�-E�E�F����u��%�%rNr8r9r4rrrGrG8s���2�<�&rrGc�d��eZdZd	�fd�	Z		d35d�Zd�Zed��Zed��Zd�Z	d�Z36d�Z�xZS)�ModelSamplingDiscretec	�:��t�|��|�
|j}ni}|jdd�}|jdd�}|jdd�}|jdd�}|�|jd	d37�}|j	d||||d|��d
|_y)N�
beta_schedule�linear�linear_startg_�Q�K?�38linear_endg�~j�t��?�	timesteps���zsnrF�����Mb�?)�given_betasrQrUrSrT�cosine_srWr,)�super�__init__�sampling_settings�get�_register_scheduler)	r�model_configrWr]rQrSrTrU�	__class__s	        �rr\zModelSamplingDiscrete.__init__Is����
�����#� ,� >� >�� "��)�-�-�o�x�H�
�(�,�,�^�W�E��&�*�*�<��?�39�%�)�)�+�t�<�	��<�$�(�(���7�D����D�
�Yb�q}�KU�`d�ko��	p���rc��|�|}nt|||||��}d|z40}	tj|	d��}41|j\}t	|�|_||_||_d|42z43|44zdz}|rt|�}|j|�y)N)rSrTrZr,r��dimrr)45rr-�cumprodr�int�
num_timestepsrSrTr�46set_sigmas)rrYrQrUrSrTrZrW�betas�alphasrrs            rr_z(ModelSamplingDiscrete._register_schedule\s����"��E�&�}�i�l�gq�}E�F�E��e������v�1�5���[�[�47�	� ��^���(���$����~�%��7�C�?���5�f�=�F�����rc��|jd|j��|jd|j�j��y)Nr�48log_sigmas)�register_buffer�float�log)rrs  rrhz ModelSamplingDiscrete.set_sigmasts7�����X�v�|�|�~�6����\�6�:�:�<�+=�+=�+?�@rc� �|jdS�Nr�r�rs r�	sigma_minzModelSamplingDiscrete.sigma_minx����{�{�1�~�rc� �|jdS�Nrrrrss r�	sigma_maxzModelSamplingDiscrete.sigma_max|����{�{�2��rc�8�|j�}|j|jj�|jdd�dfz49}|j	�jd��j
|j�j|j�S)Nrrc)ro�torl�device�abs�argminrr)rr �	log_sigma�distss    r�timestepzModelSamplingDiscrete.timestep�so���I�I�K�	����T�_�_�3�3�4�t���q�$�w�7O�O���y�y�{�!�!�a�!�(�-�-�e�k�k�:�=�=�e�l�l�K�Krc���tj|j�j|jj50�dt
|j�dz51��}|j�j�}|j�j�}|j�}d|z52|j|z||j|zz}|j�j|j53�S)Nrr)�min�max)
r-�clamprnr{rlr|�lenr�floor�long�ceil�frac�exp)rr��t�low_idx�high_idx�wrs       rr zModelSamplingDiscrete.sigma�s����K�K����(�+�+�D�O�O�,B�,B�C��QT�UY�U`�U`�Qa�de�Qe�g���'�'�)�.�.�"���6�6�8�=�=�?��
�F�F�H����U�d�o�o�g�6�6��T�_�_�X�=V�9V�V�	��}�}��!�!�(�/�/�2�2rc��|dkry|dk\ryd|z54}|jtj|dz��j�S)N��33��d��Ar,g8�@)r r-�tensor�item�r�percents  r�percent_to_sigmaz&ModelSamplingDiscrete.percent_to_sigma�sD���c�>���c�>����-���z�z�%�,�,�w���7�8�=�=�?�?r)NN)NrRrV�-C��6?g{�G�z�?rXF)
r:r;r<r\r_rh�propertyrtrxr�r r��
__classcell__�ras@rrOrOHsV����&VZ�RW� �0A���������L�553�@rrOc��eZdZd�Zd�Zy)�ModelSamplingDiscreteEDMc�(�d|j�zS�Ng�?�ro�rr s  rr�z!ModelSamplingDiscreteEDM.timestep�����e�i�i�k�!�!rc�(�|dzj�Sr��r��rr�s  rr zModelSamplingDiscreteEDM.sigma�����4��$�$�&�&rN�r:r;r<r�r r4rrr�r��s��"�'rr�c�X��eZdZd�fd�	Zd�Zed��Zed��Zd�Zd�Z	d�Z56�xZS)	�ModelSamplingContinuousEDMc����t�|��|�
|j}ni}|jdd�}|jdd�}|jdd�}|j	|||�y)Nrtg����Mb`?rxg^@rr,)r[r\r]r^�set_parameters)rr`r]rtrxrras      �rr\z#ModelSamplingContinuousEDM.__init__�sn���
�����#� ,� >� >�� "��%�)�)�+�u�=�	�%�)�)�+�u�=�	�&�*�*�<��=�57����I�y�*�=rc��||_tjtj|�tj|�d�j�}|j
d|�|j
d|j	��y)NrVrrl)rr-�linspace�mathror�rm)rrtrxrrs     rr�z)ModelSamplingContinuousEDM.set_parameters�s\��$���������� 3�T�X�X�i�5H�$�O�S�S�U�����X�v�.����\�6�:�:�<�8rc� �|jdSrqrrrss rrtz$ModelSamplingContinuousEDM.sigma_min�rurc� �|jdSrwrrrss rrxz$ModelSamplingContinuousEDM.sigma_max�ryrc�(�d|j�zSr�r�r�s  rr�z#ModelSamplingContinuousEDM.timestep�r�rc�(�|dzj�Sr�r�r�s  rr z ModelSamplingContinuousEDM.sigma�r�rc���|dkry|dk\ryd|z58}tj|j�}tjtj|j�|z59|z|z�S�Nr�r�r,)r�rortr�rx)rr��
log_sigma_mins   rr�z+ModelSamplingContinuousEDM.percent_to_sigma�s\���c�>���c�>����-��������0�
��x�x����$�.�.�1�M�A�W�L�}�\�]�]rr3�r:r;r<r\r�r�rtrxr�r r�r�r�s@rr�r��sE���60>�9���������"�'�^rr�c��eZdZd�Zd�Zy)�ModelSamplingContinuousVc�J�|j�tjzdzS�Nr)�atanr��pir�s  rr�z!ModelSamplingContinuousV.timestep�s���z�z�|�d�g�g�%��)�)rc�J�|tjzdzj�Sr�)r�r��tanr�s  rr zModelSamplingContinuousV.sigma�s���4�7�7�"�Q�&�+�+�-�-rNr�r4rrr�r��s��*�.rr�c�2�|dk(r|S||zd|dz61|zzzS)Nr,rr4)�alphar�s  r�time_snr_shiftr��s*����|����1�9��U�Q�Y�!�O�+�,�,rc�Z��eZdZd�fd�	Zd	d�Zed��Zed��Zd�Zd�Z	d�Z62�xZS)63�ModelSamplingDiscreteFlowc���t�|��|�
|j}ni}|j|j	dd�|j	dd���y)N�shiftr,�64multiplierrV)r�r��r[r\r]r�r^�rr`r]ras   �rr\z"ModelSamplingDiscreteFlow.__init__�sW���
�����#� ,� >� >�� "�����"3�"7�"7���"E�Rc�Rg�Rg�ht�vz�R{��|rc��||_||_|jtjd|dzd�|z|z�}|jd|�y�Nrr)r�r�r r-�arangerm)rr�rUr��tss     rr�z(ModelSamplingDiscreteFlow.set_parameters�sI����65�$���
�Z�Z����a��Q���:�Y�F�*�T�
U�����X�r�*rc� �|jdSrqrrrss rrtz#ModelSamplingDiscreteFlow.sigma_min�rurc� �|jdSrwrrrss rrxz#ModelSamplingDiscreteFlow.sigma_max�ryrc� �||jzSr3)r�r�s  rr�z"ModelSamplingDiscreteFlow.timestep�s���t���&�&rc�H�t|j||jz�Sr3)r�r�r�r�s  rr zModelSamplingDiscreteFlow.sigma�s���d�j�j�(�T�_�_�*D�E�Erc�L�|dkry|dk\ryt|jd|z66�S�Nr�r,)r�r�r�s  rr�z*ModelSamplingDiscreteFlow.percent_to_sigma�s+���c�>���c�>���d�j�j�#��-�8�8rr3)r,rVrVr�r�s@rr�r��sF���}�+���������'�F�9rr�c�:��eZdZd�fd�	Zdd�Zd�Zd�Zd�Z�xZS)�StableCascadeSamplingc���t�|��|�
|j}ni}|j|j	dd��y)Nr�r,r�r�s   �rr\zStableCascadeSampling.__init__�sB���
�����#� ,� >� >�� "�����-�1�1�'�3�?�@rc���||_tj|�|_tj|jd|jzztj67zdz�dz|_d|_tj|jtj��}t|j�D](}|dz|jz}|j|�||<�*|j|�y)Nrrr�')�dtype)
r�r-r�rZ�cosr��_init_alpha_cumprodrg�empty�float32�ranger rh)rr�rZr�xr�s      rr�z$StableCascadeSampling.set_parameterss�����68����X�.��
�#(�9�9�T�]�]�a�$�-�-�>O�-P�SX�S[�S[�-[�^a�-a�#b�fg�#g�� �#������d�0�0����G���t�)�)�*�A��Q��$�,�,�,�A��69�70�1�
�F�1�I�+�	
����rc���tj||jzd|jzztjzdz�dz|jz}|j71dk7rc|}|d|z72zj
�}|dtjdtj|j73�z�zz
}|j�}|jdd�}d|z74|zdzS)Nrrrr,r�g��H.��?)75r-r�rZr�r�r�ror��sigmoidr�)rr��
alpha_cumprod�var�logSNRs     rr zStableCascadeSampling.sigmas������H�t�}�}�$<��T�]�]�AR�#S�V[�V^�V^�#^�ad�#d�e�ij�j�mq�nF�nF�F�
��:�:����C��1�S�5�k�&�&�(�F��a�%�)�)�C�%�,�,�t�z�z�*B�$B�C�C�C�F�"�N�N�,�M�%�+�+�F�F�;�
��]�"�m�3��;�;rc�:�d||zdzz}|jdd�}|jj|j�|jj|j�}}||zdzj�tjdzzd|zz|z76}|S)Nrrr,r)r�rZr{r|r��acosr-r�)rr r��s�min_varr�s      rr�zStableCascadeSampling.timestep s����E�E�M�Q�&�'���i�i��3����]�]�%�%�c�j�j�1�4�3K�3K�3N�3N�s�z�z�3Z�7���W�}��$�
*�
*�
,����3��
?�A��E�J�Q�N���rc�l�|dkry|dk\ryd|z77}|jtj|��Sr�)r r-r�r�s  rr�z&StableCascadeSampling.percent_to_sigma's7���c�>���c�>����-���z�z�%�,�,�w�/�0�0rr3)r,rX)	r:r;r<r\r�r r�r�r�r�s@rr�r��s���A� �78<��1rr��mur c�p�tj|�tj|�d|zdz79|zzzS)Nr)r�r�)r�r r�s   r�flux_time_shiftr�1s/���8�8�B�<�4�8�8�B�<�1�q�5�1�9��*>�>�?�?rc�Z��eZdZd�fd�	Zd	d�Zed��Zed��Zd�Zd�Z	d�Z80�xZS)81�ModelSamplingFluxc���t�|��|�
|j}ni}|j|j	dd���y)Nr��ffffff�?)r�r�r�s   �rr\zModelSamplingFlux.__init__5sE���
�����#� ,� >� >�� "�����"3�"7�"7���"F��Grc��||_|jtjd|dzd�|z�}|j	d|�yr�)r�r r-r�rm)rr�rUr�s    rr�z ModelSamplingFlux.set_parameters>s=����82�
�Z�Z����a��Q���:�Y�F�
H�����X�r�*rc� �|jdSrqrrrss rrtzModelSamplingFlux.sigma_minCrurc� �|jdSrwrrrss rrxzModelSamplingFlux.sigma_maxGryrc��|Sr3r4r�s  rr�zModelSamplingFlux.timestepKrIrc�0�t|jd|�S)Nr,�r�r�r�s  rr zModelSamplingFlux.sigmaNs���t�z�z�3��9�9rc�N�|dkry|dk\ryt|jdd|z83�Sr�r�r�s  rr�z"ModelSamplingFlux.percent_to_sigmaQs-���c�>���c�>���t�z�z�3��g�
�>�>rr3)r�r�r�r�s@rr�r�4sE���H�+�84���������:�?rr�)r-�'comfy.ldm.modules.diffusionmodules.utilrr�rrr>rDrG�nn�ModulerOr�r�r�r�r�r�rnr�r�r4rr�<module>r�s����F��2�&��,n�3�n�85n�,�n�86&�&� K@�E�H�H�O�O�K@�Z'�4�'�*^������*^�Z.�9�.�-�87#9������#9�J31�1�31�l@��@�e�@�"?������"?r