
    3j
                     .   S SK r S SKJr  S SKrS SKrS SKJrJr   " S S\R                  5      r
 " S S\R                  5      r " S S	\R                  5      r " S
 S\R                  5      r " S S\R                  5      r " S S\5      rS\4S jrg)    N)override)ComfyExtensionIOc                   P    \ rS rSr\S 5       r\S\R                  4S j5       rSr	g)TextEncodeAceStepAudio	   c                 ^   [         R                  " SS[         R                  R                  S5      [         R                  R                  SSSS9[         R                  R                  SSSS9[         R
                  R                  SS	S
SSS9/[         R                  R                  5       /S9$ )Nr   model/conditioning/acecliptagsT	multilinedynamic_promptslyricslyrics_strength      ?        g      $@{Gz?defaultminmaxstepnode_idcategoryinputsoutputs)r   SchemaClipInputStringFloatConditioningOutputclss    6/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_ace.pydefine_schema$TextEncodeAceStepAudio.define_schema
   s    yy,-f%		$M		D$O0#3DW[\	 __++-.

 
	
    returnc                     UR                  X#S9nUR                  U5      n[        R                  " USU05      n[        R
                  " U5      $ )N)r   r   )tokenizeencode_from_tokens_schedulednode_helpersconditioning_set_valuesr   
NodeOutput)r'   r   r   r   r   tokensconditionings          r(   executeTextEncodeAceStepAudio.execute   sJ    t388@#;;LK\^mJno}}\**r+    N
__name__
__module____qualname____firstlineno__classmethodr)   r   r2   r5   __static_attributes__r7   r+   r(   r   r   	   s3    
 
 +R]] + +r+   r   c                   P    \ rS rSr\S 5       r\S\R                  4S j5       rSr	g)TextEncodeAceStepAudio15   c                 h   [         R                  " SS[         R                  R                  S5      [         R                  R                  SSSS9[         R                  R                  SSSS9[         R
                  R                  SS	S	S
SS9[         R
                  R                  SSSSS9[         R                  R                  SSSSSS9[         R                  R                  S/ SQS9[         R                  R                  S/ SQSS9[         R                  R                  SS VVs/ s H  nS   H	  o" S!U 3PM     M     snnS9[         R                  R                  S"SS#SS$9[         R                  R                  S%S&SS'SSS(9[         R                  R                  S)S*SS&S+SS(9[         R                  R                  S,S-SSS+SS(9[         R
                  R                  S.S	S	S/SS09[         R                  R                  S1SSS2S3SS(9/[         R                  R                  5       /S49$ s  snnf )5NzTextEncodeAceStepAudio1.5r
   r   r   Tr   r   seedr   l    )r   r   r   control_after_generatebpmx   
   i,  )r   r   r   duration      ^@r   g     @@皙?r   timesignature)2346)optionslanguage)3arazbgbncacsdadeelenesfafifrhehihrhthuidisitjakolaltmsnenlnopaplptrorusasksrsvswtatethtltrukurviyuezhunknownr[   )rP   r   keyscale)majorminor)CzC#DbDzD#EbEFzF#GbGzG#AbAzA#BbB generate_audio_codeszEnable the LLM that generates audio codes. This can be slow but will increase the quality of the generated audio. Turn this off if you are giving the model an audio reference.)r   tooltipadvanced	cfg_scaleg       @g      Y@)r   r   r   r   r   temperatureg333333?r   top_pg?top_kd   )r   r   r   r   min_pr   gMbP?r   )r   r   r    r!   r"   Intr#   ComboBooleanr$   r%   )r'   qualityroots      r(   r)   &TextEncodeAceStepAudio15.define_schema    s    yy/-f%		$M		D$OVQA;MfjkUCRSAz5cvTWX8LMz  4l  vz  {zWi  4WWiG  wVnrfAgY4G  wV4GWi  4W  X

  !7  PA  LP   Q{CSeRU`de}dSWbfgw&t^bcWaQC$Ow3Ce^bc" __++-.)
 	
 4Ws   *H.$r,   c                     UR                  X#XV[        U5      XXJXXUS9nUR                  U5      n[        R                  " U5      $ )N)r   rE   rH   rK   rQ   r   rC   r   r   r   r   r   r   )r.   intr/   r   r2   )r'   r   r   r   rC   rE   rH   rK   rQ   r   r   r   r   r   r   r   r3   r4   s                     r(   r5    TextEncodeAceStepAudio15.execute9   sb    t^abo^p  |D  ^b  Yb  CH  ]b  c88@}}\**r+   r7   Nr8   r7   r+   r(   r@   r@      sB    
 
0 +  hj  hu  hu + +r+   r@   c                   P    \ rS rSr\S 5       r\S\R                  4S j5       rSr	g)EmptyAceStepLatentAudio@   c                     [         R                  " SSS[         R                  R                  SSSSSS	9[         R                  R                  S
SSSSS9/[         R
                  R                  5       /S9$ )Nr   zEmpty Ace Step 1.0 Latent Audiomodel/latent/acesecondsrI   r        @@rJ   r   
batch_size      )The number of latent images in the batch.r   r   r   r   r   display_namer   r   r   r   r   r#   r!   r   Latentr%   r&   s    r(   r)   %EmptyAceStepLatentAudio.define_schemaA   sr    yy-:'y%SfSVW !Fq   YY%%'(
 	
r+   r,   c                     [        US-  S-  S-  5      n[        R                  " USSU/[        R                  R                  5       [        R                  R                  5       S9n[        R                  " USS.5      $ )NiD  i         devicedtypeaudio)samplestype)	r   torchzeroscomfymodel_managementintermediate_deviceintermediate_dtyper   r2   r'   r   r   lengthlatents        r(   r5   EmptyAceStepLatentAudio.executeP   s    Wu_s*Q./j!R8AWAWAkAkAmuz  vL  vL  v_  v_  va  b}}ABBr+   r7   Nr8   r7   r+   r(   r   r   @   s6    
 
 CR]] C Cr+   r   c                   P    \ rS rSr\S 5       r\S\R                  4S j5       rSr	g)EmptyAceStep15LatentAudioW   c                     [         R                  " SSS[         R                  R                  SSSSSS	9[         R                  R                  S
SSSSS9/[         R
                  R                  5       /S9$ )NzEmptyAceStep1.5LatentAudiozEmpty Ace Step 1.5 Latent Audior   r   rI   r   r   r   r   r   r   r   r   r   r   r   r&   s    r(   r)   'EmptyAceStep15LatentAudio.define_schemaX   sr    yy0:'y%SfSWX !Fq   YY%%'(
 	
r+   r,   c                     [        US-  S-  5      n[        R                  " USU/[        R                  R                  5       [        R                  R                  5       S9n[        R                  " USSS.5      $ )Ni  i  r   r   r   i  )r   r   downscale_ratio_temporal)	roundr   r   r   r   r   r   r   r2   r   s        r(   r5   !EmptyAceStep15LatentAudio.executeg   s{    %$.0j"f5e>T>T>h>h>jrw  sI  sI  s\  s\  s^  _}}^bcddr+   r7   Nr8   r7   r+   r(   r   r   W   s6    
 
 eR]] e er+   r   c                   T    \ rS rSr\S 5       r\SS\R                  4S jj5       rSr	g)ReferenceAudiom   c                     [         R                  " SSSSS[         R                  R                  S5      [         R                  R                  SSS9/[         R                  R                  5       /S	9$ )
NReferenceTimbreAudiozSet Reference Audiozmodel/conditioningTz3This node sets the reference audio for ace step 1.5r4   r   )optional)r   r   r   is_experimentaldescriptionr   r   )r   r   r$   r!   r   r%   r&   s    r(   r)   ReferenceAudio.define_scheman   sd    yy*.) M%%n5		48
 &&(
 	
r+   Nr,   c                 l    Ub  [         R                  " USUS   /0SS9n[        R                  " U5      $ )Nreference_audio_timbre_latentsr   T)append)r0   r1   r   r2   )r'   r4   r   s      r(   r5   ReferenceAudio.execute   sS    '??Oorx  zC  sD  rE  OF  OS  TL}}\**r+   r7   Nr8   r7   r+   r(   r   r   m   s3    
 
  +2== + +r+   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)AceExtension   r,   c                 @   #    [         [        [        [        [        /$ 7fr   )r   r   r@   r   r   )selfs    r(   get_node_listAceExtension.get_node_list   s       ##$%
 	
s   r7   N)r9   r:   r;   r<   r   listr   r   	ComfyNoder   r>   r7   r+   r(   r   r      s)    
T$r||*<%= 
 
r+   r   r,   c                     #    [        5       $ 7fr   )r   r7   r+   r(   comfy_entrypointr      s     >s   )r   typing_extensionsr   comfy.model_managementr   r0   comfy_api.latestr   r   r   r   r@   r   r   r   r   r   r7   r+   r(   <module>r      s     &   /+R\\ +,+r|| +BCbll C.e e,+R\\ +0	
> 	
 r+   