§
    nF§jÁ’  ã                  ó¨  — U d Z ddlmZ ddlmZ ddlZddlmZmZ ddl	m
Z
 ddlmZmZmZmZmZ d	Zd
ZdZdZdZdZdZdZdefdefgZdZdZdZdZdZdZeedœZ dZ!dZ"e!e"z   Z#g d¢Z$g Z%de&d<    e'¦   «         Z(de&d<   da)d e&d!<   da*d"e&d#<   e G d$„ d%¦  «        ¦   «         Z+d&Z,d¤d)„Z-d¥d+„Z.d¦d-„Z/d§d¨d4„Z0d©d6„Z1dªd8„Z2d«d;„Z3d¬d=„Z4d§d­dA„Z5d®dC„Z6d§d¯dF„Z7d§d°dG„Z8d±d²dK„Z9d¦dL„Z:d¤dM„Z;d©dN„Z<d©dO„Z=d³dP„Z>d¤dQ„Z?d´dR„Z@dµdS„ZAd¶dU„ZBd·dV„ZCd§d¸dX„ZDd¹dY„ZEd§dºdZ„ZFd»d[„ZGd¼d½d^„ZHd_„ ZId`dHdHd`dddaœd¾df„ZJd`d`ddgœd¿dh„ZKdHd`diœdÀdj„ZLd`dkœdÁdl„ZMdm„ ZNdn„ ZOdo„ ZPdp„ ZQdHdHdqœdÂdt„ZRdHduœdÃdw„ZSdHduœdÄdx„ZTd`dHddgœdÅdy„ZUd§dÆdz„ZVdÇd}„ZWdÈdÉd„ZXdÊd�„ZYd¤d‚„ZZdËd†„Z[d¤d‡„Z\d¤dˆ„Z]dÌdŠ„Z^dÍdŒ„Z_d§dÎd�„Z`d§dÏdŽ„ZadÐd�„Zbd¹d�„ZcdÑd’„ZddÌd“„ZedÒd”„ZfdÓd•„ZgdHd–œdÔd™„ZhdÕd›„ZidÖd�„Zjd×dŸ„ZkdØd „ZldÙd£„ZmdS )Úa.  Audio post-processor plugin API.

Audio processors are interchangeable handlers for post-generation audio work.
Each handler declares methods through ``query_audio_processor_def()`` and may
expose config controls under ``wgp_config["audio_processors"][config_key]``.
Definitions may also expose an optional ``description`` plus optional
``method_descriptions`` and ``method_parameters`` mappings for reusable
discovery interfaces. Existing handlers without these fields remain valid.
Discovery tests the existing optional ``enabled()`` method first. When it is
absent, handlers may expose a ``status`` property containing ``"enabled"`` or
``"disabled"``. Discovery reports ``"unknown"`` only when neither contract
provides a valid status. Disabled handlers may expose ``reason_disabled``. This
instance property is separate from the definition's existing per-method
``status`` progress labels.
Model persistence is shared through
``wgp_config["audio_processors"]["persistence"]``. Dispatch retains at most one
audio processor handler and releases it before another handler runs.

Plugin authors can register processors from ``plugin_info.json`` with:

```json
{
  "audio_processors": ["my_plugin.audio.MyProcessor"]
}
```

Relative paths are resolved by WanGP's plugin manager, matching spatial
upsampler plugin registration.
é    )Úannotations)Ú	dataclassN)ÚAnyÚCallable)Úoffload_registryé   )ÚPROCESSOR_STATUS_DISABLEDÚPROCESSOR_STATUS_ENABLEDÚPROCESSOR_STATUS_UNKNOWNÚhandler_reason_disabledÚhandler_statusÚ
soundtrackÚvoice_replacementÚ
audio_editÚlate_postprocessingÚaudio_processorsÚpersistenceé   zUnload after usezPersistent in RAMÚ__shared_persistence__ÚmmaudioÚcustomÚremove_backgroundÚseedvc_one_speakerÚseedvc_two_speakers)ÚseedvcÚseedvc2ÚYÚZ)zJpostprocessing.custom_soundtrack.audio_processor.CustomSoundtrackProcessorz7postprocessing.mmaudio.audio_processor.MMAudioProcessorz=postprocessing.prismaudio.audio_processor.PrismAudioProcessorz5postprocessing.seedvc.audio_processor.SeedVCProcessorzRpostprocessing.audio_background_removal.audio_processor.BackgroundRemovalProcessorú	list[Any]Ú_audio_processor_handlerszset[str]Ú)_registered_audio_processor_handler_pathsú
Any | NoneÚ_active_audio_processor_handlerúdict[str, Any] | NoneÚ_audio_processor_server_configc                  ó.   — e Zd ZU ded<   ded<   ded<   dS )ÚAudioProcessorConfigBindingr"   ÚhandlerÚstrÚ
config_keyzlist[tuple[str, Any]]ÚcontrolsN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    ú8C:\Users\johnn\Wan2GP\postprocessing\audio_processors.pyr'   r'   O   s3   € € € € € € àÐÐÑØ€O€O�OØ#Ð#Ð#Ñ#Ð#Ð#r1   r'   ÚcontrolÚreturnr)   c                ó~   — t          | pd¦  «                             ¦   «         } t                               | | ¦  «        S ©NÚ )r)   ÚstripÚLEGACY_SEEDVC_METHODSÚget)Úmethods    r2   Únormalize_methodr<   Y   s5   € Ý��˜2ÑÔ×$Ò$Ñ&Ô&€FÝ ×$Ò$ V¨VÑ4Ô4Ð4r1   Úlettersc                ó^   — t          | pd¦  «        }|D ]}|                     |d¦  «        }Œ|S r6   )r)   Úreplace)Úvaluer=   ÚtextÚletters       r2   Ú_remove_flag_lettersrC   ^   s<   € Ýˆuˆ{˜ÑÔ€DØð (ð (ˆØ�|Š|˜F BÑ'Ô'ˆˆØ€Kr1   Úboolc                ó’  — | €dS t          | t          t          t          f¦  «        rt	          d„ | D ¦   «         ¦  «        S t          | t
          ¦  «        r+t	          d„ |                      ¦   «         D ¦   «         ¦  «        S t          | t          ¦  «        r%t          |  	                    ¦   «         ¦  «        dk    S t          | ¦  «        S )NFc              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©N©Ú_attachment_has_path_values©Ú.0Úitems     r2   ú	<genexpr>z._attachment_has_path_values.<locals>.<genexpr>i   s+   è è € ÐGÐG¸Õ.¨tÑ4Ô4ÐGÐGÐGÐGÐGÐGr1   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S rG   rH   rJ   s     r2   rM   z._attachment_has_path_values.<locals>.<genexpr>k   s+   è è € ÐPÐP¸Õ.¨tÑ4Ô4ÐPÐPÐPÐPÐPÐPr1   r   )Ú
isinstanceÚlistÚtupleÚsetÚanyÚdictÚvaluesr)   Úlenr8   rD   ©r@   s    r2   rI   rI   e   s´   € Ø€}ØˆuÝ�%�$¥¥sÐ+Ñ,Ô,ð HÝÐGÐGÀÐGÑGÔGÑGÔGÐGÝ�%�ÑÔð QÝÐPÐPÀÇÂÁÄÐPÑPÔPÑPÔPÐPÝ�%�ÑÔð &Ý�5—;’;‘=”=Ñ!Ô! AÒ%Ð%Ý�‰;Œ;Ðr1   Úui_defaultsúdict[str, Any]Úsettings_versionÚfloatÚattachment_has_path_valuesúCallable[[Any], bool] | Nonec                ó\  — |                       dd ¦  «        }|pd}|�t          |dt          z   ¦  «        }|| d<   |                      dd ¦  «        }|pt          }|dk     sd| vru|                       dd¦  «        pd}t          |¦  «        dk    r7|rt          }n-d|v rd}n& ||                       d	d ¦  «        ¦  «        rt          }t          |¦  «        | d<   n(t          |                       dd¦  «        pd¦  «        | d<   |d
k     rBdddœ}| 	                    ¦   «         D ](\  }	}
|	| v r|  
                    |
| |	         ¦  «         | |	= Œ)|dk     rŠdD ](\  }	}
|	| v r|  
                    |
| |	         ¦  «         | |	= Œ)t          |                       dd¦  «        pd¦  «        }t          |¦  «        dk    r!t          |v rt          }nt          |v rt          }|| d<   n(t          |                       dd¦  «        pd¦  «        | d<   |  
                    dd ¦  «         |  
                    dd ¦  «         |S )NÚaudio_prompt_typer7   ÚRÚMMAudio_settingg¸…ëQ¸@Úpostprocess_audior   r3   Úaudio_sourcegö(\�Âõ@Úpostprocess_audio_promptÚpostprocess_audio_neg_prompt)ÚMMAudio_promptÚMMAudio_neg_promptg
