§
    ÎÐjý  ã                   ón  — d dl mZ ddlmZ d dlZd dlZd dlmZ d dl	m
Z ddlmZ i dd	“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“d$d%“d&d'“d(d)“d*d+d,d-d.d/d0œ¥Zd1efd2„Zd1eeeef                  fd3„Zd4Zd5d5d6œZd7d8d9d:ed7         d;œd<d=d>d:ed<         d;œgZd?„ Zd@„ Z G dA„ dB¦  «        ZdS )Cé    )Ú
merge_helpé   )ÚCHATTERBOX_HELPN)Úmps_device_or)Úfiles_locator)ÚTTS_MONOLOGUE_PROMPTÚarÚArabicÚdaÚDanishÚdeÚGermanÚelÚGreekÚenÚEnglishÚesÚSpanishÚfiÚFinnishÚfrÚFrenchÚheÚHebrewÚhiÚHindiÚitÚItalianÚjaÚJapaneseÚkoÚKoreanÚmsÚMalayÚnlÚDutchÚnoÚ	NorwegianÚplÚPolishÚ
PortugueseÚRussianÚSwedishÚSwahiliÚTurkishÚChinese)ÚptÚruÚsvÚswÚtrÚzhÚreturnc                  ó   — t           S ©N)Ú_FALLBACK_SUPPORTED_LANGUAGES© ó    úEC:\Users\johnn\OneDrive\Documents\AI\models\TTS\chatterbox_handler.pyÚ_get_supported_languagesr>   '   s   € Ý(Ð(r<   c                  óz   — t          ¦   «         } d„ t          |                      ¦   «         d„ ¬¦  «        D ¦   «         S )Nc                 ó(   — g | ]\  }}|› d |› d�|f‘ŒS )z (ú)r;   )Ú.0ÚcodeÚnames      r=   ú
<listcomp>z)_get_language_choices.<locals>.<listcomp>-   sB   € ð ð ð áˆD�$ð Ð	Ð	�DÐ	Ð	Ð	˜TÐ"ðð ð r<   c                 ó   — | d         S )Nr   r;   )Úitems    r=   ú<lambda>z'_get_language_choices.<locals>.<lambda>/   s
   € ÀTÈ!ÄW€ r<   )Úkey)r>   ÚsortedÚitems)Ú	languagess    r=   Ú_get_language_choicesrM   +   sI   € Ý(Ñ*Ô*€Iðð å  §¢Ñ!2Ô!2Ð8LÐ8LÐMÑMÔMðñ ô ð r<   g      @g      à?)ÚexaggerationÚpacerN   z.Emotion Exaggeration (0.25-2.0, 0.5 = neutral)ÚExaggerationÚfloat)ÚidÚlabelrD   ÚtypeÚdefaultrO   zPace (0.2-1.0)ÚPacec                  óp   — dddddddddgdt          ¦   «         ddd	œdd
