CoolFace
Apppublic

cocktailpeanut/DiffRhythm

sourceHugging Faceapache-2.0updated 1y agoView on Hugging Face
10likes
cfm.cpython-312.pyc65 linesDownload Raw Back to __pycache__
1�

2�Ggv'����dZddlmZddlmZddlmZddlZddlmZddlmcm	Z3ddlmZddl
mZdd	lmZdd4lmZmZmZmZmZmZGd�dej0�Zy)
z\5ein notation:6b - batch7n - sequence8nt - text sequence9nw - raw wave length10d - dimension11�)�annotations)�Callable)�randomN)�nn)�pad_sequence)�odeint)�MelSpec)�default�exists�list_str_to_idx�list_str_to_tensor�lens_to_mask�mask_from_frac_lengthsc����eZdZded��ddddddf									d�fd	�
Zed12��Zej�ddddddd
dddddd�											dd��Z	ddddd�							dd�Z13�xZS)�CFM��euler)�methodg333333�?g�������?N)gffffff�?��?Fc14�15��t�|��||_||_||_||_||_|j}16|17|_||_||_	||_18|	|_|	r tjddddd��|_yy)Nii�T皙�����?)�batch_first�dropout)�super�__init__�frac_lengths_mask�num_channels�audio_drop_prob�cond_drop_prob�transformer�dim�sigma�
odeint_kwargs�vocab_char_map�use_style_promptr�GRU�19prompt_rnn)�selfr!r#r$rr rrr%r&r"�	__class__s           ��R/home/node59_tmpdata3/zqning/workspace/F5-TTS/exps/styleprompt/f5_tts/model/cfm.pyrzCFM.__init__!s���� 	����!2���(��� /���,���'����o�o�������20�+���-��� 0���� �f�f�S�$��t�S�Q�D�O��c�H�t|j��jS)N)�next�21parameters�device)r)s r+r0z22CFM.deviceMs���D�O�O�%�&�-�-�-r,� rir)�style_prompt�lens�steps�cfg_strength�sway_sampling_coef�seed�max_duration�vocoder�no_ref_audio�duplicate_test�t_inter�	edit_maskc	�D	����� �!��j�t�j��jtj23k(r|j
�}|jdk(rB�j|�}|jddd�}|jd�jk(sJ�g|jdd�|j��\}}}t|�s(t	j|f||tj��}t!�t"�rit�j$�r&t'��j$�j)|��nt+��j)|���jd|k(sJ�t��r�dk7j-d��}t/|�}|�||z}t!|t0�r(t	j|f||tj��}t	j2|dz|�}|j5|24��}|j7�}25|
r"t9j:|dd||26d|zz27fd�	�}t9j:|ddd|28|z29fd�	�}t9j:|d|30|jdz31fd32�	�}|j=d�}t	j>||t	j@|��� |dkDrt/|��nd�|rt	j@|�}�jBr2|�0�jDjG|�\}�!�!jId��!nd�!���� �!�fd�}g}|D]h}t|	�rt	jJ|	�|jMt	jN|�j�j� j����jtQ|dd�
�}d}|
r!|}d|z33|z|zz}t1|d|z34z�}t	jR|d|�j� j��}|�5||t	jTtjVdz|z�dz35|zzz}tY|||fi�jZ��}|d}|}t	j>|||�}t|�r|jddd�}||�}||fS)N�rr�����)r0�dtype)r")�maxr)�valueFc�����j|��	|�ddd�jr�nd��	}�dkr|S�j|��	|�ddd�jr�nd��	}|||z36�zzS)NF)	�x�cond�text�time�mask�drop_audio_cond�	drop_text�drop_prompt�	style_embg�h㈵��>T)r!r&)37�trE�pred�	null_predr5rIr)�	step_condrMrGs38    ������r+�fnzCFM.sample.<locals>.fn�s����39�#�#��)�$�Q�T�SX�di�w|�'+�'<�'<�)�$�$��D��d�"����(�(��)�$�Q�T�SW�cg�uy�'+�'<�'<�)�$�)��I��4�)�+�|�;�;�;r,T)�
padding_valuer).�evalr.r/rA�torch�float16�half�ndim�mel_spec�permute�shaperr0r�full�long�40isinstance�listr%r�tor
�sumr�int�maximum�clamp�amax�F�pad�	unsqueeze�where�41zeros_liker&r(�forward�squeeze�manual_seed�append�randnr�linspace�cos�pirr$)"r)rFrG�durationr2r3r4r5r6r7r8r9r:r;r<r=�batch�cond_seq_lenr0�	text_lens�	cond_mask�	test_cond�_rR�y0�dur�t_startrN�42trajectory�sampled�outrIrQrMs"` `    `                       @@@r+�samplez43CFM.sampleQs#���(	
�	�	������!�"�(�(�E�M�M�9��9�9�;�D��9�9��>��=�=��&�D��<�<��1�a�(�D��:�:�b�>�T�%6�%6�6�6�6�&B�t�z�z�"�1�~�&B�t�{�{�&B�#��|�V��d�|��:�:�u�h��V�5�:�:�V�D��d�D�!��d�)�)�*�&�t�T�-@�-@�A�D�D�V�L��)�$�/�2�2�6�:���:�:�a�=�E�)�)�)��$�<����(�(�R�(�0�I�44!��&�	�� �!�I�-�I��h��$��z�z�5�(�H�V�5�:�:�V�H��=�=����8�4���>�>�l�>�3���}�}�������d�Q��<���L�HX�9X�$Y�ad�e�I��u�u�T�A�q�!�\�L�%@�A��M���E�E�)�a��	����8K�)K�%L�TY�Z�	��'�'��+�	��K�K��t�U�-�-�d�3�45�	��1�9���)�D��D���#�#�D�)�D�� � �\�%=��?�?�2�2�<�@�L�A�y�!�)�)�!�,�I��I�	<�	<�*���	f�C��d�|��!�!�$�'��I�I�e�k�k�#�t�'8�'8����T]�Tc�Tc�d�e�	f��"�A�4�
@������G��g�+��#�g�	�&9�9�B����W��-�.�E��N�N�7�A�u�T�[�[�	���X���)��&�%�)�)�E�H�H�q�L�1�4D�*E��*I�A�*M�N�N�A��B��A�<��);�);�<�46��R�.�����k�k�)�T�3�/���'�?��+�+�a��A�&�C��#�,�C��J��r,)r3r2�style_prompt_lens�noise_schedulerc47�@�g|jdd�|j�|j�|j��\}}}	}48}t	|�stj|f||49��}t||��}tj|f|j��j�j|j�}
t||
�}t	|�r||z}|}tj|�}tj|f|	|j��}|jd�jd�}d|z50|z||zz}||z51}tj |dtj"|�|�}t%�|j&k}t%�|j(krd}nd	}t%�|j(krd}nd	}|j*r�t52j,j.j0j3|j5dd�|j7�dd	�53�}|j8j;|�\}}|j=�}|j?||||||||j*rnd��}tAjB||d�
�}||}|jE�||fS)Nr?)r0)�length)rAr0r@r).NTF)r�enforce_sorted)rErFrGrHrJrKrLrM�none)�	reduction)#r[rAr0r#rrUr\r�zeros�float�uniform_rr�54randn_like�randrhrirjrrr r&r�utils�rnn�pack_padded_sequence�	transpose�cpur(rkrlr!rf�mse_loss�mean)r)�inprGr3r2r�r�rt�seq_lenrAr0�_σ1rI�frac_lengths�rand_span_mask�x1�x0rHrN�φ�flowrFrJrKrL�packed_style_promptryrMrO�losss                              r+rkzCFM.forward�s���/a�s�y�y��!�}�.`�c�i�i�.`����.`�VZ�V`�V`�.`�+��w��v�t��d�|��:�:�u�h���?�D��D��1��R�u�{�{�E�8�D�K�K�@�F�F�H�Q�Q�SW�Si�Si�j��/��l�C���$�<��d�"�N����
�
�b�
!���z�z�5�(�%����D��
�N�N�2��(�(��,���!�e�r�\�A��F�
"���B�w���{�{�>�)�4�e�6F�6F�r�6J�B�O��!�(�T�%9�%9�9���8�d�)�)�)��I��I��8�d�)�)�)��K��K�� � �"'�(�(�.�.�"4�"4�"I�"I�,�J`�J`�ab�de�Jf�hy�h}�h}�h�NR�ch�"I�#i���?�?�2�2�3F�G�L�A�y�!�)�)�+�I�����t�$�T�?�^g�vA�#'�#8�#8�i�d� �55���z�z�$���7���N�#���y�y�{�D�$�&�&r,)56r!z	nn.Moduler$�dictrztuple[float, float]r%zdict[str:int] | Noner&�bool)rF�float['b n d'] | float['b nw']rG�int['b nt'] | list[str]rszint | int['b']r3�int['b'] | Noner7z57int | Noner9z0Callable[[float['b d n']], float['b nw']] | None)r�r�rGr�r3r�r�z58str | None)�__name__�59__module__�__qualname__r�r�propertyr0rU�no_gradr�rk�
__classcell__)r*s@r+rr s=����"��60�61���1;�/3�!&�*R��*R��	*R�/�*R�-�*R��*R�X�.��.��U�]�]�_�� $������DH�����#I�,�I�&�I�!�	I��I��I�B�I��I�`!%�� �&*�L'�
+�L'�&�L'�62�L'�$�L'r,r)�__doc__�63__future__r�typingrrrUr�torch.nn.functional�64functionalrf�torch.nn.utils.rnnr�torchdiffeqr�f5_tts.model.modulesr	�f5_tts.model.utilsr65rrr
rr�Moduler�r,r+�<module>r�sF���#�������+��(���I'�"�)�)�I'r,