×£p=
@))Úseedvc_voice_sampleÚreplace_voice_sample)Úseedvc_voice_sample2Úreplace_voice_sample2Úreplace_voice_methodri   rk   )r:   rC   ÚLEGACY_REPLACE_VOICE_FLAGSÚpoprI   rV   ÚMMAUDIO_METHODÚCUSTOM_SOUNDTRACK_METHODr<   ÚitemsÚ
setdefaultÚ&LEGACY_REPLACE_VOICE_TWO_SPEAKERS_FLAGÚSEEDVC_TWO_SPEAKERS_METHODÚ%LEGACY_REPLACE_VOICE_ONE_SPEAKER_FLAGÚSEEDVC_ONE_SPEAKER_METHOD)rX   rZ   r\   r_   Úlegacy_audio_prompt_typeÚlegacy_mmaudio_settingÚhas_path_valuesrb   Úrenamed_settingsÚold_nameÚnew_namerl   s               r2   Úfix_settingsr}   q   sÄ  € Ø#ŸšÐ(;¸TÑBÔBÐØ0Ð6°BÐØÐ$Ý0Ð1BÀCÕJdÑDdÑeÔeÐØ+<ˆÐ'Ñ(Ø(Ÿ_š_Ð->ÀÑEÔEÐØ0ÐOÕ4O€OØ˜$ÒÐÐ"5¸[Ð"HÐ"HØ'ŸOšOÐ,?ÀÑDÔDÐJÈÐÝÐ Ñ!Ô! QÒ&Ð&Ø%ð =Ý$2Ð!Ð!ØÐ0Ð0Ð0Ø$-Ð!Ð!Ø � §¢°ÀÑ!FÔ!FÑGÔGð =Ý$<Ð!Ý+;Ð<MÑ+NÔ+NˆÐ'Ñ(Ð(å+;¸K¿OºOÐL_ÐacÑ<dÔ<dÐ<jÐhjÑ+kÔ+kˆÐ'Ñ(Ø˜$ÒÐà8Ø"@ð
ð 
Ðð #3×"8Ò"8Ñ":Ô":ð 	*ð 	*ÑˆH�hØ˜;Ð&Ð&Ø×&Ò& x°¸XÔ1FÑGÔGÐGØ Ð)øØ˜$ÒÐð #Gð 	*ð 	*ÑˆH�hØ˜;Ð&Ð&Ø×&Ò& x°¸XÔ1FÑGÔGÐGØ Ð)øÝ/°·²Ð@VÐXZÑ0[Ô0[Ð0aÐ_aÑbÔbÐÝÐ#Ñ$Ô$¨Ò)Ð)Ý5Ð9QÐQÐQÝ'AÐ$Ð$Ý6Ð:RÐRÐRÝ'@Ð$Ø.BˆÐ*Ñ+Ð+å.>¸{¿ºÐOeÐgiÑ?jÔ?jÐ?pÐnpÑ.qÔ.qˆÐ*Ñ+Ø×ÒÐ1°4Ñ8Ô8Ð8Ø×ÒÐ2°DÑ9Ô9Ð9ØÐr1   ÚNonec                óP   — | t           vrt                                | ¦  «         d S d S rG   )r    Úappend©r(   s    r2   Úregister_audio_processorr‚   ¡   s0   € ØÕ/Ð/Ð/Ý!×(Ò(¨Ñ1Ô1Ð1Ð1Ð1ð 0Ð/r1   Úpathc                óx   — |                       dd¦  «        \  }}t          t          j        |¦  «        |¦  «        S )Nú.r   )ÚrsplitÚgetattrÚ	importlibÚimport_module)rƒ   Úmodule_pathÚ
class_names      r2   Ú_load_processor_classrŒ   ¦   s5   € Ø"Ÿkšk¨#¨qÑ1Ô1Ñ€K�Ý•9Ô*¨;Ñ7Ô7¸ÑDÔDÐDr1   Úhandler_defúlist[tuple[str, str]]c                óB   — d„ |                       dg ¦  «        D ¦   «         S )Nc                ó   — g | ]	\  }}||f‘Œ
S r0   r0   ©rK   Úlabelr;   s      r2   ú
<listcomp>z#_method_choices.<locals>.<listcomp>¬   s    € ÐPÐPÐP¡  vˆU�FˆOÐPÐPÐPr1   Úmethods)r:   ©r�   s    r2   Ú_method_choicesr–   «   s$   € ØPÐP°·²ÀÈBÑ1OÔ1OÐPÑPÔPÐPr1   údict[str, str]c                ó4   — d„ t          | ¦  «        D ¦   «         S )Nc                ó   — i | ]\  }}||“Œ	S r0   r0   r‘   s      r2   ú
<dictcomp>z"_method_labels.<locals>.<dictcomp>°   s   € ÐLÐLÐL™m˜e VˆF�EÐLÐLÐLr1   )r–   r•   s    r2   Ú_method_labelsr›   ¯   s   € ØLÐL­¸{Ñ/KÔ/KÐLÑLÔLÐLr1   r;   Úlabel_contextú
str | Nonec                ó  — |rb|                       di ¦  «        }t          |t          ¦  «        r7|                      |i ¦  «        }t          |t          ¦  «        r||v r||         S t          | ¦  «                              ||¦  «        S )NÚmethod_context_labels)r:   rO   rT   r›   )r�   r;   rœ   Úcontext_labelsÚlabelss        r2   Ú_method_labelr¢   ³   s‰   € Øð &Ø$ŸšÐ)@À"ÑEÔEˆÝ�n¥dÑ+Ô+ð 	&Ø#×'Ò'¨°rÑ:Ô:ˆFÝ˜&¥$Ñ'Ô'ð &¨F°fÐ,<Ð,<Ø˜f”~Ð%Ý˜+Ñ&Ô&×*Ò*¨6°6Ñ:Ô:Ð:r1   Úfallback_namec                óÞ   — t          |                      dd¦  «        pd¦  «                             ¦   «         }|r|S t          | ¦  «        }|r|d         d         S |                     ¦   «         S ©Nr*   r7   r   r   )r)   r:   r8   r–   Úlower)r�   r£   r*   Úmethod_choicess       r2   Ú_config_key_from_handler_defr¨   ½   ss   € Ý�[—_’_ \°2Ñ6Ô6Ð<¸"Ñ=Ô=×CÒCÑEÔE€JØð ØÐÝ$ [Ñ1Ô1€NØð $Ø˜aÔ  Ô#Ð#Ø×ÒÑ Ô Ð r1   Úhandler_modulesúlist[str] | Nonec                ó–  — t           t          i}| €t          n| D ]®}t          t	          |pd¦  «                             ¦   «         ¦  «        }t          |d¦  «        sŒCt          |                     ¦   «         ¦  «        }| 	                    t           d ¦  «         |sŒ‚| 
                    ¦   «         }||t          ||j        ¦  «        <   Œ¯|S )Nr7   Údefault_config)ÚPERSISTENCE_CONFIG_KEYÚPERSIST_UNLOADÚaudio_processor_handlersrŒ   r)   r8   ÚhasattrrT   r¬   rn   Úquery_audio_processor_defr¨   r,   )r©   Úsectionsrƒ   Úhandler_clsÚconfigr�   s         r2   Údefault_config_sectionsrµ   Ç   sË   € Ý&­Ð7€HØ,;Ð,CÕ(Ð(Èð 	[ð 	[ˆÝ+­C°°
¸©O¬O×,AÒ,AÑ,CÔ,CÑDÔDˆÝ�{Ð$4Ñ5Ô5ð 	ØÝ�k×0Ò0Ñ2Ô2Ñ3Ô3ˆØ�
Š
Õ)¨4Ñ0Ô0Ð0Øð 	ØØ!×;Ò;Ñ=Ô=ˆØTZˆÕ-¨k¸;Ô;OÑPÔPÑQÐQØ€Or1   c                ó  — | a |€t          n|}|D ]q}t          |pd¦  «                             ¦   «         }|r	|t          v rŒ1t           t          |¦  «        | |¦  «        ¦  «         t                               |¦  «         Œrd S r6   )r%   r¯   r)   r8   r!   r‚   rŒ   Úadd)Úserver_configÚfiles_locatorr©   Úmodulesrƒ   s        r2   Úregister_audio_processorsr»   Ö   sŸ   € ð &3Ð"Ø*9Ð*AÕ&Ð&À€GØð <ð <ˆÝ�4�:˜2‰Œ×$Ò$Ñ&Ô&ˆØð 	�tÕHÐHÐHØÝ Ð!<Õ!6°tÑ!<Ô!<¸]ÈMÑ!ZÔ!ZÑ[Ô[Ð[Ý1×5Ò5°dÑ;Ô;Ð;Ð;ð<ð <r1   FÚprocessor_typeÚenabled_onlyc                óð   ‡ ‡— g }t           D ]i}|                     ¦   «         Š‰ �*t          ˆˆ fd„t          ‰¦  «        D ¦   «         ¦  «        sŒB|rt	          |¦  «        sŒT|                     |¦  «         Œj|S )Nc              3  ó@   •K  — | ]\  }}t          ‰|‰¦  «        V — Œd S rG   )Ú_method_has_type)rK   Ú_r;   r�   r¼   s      €€r2   rM   z%processor_handlers.<locals>.<genexpr>ç   sQ   øè è € ð  2Wð  2WÑluÐlmÐouÕ2BÀ;ÐPVÐXfÑ2gÔ2gð  2Wð  2Wð  2Wð  2Wð  2Wð  2Wr1   )r    r±   rS   r–   Úhandler_enabledr€   )r¼   r½   Úhandlersr(   r�   s   `   @r2   Úprocessor_handlersrÄ   ã   sÃ   øø€ Ø€HÝ,ð !ð !ˆØ×7Ò7Ñ9Ô9ˆØÐ%­cð  2Wð  2Wð  2Wð  2Wð  2Wõ  zIð  JUñ  zVô  zVð  2Wñ  2Wô  2Wñ  /Wô  /WÐ%ØØð 	¥°Ñ 8Ô 8ð 	ØØ�Š˜Ñ Ô Ð Ð Ø€Or1   c                óL   — t          | d¦  «         p|                      ¦   «         S )NÚenabled)r°   rÆ   r�   s    r2   rÂ   rÂ   ï   s$   € Ý�w 	Ñ*Ô*Ð*Ð?¨g¯oªoÑ.?Ô.?Ð?r1   c                óP   — t          |                      ¦   «         d         ¦  «        S )NÚname)r)   r±   r�   s    r2   Ú_handler_namerÉ   ó   s!   € Ýˆw×0Ò0Ñ2Ô2°6Ô:Ñ;Ô;Ð;r1   c                ó°   — t          j        t          | ¦  «        g¦  «        }|s$t          | d¦  «        r|                      ¦   «          t
          | u rd ad S d S )NÚrelease_vram)r   Úrelease_allrÉ   r°   rË   r#   )r(   Úreleaseds     r2   Ú _release_audio_processor_handlerrÎ   ÷   si   € õ  Ô+­]¸7Ñ-CÔ-CÐ,DÑEÔE€HØð � ¨Ñ8Ô8ð Ø×ÒÑÔÐÝ&¨'Ð1Ð1Ø*.Ð'Ð'Ð'ð 2Ð1r1   c                óV   — t           | u rd S t           �t          t           ¦  «         | a d S rG   )r#   rÎ   r�   s    r2   Ú_activate_audio_processorrÐ     s5   € õ '¨'Ð1Ð1ØˆÝ&Ð2Ý(Õ)HÑIÔIÐIØ&-Ð#Ð#Ð#r1   c                ó¢   — t          | ¦  «        } | sd S t          D ]3}| d„ t          |                     ¦   «         ¦  «        D ¦   «         v r|c S Œ4d S )Nc                ó   — g | ]\  }}|‘ŒS r0   r0   )rK   rÁ   Úkeys      r2   r“   z"find_processor.<locals>.<listcomp>  s   € Ð]Ð]Ð]™f˜a �cÐ]Ð]Ð]r1   )r<   r    r–   r±   ©r;   r(   s     r2   Úfind_processorrÕ     sm   € Ý˜fÑ%Ô%€FØð ØˆtÝ,ð ð ˆØÐ]Ð]­¸×8YÒ8YÑ8[Ô8[Ñ(\Ô(\Ð]Ñ]Ô]Ð]Ð]ØˆNˆNˆNð ^àˆ4r1   c                óŠ   — t          | ¦  «        } t          | ¦  «        }|€| S t          |                     ¦   «         | ¦  «        S rG   )r<   rÕ   r¢   r±   rÔ   s     r2   Úmethod_labelr×     sB   € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GØ€ØˆÝ˜×:Ò:Ñ<Ô<¸fÑEÔEÐEr1   c                óz   — 	 t          |                      dd¦  «        ¦  «        S # t          t          f$ r Y dS w xY w)NÚposiè  )r[   r:   Ú	TypeErrorÚ
