
    +j                     v   d dl Z d dlZd dlmZ d dlmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZ dZdZdZg d	Z d
 e D             Z!d e D             Z" G d dej#                  Z$ G d dej#                  Z% G d dej#                  Z& G d dej#                  Z' G d dej#                  Z( G d dej#                  Z)ej*                            dddddej+        j,        d          ej*                            dd d!ddej+        j,        d"          ej-                            d#d$d%&          ej*                            d'd!d!d(dej+        j,        d)          gZ. G d* d+ej#                  Z/d,e0d-e1fd.Z2 G d/ d0ej#                  Z3 G d1 d2e          Z4d-e4fd3Z5dS )4    N)override)IOComfyExtensionInput)AddVoiceRequestAddVoiceResponseDialogueInputDialogueSettingsSpeechToSpeechRequestSpeechToTextRequestSpeechToTextResponseTextToDialogueRequestTextToSoundEffectsRequestTextToSpeechRequestTextToSpeechVoiceSettings)ApiEndpointaudio_bytes_to_audio_inputaudio_ndarray_to_bytesio"audio_tensor_to_contiguous_ndarraysync_opsync_op_rawupload_audio_to_comfyapivalidate_stringELEVENLABS_MUSIC_SECTIONSELEVENLABS_COMPOSITION_PLANELEVENLABS_VOICE))CwhRBWXzGAHq8TQ4Fs17Rogermaleamerican)EXAVITQu4vr4xnSDxMaLSarahfemaler    )FGY2WhTYpPnrIDTdsKH5Laurar#   r    )IKne3meq5aSn9XLyUdCDCharlier   