„ t          D ¦   «         t          ddœS )NTFr   Ú Ú
chatterboxzVoice to Replicater   ÚLanguage)ÚchoicesrU   rS   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r;   )Úcopy)rB   Úones     r=   rE   z-_get_chatterbox_model_def.<locals>.<listcomp>[   s    € ÐMÐMÐM¨3˜CŸHšH™JœJÐMÐMÐMr<   zWrite Speech)Ú
audio_onlyÚimage_outputsÚsliding_windowÚguidance_max_phasesÚno_negative_promptÚinference_stepsÚtemperatureÚimage_prompt_types_allowedÚprofiles_dirÚaudio_guide_labelÚmodel_modesÚany_audio_promptÚcustom_settingsÚ!text_prompt_enhancer_instructionsÚprompt_enhancer_button_label)rM   ÚCHATTERBOX_CUSTOM_SETTINGSr   r;   r<   r=   Ú_get_chatterbox_model_defro   I   sg   € àØØØ Ø"Ø ØØ&(Ø%˜Ø1å,Ñ.Ô.ØØð
ð 
ð
 !ØMÐMÕ2LÐMÑMÔMÝ-AØ(6ð'ð ð r<   c                  ó   — g d¢} ddg| gdœS )N)zve.safetensorszs3gen.ptz$grapheme_mtl_merged_expanded_v1.jsonzconds.ptzCangjie5_TC.jsonzDeepBeepMeep/TTSrY   )ÚrepoIdÚsourceFolderListÚfileListr;   )Úmandatory_filess    r=   Ú_get_chatterbox_download_defru   a   s2   € ðð ð €Oð %Ø)˜NØ$Ð%ðð ð r<   c                   ó  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	edd„¦   «         Z
e	 	 	 	 	 	 	 	 	 dd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )Úfamily_handlerc                  ó   — dgS ©NrY   r;   r;   r<   r=   Úquery_supported_typesz$family_handler.query_supported_typesq   s
   € àˆ~Ðr<   c                  ó
   — i i fS r9   r;   r;   r<   r=   Úquery_family_mapsz family_handler.query_family_mapsu   s   € à�2ˆvˆr<   c                  ó   — dS )NÚttsr;   r;   r<   r=   Úquery_model_familyz!family_handler.query_model_familyy   s   € àˆur<   c                  ó
   — ddiS )Nr~   )i˜  ÚTTSr;   r;   r<   r=   Úquery_family_infosz!family_handler.query_family_infos}   s   € à�}Ð%Ð%r<   c                 ó   — dS ry   r;   )Úbase_model_types    r=   Úget_lora_dirzfamily_handler.get_lora_dir�   s   € àˆ|r<   c                 óD   — t          t          ¦   «         t          ¦  «        S r9   )r   ro   r   )r„   Ú	model_defs     r=   Úquery_model_defzfamily_handler.query_model_def…   s   € åÕ3Ñ5Ô5µÑGÔGÐGr<   Nc                 ó   — t          ¦   «         S r9   )ru   )ÚcomputeListr„   r‡   s      r=   Úquery_model_filesz family_handler.query_model_files‰   s   € å+Ñ-Ô-Ð-r<   Fr   c                 óò   — ddl m} t          j        ¦   «         } ||t	          t          j        d¦  «        ¦  «        ¬¦  «        }|j        j        |j        j	        |j        j
        |j        j        dœ}||fS )Nr   )ÚChatterboxPipelineÚcpu)Ú	ckpt_rootÚdevice)ÚveÚs3genÚt3Úconds)Úchatterbox.pipeliner�   ÚflÚget_download_locationr   Útorchr�   Úmodelr‘   r’   r“   r”   )Úmodel_filenameÚ
model_typer„   r‡   ÚquantizeTransformerÚtext_encoder_quantizationÚdtypeÚ	VAE_dtypeÚmixed_precision_transformerÚsave_quantizedÚsubmodel_no_listÚtext_encoder_filenameÚprofileÚkwargsr�   r�   ÚpipelineÚpipes                     r=   Ú
load_modelzfamily_handler.load_model�   s†   € ð" 	<Ð;Ð;Ð;Ð;Ð;åÔ,Ñ.Ô.ˆ	Ø%Ð%°	Å-ÕPUÔP\Ð]bÑPcÔPcÑBdÔBdÐeÑeÔeˆà”.Ô#Ø”^Ô)Ø”.Ô#Ø”^Ô)ð	
ð 
ˆð ˜ˆ~Ðr<   c                 óŠ  — d|vrd|d<   dddœ}|                      ¦   «         D ]\  }}|                     ||¦  «         Œ|dk     rd|d<   |                     d	d ¦  «        }|                     d
d ¦  «        }|                     dd ¦  «        }	t	          |	t
          ¦  «        si }	n|	                     ¦   «         }	|t          k     r0|�|	                     d	|¦  «         |�|	                     d