ValueErrorr•   s    r2   Ú_handler_posrÜ     sJ   € ðÝ�[—_’_ U¨DÑ1Ô1Ñ2Ô2Ð2øÝ•zÐ"ð ð ð Øˆtˆtðøøøs   ‚"% ¥:¹:c                óØ   — |                       di ¦  «        }t          |t          ¦  «        r1||v r-	 t          ||         ¦  «        S # t          t
          f$ r Y nw xY wt          | ¦  «        S )NÚ
method_pos)r:   rO   rT   r[   rÚ   rÛ   rÜ   )r�   r;   rÞ   s      r2   Ú_method_posrß   $  s|   € Ø—’ ¨rÑ2Ô2€JÝ�*�dÑ#Ô#ð ¨°*Ð(<Ð(<ð	Ý˜ FÔ+Ñ,Ô,Ð,øÝ�:Ð&ð 	ð 	ð 	ØˆDð	øøøå˜Ñ$Ô$Ð$s   ±A ÁAÁAútuple[str, ...]c                ó   — |                       di ¦  «        }t          |t          ¦  «        rM||v rI||         }t          |t          t          t
          f¦  «        rt	          |¦  «        nt          |¦  «        fS |                       dd¦  «        }t          |t          t          t
          f¦  «        rt	          |¦  «        nt          |¦  «        fS )NÚmethod_typesÚprocessor_typesr0   )r:   rO   rT   rP   rQ   rR   r)   )r�   r;   râ   r@   s       r2   Ú_method_typesrä   .  s¬   € Ø—?’? >°2Ñ6Ô6€LÝ�,¥Ñ%Ô%ð X¨&°LÐ*@Ð*@Ø˜VÔ$ˆÝ)¨%µ$½½sÐ1CÑDÔDÐW�u�U‰|Œ|ˆ|Í3ÈuÉ:Ì:È-ÐWØ�OŠOÐ-¨rÑ2Ô2€EÝ% e­dµE½3Ð-?Ñ@Ô@ÐS�5�‰<Œ<ˆ<ÅsÈ5ÁzÄzÀmÐSr1   c                ó&   — |t          | |¦  «        v S rG   )rä   )r�   r;   r¼   s      r2   rÀ   rÀ   7  s   € Ø�]¨;¸Ñ?Ô?Ð?Ð?r1   rÓ   c                óˆ   — |                       ||¦  «        }t          |t          ¦  «        r|                      ||¦  «        S |S rG   )r:   rO   rT   )r�   rÓ   r;   ÚdefaultrU   s        r2   Ú_method_valuerè   ;  s@   € Ø�_Š_˜S 'Ñ*Ô*€FÝ�&�$ÑÔð +Ø�zŠz˜& 'Ñ*Ô*Ð*Ø€Mr1   c                ó
  — t          | ¦  «        } t          | ¦  «        }| | ddddddddd|dœ}|€|S |                     ¦   «         }|                     t	          || ¦  «        t          t          |d| | ¦  «        pd¦  «        t          || ¦  «        dœ¦  «         dD ]$}t          t          ||| d¦  «        ¦  «        ||<   Œ%	 t          t          |d	| d¦  «        pd¦  «        |d	<   n# t          t          f$ r d|d	<   Y nw xY w|S )