australian)JBFqnCBsd6RMkjVDRZzbGeorger   british)N2lVS1w4EtoT3dr4eOWOCallumr   r    )SAz9YHcvj6GT2YYXdXwwRiverneutralr    )SOYHLrjzK2X1ezoPC6crHarryr   r    )TX3LPaxmHKxFdv7VOQHJLiamr   r    )Xb7hH8MSUJpSbSDYk0k2Alicer#   r+   )XrExE9yKIg1WjnnlVkGXMatildar#   r    )bIHbv24MWmeRgasZH58oWillr   r    )cgSgspJ2msm6clMCkdW9Jessicar#   r    )cjVigY5qzO86Huf0OWalEricr   r    )hpp4J3VqNfWAUOO0d1UsBellar#   r    )iP95p4xoKVk53GoZ742BChrisr   r    )nPczCjzI2devNBz1zQrbBrianr   r    )onwK4e9ZLuTAKqWW03F9Danielr   r+   )pFZP5JQG7iQjIQuC4BkuLilyr#   r+   )pNInz6obpgDQGcFmaJgBAdamr   r    )pqHfZKP75CvOlQylNhV4Billr   r    c                 .    g | ]\  }}}}| d | d| dS z (z, ) ).0_namegenderaccents        @/home/wildlama/comfy/ComfyUI/comfy_api_nodes/nodes_elevenlabs.py
<listcomp>rW   <   s;    lll?Vq$PVt::v:::::lll    c                 0    i | ]\  }}}}| d | d| d|S rN   rP   )rQ   voice_idrS   rT   rU   s        rV   
<dictcomp>r[   =   sH       1O4t""v"""""H  rX   c                   x    e Zd Zedej        fd            Zedej        de	de
dededej        fd            Zd	S )
ElevenLabsSpeechToTextreturnc                    t          j        ddddt           j                            dd          t           j                            dt           j                            d	t           j                            d
dd          t           j                            ddd          t           j                            dddddt           j        j	        d          t           j                            dddddt           j        j	        d          t           j
                            dg ddd          g          gd !          t           j                            d"d#d$          t           j                            d%d&d&d't           j        j	        d()          t           j                            d*d+d&d,d-.          gt           j                            d/0          t           j                            d"0          t           j                            d10          gt           j        j        t           j        j        t           j        j        gd2t          j        d34          5	  	        S )6Nr]   zElevenLabs Speech to Textpartner/audio/ElevenLabsznTranscribe audio to text. Supports automatic language detection, speaker diarization, and audio event tagging.audiozAudio to transcribe.tooltipmodel	scribe_v2tag_audio_eventsFz=Annotate sounds like (laughter), (music), etc. in transcript.defaultrc   diarizez"Annotate which speaker is talking.diarization_thresholdg)\(?皙?g?{Gz?zSSpeaker separation sensitivity. Lower values are more sensitive to speaker changes.rh   minmaxstepdisplay_moderc   temperature        g       @zNRandomness control. 0.0 uses model default. Higher values increase randomness.timestamps_granularity)word	characternoneru   z&Timing precision for transcript words.)optionsrh   rc   zModel to use for transcription.rx   rc   language_code dISO-639-1 or ISO-639-3 language code (e.g., 'en', 'es', 'fra'). Leave empty for automatic detection.num_speakersr       zHMaximum number of speakers to predict. Set to 0 for automatic detection.)rh   rn   ro   rq   rc   seed   6Seed for reproducibility (determinism not guaranteed).rh   rn   ro   rc   textdisplay_name
words_jsonTzL{"type":"usd","usd":0.0073,"format":{"approximate":true,"suffix":"/minute"}}expr	node_idr   categorydescriptioninputsoutputshiddenis_api_nodeprice_badge)r   SchemaAudior   DynamicComboOptionBooleanFloatNumberDisplaysliderComboStringIntOutputHiddenauth_token_comfy_orgapi_key_comfy_org	unique_id
PriceBadgeclss    rV   define_schemaz$ElevenLabsSpeechToText.define_schemaC   s   y,4/c 2    %%..' "
 0 0$6,1,k !1 !" !"
 !#
 0 0$-,1,P !1 !" !"
 !#$;,0(+(+)-131A1H-Z !/ 	!" 	!" !#$1,/(+(+)-131A1H-a !/ 	!" 	!" !#$<,I,I,I,2,T	 !/ !" !"?%( (*V >[ & . .^ 	#;     "!#!1!8f    "T   EIV 	  f 55	  o >>	  l ;; 	.	+	#
 g  w^
 ^
 ^
 ^	
rX   ra   rd   rz   r}   r   c                 *  K   |d         r|rt          d          t          |d         t          | |ddd           d {V |                                r|nd |d         |d	k    r|nd |d
         |d         |d         r|d         nd ||d         
  
        }t	          | t          dd          t          |d           d {V }t          j        |j	        rd |j	        D             ng d          }t          j        |j        |j        |          S )Nri   zxNumber of speakers cannot be specified when diarization is enabled. Either disable diarization or set num_speakers to 0.rd   mp4aac	audio/mp4)container_format
codec_name	mime_typerf   r   rt   rj   rr   )
model_idcloud_storage_urlrz   rf   r}   rt   ri   rj   r   rr   z#/proxy/elevenlabs/v1/speech-to-textPOSTpathmethodmultipart/form-data)response_modeldatacontent_typec                 :    g | ]}|                     d           S )Texclude_none)
model_dump)rQ   ws     rV   rW   z2ElevenLabsSpeechToText.execute.<locals>.<listcomp>   s&    EEEQ\\t\,,EEErX      )indent)
ValueErrorr   r   stripr   r   r   jsondumpswordsr   
NodeOutputr   rz   )	r   ra   rd   rz   r}   r   requestresponser   s	            rV   executezElevenLabsSpeechToText.execute   s       	 	G   &7^$<UUuP[% % %       ,9+>+>+@+@J--d"#56)5)9)9t#()A#B)$DI)DT"^%(?"@"@Z^m,
 
 
 !B6RRR/.
 
 
 
 
 
 
 
 
 ZIQ_EEhnEEEE]_
 
 

 }X]H,BJOOOrX   N)__name__
__module____qualname__classmethodr   r   r   r   r   dictstrintr   r   rP   rX   rV   r]   r]   B   s        _
bi _
 _
 _
 [_
B &P{&P &P 	&P
 &P &P 
&P &P &P [&P &P &PrX   r]   c                   ^    e Zd Zedej        fd            Zededej        fd            Z	dS )ElevenLabsVoiceSelectorr^   c                     t          j        ddddt           j                            dt          d          gt          j        t                                        d          gd	
          S )Nr   zElevenLabs Voice Selectorr`   zCSelect a predefined ElevenLabs voice for text-to-speech generation.voicez5Choose a voice from the predefined ElevenLabs voices.ry   r   F)r   r   r   r   r   r   r   )r   r   r   r   ELEVENLABS_VOICE_OPTIONSCustomr   r   r   s    rV   r   z%ElevenLabsVoiceSelector.define_schema   sx    y-4/]4S    	*++222HH 
 
 
 	
rX   r   c                     t                               |          }|st          d|           t          j        |          S )NzUnknown voice: )ELEVENLABS_VOICE_MAPgetr   r   r   )r   r   rZ   s      rV   r   zElevenLabsVoiceSelector.execute   sD    '++E22 	86u66777}X&&&rX   N)
r   r   r   r   r   r   r   r   r   r   rP   rX   rV   r   r      sk        
bi 
 
 
 [
& 'C 'BM ' ' ' [' ' 'rX   r   c                   z    e Zd Zedej        fd            Zededededede	ded	e
d
edej        fd            ZdS )ElevenLabsTextToSpeechr^   c                    t          j        ddddt          j        t                                        dd          t           j                            dd	d
d          t           j                            dddddt           j        j        d          t           j	                            dg dd          t           j
                            dt           j
                            dt           j                            dddddt           j        j        d          t           j                            dddddt           j        j        d           t           j                            d!d"d#$          t           j                            d%ddd&dt           j        j        d'          g          t           j
                            d(t           j                            dddddt           j        j        d          t           j                            dddddt           j        j        d           g          gd)          t           j                            d*d
d+$          t           j                            d,d-d.d/d01          t           j	                            d2d3d4gd5          gt           j                                        gt           j        j        t           j        j        t           j        j        gd	t          j        d67          8	  	        S )9Nr   zElevenLabs Text to Speechr`   zConvert text to speech.r   zVVoice to use for speech synthesis. Connect from Voice Selector or Instant Voice Clone.rb   r   Tr{   zThe text to convert to speech.	multilinerh   rc   	stability      ?rs         ?rl   Voice stability. Lower values give broader emotional range, higher values produce more consistent but potentially monotonous speech.rm   apply_text_normalizationautoonoffjText normalization mode. 'auto' lets the system decide, 'on' always applies normalization, 'off' skips it.ry   rd   eleven_multilingual_v2speedffffff??6Speech speed. 1.0 is normal, <1.0 slower, >1.0 faster.similarity_boost      ?LSimilarity boost. Higher values make the voice more similar to the original.use_speaker_boostF/Boost similarity to the original speaker voice.rg   style皙?YStyle exaggeration. Higher values increase stylistic expression but may reduce stability.	eleven_v3z Model to use for text-to-speech.rz   r|   r   r   r   r   r   r   output_formatmp3_44100_192opus_48000_192Audio output format.L{"type":"usd","usd":0.24,"format":{"approximate":true,"suffix":"/1K chars"}}r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s    rV   r   z$ElevenLabsTextToSpeech.define_schema   sH   y,4/1	*++11t 2   	"<	     !#!1!8_  	 	 .111I    %%..4 "$+,/(+(+)-131A1H,d !/ !" !" !#$6,0(+(+)-131A1H,z !/ !" !" !#
 0 0$7,1,] !1 !" !"
 !#$+,/(+(+)-131A1H-@ !/ 	!" 	!"1"% %L ..' "$+,/(+(+)-131A1H,d !/ !" !" !#$6,0(+(+)-131A1H,z !/ !" !" O>~ ?C & B BF 	#;     "T    #,.>?2   Wpd !! 	.	+	#
 g  B
 B
 B
 B	
rX   r   r   r   r   rd   rz   r   r   c	                   K   t          |d           t          ||d         |                                r|nd t          ||d         |d         |                    dd           |                    dd                     ||	          }	t          | t          d
| dd|i          |	d           d {V }
t          j        t          |
                    S )Nr   
min_lengthrd   r   r   r   r   )r   r   r   r   r   )r   r   rz   voice_settingsr   r   z$/proxy/elevenlabs/v1/text-to-speech/r   r   r   r   query_paramsTr   	as_binary)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   rd   rz   r   r   r   r   s              rV   r   zElevenLabsTextToSpeech.executes  s#      	++++%7^+8+>+>+@+@J--d4#!&'9!:Gn"')),?"F"Fii..   %=
 
 
 %CECC-}=  
 	
 	
 	
 	
 	
 	
 	
 	
 	
 }7AABBBrX   N)r   r   r   r   r   r   r   r   floatr   r   r   r   rP   rX   rV   r   r      s        C
bi C
 C
 C
 [C
J $C$C $C 	$C
 #&$C $C $C $C $C 
$C $C $C [$C $C $CrX   r   c                   h    e Zd Zedej        fd            Zedej        dej	        fd            Z
dS )ElevenLabsAudioIsolationr^   c                 <   t          j        ddddt           j                            dd          gt           j                                        gt           j        j        t           j        j        t           j        j        gdt          j	        d	
          	  	        S )Nr  zElevenLabs Voice Isolationr`   z?Remove background noise from audio, isolating vocals or speech.ra   z.Audio to process for background noise removal.rb   TJ{"type":"usd","usd":0.24,"format":{"approximate":true,"suffix":"/minute"}}r   r   )
r   r   r   r   r   r   r   r   r   r   r   s    rV   r   z&ElevenLabsAudioIsolation.define_schema  s    y.5/YL    !! 	.	+	#
 e  )
 
 
 	
rX   ra   c                    K   t          |d                   }t          ||d         dd          }t          | t          dd          dd	|d
fidd           d {V }t	          j        t          |                    S )Nwaveformsample_rater   r   z$/proxy/elevenlabs/v1/audio-isolationr   r   ra   	audio.mp4r   r   T)filesr   r  )r   r   r   r   r   r   r   )r   ra   audio_data_npaudio_bytes_ior   s        rV   r   z ElevenLabsAudioIsolation.execute  s      
 ;5;LMM1-}AUW\^cdd$CFSSS[.+FG.
 
 
 
 
 
 
 
 
 }7AABBBrX   N)r   r   r   r   r   r   r   r   r   r   r   rP   rX   rV   r  r    sy        
bi 
 
 
 [
4 C{C 
C C C [C C CrX   r  c            	       f    e Zd Zedej        fd            Zededededej	        fd            Z
dS )ElevenLabsTextToSoundEffectsr^   c                    t          j        ddddt           j                            dddd	          t           j                            d
t           j                            dt           j                            dddddt           j        j        d          t           j	                            ddd          t           j                            dddddt           j        j        d          g          gd          t           j
                            dd d!gd"          gt           j                                        gt           j        j        t           j        j        t           j        j        gdt          j        d#$          %	  	        S )&Nr  z ElevenLabs Text to Sound Effectsr`   z.Generate sound effects from text descriptions.r   Tr{   z1Text description of the sound effect to generate.r   rd   eleven_sfx_v2durationg      @r   g      >@rk   z'Duration of generated sound in seconds.rm   loopFz'Create a smoothly looping sound effect.rg   prompt_influenceg333333?rs   r   rl   zeHow closely generation follows the prompt. Higher values make the sound follow the text more closely.z)Model to use for sound effect generation.ry   r   r   r   r   zJ{"type":"usd","usd":0.14,"format":{"approximate":true,"suffix":"/minute"}}r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s    rV   r   z*ElevenLabsTextToSoundEffects.define_schema  s   y2;/H	"O	     %%..+ "$.,/(+(,),131A1H,U !/ !" !" !#
 0 0$*,1,U !1 !" !"
 !#$6,/(+(+)-131A1H-a !/ 	!" 	!" > HC & " "F #,.>?2   U/b !! 	.	+	#
 e  }A
 A
 A
 A	
rX   r   rd   r   c                 "  K   t          |d           t          | t          ddd|i          t          ||d         |d         |                    d	d           
          d           d {V }t          j        t          |                    S )Nr   r   z%/proxy/elevenlabs/v1/sound-generationr   r   r   r  r  r  )r   duration_secondsr  r  Tr   )r   r   r   r   r   r   r   r   )r   r   rd   r   r   s        rV   r   z$ElevenLabsTextToSoundEffects.execute  s       	++++$<-}=  
 +!&z!2!&'9!:YYvt,,	   
 
 
 
 
 
 
 
 
 }7AABBBrX   N)r   r   r   r   r   r   r   r   r   r   r   rP   rX   rV   r  r    s        B
bi B
 B
 B
 [B
H CC C 	C
 
C C C [C C CrX   r  c                   v    e Zd Zedej        fd            Zedej        j        de	dej
        fd            ZdS )ElevenLabsInstantVoiceCloner^   c                    t          j        ddddt           j                            dt           j                            t           j                            d          ddd	          d
          t           j                            ddd          gt          j        t                    	                    d          gt           j
        j        t           j
        j        t           j
        j        gdt          j        d          	  	        S )Nr  zElevenLabs Instant Voice Cloner`   z]Create a cloned voice from audio samples. Provide 1-8 audio recordings of the voice to clone.r  ra   r      )prefixrn   ro   z#Audio recordings for voice cloning.)templaterc   remove_background_noiseFzARemove background noise from voice samples using audio isolation.rg   r   r   Tz{"type":"usd","usd":0.15}r   r   )r   r   Autogrowr   TemplatePrefixr   r   r   r   r   r   r   r   r   r   r   s    rV   r   z)ElevenLabsInstantVoiceClone.define_schema)  s	   y19/B !![77w//&	 8   B " 	 	 
  -!_ !  $ 	*++222HH 	.	+	#
 +JKKKA!
 !
 !
 !	
rX   r  r  c                   K   g }|D ]j}||         }|d         }|d         }t          |          }t          ||dd          }	|                    d| d|	                                dff           kt	          | t          dd	
          t          t          t          t          j
                              |          |d           d {V }
t          j        |
j                  S )Nr	  r  r   r   r  z.mp4r   z/proxy/elevenlabs/v1/voices/addr   r   )rS   r  r   )r   r   r  r   )r   r   appendgetvaluer   r   r   r   r   uuiduuid4r   r   rZ   )r   r  r  file_tupleskeyra   r	  r  r  r  r   s              rV   r   z#ElevenLabsInstantVoiceClone.executeN  s!      AC 	b 	bC#JE$]3KZ(H>xHHM5m[RWY^__NS,,,8O8O8Q8QS^)_`aaaa >vNNN+ &&(?   .

 

 

 

 

 

 

 

 

 }X.///rX   N)r   r   r   r   r   r   r   r  Typeboolr   r   rP   rX   rV   r  r  (  s        "
bi "
 "
 "
 ["
H 0{0 "&0 
	0 0 0 [0 0 0rX   r  r   r   r   r   rl   r   rm   r   r   rs   r   r   Fr   rg   r   r   r   c                       e Zd Zedej        fd            Zededej	        de
dededed	edej        fd
            ZdS )ElevenLabsSpeechToSpeechr^   c                    t          j        ddddt          j        t                                        dd          t           j                            dd	          t           j                            d
ddddt           j        j        d          t           j	                            dt           j	        
                    dt                    t           j	        
                    dt                    gd          t           j                            dddgd          t           j                            ddddd          t           j                            dd d!"          gt           j                                        gt           j        j        t           j        j        t           j        j        gd#t          j        d$%          &	  	        S )'Nr*  zElevenLabs Speech to Speechr`   z]Transform speech from one voice to another while preserving the original content and emotion.r   zXTarget voice for the transformation. Connect from Voice Selector or Instant Voice Clone.rb   ra   zSource audio to transform.r   r   rs   r   rl   r   rm   rd   eleven_multilingual_sts_v2eleven_english_sts_v2z1Model to use for speech-to-speech transformation.ry   r   r   r   r   r   r       Seed for reproducibility.r   r  Fz?Remove background noise from input audio using audio isolation.rg   Tr  r   r   )r   r   r   r   r   r   r   r   r   r   r   ELEVENLABS_STS_VOICE_SETTINGSr   r   r   r   r   r   r   r   r   r   s    rV   r   z&ElevenLabsSpeechToSpeech.define_schema  s   y.6/w	*++11J 2  
 8    !#!1!8_  	 	 %%..89  ..39 	 P &   #,.>?2   
 "7    
  -!] !  ]3j !! 	.	+	#
 e  EE
 E
 E
 E	
rX   r   ra   r   rd   r   r   r  c           
        K   t          |d                   }t          ||d         dd          }	t          ||d         |d         |d         |d         	          }
t          | t	          d
| dd|i          t          |d         |
                    d          ||          dd|	                                dfidd           d {V }t          j	        t          |                    S )Nr  r	  r   r   r   r   r   r   )r   r   r   r   r   z&/proxy/elevenlabs/v1/speech-to-speech/r   r   r   rd   Tr   )r   r   r   r  ra   r
  r   r   )r   r  r   r  )r   r   r   r   r   r   model_dump_jsonr"  r   r   r   )r   r   ra   r   rd   r   r   r  r  r  r   r   s               rV   r   z ElevenLabsSpeechToSpeech.execute  s=      ;5;LMM1-}AUW\^cdd2"#56.#$78.
 
 
 %EeEE-}=  
 'w-==4=PP(?	   [.*A*A*C*C[QR.
 
 
 
 
 
 
 
 
" }7AABBBrX   N)r   r   r   r   r   r   r   r   r   r   r  r   r   r(  r   r   rP   rX   rV   r*  r*    s        F
bi F
 F
 F
 [F
P $C$C {$C 	$C
 $C $C $C "&$C 
$C $C $C [$C $C $CrX   r*  countr^   c                    g }t          d| dz             D ]t}|                    t          j                            d| ddd| d          t          j        t                                        d| d	| d
          g           u|S )z>Generate input widgets for a given number of dialogue entries.r   r   Tr{   z Text content for dialogue entry .r   r   zVoice for dialogue entry z5. Connect from Voice Selector or Instant Voice Clone.rb   )rangeextendr   r   r   r   r   )r3  r   is      rV   _generate_dialogue_inputsr9    s    F1eai   
 
	1JJ"CqCCC	     	*++11AKKpppp 2  	
 	
 	
 	
 MrX   c                   v    e Zd Zedej        fd            Zedededede	dede
d	edej        fd
            ZdS )ElevenLabsTextToDialoguer^   c                 n   t          j        ddddt           j                            dddddt           j        j        d	
          t           j                            dg dd          t           j                            ddgd          t           j                            dt           j                            dt          d                    t           j                            dt          d                    t           j                            dt          d                    t           j                            dt          d                    t           j                            dt          d                    t           j                            dt          d                    t           j                            dt          d                     t           j                            d!t          d"                    t           j                            d#t          d$                    t           j                            d%t          d&                    g
d'          t           j
                            d(d)d*+          t           j                            d,dd-d.d/0          t           j                            d1d2d3gd4          gt           j                                        gt           j        j        t           j        j        t           j        j        gd5t          j        d67          8	  	        S )9Nr;  zElevenLabs Text to Dialoguer`   zZGenerate multi-speaker dialogue from text. Each dialogue entry has its own text and voice.r   r   rs   r   r   rm   r   r   r   ry   rd   r   z%Model to use for dialogue generation.r   1r   2r   3   4   5   6   7   8r  9	   10
   zNumber of dialogue entries.rz   r{   r|   rg   r   r   r.  r/  r   r   r   r   r   Tr   r   r   )r   r   r   r   r   r   r   r   r   r9  r   r   r   r   r   r   r   r   r   r   s    rV   r   z&ElevenLabsTextToDialogue.define_schema  s   y.6/t!#!1!8_  	 	 .111I    (MC   
 %%..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..s4Ma4P4PQQ..t5Nr5R5RSS : &    	#;     "7    #,.>?2   g8t !! 	.	+	#
 g  OJ
 J
 J
 J	
rX   r   r   rd   r   rz   r   r   c           	         K   t          |d                   }g }	t          d|dz             D ]M}
|d|
          }|d|
          }t          |d           |	                    t	          ||                     Nt          |	||                                r|nd t          |          ||          }t          | t          d	d
d|i          |d           d {V }t          j        t          |                    S )Nr   r   r   r   r   )r   rZ   )r   )r   r   rz   settingsr   r   z%/proxy/elevenlabs/v1/text-to-dialoguer   r   r   Tr   )r   r6  r   r!  r	   r   r   r
   r   r   r   r   r   )r   r   r   rd   r   rz   r   r   num_entriesdialogue_inputsr8  r   rZ   r   r   s                  rV   r   z ElevenLabsTextToDialogue.executee  sU      &*++/1q+/** 	P 	PA***%Dkakk*HDQ////""=dX#N#N#NOOOO'"+8+>+>+@+@J--d%	:::%=
 
 
 %<-}=  
 	
 	
 	
 	
 	
 	
 	
 	
 	
 }7AABBBrX   N)r   r   r   r   r   r   r   r  r   r   r   r   r   rP   rX   rV   r;  r;    s        K
bi K
 K
 K
 [K
Z #C#C #&#C 	#C
 #C #C #C #C 
#C #C #C [#C #C #CrX   r;  c                   L    e Zd Zedeeej                          fd            ZdS )ElevenLabsExtensionr^   c                 j   K   t           t          t          t          t          t
          t          t          gS N)r]   r   r   r  r  r  r*  r;  )selfs    rV   get_node_listz!ElevenLabsExtension.get_node_list  s*       ##"$('$$	
 		
rX   N)	r   r   r   r   listtyper   	ComfyNoderW  rP   rX   rV   rS  rS    sE        

T$r|*<%= 

 

 

 X

 

 

rX   rS  c                  "   K   t                      S rU  )rS  rP   rX   rV   comfy_entrypointr\    s         rX   )6r   r#  typing_extensionsr   comfy_api.latestr   r   r   comfy_api_nodes.apis.elevenlabsr   r   r	   r
   r   r   r   r   r   r   r   comfy_api_nodes.utilr   r   r   r   r   r   r   r   r   r   r   ELEVENLABS_VOICESr   r   rZ  r]   r   r   r  r  r  r   r   r   r   r0  r*  r   rX  r9  r;  rS  r\  rP   rX   rV   <module>rb     s     & & & & & & 6 6 6 6 6 6 6 6 6 6                         	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 8 ; %    0 mlZklll  Sd   
JP JP JP JP JPR\ JP JP JPZ' ' ' ' 'bl ' ' ':lC lC lC lC lCR\ lC lC lC^*C *C *C *C *Cr| *C *C *CZ]C ]C ]C ]C ]C2< ]C ]C ]C@@0 @0 @0 @0 @0", @0 @0 @0H HNN%,H    HNN%,^    JA   
 HNN%,k   1!! HoC oC oC oC oCr| oC oC oCdS T    *sC sC sC sC sCr| sC sC sCl
 
 
 
 
. 
 
 
! 3 ! ! ! ! ! !rX   