|¦  «         |�	d	|	vr||	d	<   |�	d
|	vr||	d
<   t                                ¦   «         D ]\  }}|	                     ||¦  «         Œ|	|d<   d S )NÚ
alt_promptrX   ÚAr   )Úaudio_prompt_typeÚ
model_modeg…ëQ¸…@ç      ð?Úguidance_scalerN   rO   rk   )	rK   Ú
setdefaultÚpopÚgetÚ
isinstanceÚdictr]   Ú,CHATTERBOX_CUSTOM_SETTINGS_MIGRATION_VERSIONÚ"CHATTERBOX_DEFAULT_CUSTOM_SETTINGS)
r„   Úsettings_versionr‡   Úui_defaultsÚdefaultsrI   ÚvalueÚlegacy_exaggerationÚlegacy_pacerk   s
             r=   Úfix_settingszfamily_handler.fix_settingsª   s   € à˜{Ð*Ð*Ø(*ˆK˜Ñ%ð "%Øð
ð 
ˆð #Ÿ.š.Ñ*Ô*ð 	/ð 	/‰JˆC�Ø×"Ò" 3¨Ñ.Ô.Ð.Ð.à˜dÒ"Ð"Ø,/ˆKÐ(Ñ)à)Ÿošo¨n¸dÑCÔCÐØ!—o’o f¨dÑ3Ô3ˆØ%Ÿ/š/Ð*;¸TÑBÔBˆÝ˜/­4Ñ0Ô0ð 	5Ø ˆOˆOà-×2Ò2Ñ4Ô4ˆOàÕJÒJÐJØ"Ð.Ø×*Ò*¨>Ð;NÑOÔOÐOØÐ&Ø×*Ò*¨6°;Ñ?Ô?Ð?àÐ*¨~À_Ð/TÐ/TØ.AˆO˜NÑ+ØÐ" v°_Ð'DÐ'DØ&1ˆO˜FÑ#å<×BÒBÑDÔDð 	3ð 	3‰JˆC�Ø×&Ò& s¨EÑ2Ô2Ð2Ð2Ø)8ˆÐ%Ñ&Ð&Ð&r<   c                 ój   — |                      ddddddt          t          ¦  «        dddd	œ
¦  «         d S )
Nr«   r   r   r   rX   gš™™™™™é?r®   ÚFG)
r¬   r­   Úrepeat_generationÚvideo_lengthÚnum_inference_stepsÚnegative_promptrk   re   r¯   Úmulti_prompts_gen_type)Úupdater´   r¶   )r„   r‡   r¸   s      r=   Úupdate_default_settingsz&family_handler.update_default_settingsÐ   sU   € à×Òà%(Ø"Ø%&Ø !Ø'(Ø#%Ý#'Õ(JÑ#KÔ#KØ"Ø"%Ø*.ðð ñ	
ô 	
ð 	
ð 	
ð 	
r<   c                 óX   — t          |¦  «        dk    rt          j        d¦  «         d S d S )Ni,  znIt is recommended to use a prompt that has less than 300 characters, otherwise you may get unexpected results.)ÚlenÚgrÚInfo)r„   r‡   ÚinputsÚ
one_prompts       r=   Úvalidate_generative_promptz)family_handler.validate_generative_promptá   s>   € åˆz‰?Œ?˜SÒ Ð ÝŒGð=ñô ð ð ð ð !Ð r<   r9   )	FNNNFFNNr   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodrz   r|   r   r‚   r…   rˆ   r‹   r¨   r½   rÆ   rÍ   r;   r<   r=   rw   rw   p   sf  € € € € € Øðð ñ „\ðð ðð ñ „\ðð ðð ñ „\ðð ð&ð &ñ „\ð&ð ðð ñ „\ðð ðHð Hñ „\ðHð ð.ð .ð .ñ „\ð.ð ð "Ø"&ØØØ$)ØØØ"Øðð ð ñ „\ðð8 ð#9ð #9ñ „\ð#9ðJ ð
ð 
ñ „\ð
ð  ðð ñ „\ðð ð r<   rw   )Úmodels.help_sharedr   Úhelpr   r˜   ÚgradiorÉ   Ú
shared.mpsr   Úshared.utilsr   r–   Úprompt_enhancersr   r:   r´   r>   ÚlistÚtupleÚstrrM   rµ   r¶   rn   ro   ru   rw   r;   r<   r=   ú<module>rÛ      sg  ðà )Ð )Ð )Ð )Ð )Ð )Ø !Ð !Ð !Ð !Ð !Ð !Ø €€€Ø Ð Ð Ð à $Ð $Ð $Ð $Ð $Ð $Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à 2Ð 2Ð 2Ð 2Ð 2Ð 2ð!Øˆ(ð!àˆ(ð!ð 	ˆ(ð!ð 	ˆ'ð	!ð
 	ˆ)ð!ð 	ˆ)ð!ð 	ˆ)ð!ð 	ˆ(ð!ð 	ˆ(ð!ð 	ˆ'ð!ð 	ˆ)ð!ð 	ˆ*ð!ð 	ˆ(ð!ð 	ˆ'ð!ð 	ˆ'ð!ð  	ˆ+ð!!ð" 	ˆ(ð#!ð$ Ø
Ø
Ø
Ø
Ø
ð/!ð !ð !Ð ð4) $ð )ð )ð )ð )ð˜t E¨#¨s¨(¤OÔ4ð ð ð ð ð 04Ð ,àØð&ð &Ð "ð ØAØØØ5°nÔEðð ð Ø!ØØØ5°fÔ=ðð ðÐ ð$ð ð ð0ð ð ðwð wð wð wð wñ wô wð wð wð wr<   