Nr7   r0   Fr   )r;   r’   ÚstatusÚtypesÚneeds_promptÚneeds_negative_promptÚneeds_audio_sourceÚneeds_voice_sampleÚneeds_voice_sample2Úsupports_repeatÚspeaker_countr(   rê   )r’   rê   rë   )rì   rí   rî   rï   rð   rñ   rò   )r<   rÕ   r±   Úupdater¢   r)   rè   rä   rD   ÚintrÚ   rÛ   )r;   r(   Úmetadatar�   rÓ   s        r2   Úmethod_metadatarö   B  s[  € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GàØØØØØ!&Ø#Ø#Ø$Ø ØØðð €Hð €ØˆØ×3Ò3Ñ5Ô5€KØ‡O‚OÝ˜{¨FÑ3Ô3Ý•m K°¸6À6ÑJÔJÐPÈbÑQÔQÝ˜{¨FÑ3Ô3ðð ñ ô ð ð
 Oð Mð MˆÝ�]¨;¸¸VÀUÑKÔKÑLÔLˆ�‰ˆð&Ý$'­°kÀ?ÐTZÐ\]Ñ(^Ô(^Ð(cÐbcÑ$dÔ$dˆ�Ñ!Ð!øÝ•zÐ"ð &ð &ð &Ø$%ˆ�Ñ!Ð!Ð!ð&øøøà€Os   Ã$C' Ã'D Ã?D c                ó   — t          | ¦  «        } | sdS t          | ¦  «        }|€| S t          |d¦  «        r&t          |                     | |¬¦  «        p| ¦  «        S t          |                     ¦   «         | |¦  «        S )Nr7   Úformat_method_label)rœ   )r<   rÕ   r°   r)   rø   r¢   r±   )r;   rœ   r(   s      r2   rø   rø   d  sŒ   € Ý˜fÑ%Ô%€FØð ØˆrÝ˜VÑ$Ô$€GØ€ØˆÝˆwÐ-Ñ.Ô.ð _Ý�7×.Ò.¨vÀ]Ð.ÑSÔSÐ]ÐW]Ñ^Ô^Ð^Ý˜×:Ò:Ñ<Ô<¸fÀmÑTÔTÐTr1   c                ó0   — |t          | ¦  «        d         v S )Nrë   ©rö   )r;   r¼   s     r2   Úmethod_has_typerû   p  s   € Ø�_¨VÑ4Ô4°WÔ=Ð=Ð=r1   r7   Úchoicesc                óH   — t          |¦  «        }d„ | D ¦   «         }||v r|n|S )Nc                ó   — h | ]\  }}|’ŒS r0   r0   ©rK   rÁ   r;   s      r2   ú	<setcomp>z _choice_value.<locals>.<setcomp>v  s   € Ð1Ð1Ð1™I˜A˜v�Ð1Ð1Ð1r1   )r<   )rü   r@   rç   Ú	availables       r2   Ú_choice_valuer  t  s6   € Ý˜UÑ#Ô#€EØ1Ð1¨Ð1Ñ1Ô1€IØ˜YÐ&Ð&ˆ5ˆ5¨GÐ3r1   c                 ó$   — dd l } |j        di | ¤ŽS )Nr   r0   )Úgradioró   )ÚkwargsÚgrs     r2   Ú
_gr_updater  z  s&   € ØÐÐÐàˆ2Œ9ÐÐ�vÐÐÐr1   T)Úinclude_noneÚinclude_controlÚinclude_voicer½   rœ   Úvoice_label_contextr  r	  r
  r  c                ó°   — t          t          | ||¬¦  «        }|r|                     dt          f¦  «         |r|t          t          d||p|¬¦  «        z  }|S )N©r  r½   rœ   z;Control Video Audio Track (Reuse Control Video Audio Track)F)Úquery_method_choicesÚAUDIO_PROCESSOR_TYPE_SOUNDTRACKr€   ÚCONTROL_AUDIO_METHODÚ&AUDIO_PROCESSOR_TYPE_VOICE_REPLACEMENT)r  r	  r
  r½   rœ   r  rü   s          r2   Úsoundtrack_choicesr  €  s—   € Ý"Õ#BÐQ]Ðlxð  IVð  Wñ  Wô  W€GØð nØ�ŠÐUÕWkÐlÑmÔmÐmØð sØÕ'Õ(NÐ]bÐq}ð  Nað  Nrð  erð  sñ  sô  sñ  	sˆØ€Nr1   r  c                ó2   — t          t          | ||¬¦  «        S ©Nr  )r  r  r  s      r2   Úvoice_replacement_choicesr  ‰  s-   € ÝÕ FÐUaÐp|ð  MZð  [ñ  [ô  [ð  [r1   ©r  r½   c                ó<   — t          t          | |t          ¬¦  «        S r  )r  ÚAUDIO_PROCESSOR_TYPE_AUDIO_EDITÚ1AUDIO_PROCESSOR_LABEL_CONTEXT_LATE_POSTPROCESSINGr  s     r2   Úaudio_edit_choicesr  �  s,   € ÝÕ ?ÈlÐiuõ  Fwð  xñ  xô  xð  xr1   ©r½   c                ó^   — t          d„ t          t          d| ¬¦  «        D ¦   «         ¦  «        S )Nc              3  óF   K  — | ]\  }}t          |¦  «        d          V — ŒdS )rî   Nrú   rÿ   s      r2   rM   z.has_audio_source_soundtrack.<locals>.<genexpr>’  sL   è è € ð  tð  tÁÀÀF�˜vÑ&Ô&Ð';Ô<ð  tð  tð  tð  tð  tð  tr1   Fr  )rS   r  r  r  s    r2   Úhas_audio_source_soundtrackr  ‘  sb   € Ýð  tð  tÕNbõ  dCð  RWð  frð  Osñ  Osô  Osð  tñ  tô  tñ  tô  tð  tr1   c                óÒ   — t          | ¦  «        }t          |d         p|d         ¬¦  «        t          t          | ¦  «        t          k    ¬¦  «        t          |d         ¬¦  «        fS )Nrì   rí   ©Úvisiblerî   )rö   r  r<   r  ©r;   rõ   s     r2   Úsoundtrack_refresh_updatesr#  •  sh   € Ý˜vÑ&Ô&€Hå˜8 NÔ3ÐX°xÐ@WÔ7XÐYÑYÔYÝÕ+¨FÑ3Ô3Õ7KÒKÐLÑLÔLÝ˜8Ð$8Ô9Ð:Ñ:Ô:ðð r1   c                óx   — t          | ¦  «        }t          |d         ¬¦  «        t          |d         ¬¦  «        fS ©Nrï   r   rð   ©rö   r  r"  s     r2   Ú!voice_replacement_refresh_updatesr'  ž  ó=   € Ý˜vÑ&Ô&€HÝ˜hÐ';Ô<Ð=Ñ=Ô=½zÐRZÐ[pÔRqÐ?rÑ?rÔ?rÐrÐrr1   c                óx   — t          | ¦  «        }t          |d         ¬¦  «        t          |d         ¬¦  «        fS r%  r&  r"  s     r2   Úaudio_edit_refresh_updatesr*  £  r(  r1   c                óÜ   — t          | ¦  «        }t          |d         p|d         ¬¦  «        t          |d         ¬¦  «        t          |d         ¬¦  «        t          |d         ¬¦  «        fS )Nrì   rí   r   rî   rï   rð   r&  r"  s     r2   Úlate_remux_refresh_updatesr,  ¨  ss   € Ý˜vÑ&Ô&€Hå˜8 NÔ3ÐX°xÐ@WÔ7XÐYÑYÔYÝ˜8Ð$8Ô9Ð:Ñ:Ô:Ý˜8Ð$8Ô9Ð:Ñ:Ô:Ý˜8Ð$9Ô:Ð;Ñ;Ô;ð	ð r1   )Úany_control_videoÚupdate_formr-  r.  c               óž  — t          d|¬¦  «        }t          | |d¦  «        d¦  «        }t          |¦  «        }|                      ||ddd¬¦  «        }|                      |d         p|d	         ¬
¦  «        5 }	|                      ¦   «         5  |                       |d¦  «        d¬¦  «        }
|                       |d¦  «        d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |                      |t          k    ¬
¦  «        5 }|                      d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      |d         ¬
¦  «        5 }|  	                    | 
                    dd ¦  «        ddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          d¬¦  «        }t          | |d¦  «        d¦  «        }t          |¦  «        }|                      t          |¦  «        dk    ¬
¦  «        5 }|                      ||d¬¦  «        }|                      |d         ¬
¦  «        5 }|  	                    | 
                    dd ¦  «        ddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |d         ¬
¦  «        5 }|  	                    | 
                    dd ¦  «        ddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |sA|                     t          |g|	||g¬ ¦  «         |                     t          |g||g¬ ¦  «         ||	|
||||||||||d!œS )"NT)r  r	  rb   r7   r   zPostprocess Remux Audio)rü   r@   r!  Úscaler’   rì   rí   r   rd   ÚPrompt)r’   re   úNegative Promptz*<B>Reuse the Control Video audio track</B>rî   rc   ÚfilepathÚ
Soundtrack)r@   Útyper’   Úshow_download_button)r  rl   zReplace Voice)rü   r@   r’   rï   ri   úVoice Sample #1rð   rk   úVoice Sample #2©ÚfnÚinputsÚoutputs)rb   Úpostprocess_audio_prompt_colrd   re   Úpostprocess_audio_control_colÚpostprocess_audio_source_colrc   Úreplace_voice_colrl   Úreplace_voice_sample_rowri   Úreplace_voice_sample2_rowrk   )r  r  rö   ÚDropdownÚColumnÚRowÚTextr  ÚMarkdownÚAudior:   r  rV   Úinputr#  r'  )r  Úui_getrX   r-  r.  Úpostprocess_choicesÚpostprocess_valueÚpostprocess_metadatarb   r=  rd   re   r>  r?  rc   Úreplace_voice_choicesÚreplace_voice_valueÚreplace_voice_metadatar@  rl   rA  ri   rB  rk   s                           r2   Úcreate_generation_audio_uirQ  ²  s  € Ý,¸$ÐPaÐbÑbÔbÐÝ%Ð&9¸6¸6ÐBUÑ;VÔ;VÐXZÑ[Ô[ÐÝ*Ð+<Ñ=Ô=ÐØŸšÐ,?ÐGXÐbfÐnoð  xQ˜ñ  Rô  RÐØ	�ŠÐ/°Ô?ÐpÐCWÐXoÔCpˆÑ	qÔ	qð tð  vRØ�VŠV‰XŒXð 	tð 	tØ')§w¢w¨v¨vÐ6PÑ/QÔ/QÐYa wÑ'bÔ'bÐ$Ø+-¯7ª7°6°6Ð:XÑ3YÔ3YÐar¨7Ñ+sÔ+sÐ(ð	tð 	tð 	tñ 	tô 	tð 	tð 	tð 	tð 	tð 	tð 	tøøøð 	tð 	tð 	tð 	tðtð tð tñ tô tð tð tð tð tð tð tøøøð tð tð tð tð 
�ŠÐ,Õ0DÒDˆÑ	EÔ	Eð BÐIfØ
�ŠÐ@ÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bà	�ŠÐ/Ð0DÔEˆÑ	FÔ	Fð MÐJfØ—x’x k§o¢o°nÀdÑ&KÔ&KÐR\Ðdpð  HL�xñ  Mô  MˆðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mõ 6À4ÐHÑHÔHÐÝ'Ð(=¸v¸vÐF\Ñ?]Ô?]Ð_aÑbÔbÐÝ,Ð-@ÑAÔAÐØ	�Š�3Ð4Ñ5Ô5¸Ò9ˆÑ	:Ô	:ð hÐ>OØ!Ÿ{š{Ð3HÐPcÐkz˜{Ñ{Ô{ÐØ�VŠVÐ2Ð3GÔHˆVÑIÔIð 	fÐMeØ#%§8¢8°+·/²/ÐBXÐZ^Ñ2_Ô2_Ðfpð  yJð  ae 8ñ  $fô  $fÐ ð	fð 	fð 	fñ 	fô 	fð 	fð 	fð 	fð 	fð 	fð 	føøøð 	fð 	fð 	fð 	fà�VŠVÐ2Ð3HÔIˆVÑJÔJð 	hÐNgØ$&§H¢H°;·?²?ÐCZÐ\`Ñ3aÔ3aÐhrð  {Lð  cg Hñ  %hô  %hÐ!ð	hð 	hð 	hñ 	hô 	hð 	hð 	hð 	hð 	hð 	hð 	høøøð 	hð 	hð 	hð 	hð	hð hð hñ hô hð hð hð hð hð hð høøøð hð hð hð hð ð gØ×ÒÕ#=ÐGXÐFYð  eAð  C`ð  b~ð  dÐñ  	@ô  	@ð  	@Ø×"Ò"Õ&GÐQeÐPfð  rJð  Leð  qfÐ"ñ  	gô  	gð  	gð /Ø(DØ$<Ø(DØ)FØ(DØ$Ø.Ø 4Ø$<Ø 4Ø%>Ø!6ðð ð sµ   Á9C2ÂACÃC2ÃC	ÃC2Ã"C	Ã#C2Ã2C6Ã9C6ÄD>Ä>EÅEÅ%.FÆF#Æ&F#È
5K1È?.I9É-K1É9I=	É=K1Ê I=	ÊK1Ê .KËK1ËK	ËK1Ë!K	Ë"K1Ë1K5Ë8K5)r.  Údefault_visibility_falsec          	     ó  — t          ¦   «         }|r|d         d         nd}t          |¦  «        }|                      ||ddddd¬¦  «        }|                      |d	         ¬
¦  «        5 }|                      ddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      |d         ¬
¦  «        5 }	|                      ddd¬¦  «        }
d d d ¦  «         n# 1 swxY w Y   |s |                     t          |g||	g¬¦  «         ||||	|
dœS )Nr   r   r7   TúAudio ActionFÚpostprocess)rü   r@   r!  r0  r’   Ú
show_labelÚelem_classesrï   r   r7  r3  ©r’   r5  r6  rð   r8  r9  )rb   rA  ri   rB  rk   )r  rö   rC  rE  rH  Úchanger*  )r  rR  r.  rü   r@   rõ   rb   rA  ri   rB  rk   s              r2   Úcreate_late_audio_edit_uirZ  ß  së  € Ý Ñ"Ô"€GØ$Ð,ˆG�AŒJ�qŒMˆM¨"€EÝ˜uÑ%Ô%€HØŸš¨G¸5È$ÐVWÐ_mÐzð  O\˜ñ  ]ô  ]ÐØ	�Š˜Ð!5Ô6ˆÑ	7Ô	7ð mÐ;SØ!ŸxšxÐ.?ÀjÐgk˜xÑlÔlÐðmð mð mñ mô mð mð mð mð mð mð møøøð mð mð mð mà	�Š˜Ð!6Ô7ˆÑ	8Ô	8ð nÐ<UØ "§¢Ð/@ÀzÐhl Ñ mÔ mÐðnð nð nñ nô nð nð nð nð nð nð nøøøð nð nð nð nàð [Ø× Ò Õ$>ÐHYÐGZÐe}ð  @Yð  eZÐ ñ  	[ô  	[ð  	[à.Ø$<Ø 4Ø%>Ø!6ðð ð s$   Á(BÂBÂBÂ4CÃCÃ Cc               óP  — t          dddt          ¬¦  «        }t          d„ |D ¦   «         v rt          n|r|d         d         nd}|rdn|}t          |¦  «        }|                      d¬¦  «        5 }|                      ¦   «         5   | j        d#|ddd	dd
dœ|ri nd|i¤Ž}d d d ¦  «         n# 1 swxY w Y    | j        d#i |ri nd|d         p|d         i¤Ž5 }	|                      ¦   «         5  |                      ddd
¬¦  «        }
|                      ddd
¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                      dddddd¬¦  «        }|                      dddddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y    | j        d#i |ri n	d|d         i¤Ž5 }|  	                    ddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y    | j        d#i |ri n	d|d         i¤Ž5 }|  	                    ddd¬¦  «        }d d d ¦  «         n# 1 swxY w Y    | j        d#i |ri n	d|d         i¤Ž5 }|  	                    d dd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |s"| 
                    t          |g|	|||g¬!¦  «         |||	|
|||||||||d"œS )$NFT)r  r	  r
  r  c                ó   — h | ]\  }}|’ŒS r0   r0   rÿ   s      r2   r   z'create_late_remux_ui.<locals>.<setcomp>õ  s   € ÐLmÐLmÐLmÑXaÐXYÐ[aÈVÐLmÐLmÐLmr1   r   r   r7   r   rT  rU  )rü   r!  r0  r’   rV  rW  r@   r!  rì   rí   r1  )r’   rW  r2  éÿÿÿÿiÿÉš;zSeed (-1 for random))r@   Ústepr’   Úshow_reset_buttong      9@z#Number of Sample Videos to Generaterî   r4  r3  rX  rï   r7  rð   r8  r9  )Úpostprocess_audio_colrb   Úpostprocess_audio_prompt_rowrd   re   Úpostprocess_audio_seedÚrepeat_generationÚaudio_source_rowrc   rA  ri   rB  rk   r0   )r  r  rp   rö   rD  rE  rC  rF  ÚSliderrH  rY  r,  )r  r.  rR  rü   Údefault_valuer@   rõ   r`  rb   ra  rd   re   rb  rc  rd  rc   rA  ri   rB  rk   s                       r2   Úcreate_late_remux_uirg  ó  s  € Ý ¨eÀUÐZ^õ  ufð  gñ  gô  g€GÝ0HÐLmÐLmÐelÐLmÑLmÔLmÐ0mÐ0mÕ,Ð,ð  FMð  uUÐt{Ð|}Ôt~ð  @Aô  uBð  uBð  SU€MØÐ0ˆBˆB =€EÝ˜uÑ%Ô%€HØ	�Š˜4ˆÑ	 Ô	 ð JÐ$9Ø�VŠV‰XŒXð 	Eð 	EØ + ¤ð  !E°GÀTÐQRÐZhÐuzð  JWð  !Eð  !Eð  bmð  \Cð  \^ð  \^ð  t{ð  }Bð  sCð  !Eð  !EÐð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	EàˆRŒYÐ}Ð} Ð{˜"˜"°)¸XÀnÔ=UÐ=zÐYaÐbyÔYzÐ1{Ð}Ð}ð 	Jð  B^Ø—’‘”ð pð pØ+-¯7ª7°2¸XÐTa¨7Ñ+bÔ+bÐ(Ø/1¯wªw°rÐARÐan¨wÑ/oÔ/oÐ,ðpð pð pñ pô pð pð pð pð pð pð pøøøð pð pð pð pð &(§Y¢Y¨r°9ÀBÈQÐVlð  AF Yñ  &Gô  &GÐ"Ø "§	¢	¨!¨T¸ÀÐJoð  DI 	ñ  !Jô  !JÐð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	JðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð 
ˆŒÐ	WÐ	W˜ÐU�2�2¨9°hÐ?SÔ6TÐ*UÐ	WÐ	Wð `Ð[kØ—x’x l¸ÐZ^�xÑ_Ô_ˆð`ð `ð `ñ `ô `ð `ð `ð `ð `ð `ð `øøøð `ð `ð `ð `à	ˆŒÐ	WÐ	W˜ÐU�2�2¨9°hÐ?SÔ6TÐ*UÐ	WÐ	Wð mÐ[sØ!ŸxšxÐ.?ÀjÐgk˜xÑlÔlÐðmð mð mñ mô mð mð mð mð mð mð møøøð mð mð mð mà	ˆŒÐ	XÐ	X˜ÐV�2�2¨9°hÐ?TÔ6UÐ*VÐ	XÐ	Xð nÐ\uØ "§¢Ð/@ÀzÐhl Ñ mÔ mÐðnð nð nñ nô nð nð nð nð nð nð nøøøð nð nð nð nàð KØ× Ò Õ$>ÐHYÐGZð  fBð  DTð  Vnð  pIð  eJÐ ñ  	Kô  	Kð  	Kà!6Ø.Ø(DØ$<Ø(DØ"8Ø.Ø,Ø$Ø$<Ø 4Ø%>Ø!6ðð ð s´   Á0FÂB,Â FÂ,B0	Â0FÂ3B0	Â4$FÃE7Ã-1D*ÄE7Ä*D.Ä.E7Ä1D.Ä29E7Å+FÅ7E;	Å;FÅ>E;	Å?FÆFÆFÆ2GÇGÇGÇ;H È H$È'H$ÉI)É)I-É0I-c          	     ó  — |rdgng }t          | |¬¦  «        D ]¥}|                     ¦   «         }t          |¦  «        D ]\  }}t          ||| ¦  «        rit	          |||¦  «        }	|                     t          ||¦  «        t          |	pd¦  «                             ¦   «         t          |pd¦  «        |	|f¦  «         Œ€Œ¦|r,|d d…         d„ t          |dd …         ¦  «        D ¦   «         z   nd„ t          |¦  «        D ¦   «         S )N)r~   r7   r  r7   r   c                ó"   — g | ]\  }}}}}||f‘ŒS r0   r0   ©rK   rÁ   r’   r;   s       r2   r“   z(query_method_choices.<locals>.<listcomp>"  s'   € Ð\Ð\Ð\Ñ.D¨a°°A°u¸f˜5 &˜/Ð\Ð\Ð\r1   c                ó"   — g | ]\  }}}}}||f‘ŒS r0   r0   rj  s       r2   r“   z(query_method_choices.<locals>.<listcomp>"  sg   € ð  srð  srð  srñ  H^ð  HIð  KLð  NOð  QVð  X^Ðtyð  |Bð  tCð  srð  srð  srr1   )
rÄ   r±   r–   rÀ   r¢   r€   rß   r)   ÚcasefoldÚsorted)
r¼   r  r½   rœ   rü   r(   r�   r’   r;   Úchoice_labels
             r2   r  r    sx  € Ø ,Ð4ˆ|ˆnˆn°"€GÝ% nÀ<ÐPÑPÔPð Pð PˆØ×7Ò7Ñ9Ô9ˆÝ,¨[Ñ9Ô9ð 	Pð 	P‰MˆE�6Ý ¨V°^ÑDÔDð PÝ,¨[¸&À-ÑPÔP�Ø—’¥¨K¸Ñ @Ô @Å#ÀlÐFXÐVXÑBYÔBY×BbÒBbÑBdÔBdÕfiÐjpÐjvÐtvÑfwÔfwð  zFð  HNð   Oñ  Pô  Pð  Pøð	Pð amð  rˆ7�2�A�2Œ;Ð\Ð\ÍÈwÐWXÐWYÐWYÌ{ÑH[ÔH[Ð\Ñ\Ô\Ñ\Ð\ð  srð  srõ  bhð  ipñ  bqô  bqð  srñ  srô  srð  rr1   c                ó  — t          | ¦  «        } t          | ¦  «        }|€| rdndS |�5t          |                     ¦   «         | |¦  «        st	          | ¦  «        › d�S t          |d¦  «        r |j        | fi |¤Ž}|r|S dS )Nz/You must choose a valid audio processing methodz4You must choose at least one audio processing methodz1 is not available for this audio processing stageÚvalidate_methodr7   )r<   rÕ   rÀ   r±   r×   r°   rp  )r;   r¼   r  r(   Úerrors        r2   rp  rp  %  s¹   € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GØ€ØDJð  GÐ@Ð@ð  QGð  	GØÐ!Õ*:¸7×;\Ò;\Ñ;^Ô;^Ð`fÐhvÑ*wÔ*wÐ!Ý˜vÑ&Ô&ÐYÐYÐYÐYÝˆwÐ)Ñ*Ô*ð Ø'�Ô'¨Ð9Ð9°&Ð9Ð9ˆØð 	ØˆLØˆ2r1   Úprocess_filesúCallable[..., Any]c                óž   — t          | ¦  «        } t          | ¦  «        }t          |d uot          |d¦  «        o |j        | |fi |¤Ž¦  «        S )NÚdownload)r<   rÕ   rD   r°   ru  )r;   rr  r  r(   s       r2   Údownload_for_methodrv  3  s^   € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GÝ�˜tÐ#Ðz­°¸Ñ(DÔ(DÐzÐIYÈÔIYÐZ`ÐboÐIzÐIzÐsyÐIzÐIzÑ{Ô{Ð{r1   úlist[dict[str, Any]]c                ó¤   — g }t           D ];}t          |d¦  «        r)|                     |                     | ¬¦  «        ¦  «         Œ<d„ |D ¦   «         S )NÚquery_download_defsr  c                ó   — g | ]}|¯|‘ŒS r0   r0   )rK   Úones     r2   r“   z'query_download_defs.<locals>.<listcomp>>  s   € Ð'Ð'Ð'�C 3Ð'ˆCÐ'Ð'Ð'r1   )r    r°   Úextendry  )r½   Údefsr(   s      r2   ry  ry  9  sd   € Ø€DÝ,ð Pð PˆÝ�7Ð1Ñ2Ô2ð 	PØ�KŠK˜×3Ò3ÀÐ3ÑNÔNÑOÔOÐOøØ'Ð'˜4Ð'Ñ'Ô'Ð'r1   Ú	operationc                óL  — t          | ¦  «         t          ¦   «         }	  t          | |¦  «        |g|¢R i |¤Ž|r#t          j        t          | ¦  «        g¦  «         S t          | ¦  «         S # |r#t          j        t          | ¦  «        g¦  «         w t          | ¦  «         w xY wrG   )rÐ   Úpersistent_modelsr‡   r   Úunload_vramrÉ   rÎ   )r(   r~  r;   Úargsr  Ú
persistents         r2   Ú_dispatch_processorr„  A  s½   € Ý˜gÑ&Ô&Ð&Ý"Ñ$Ô$€Jð6Ø*�w�w 	Ñ*Ô*¨6ÐC°DÐCÐCÐC¸FÐCÐCàð 	6ÝÔ(­-¸Ñ*@Ô*@Ð)AÑBÔBÐBÐBå,¨WÑ5Ô5Ð5Ð5øð ð 	6ÝÔ(­-¸Ñ*@Ô*@Ð)AÑBÔBÐBÐBå,¨WÑ5Ô5Ð5Ð5øøøs   ŸA- Á-6B#c                ó¦   — t          | ¦  «        } t          | ¦  «        }|�t          |d¦  «        st          d| › d�¦  «        ‚t	          |d| fi |¤ŽS )NÚgenerate_soundtrackz.No soundtrack audio processor registered for 'ú'©r<   rÕ   r°   ÚRuntimeErrorr„  ©r;   r  r(   s      r2   r†  r†  M  se   € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GØ€�g gÐ/DÑEÔE€ÝÐUÈFÐUÐUÐUÑVÔVÐVÝ˜wÐ(=¸vÐPÐPÈÐPÐPÐPr1   Úaudio_tracksú	list[str]útuple[list[str], list[str]]c                ó¨   — t          | ¦  «        } t          | ¦  «        }|�t          |d¦  «        st          d| › d�¦  «        ‚t	          |d| |fi |¤ŽS )NÚreplace_voice_tracksz5No voice replacement audio processor registered for 'r‡  rˆ  )r;   r‹  r  r(   s       r2   r�  r�  U  si   € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GØ€�g gÐ/EÑFÔF€ÝÐ\ÐSYÐ\Ð\Ð\Ñ]Ô]Ð]Ý˜wÐ(>ÀÈÐ_Ð_ÐX^Ð_Ð_Ð_r1   c                ó¦   — t          | ¦  «        } t          | ¦  «        }|�t          |d¦  «        st          d| › d�¦  «        ‚t	          |d| fi |¤ŽS )NÚprocess_audio_filez(No audio edit processor registered for 'r‡  rˆ  rŠ  s      r2   r‘  r‘  ]  se   € Ý˜fÑ%Ô%€FÝ˜VÑ$Ô$€GØ€�g gÐ/CÑDÔD€ÝÐOÀfÐOÐOÐOÑPÔPÐPÝ˜wÐ(<¸fÐOÐOÈÐOÐOÐOr1   c                ó  — |                       ¦   «         }t          |                     dd¦  «        pd¦  «                             ¦   «         }|r|S t	          |¦  «        }|r|d         d         S | j        j                             ¦   «         S r¥   )r±   r)   r:   r8   r–   Ú	__class__r,   r¦   )r(   r�   r*   r§   s       r2   Úconfig_key_for_handlerr”  e  sŠ   € Ø×3Ò3Ñ5Ô5€KÝ�[—_’_ \°2Ñ6Ô6Ð<¸"Ñ=Ô=×CÒCÑEÔE€JØð ØÐÝ$ [Ñ1Ô1€NØð $Ø˜aÔ  Ô#Ð#ØÔÔ%×+Ò+Ñ-Ô-Ð-r1   r¸   c                ó¶   — |                       t          i ¦  «        }t          |t          ¦  «        si }|| t          <   n|                      t          |¦  «         |S rG   )r:   ÚAUDIO_PROCESSOR_CONFIG_KEYrO   rT   rr   )r¸   Úconfigss     r2   Ú_nested_configsr˜  p  sZ   € Ø×ÒÕ :¸BÑ?Ô?€GÝ�g�tÑ$Ô$ð FØˆØ4;ˆÕ0Ñ1Ð1à× Ò Õ!;¸WÑEÔEÐEØ€Nr1   rô   c                ó’   — 	 t          | ¦  «        } n# t          t          f$ r
 t          } Y nw xY w| t          t          fv r| nt          S rG   )rô   rÚ   rÛ   r®   ÚPERSIST_RAMrW   s    r2   Únormalize_persistencer›  z  sV   € ðÝ�E‘
”
ˆˆøÝ•zÐ"ð ð ð Ýˆˆˆðøøøà�n­kÐ:Ð:Ð:ˆ5ˆ5ÅÐNs   ‚ ’-¬-c                ó®   — | €t           n| }|€t          d¦  «        ‚t          t          |¦  «                             t
          t          ¦  «        ¦  «        S )Nz#Audio processors are not registered)r%   r‰  r›  r˜  r:   r­   r®   )r¸   r´   s     r2   r   r   ‚  sN   € Ø/<Ð/DÕ+Ð+È-€FØ€~ÝÐ@ÑAÔAÐAÝ ¥°Ñ!8Ô!8×!<Ò!<Õ=SÕUcÑ!dÔ!dÑeÔeÐer1   c                ó2   — t          | ¦  «        t          k    S rG   )r   rš  )r¸   s    r2   r€  r€  ‰  s   € Ý�}Ñ%Ô%­Ò4Ð4r1   c                óR   — t          |¦  «        }|t          | ¦  «        t          <   |S rG   )r›  r˜  r­   )r¸   r@   s     r2   Úwrite_persistencerŸ  �  s'   € Ý! %Ñ(Ô(€EØ=B…O�MÑ"Ô"Õ#9Ñ:Ø€Lr1   c                ó¢   — t          | d¦  «        r!t          |                      ¦   «         ¦  «        ni }|                     t          d ¦  «         |S )Nr¬   )r°   rT   r¬   rn   r­   ©r(   r´   s     r2   Ú_default_configr¢  “  sK   € Ý/6°wÐ@PÑ/QÔ/QÐY�T�'×(Ò(Ñ*Ô*Ñ+Ô+Ð+ÐWY€FØ
‡J‚JÕ% tÑ,Ô,Ð,Ø€Mr1   r´   c                ó¾   — t          | d¦  «        r"t          |                      |¦  «        ¦  «        nt          |¦  «        }|                     t          d ¦  «         |S )NÚnormalize_config_section)r°   rT   r¤  rn   r­   r¡  s     r2   Ú_normalize_config_sectionr¥  ™  sV   € Ý?FÀwÐPjÑ?kÔ?kÐ}�T�'×2Ò2°6Ñ:Ô:Ñ;Ô;Ð;ÕquÐv|Ñq}Ôq}€FØ
‡J‚JÕ% tÑ,Ô,Ð,Ø€Mr1   c                óF  — |                       t          i ¦  «        }t          |¦  «        }t          |t          ¦  «        r|                      |i ¦  «        ni }t          |t          ¦  «        r|ni }i t          |¦  «        ¥t	          |pi ¦  «        ¥}t          ||¦  «        S rG   )r:   r–  r”  rO   rT   r¢  r¥  )r¸   r(   r—  r*   ÚnestedrU   s         r2   Úread_config_sectionr¨  Ÿ  s—   € Ø×ÒÕ :¸BÑ?Ô?€GÝ'¨Ñ0Ô0€JÝ,6°wÅÑ,EÔ,EÐMˆW�[Š[˜ RÑ(Ô(Ð(È2€FÝ! &­$Ñ/Ô/Ð7ˆVˆV°R€FØ?• Ñ(Ô(Ð?­D°°¸2Ñ,>Ô,>Ð?€FÝ$ W¨fÑ5Ô5Ð5r1   c                ó¤   — t          |i t          |¦  «        ¥t          |pi ¦  «        ¥¦  «        }|t          | ¦  «        t	          |¦  «        <   |S rG   )r¥  r¢  rT   r˜  r”  )r¸   r(   r´   s      r2   Úwrite_config_sectionrª  ¨  sS   € Ý& wÐ0bµ?À7Ñ3KÔ3KÐ0bÍtÐTZÐT`Ð^`ÑOaÔOaÐ0bÑcÔc€FØFL…O�MÑ"Ô"Õ#9¸'Ñ#BÔ#BÑCØ€Mr1   c           	     óX  — t          |                      t          d ¦  «        ¦  «        }t          | t	          | ¦  «        ¦  «         t
          D ]0}t          |¦  «        rt          | |t          | |¦  «        ¦  «         Œ1t          |                      t          d ¦  «        ¦  «        }||k    S rG   )	Úreprr:   r–  rŸ  r   r    r¢  rª  r¨  )r¸   Úbeforer(   Úafters       r2   Úmigrate_audio_processor_configr¯  ®  s¡   € Ý�-×#Ò#Õ$>ÀÑEÔEÑFÔF€FÝ�m¥[°Ñ%?Ô%?Ñ@Ô@Ð@Ý,ð fð fˆÝ˜7Ñ#Ô#ð 	fÝ  °Õ9LÈ]Ð\cÑ9dÔ9dÑeÔeÐeøÝ�×"Ò"Õ#=¸tÑDÔDÑEÔE€EØ�UŠ?Ðr1   ©Úlock_configr±  ú!list[AudioProcessorConfigBinding]c          
     óÜ  — |                       t          t          |t          |¦  «        ¦  «        d| ¬¦  «        }t	          d t
          t          |fg¦  «        g}t          D ]Š}t          |d¦  «        sŒt          ||t          ||¦  «        ¦  «        }|                     | ||¬¦  «        }|r>|                     t	          |t          |¦  «        t          |¦  «        ¦  «        ¦  «         Œ‹|S )Nz!Audio Processor Model Persistence)rü   r@   r’   ÚinteractiveÚcreate_config_uir°  )rC  ÚPERSISTENCE_CHOICESrŸ  r   r'   Ú_SHARED_PERSISTENCE_BINDING_KEYr­   r    r°   rª  r¨  rµ  r€   r”  rP   )r  r¸   r±  Úshared_persistenceÚbindingsr(   r´   r+   s           r2   rµ  rµ  ¸  s/  € ØŸšÕ-@ÕHYÐZgÕitð  vCñ  jDô  jDñ  IEô  IEð  Mpð  BMð  ~M˜ñ  Nô  NÐÝ+¨DÕ2QÕUkÐmð  UAð  TBñ  Cô  Cð  D€HÝ,ð sð sˆÝ�wÐ 2Ñ3Ô3ð 	ØÝ% m°WÕ>QÐR_ÐahÑ>iÔ>iÑjÔjˆØ×+Ò+¨B°ÀKÐ+ÑPÔPˆØð 	sØ�OŠOÕ7¸ÕAWÐX_ÑA`ÔA`ÕbfÐgoÑbpÔbpÑqÔqÑrÔrÐrøØ€Or1   r¹  c                ó   — d„ | D ¦   «         S )Nc                ó,   — g | ]}|j         D ]\  }}|‘ŒŒS r0   )r+   )rK   ÚbindingrÁ   Ú	components       r2   r“   z%config_components.<locals>.<listcomp>Æ  s,   € ÐSÐSÐS˜'À'ÔBRÐSÐS±,°!°YˆIÐSÐSÐSÐSr1   r0   )r¹  s    r2   Úconfig_componentsr¾  Å  s   € ØSÐS XÐSÑSÔSÐSr1   údict[str, dict[str, Any]]c                ó¶  — t          |pg ¦  «        }i d}}| D ]ž}i }|j        D ]7\  }}|t          |¦  «        k    rt          d¦  «        ‚||         ||<   |dz  }Œ8|j        €!t
          t          |t
                   ¦  «        in*t          |j        i t          |j        ¦  «        ¥|¥¦  «        ||j	        <   ŒŸ|t          |¦  «        k    rt          d¦  «        ‚|S )Nr   zAAudio processor config UI values do not match registered controlsr   )
rP   r+   rV   rÛ   r(   r­   r›  r¥  r¢  r*   )r¹  rU   ÚupdatesÚindexr¼  r´   ÚfieldrÁ   s           r2   Úcollect_config_updaterÄ  É  sD  € Ý�&�,˜BÑÔ€FØ˜ˆU€GØð qð qˆØˆØÔ(ð 	ð 	‰HˆE�1Ø�˜F™œÒ#Ð#Ý Ð!dÑeÔeÐeØ" 5œMˆF�5‰MØ�Q‰JˆEˆEð zAô  zIð  zQÕ'=Õ?TÐU[Õ\rÔUsÑ?tÔ?tÐ&uÐ&uõ  Wpð  qxô  q@ð  Bpõ  ETð  U\ô  Udñ  Eeô  Eeð  Bpð  ioð  Bpñ  Wqô  Wqˆ�Ô"Ñ#Ð#Ø•�F‘”ÒÐÝÐ\Ñ]Ô]Ð]Ø€Nr1   rÁ  c                óL  — g }| D ]ž}|j         €Œ
|j        |v r‹t          |j         d¦  «        rv|j                              ||j                 ¦  «        }t	          |t
          ¦  «        r|r|                     |¦  «         Œzt	          |t          ¦  «        r|d„ |D ¦   «         z  }ŒŸ|S )NÚvalidate_config_sectionc                ó   — g | ]}|¯|‘ŒS r0   r0   )rK   rA   s     r2   r“   z3validate_config_update_messages.<locals>.<listcomp>ã  s   € Ð>Ð>Ð> d¸Ð>˜TÐ>Ð>Ð>r1   )r(   r*   r°   rÆ  rO   r)   r€   rP   )r¹  rÁ  Úmessagesr¼  Úmessages        r2   Úvalidate_config_update_messagesrÊ  Ù  s½   € Ø€HØð ?ð ?ˆØŒ?Ð"ØØÔ Ð(Ð(­W°W´_ÐF_Ñ-`Ô-`Ð(Ø”o×=Ò=¸gÀgÔFXÔ>YÑZÔZˆGÝ˜'¥3Ñ'Ô'ð ?¨Gð ?Ø—’ Ñ(Ô(Ð(Ð(Ý˜G¥TÑ*Ô*ð ?ØÐ>Ð>¨gÐ>Ñ>Ô>Ñ>�øØ€Or1   c                óÀ   — |D ]Z}|j         |v rO|j        €'t          | ||j                  t                   ¦  «         Œ9t	          | |j        ||j                  ¦  «         Œ[d S rG   )r*   r(   rŸ  r­   rª  )r¸   r¹  rÁ  r¼  s       r2   Úapply_config_updaterÌ  ç  ss   € Øð bð bˆØÔ Ð(Ð(ØŒÐ&Ý! -°¸Ô9KÔ1LÕMcÔ1dÑeÔeÐeÐeå$ ]°G´OÀWÈWÔM_ÔE`ÑaÔaÐaøðbð br1   Ú
old_configÚ
new_configc                ó”  — t          |¦  «        }t          | ¦  «        t          |¦  «        k    rt          nd }|�t          |¦  «         t          D ]v}t          |d¦  «        sŒt          | |¦  «        }t          ||¦  «        }t          |d¦  «        r|                     |||¦  «        }n||k    }|r||urt          |¦  «         Œwd S )NrË   Úconfig_requires_release)rR   r   r#   rÎ   r    r°   r¨  rÐ  )rÍ  rÎ  Úchanged_keysÚreleased_handlerr(   Úold_sectionÚnew_sectionÚshould_releases           r2   Ú!release_changed_config_processorsrÖ  ð  sò   € Ý�|Ñ$Ô$€LÝ:EÀjÑ:QÔ:QÕU`ÐakÑUlÔUlÒ:lÐ:lÕ6Ð6ÐrvÐØÐ#Ý(Ð)9Ñ:Ô:Ð:Ý,ð 
6ð 
6ˆÝ�w Ñ/Ô/ð 	ØÝ)¨*°gÑ>Ô>ˆÝ)¨*°gÑ>Ô>ˆÝ�7Ð5Ñ6Ô6ð 	8Ø$×<Ò<¸[È+ÐWcÑdÔdˆNˆNà(¨KÒ7ˆNØð 	6˜gÐ-=Ð=Ð=Ý,¨WÑ5Ô5Ð5øð
6ð 
6r1   )r4   r)   )r=   r)   r4   r)   )r4   rD   rG   )rX   rY   rZ   r[   r\   r]   )r4   r~   )rƒ   r)   )r�   rY   r4   rŽ   )r�   rY   r4   r—   )r�   rY   r;   r)   rœ   r�   r4   r)   )r�   rY   r£   r)   r4   r)   )r©   rª   r4   rY   )r©   rª   r4   r~   )NF)r¼   r�   r½   rD   r4   r   )r4   r"   )r�   rY   r4   r[   )r�   rY   r;   r)   r4   r[   )r�   rY   r;   r)   r4   rà   )r�   rY   r;   r)   r¼   r)   r4   rD   )r�   rY   rÓ   r)   r;   r)   )r4   rY   )rœ   r�   r4   r)   )r¼   r)   r4   rD   )r7   )rü   rŽ   r4   r)   )r  rD   r	  rD   r
  rD   r½   rD   rœ   r�   r  r�   r4   rŽ   )r  rD   r½   rD   rœ   r�   r4   rŽ   )r  rD   r½   rD   r4   rŽ   )r½   rD   r4   rD   )r-  rD   r.  rD   )rR  rY   r.  rD   )r.  rD   rR  rY   )
r¼   r)   r  rD   r½   rD   rœ   r�   r4   rŽ   )r¼   r�   r4   r)   )rr  rs  r4   rD   )T)r½   rD   r4   rw  )r~  r)   )r‹  rŒ  r4   r�  )r¸   rY   r4   rY   )r4   rô   )r¸   r$   r4   rô   )r¸   r$   r4   rD   )r¸   rY   r4   rô   )r´   rY   r4   rY   )r¸   rY   r´   rY   r4   rY   )r¸   rY   r4   rD   )r¸   rY   r±  rD   r4   r²  )r¹  r²  r4   r   )r¹  r²  r4   r¿  )r¹  r²  rÁ  r¿  r4   rŒ  )r¸   rY   r¹  r²  rÁ  r¿  r4   r~   )rÍ  rY   rÎ  rY   r4   r~   )nÚ__doc__Ú
__future__r   Údataclassesr   rˆ   Útypingr   r   Úshared.utilsr   Úprocessor_statusr	   r
   r   r   r   r  r  r  r  r–  r­   r®   rš  r¶  r·  ro   rp   ÚREMOVE_BACKGROUND_METHODrv   rt   r9   ru   rs   rm   r¯   r    r/   rR   r!   r#   r%   r'   r  r<   rC   rI   r}   r‚   rŒ   r–   r›   r¢   r¨   rµ   r»   rÄ   rÂ   rÉ   rÎ   rÐ   rÕ   r×   rÜ   rß   rä   rÀ   rè   rö   rø   rû   r  r  r  r  r  r  r#  r'  r*  r,  rQ  rZ  rg  r  rp  rv  ry  r„  r†  r�  r‘  r”  r˜  r›  r   r€  rŸ  r¢  r¥  r¨  rª  r¯  rµ  r¾  rÄ  rÊ  rÌ  rÖ  r0   r1   r2   ú<module>rÞ     s\  ððð ð ð< #Ð "Ð "Ð "Ð "Ð "à !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  à )Ð )Ð )Ð )Ð )Ð )ð Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð  Uð #/Ð Ø)<Ð &Ø".Ð Ø4IÐ 1Ø/Ð Ø&Ð Ø€Ø€Ø*¨NÐ;Ð>QÐS^Ð=_Ð`Ð Ø":Ð à€Ø#Ð Ø.Ð Ø0Ð Ø2Ð à'Ø)ðð Ð ð ),Ð %Ø),Ð &ØBÐEkÑkÐ ðð ð Ð ð (*Ð Ð )Ð )Ð )Ñ )Ø69°c±e´eÐ )Ð ;Ð ;Ð ;Ñ ;Ø.2Ð Ð 2Ð 2Ð 2Ñ 2Ø8<Ð Ð <Ð <Ð <Ñ <ð ð$ð $ð $ð $ð $ñ $ô $ñ „ð$ð !Ð ð5ð 5ð 5ð 5ð
ð ð ð ð	ð 	ð 	ð 	ð-ð -ð -ð -ð -ð`2ð 2ð 2ð 2ð
Eð Eð Eð Eð
Qð Qð Qð QðMð Mð Mð Mð;ð ;ð ;ð ;ð ;ð!ð !ð !ð !ðð ð ð ð ð
<ð 
<ð 
<ð 
<ð 
<ð	ð 	ð 	ð 	ð 	ð@ð @ð @ð @ð<ð <ð <ð <ð/ð /ð /ð /ð.ð .ð .ð .ðð ð ð ðFð Fð Fð Fðð ð ð ð%ð %ð %ð %ðTð Tð Tð Tð@ð @ð @ð @ðð ð ð ð ðð ð ð ðD	Uð 	Uð 	Uð 	Uð 	Uð>ð >ð >ð >ð4ð 4ð 4ð 4ð 4ðð ð ð 04ÈUÐjoð  GKð  imð  QUð ð ð ð ð ð ð 7;ÐQUÐswð [ð [ð [ð [ð [ð [ð 05È4ð xð xð xð xð xð xð 9=ð tð tð tð tð tð tðð ð ðsð sð sð
sð sð sð
ð ð ð V[Ðpuð *ð *ð *ð *ð *ð *ðZ dið ð ð ð ð ð ð( 5:ð $ð $ð $ð $ð $ð $ðN GKÐafð  EIð rð rð rð rð rð rðð ð ð ð ð|ð |ð |ð |ð(ð (ð (ð (ð (ð	6ð 	6ð 	6ð 	6ðQð Qð Qð Qð`ð `ð `ð `ðPð Pð Pð Pð.ð .ð .ð .ðð ð ð ðOð Oð Oð Oðfð fð fð fð fð5ð 5ð 5ð 5ð 5ðð ð ð ðð ð ð ðð ð ð ð6ð 6ð 6ð 6ðð ð ð ðð ð ð ð PUð 
ð 
ð 
ð 
ð 
ð 
ðTð Tð Tð Tðð ð ð ð ð ð ð ðbð bð bð bð6ð 6ð 6ð 6ð 6ð 6r1   