§
    Û×jc‘  ã            
       óæ  — d dl Z d dlZd dlZd dlZd dlmZmZ d dl	m
Z
mZ d dlm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 d	Zd
ZdZdZdZdZdZ dZ!dZ"dZ#ddgZ$dgZ%dZ&g d¢Z'dZ(dZ)dZ*d Z+dZ,dZ-dde(dœZ.d d!iZ/d"d#d$d%e.d"         d&œd'd(d)d*e.d'         d&œd+d,d-d*e.d+         d.d/d0œgZ0d d1d2d*e/d          dd/d0œgZ1g d3¢Z2d4Z3d5Z4d6Z5d7Z6d8Z7d9Z8d:Z9d;Z:d<„ Z;d=„ Z<d>„ Z=d?„ Z>d@„ Z?dA„ Z@dBeAdCeBfdD„ZC G dE„ dF¦  «        ZDdS )Gé    N)ÚassetsÚ	component)Úwhisper_download_defÚwhisper_model_name)Úfiles_locator)Úbuild_hf_urlé   )Ú_GEMMA_FILENAMEÚ_GEMMA_FOLDERÚ_GEMMA_QUANTO_FILENAME)ÚDRAMABOX_DIALOGUE_PROMPTÚDRAMABOX_SPEECH_PROMPTÚSCENEMA_DIALOGUE_PROMPTÚSCENEMA_SPEECH_PROMPTúDeepBeepMeep/LTX-2Ú z*scenema-audio-transformer_bf16.safetensorsz6scenema-audio-transformer_quanto_bf16_int8.safetensorsz!ltx-2.3-22b_audio_vae.safetensorszltx-2.3-22b_vocoder.safetensorsz1ltx-2.3-22b_text_embedding_projection.safetensorsz,ltx-2.3-22b_embeddings_connector.safetensorsÚkokorozkokoro/voiceszconfig.jsonzkokoro-v1_0.pthzaf_heart.ptÚopenphonemizer)zopenphonemizer_fp32.safetensorszopenphonemizer_config.jsonzopenphonemizer_dict.jsonç      ø?éx   i  é<   zeworst quality, inconsistent, robotic, distorted, noise, static, muffled, unclear, unnatural, monotoneé   ç      à?)Úvc_stepsÚvc_cfg_rateÚpaceÚduration_multipliergš™™™™™ñ?r   zSeedVC Steps (default 25)zSeedVC StepsÚint)ÚidÚlabelÚnameÚtypeÚdefaultr   zSeedVC CFG Rate (default 0.5)zSeedVC CFG RateÚfloatr   zPace (default 1.5)ÚPacegš™™™™™É?g      @)r   r    r!   r"   r#   ÚminÚmaxz&Auto Duration Multiplier (default 1.1)zAuto Duration Multiplier)
zadded_tokens.jsonzchat_template.jsonzconfig_light.jsonzgeneration_config.jsonzpreprocessor_config.jsonzprocessor_config.jsonzspecial_tokens_map.jsonztokenizer.jsonztokenizer.modelztokenizer_config.jsonaË  
## WanGP Speech Format
For one speaker, write normal text and put one performance cue in square brackets before each sentence. WanGP converts each `[cue]` into a Scenema `<action>` block.

```text
[Soft, close to the microphone] The lights are already on, so we can start whenever you are ready.
[Brighter, reassuring] Take your time. I am not going anywhere.
```

Plain speech uses only the text and action cues. Use Scenema XML when a single-speaker prompt also needs explicit `voice`, `gender`, `scene`, `shot`, or `language` properties.

## WanGP Dialogue Format

Use `Speaker N:` blocks for dialogue. Every new speaker block becomes its own audio chunk.

```text
Speaker 1{voice="A tired older man, low gravelly voice", gender="male", scene="a quiet kitchen at night"}:
[Trying to stay calm] I left the light on because I knew you would come back.

Speaker 2{voice="A younger woman, controlled but shaken", gender="female"}:
[A guarded breath before speaking] You always say that like it fixes everything.

Speaker 1:
[Softer, almost apologetic] No. But it keeps the room from feeling empty.
```

Properties set in `{...}` are remembered for that speaker and reused when the same speaker appears again. Add a new `{...}` later to override them.

## Supported Properties

- `voice`: the main voice and delivery description. Include age, timbre, accent, energy, microphone distance, or emotional color here.
- `gender`: `male` or `female`. It complements `voice`; for stronger control, also mention the gender in `voice`.
- `scene`: acoustic or cinematic context, such as `a quiet office late at night`.
- `shot`: `closeup`, `wide`, or `scene`. `closeup` is best for speech-first TTS.
- `language`: language code such as `en`, `fr`, or `it`.
- `speaker`: XML-only speaker id, used as `<speak speaker="2">...`.

## Voice References

The voice dropdown uses SeedVC for references. `Speaker 1 reference using SeedVC` applies the first audio reference. `Two Speakers references using SeedVC` applies the first reference to Speaker 1 and the second reference to Speaker 2, and `Three Speakers references using SeedVC` adds the third reference for Speaker 3. Additional speakers are supported, but only the first three can use uploaded reference audio.
a8  
## DramaBox Prompt Format

Write a scene prompt with spoken dialogue in double quotes and performance or sound cues outside the quotes.

```text
A woman speaks tenderly, "It has been a long day, my love." She whispers, "Close your eyes. I am right here." She hums quietly, "Mmmm-mmm. Sleep now."
```

DramaBox does not use square-bracket action cues or Scenema XML. Start each segment with a compact speaker voice or delivery description, then quoted dialogue on the same line. Put physical actions, pauses, sighs, and scene reactions after a quoted line or between quoted lines, but do not write standalone action-only, quote-only, or split description/quote segment lines.

## Multiline Speech

For one speaker, every non-empty line is generated as a separate segment. Later lines can reuse the first generated segment as an internal voice reference.

```text
A tired woman speaks close to the microphone, "I waited until the hallway went quiet."
A frightened whisper catches in her throat, "That was when I heard the lock turn."
Her voice breaks into a brittle laugh, "Hahaha, I should have left when I had the chance."
```

## Dialogue

Use `Speaker N:` blocks for dialogue. Any number of speakers is supported. Speakers 1 to 3 can use uploaded voice references; other speakers reuse the last 10 seconds of their first generated segment as their reference for later segments.

```text
Speaker 1:
An older detective speaks in a low tired voice, "You came back after midnight."
His low voice sharpens with quiet urgency, "That means you found something."

Speaker 2:
A young woman replies in a controlled but shaken voice, "I found the room they kept hidden."

Speaker 1:
His voice drops to a tense hush, "Then we do not have much time."
```

Use the voice reference mode to condition on a short reference clip. DramaBox uses a fixed 10 second reference budget internally.

Enable `Remove Unexpected Words` to trim generated words at the beginning of each segment when Whisper alignment can match them against the text inside double quotes. Segments without complete double quotes are left unchanged.
aê  Generate expressive speech from text with performance cues, or from Scenema `<speak>` XML, including dialogues with any number of speakers. Put a cue such as `[Soft, close to the microphone]` before each sentence, and define each speaker's voice with properties such as `Speaker 1{voice="...", gender="female"}:`.

- **Text or <speak> XML:** voices come only from the prompt descriptions.
- **Speaker 1 / Two Speakers / Three Speakers references using SeedVC:** after generation, SeedVC converts the speech of Speakers 1 to 3 to the matching uploaded reference voice (upload order). Other speakers keep their generated voice, stabilized across their turns. **SeedVC Steps** and **SeedVC CFG Rate** trade conversion speed against fidelity to the reference.

**Pace** scales the time planned for each chunk: higher values give slower, more spacious delivery. Max Duration caps the output, and Early Stop returns the chunks already completed. See the prompt help for the full cue, property and XML syntax.a‹  Speech or dialogue from `prompt`: `[cue]` before sentences, `Speaker N{voice="...", gender="male"}:` blocks, or Scenema `<speak>` XML. `audio_prompt_type`: empty = voices from descriptions; `A2` / `AB2` / `ABD2` convert Speakers 1 / 1-2 / 1-3 to `audio_guide` / `audio_guide2` / `audio_guide3` with SeedVC. `custom_settings.pace` (default 1.5) slows or speeds delivery. Max duration caps output.a  One performance cue in square brackets before each sentence, e.g. '[Soft, close to the microphone] The lights are on.' Dialogue: 'Speaker 1{voice="A tired older man", gender="male"}:' then cued lines; properties persist for that speaker. Keep spoken words outside brackets.aF  Generate dramatic, expressive speech, including whispers, laughter and emotional reactions, from scene-style prompts: a compact voice or delivery description followed by the spoken words in double quotes. Every line becomes its own audio segment, and `Speaker N:` blocks create dialogues with any number of speakers.

- **Text prompt:** voices come from the descriptions; a speaker's later segments reuse their first generated segment as a voice reference.
- **Speaker 1 / 1 and 2 / 1, 2 and 3 voice references:** Speakers 1 to 3 follow the matching uploaded voice (upload order), within a 10-second reference budget.
- **Remove Unexpected Words:** DramaBox sometimes adds invented words at the start of a segment; this option uses Whisper to trim them when the segment's quoted text can be matched.

**Target Duration** of 0 plans each segment from its text; **Auto Duration Multiplier** stretches those estimates. CFG, STG and Guidance Rescale control how strictly the audio follows the prompt, and the negative prompt lists sounds to avoid. Early Stop returns the segments already completed.aƒ  Expressive speech from `prompt` lines: voice/delivery description then quoted words; `Speaker N:` blocks for dialogue. `audio_prompt_type`: empty = voices from descriptions; `A` / `AB` / `ABD` condition Speakers 1 / 1-2 / 1-3 on `audio_guide` / `audio_guide2` / `audio_guide3`; add `0` (Remove Unexpected Words) to trim invented words at segment starts. `duration_seconds` 0 = automatic.a  Each line: compact voice/delivery description, then the words in double quotes, e.g. 'A tired woman speaks close to the microphone, "I waited until the hallway went quiet."' Actions and sounds go outside the quotes, never alone on a line. Dialogue: 'Speaker 1:' block headers.c            	      ó   — i dd“dd“dd“dd“dd“d	d“d
d“dd“dd“dd“ddg“ddddt           dt          dœ“dd“dd“dd“dd“dg d¢ddd d!dœd"d#d$idd%œ“i d&d'“d(d)“d*d+“d,d-„ t          D ¦   «         “d.t          “d/t          “d0t
          “d1t          “d2d3“d4t          “d5t          “d6d7“d8d9“d:d;d<gd=d>d?œd;d@œ“dAdB“dCd“dDt          “¥t          dEt          t          ¦  «        t          dEt          t          ¦  «        gdFdGœ¥S )HNÚ
audio_onlyTÚimage_outputsFÚsliding_windowÚguidance_max_phasesr   Úno_negative_promptÚinference_stepsÚtemperatureÚlock_inference_stepsÚimage_prompt_types_allowedr   Úsupports_early_stopÚprofiles_dirÚscenema_audioÚduration_sliderzMax Duration (seconds)zMax Durationr	   r   ©r    r!   r&   r'   Ú	incrementr#   Úprofile_typeÚvideoÚpreserve_empty_prompt_linesÚany_audio_promptÚaudio_prompt_choicesÚaudio_prompt_type_sources)r   ÚA2ÚAB2ÚABD2zText or <speak> XMLz Speaker 1 reference using SeedVCz$Two Speakers references using SeedVCz&Three Speakers references using SeedVCr@   Ú2ÚSeedVC)Ú	selectionÚlabelsÚletters_filterÚcustom_flagsr#   Úaudio_guide_labelz6Speaker 1 reference voice (optional for multi-speaker)Úaudio_guide2_labelú$Speaker 2 reference voice (optional)Úaudio_guide3_labelú$Speaker 3 reference voice (optional)Úcustom_settingsc                 ó6   — g | ]}|                      ¦   «         ‘ŒS © ©Úcopy©Ú.0Úones     úIC:\Users\johnn\OneDrive\Documents\AI\models\ltx2\ltx_audio_tts_handler.pyú
<listcomp>z*_get_scenema_model_def.<locals>.<listcomp>ò   s    € ÐJÐJÐJ¨3˜CŸHšH™JœJÐJÐJÐJó    ÚinfosÚprompt_infosÚdeepy_infosÚdeepy_prompt_infosÚprompt_descriptionz"Speech text or Scenema <speak> XMLÚ!text_prompt_enhancer_instructionsÚ"text_prompt_enhancer_instructions1Útext_prompt_enhancer_max_tokensé   Ú text_prompt_enhancer_max_tokens1é   Úprompt_enhancer_defÚTÚT1zA Speech with Action CueszA Dialogue with Action Cues©rc   rd   ©rC   rD   r#   Úprompt_enhancer_button_labelÚWriteÚcompileÚtext_encoder_folderr   Úbf16)Útext_encoder_URLsÚdtype)ÚSCENEMA_MAX_DURATION_SECONDSÚ SCENEMA_DEFAULT_DURATION_SECONDSÚSCENEMA_CUSTOM_SETTINGSÚSCENEMA_OVERVIEW_INFOSÚSCENEMA_INFOSÚSCENEMA_DEEPY_INFOSÚSCENEMA_DEEPY_PROMPT_INFOSr   r   r   r   r
   r   rN   rV   rT   Ú_get_scenema_model_defru   Ê   sÃ  € ðAØ�dðAà˜ðAð 	˜%ðAð 	˜qð	Að
 	˜dðAð 	˜5ðAð 	�uðAð 	 ðAð 	% bðAð 	˜tðAð 	˜Ð)ðAð 	Ø-Ø"ØÝ/ØÝ7ð
ð 
ðAð( 	˜ð)Að* 	& tð+Að, 	˜Dð-Að. 	 ð/Að0 	$Ø2Ð2Ð2à)Ø8Ø=Ø@ð	ð ð %Ø  (˜OØð&
ð &
ð1Að AðH 	ÐUðIAðJ 	ÐDðKAðL 	ÐDðMAðN 	ÐJÐJÕ2IÐJÑJÔJðOAðP 	Õ'ðQAðR 	�ðSAðT 	Õ*ðUAðV 	Õ8ðWAðX 	ÐBðYAðZ 	,Õ-Bð[Að\ 	-Õ.Eð]Að^ 	*¨3ð_Að` 	+¨DðaAðb 	Ø˜t˜à0Ø3ðð ð ð 
ð  
ðcAðr 	'¨ðsAðt 	�5ðuAðv 	�}ðwAð Aõz Ð-­}½oÑNÔNÝÐ-­}Õ>TÑUÔUð
ð ðAAð Að Að ArV   c            	      ó  — i dd“dd“dd“dd“dd“d	d“d
d“dd“dd“dd“ddg“ddddt           dt          dœ“dd“dd“dd“dd“dg d¢ddd d!dœd"dd#œ“i d$d%d&d'œ“d(d)“d*d+“d,d-“d.d/„ t          D ¦   «         “d0t          “d1t          “d2t
          “d3t          “d4d5“d6t          “d7t          “d8d9“d:d;“d<d=d>gd?d@dAœd=dBœ“dCdD“dEd“¥t          t          dFt          t          ¦  «        t          dFt          t          ¦  «        gdGdHœ¥S )INr)   Tr*   Fr+   r,   r   r-   r.   Ú	alt_scalezGuidance Rescaler/   r1   r   r2   r3   Údramabox_audior5   z#Target Duration (seconds, 0 = auto)zTarget Durationr   r6   r8   r9   r:   r;   r<   r=   )r   ÚAÚABÚABDzText promptzSpeaker 1 voice referencez Speaker 1 and 2 voice referencesz#Speaker 1, 2 and 3 voice referencesr{   )rC   rD   rE   r#   Úaudio_prompt_type_custom_optionzRemove Unexpected WordsÚ0)r    ÚflagrG   z$Speaker 1 reference voice (optional)rH   rI   rJ   rK   rL   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS rN   rO   rQ   s     rT   rU   z+_get_dramabox_model_def.<locals>.<listcomp>7  s    € ÐKÐKÐK¨3˜CŸHšH™JœJÐKÐKÐKrV   rW   rX   rY   rZ   r[   zDramaBox scene promptr\   r]   r^   r_   r`   ra   rb   rc   rd   zA Speechz
A Dialoguere   rf   rg   rh   ri   r   rk   )rj   rl   rm   )ÚDRAMABOX_MAX_DURATION_SECONDSÚ!DRAMABOX_DEFAULT_DURATION_SECONDSÚDRAMABOX_CUSTOM_SETTINGSÚDRAMABOX_OVERVIEW_INFOSÚDRAMABOX_INFOSÚDRAMABOX_DEEPY_INFOSÚDRAMABOX_DEEPY_PROMPT_INFOSr   r   r   r   r
   r   rN   rV   rT   Ú_get_dramabox_model_defr‡     sË  € ðAØ�dðAà˜ðAð 	˜%ðAð 	˜qð	Að
 	˜eðAð 	˜4ðAð 	Ð'ðAð 	�uðAð 	% bðAð 	˜tðAð 	Ð)Ð*ðAð 	Ø:Ø%ØÝ0ØÝ8ð
ð 
ðAð( 	˜ð)Að* 	& tð+Að, 	˜Dð-Að. 	 ð/Að0 	$Ø/Ð/Ð/à!Ø0Ø8Ø<ð	ð ð $Øð
&
ð 
&
ð1Að AðF 	*Ð5NÐX[Ð+\Ð+\ðGAðH 	ÐCðIAðJ 	ÐDðKAðL 	ÐDðMAðN 	ÐKÐKÕ2JÐKÑKÔKðOAðP 	Õ(ðQAðR 	�ðSAðT 	Õ+ðUAðV 	Õ9ðWAðX 	Ð5ðYAðZ 	,Õ-Cð[Að\ 	-Õ.Fð]Að^ 	*¨3ð_Að` 	+¨DðaAðb 	Ø˜t˜àØ"ðð ð ð 
ð  
ðcAðr 	'¨ðsAðt 	�5ðuAð Aõv  -åÐ-­}½oÑNÔNÝÐ-­}Õ>TÑUÔUð
ð ðAAð Að Að ArV   c                  ó&  — t           dgt          t          t          t          ggdœdt
          gt          gdœt          ¦   «         t           t          t          t          gt          t          t          gdœgt          j        t          j        ¬¦  «        z   S )Nr   ©ÚrepoIdÚsourceFolderListÚfileListr   )Úmode)ÚSCENEMA_REPO_IDÚLTX23_AUDIO_VAE_FILENAMEÚLTX23_VOCODER_FILENAMEÚ(LTX23_TEXT_EMBEDDING_PROJECTION_FILENAMEÚ#LTX23_EMBEDDINGS_CONNECTOR_FILENAMEr   ÚLTX_AUDIO_TTS_TOKENIZER_FILESr   ÚSCENEMA_KOKORO_DIRÚSCENEMA_KOKORO_VOICE_DIRÚSCENEMA_KOKORO_G2P_DIRÚSCENEMA_KOKORO_FILESÚSCENEMA_KOKORO_VOICE_FILESÚSCENEMA_KOKORO_G2P_FILESÚseedvc_assetsÚquery_download_defÚSEEDVC_MODE_SPEECHrN   rV   rT   Ú_get_scenema_download_defr�   T  s£   € õ &Ø!# Ý2Õ4JÕLtõ  wZð  [ð  \ð	
ð 	
ð +Ý!. Ý6Ð7ð	
ð 	
õ
 	ÑÔå%Ý!3Õ5MÕOeÐ fÝ-Õ/IÕKcÐdð	
ð 	
ðõ" 	Ô(­mÔ.NÐOÑOÔOñ#Pð PrV   c                  óŠ   — t           dgt          t          t          t          ggdœdt
          gt          gdœt          ¦   «         gS )Nr   r‰   r   )rŽ   r�   r�   r‘   r’   r   r“   r   rN   rV   rT   Ú_get_dramabox_download_defrŸ   i  sa   € õ &Ø!# Ý2Õ4JÕLtõ  wZð  [ð  \ð	
ð 	
ð +Ý!. Ý6Ð7ð	
ð 	
õ
 	ÑÔðð rV   c                  óØ  — ddl m}   | t          ¦   «         t          j        d¦  «        ¦  «        }|j        }|j        d= t                               |d|¦  «         | 	                    ¦   «         D ]2}t          |t          j        j        ¦  «        rt          j        |_        Œ3dg|_        t          j        |_        d|_        |                     ¦   «                              d¦  «         |S )Nr   )Úload_whisperÚcpuÚalignment_headsÚ
transcribeF)Úshared.deepy.transcriptionr¡   r   ÚtorchÚdevicer£   Ú_buffersÚobjectÚ__setattr__ÚmodulesÚ
isinstanceÚnnÚ	LayerNormÚfloat32Ú_lock_dtypeÚ_offload_hooksÚfloat16Ú_model_dtypeÚ_budgetÚevalÚrequires_grad_)r¡   Úalignment_whisperr£   Úmodules       rT   Ú_load_alignment_whisperr¹   y  sç   € Ø7Ð7Ð7Ð7Ð7Ð7à$˜Õ%7Ñ%9Ô%9½5¼<ÈÑ;NÔ;NÑOÔOÐØ'Ô7€OØÔ"Ð#4Ð5Ý
×ÒÐ(Ð*;¸_ÑMÔMÐMØ#×+Ò+Ñ-Ô-ð /ð /ˆÝ�f�eœhÔ0Ñ1Ô1ð 	/Ý!&¤ˆFÔøØ(4 ~ÐÔ$Ý%*¤]ÐÔ"Ø !ÐÔØ×ÒÑÔ×+Ò+¨EÑ2Ô2Ð2ØÐrV   c                  óž  — ddl m}  	 t          j        ¦   «         5  t          j        dt
          d¬¦  «          | ddt          j        t          ¦  «        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   n%# t          $ r}t          d	|› �¦  «        |‚d }~ww xY wt          |d
d ¦  «        }|€t          d¦  «        ‚t          j        |_        |S )Nr   )Ú	KPipelineÚignorez/`torch\.nn\.utils\.weight_norm` is deprecated.*)ÚcategoryÚmessageÚar¢   )Ú	lang_coder§   Úrepo_idzEKokoro TTS is required for Scenema Audio duration estimation. Error: Úmodelz=Kokoro TTS is required for Scenema Audio duration estimation.)Úpreprocessing.kokoror»   ÚwarningsÚcatch_warningsÚfilterwarningsÚFutureWarningÚflÚlocate_folderr”   Ú	ExceptionÚRuntimeErrorÚgetattrr¦   r¯   r³   )r»   Úkokoro_pipelineÚexcÚkokoro_models       rT   Ú_load_kokoro_pipelinerÐ   Š  sQ  € Ø.Ð.Ð.Ð.Ð.Ð.ðsÝÔ$Ñ&Ô&ð 	sð 	sÝÔ# Hµ}ð  OAð  Bñ  Bô  Bð  BØ'˜i°#¸eÍRÔM]Õ^pÑMqÔMqÐrÑrÔrˆOð	sð 	sð 	sñ 	sô 	sð 	sð 	sð 	sð 	sð 	sð 	søøøð 	sð 	sð 	sð 	søøõ ð sð sð sÝÐhÐcfÐhÐhÑiÔiÐorÐrøøøøðsøøøå˜?¨G°TÑ:Ô:€LØÐÝÐZÑ[Ô[Ð[Ý %¤€LÔØÐs;   ˆA5 ›AA)ÁA5 Á)A-Á-A5 Á0A-Á1A5 Á5
BÁ?BÂBÚ
model_typeÚreturnc                 ó   — | dk    S )Nrx   rN   )rÑ   s    rT   Ú_is_dramaboxrÔ   š  s   € ØÐ)Ò)Ð)rV   c            
       ó@  — e Zd Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Z	edd„¦   «         Z
ed	„ ¦   «         Zed
„ ¦   «         Zeddej        ej        dddddf	d„¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )Úfamily_handlerc                  ó
   — ddgS )Nr4   rx   rN   rN   rV   rT   Úquery_supported_typesz$family_handler.query_supported_typesŸ  s   € àÐ!1Ð2Ð2rV   c                  ó
   — i i fS ©NrN   rN   rV   rT   Úquery_family_mapsz family_handler.query_family_maps£  s   € à�2ˆvˆrV   c                  ó   — dS )NÚttsrN   rN   rV   rT   Úquery_model_familyz!family_handler.query_model_family§  s   € àˆurV   c                  ó
   — ddiS )NrÝ   )i˜  ÚTTSrN   rN   rV   rT   Úquery_family_infosz!family_handler.query_family_infos«  s   € à�}Ð%Ð%rV   c                 ó(   — t          | ¦  «        rdS dS )Nrx   r4   )rÔ   )Úbase_model_types    rT   Úget_lora_dirzfamily_handler.get_lora_dir¯  s   € å˜Ñ(Ô(ð 	$Ø#Ð#ØˆrV   c                 óˆ   — ddl m} i t          | ¦  «        rt          ¦   «         nt	          ¦   «         ¥d |ddd¦  «        dœ¥S )Nr   )ÚspecialitiesTzvoice designzvoice cloningzspeech dialogue)Údevice_explicitræ   )Úmodels.help_sharedræ   rÔ   r‡   ru   )rã   Ú	model_defræ   s      rT   Úquery_model_defzfamily_handler.query_model_defµ  s’   € à3Ð3Ð3Ð3Ð3Ð3ð Yµ¸_Ñ0MÔ0MÐkÕ*Ñ,Ô,Ð,ÕSiÑSkÔSkð  Yð  BFð  Xdð  Xdð  esð  uDð  FWñ  XXô  XXð  Yð  Yð  Yð  	YrV   Nc                 óX   — t          |¦  «        rt          ¦   «         nt          ¦   «         S rÚ   )rÔ   rŸ   r�   )ÚcomputeListrã   ré   s      rT   Úquery_model_filesz family_handler.query_model_filesº  s(   € å/;¸OÑ/LÔ/LÐmÕ)Ñ+Ô+Ð+ÕRkÑRmÔRmÐmrV   c           	      óT	  — t          | ¦  «        �r9|                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     d	d ¦  «        }t          |t          ¦  «        si }t
                               ¦   «         D ]\  }}|                     ||¦  «         Œ	 t          |                     dd¦  «        ¦  «        d
k    rdS n# t          $ r Y dS w xY w	 t          |                     dd¦  «        ¦  «        dk     rdS n# t          $ r Y dS w xY w	 t          |                     dd¦  «        ¦  «        dk     rdS n# t          $ r Y dS w xY w	 t          |                     dt
          d         ¦  «        ¦  «        d
k    rdS n# t          $ r Y dS w xY w	 t          |                     dd¦  «        ¦  «        }|d
k     s|dk    rdS n# t          $ r Y dS w xY wt          |                     dd¦  «        pd¦  «                             ¦   «         }d|v r|                     d¦  «        €dS d|v r|                     d¦  «        €dS d|v r:t          j        d t          |                     d!d¦  «        pd¦  «        ¦  «        sd"S d#|v r|                     d$¦  «        €d%S d#|v r:t          j        d&t          |                     d!d¦  «        pd¦  «        ¦  «        sd'S dt          |                     dt
          d         ¦  «        ¦  «        i}||d<   ||d	<   d S |                     d(dddddd)œ¦  «         |                     d	d ¦  «        }t          |t          ¦  «        �r|                     d*t          d*         ¦  «        }|                     d+t          d+         ¦  «        }	|                     d,t          d,         ¦  «        }
	 t          |¦  «        d
k    rd-S n# t          $ r Y d.S w xY w	 t          |	¦  «        d
k    rd/S n# t          $ r Y d0S w xY w	 t          |
¦  «        d
k    rd1S n# t          $ r Y d2S w xY wt          |¦  «        |d*<   t          |	¦  «        |d+<   t          |
¦  «        |d,<   ||d	<   d S )3NÚnum_inference_stepsé   Úguidance_scaleç      @Úaudio_guidance_scaler   rw   ç        rL   r   z6DramaBox Audio inference steps must be greater than 0.z2DramaBox Audio inference steps must be an integer.ç      ð?z.DramaBox Audio CFG scale must be at least 1.0.z*DramaBox Audio CFG scale must be a number.z1DramaBox Audio STG scale must be zero or greater.z*DramaBox Audio STG scale must be a number.r   z:DramaBox Audio duration multiplier must be greater than 0.z4DramaBox Audio duration multiplier must be a number.r	   z8DramaBox Audio guidance rescale must be between 0 and 1.z1DramaBox Audio guidance rescale must be a number.Úaudio_prompt_typer   ry   Úaudio_guidezHDramaBox Audio Speaker 1 reference mode requires a reference audio file.ÚBÚaudio_guide2zODramaBox Audio Speaker 2 reference mode requires a second reference audio file.z,(?im)^\s*Speaker\s*2\s*(?:\{[^\n{}]*\})?\s*:Úpromptz>DramaBox Audio two-reference mode requires a Speaker 2: block.ÚDÚaudio_guide3zNDramaBox Audio Speaker 3 reference mode requires a third reference audio file.z,(?im)^\s*Speaker\s*3\s*(?:\{[^\n{}]*\})?\s*:z@DramaBox Audio three-reference mode requires a Speaker 3: block.é   )rï   rñ   ró   Úaudio_cfg_scaleÚalt_guidance_scalerw   r   r   r   z2Scenema Audio SeedVC Steps must be greater than 0.z.Scenema Audio SeedVC Steps must be an integer.z5Scenema Audio SeedVC CFG Rate must be greater than 0.z/Scenema Audio SeedVC CFG Rate must be a number.z*Scenema Audio pace must be greater than 0.z$Scenema Audio pace must be a number.)rÔ   Ú
setdefaultÚgetr¬   ÚdictÚ DRAMABOX_DEFAULT_CUSTOM_SETTINGSÚitemsr   rÊ   r$   ÚstrÚupperÚreÚsearchÚupdateÚSCENEMA_DEFAULT_CUSTOM_SETTINGS)rã   ré   ÚinputsrL   ÚkeyÚvaluerw   rö   r   r   r   s              rT   Úvalidate_generative_settingsz+family_handler.validate_generative_settings¾  sQ  € å˜Ñ(Ô(ñ 2	Ø×ÒÐ3°RÑ8Ô8Ð8Ø×ÒÐ.°Ñ4Ô4Ð4Ø×ÒÐ4°cÑ:Ô:Ð:Ø×Ò˜k¨3Ñ/Ô/Ð/Ø$ŸjšjÐ):¸DÑAÔAˆOÝ˜o­tÑ4Ô4ð %Ø"$�Ý>×DÒDÑFÔFð 7ð 7‘
��UØ×*Ò*¨3°Ñ6Ô6Ð6Ð6ðLÝ�v—z’zÐ"7¸Ñ<Ô<Ñ=Ô=ÀÒBÐBØSÐSð Cøåð Lð Lð LØKÐKÐKðLøøøðDÝ˜ŸšÐ$4°cÑ:Ô:Ñ;Ô;¸cÒAÐAØKÐKð Bøåð Dð Dð DØCÐCÐCðDøøøðDÝ˜ŸšÐ$:¸CÑ@Ô@ÑAÔAÀCÒGÐGØNÐNð Høåð Dð Dð DØCÐCÐCðDøøøðNÝ˜×,Ò,Ð-BÕDdÐezÔD{Ñ|Ô|Ñ}Ô}ð  BCò  Cð  CØWÐWð Cøåð Nð Nð NØMÐMÐMðNøøøðKÝ! &§*¢*¨[¸#Ñ">Ô">Ñ?Ô?�	Ø˜q’=�= I°¢M MØUÐUð %2øåð Kð Kð KØJÐJÐJðKøøøå # F§J¢JÐ/BÀBÑ$GÔ$GÐ$MÈ2Ñ NÔ N× TÒ TÑ VÔ VÐØÐ'Ð'Ð'¨F¯JªJ°}Ñ,EÔ,EÐ,MØaÐaØÐ'Ð'Ð'¨F¯JªJ°~Ñ,FÔ,FÐ,NØhÐhØÐ'Ð'Ð'µ´	Ð:iÕknÐou×oyÒoyð  {Cð  EGñ  pHô  pHð  pNð  LNñ  lOô  lOñ  1Pô  1PÐ'ØWÐWØÐ'Ð'Ð'¨F¯JªJ°~Ñ,FÔ,FÐ,NØgÐgØÐ'Ð'Ð'µ´	Ð:iÕknÐou×oyÒoyð  {Cð  EGñ  pHô  pHð  pNð  LNñ  lOô  lOñ  1Pô  1PÐ'ØYÐYØ4µe¸O×<OÒ<OÐPeõ  hHð  I^ô  h_ñ  =`ô  =`ñ  7aô  7að  bˆOØ"+ˆF�;ÑØ(7ˆFÐ$Ñ%Ø�4à�Šà'(Ø"%Ø(+Ø#&Ø&)Ø ðð ñ		
ô 		
ð 		
ð !Ÿ*š*Ð%6¸Ñ=Ô=ˆÝ�o¥tÑ,Ô,ñ 	8Ø&×*Ò*¨:Õ7VÐWaÔ7bÑcÔcˆHØ)×-Ò-¨mÕ=\Ð]jÔ=kÑlÔlˆKØ"×&Ò& vÕ/NÈvÔ/VÑWÔWˆDðHÝ�x‘=”= AÒ%Ð%ØOÐOð &øåð Hð Hð HØGÐGÐGðHøøøðIÝ˜Ñ%Ô%¨Ò*Ð*ØRÐRð +øåð Ið Ið IØHÐHÐHðIøøøð>Ý˜‘;”; !Ò#Ð#ØGÐGð $øåð >ð >ð >Ø=Ð=Ð=ð>øøøå*-¨h©-¬-ˆO˜JÑ'Ý-2°;Ñ-?Ô-?ˆO˜MÑ*Ý&+¨D¡k¤kˆO˜FÑ#Ø(7ˆFÐ$Ñ%Øˆts�   Ã'C6 Ã6
DÄDÄ'D2 Ä2
E Ä?E Å'E. Å.
E<Å;E<Æ 2F5 Æ5
GÇGÇ/G9 Ç9
HÈHÏ6P Ð
PÐPÐP4 Ð4
QÑQÑQ Ñ
Q*Ñ)Q*c                 ó   — t          | ¦  «        rŠ|�2t          t          |¦  «                             ¦   «         ¦  «        dk    rdS t          |                     dd¦  «        pd¦  «                             ¦   «         }d|v r|                     d¦  «        €dS d S |�2t          t          |¦  «                             ¦   «         ¦  «        dk    rdS t          |                     dd¦  «        pd¦  «                             ¦   «         }d|v rd	|vr|                     d¦  «        €d
S d	|v r$t          j        dt          |¦  «        ¦  «        €dS d S )Nr   z/Prompt text cannot be empty for DramaBox Audio.rö   r   ry   r÷   zDDramaBox Audio reference voice mode requires a reference audio file.z.Prompt text cannot be empty for Scenema Audio.rø   zCScenema Audio reference voice mode requires a reference audio file.z-(?is)(Speaker\s*\d+|<speak[^>]*\bspeaker\s*=)zZScenema Audio multi-speaker mode requires SpeakerN text or <speak speaker="N"> XML blocks.)rÔ   Úlenr  Ústripr  r  r  r  )rã   ré   r  Ú
one_promptrö   s        rT   Úvalidate_generative_promptz)family_handler.validate_generative_prompt  sX  € å˜Ñ(Ô(ð 	ØÐ!¥S­¨Z©¬×)>Ò)>Ñ)@Ô)@Ñ%AÔ%AÀQÒ%FÐ%FØHÐHÝ # F§J¢JÐ/BÀBÑ$GÔ$GÐ$MÈ2Ñ NÔ N× TÒ TÑ VÔ VÐØÐ'Ð'Ð'¨F¯JªJ°}Ñ,EÔ,EÐ,MØ]Ð]Ø�4àÐ¥¥S¨¡_¤_×%:Ò%:Ñ%<Ô%<Ñ!=Ô!=ÀÒ!BÐ!BØCÐCÝ §
¢
Ð+>ÀÑ CÔ CÐ IÀrÑJÔJ×PÒPÑRÔRÐØÐ#Ð#Ð#¨Ð3DÐ(DÐ(DÈÏÊÐTaÑIbÔIbÐIjØXÐXØÐ#Ð#Ð#­¬	Ð2bÕdgÐhrÑdsÔdsÑ(tÔ(tÐ(|ØqÐqØˆtrV   Fr   c                 ó8  — t          |¦  «        �r©ddlm} t          | t          t
          f¦  «        r| d         n| }|st          d¦  «        ‚t          j        t          ¦  «        }t          j        t          ¦  «        }t          j        t          ¦  «        }t          j        t          ¦  «        }t          j                             t          j                             t"          ¦  «        dd¦  «        } ||||||||t%          j        t$          j                             ¦   «         rdnd¦  «        |pt$          j        ¬	¦	  «	        }d
|j        |j        |j        |j        |j        |j        |j        dœi}|	r>|r<ddlm} tA          |j        d|j        ¦  «        } |||||pt$          j        |¦  «         ||fS ddl!m"} tG          j$        ¦   «          ddl%m&} t          | t          t
          f¦  «        r| d         n| }|st          d¦  «        ‚t          j        t          ¦  «        }t          j        t          ¦  «        }t          j        t          ¦  «        }t          j        t          ¦  «        }t          j                             t          j                             t"          ¦  «        dd¦  «        }tO          ¦   «         }tQ          ¦   «         }|j        }| )                    t$          j*        tV          j,        ¬¦  «        }| -                    ||tV          j,        ¬¦  «        } |||||||||||t%          j        t$          j                             ¦   «         rdnd¦  «        |pt$          j        ¬¦  «        }|j        |j        |j        |j        |j        |j        |j        ||dœ	}| .                    |¦  «         || /                    |¦  «        dœ}|	r>|r<ddlm} tA          |j        d|j        ¦  «        } |||||pt$          j        |¦  «         ||fS )Nr	   )ÚDramaBoxAudioPipeliner   z4DramaBox Audio requires the LTX2 Gemma text encoder.Úconfigszltx2_22b_config.jsonÚcudar¢   )	Úmodel_weights_pathÚ
gemma_pathÚaudio_vae_pathÚvocoder_pathÚtext_projection_pathÚtext_connector_pathÚconfig_pathr§   rm   Úpipe)ÚtransformerÚtext_encoderÚtext_embedding_projectionÚtext_embeddings_connectorÚaudio_encoderÚaudio_decoderÚvocoder)Úsave_quantized_modelÚvelocity_model)ÚScenemaAudioPipeline)Úseedvcz3Scenema Audio requires the LTX2 Gemma text encoder.)rm   r�   )Ú
profile_norÂ   r�   )r  r  r  r  r  r  r  r·   rÍ   r*  r§   rm   )	r   r!  r"  r#  r$  r%  r&  r·   r   )r  ÚcoTenantsMap)0rÔ   rx   r  r¬   ÚlistÚtupleÚ
ValueErrorrÈ   Úlocate_filer�   r�   r‘   r’   ÚosÚpathÚjoinÚdirnameÚ__file__r¦   r§   r  Úis_availableÚbfloat16rÂ   r!  r"  r#  r$  r%  r&  Úwgpr'  rÌ   r4   r)  Úseedvc_componentÚensure_installedÚpostprocessingr*  r¹   rÐ   Ú	get_modelr²   rš   rœ   Úget_piper	  Úget_cotenants_map) Úmodel_filenamerÑ   rã   ré   ÚquantizeTransformerÚtext_encoder_quantizationrm   Ú	VAE_dtypeÚmixed_precision_transformerÚsave_quantizedÚsubmodel_no_listÚtext_encoder_filenameÚprofileÚkwargsr  Úweights_pathr  r  r  r  r  Úpipeliner  r'  Úquantized_transformerr)  r*  r·   rÍ   rÏ   Úseedvc_modelÚseedvc_pipes                                    rT   Ú
load_modelzfamily_handler.load_model+  s5  € õ" ˜Ñ(Ô(ñ &	"Ø=Ð=Ð=Ð=Ð=Ð=å0:¸>ÍDÕRWÈ=Ñ0YÔ0YÐm˜>¨!Ô,Ð,Ð_mˆLØ(ð YÝ Ð!WÑXÔXÐXÝœ^Õ,DÑEÔEˆNÝœ>Õ*@ÑAÔAˆLÝ#%¤>Õ2ZÑ#[Ô#[Ð Ý"$¤.Õ1TÑ"UÔ"UÐÝœ'Ÿ,š,¥r¤w§¢µxÑ'@Ô'@À)ÐMcÑdÔdˆKØ,Ð,Ø#/Ø0Ø-Ø)Ø%9Ø$7Ø'Ý”|­e¬j×.EÒ.EÑ.GÔ.GÐ$R F FÈUÑSÔSØÐ-�uœ~ð
ñ 
ô 
ˆHð Ø#+¤>Ø$,Ô$9Ø19Ô1SØ19Ô1SØ%-Ô%;Ø%-Ô%;Ø'Ô/ðð ð
ˆDð ð | ,ð |Ø4Ð4Ð4Ð4Ð4Ð4å(/°´Ð@PÐRZÔR`Ñ(aÔ(aÐ%Ø$Ð$Ð%:¸JÈÐV[ÐVmÕ_dÔ_mÐozÑ{Ô{Ð{Ø˜T�>Ð!à7Ð7Ð7Ð7Ð7Ð7ÝÔ)Ñ+Ô+Ð+Ø)Ð)Ð)Ð)Ð)Ð)å,6°~ÍÍeÀ}Ñ,UÔ,UÐi�~ aÔ(Ð(Ð[iˆØ$ð 	TÝÐRÑSÔSÐSÝœÕ(@ÑAÔAˆÝ”~Õ&<Ñ=Ô=ˆÝ!œ~Õ.VÑWÔWÐÝ œnÕ-PÑQÔQÐÝ”g—l’l¥2¤7§?¢?µ8Ñ#<Ô#<¸iÐI_Ñ`Ô`ˆÝ3Ñ5Ô5ÐÝ/Ñ1Ô1ˆØ&Ô,ˆØ×'Ò'­e¬mÅ-ÔBbÐ'ÑcÔcˆØ—o’o°ÀÕS`ÔSs�oÑtÔtˆà'Ð'Ø+Ø)Ø%Ø!5Ø 3Ø,Ø#Ø/Ø+ØÝ”<­%¬*×*AÒ*AÑ*CÔ*CÐ N  ÈÑOÔOØÐ)�5œ>ð
ñ 
ô 
ˆð $œ>Ø$Ô1Ø)1Ô)KØ)1Ô)KØ%Ô3Ø%Ô3ØÔ'Ø!2Ø"ð

ð 

ˆð 	�Š�KÑ Ô Ð Ø¨f×.FÒ.FÀ{Ñ.SÔ.SÐTÐTˆàð 	x˜lð 	xØ0Ð0Ð0Ð0Ð0Ð0å$+¨H¬NÐ<LÈhÌnÑ$]Ô$]Ð!Ø Ð Ð!6¸
ÀLÐRWÐRiÕ[`Ô[iÐkvÑwÔwÐwà˜ˆ~ÐrV   c                 óŽ  ‡— t          | ¦  «        �rˆt          |                     dd¦  «        pd¦  «                             ¦   «         Št	          ˆfd„dD ¦   «         ¦  «        rdnd‰v rd‰v rdnd‰v rdndd                     ˆfd„d	D ¦   «         ¦  «        z   |d<   d|d
<   |                     dt          ¦  «         |                     dd¦  «         |                     dd¦  «         |                     dd¦  «         |                     dt          ¦  «         |                     dd ¦  «        }t          |t          ¦  «        si }d|vrd|v r|d         |d<   |                     dd¦  «         d|                     dt          d         ¦  «        i}||d<   d S t          |                     dd¦  «        pd¦  «                             ¦   «         Šd‰v rd‰v rdnd‰v rd‰v rdnd‰v rd‰v rdndd                     ˆfd„dD ¦   «         ¦  «        z   |d<   d|d
<   |                     d|                     di ¦  «                             d t          ¦  «        ¦  «         |                     dd ¦  «        }t          |t          ¦  «        si }t                               ¦   «         D ]\  }}|                     ||¦  «         Œ||d<   d S )!Nrö   r   c              3   ó    •K  — | ]}|‰v V — Œ	d S rÚ   rN   ©rR   r~   rö   s     €rT   ú	<genexpr>z.family_handler.fix_settings.<locals>.<genexpr>ž  s*   øè è € Ð<iÐ<iÐ[_¸TÐEVÐ=VÐ<iÐ<iÐ<iÐ<iÐ<iÐ<irV   r{   rø   ry   rz   c              3   ó$   •K  — | ]
}|‰v ¯|V — Œd S rÚ   rN   rQ  s     €rT   rR  z.family_handler.fix_settings.<locals>.<genexpr>ž  si   øè è € ð  eZð  eZð  osð  @Dð  HYð  @Yð  @Yð  fjð  @Yð  @Yð  @Yð  @Yð  eZð  eZrV   Ú0VNÚ
alt_promptÚduration_secondsrï   rð   rñ   rò   ró   r   Únegative_promptrL   rw   Úrescale_scalerô   r   rA   rû   r@   r?   r>   c              3   ó$   •K  — | ]
}|‰v ¯|V — Œd S rÚ   rN   rQ  s     €rT   rR  z.family_handler.fix_settings.<locals>.<genexpr>°  si   øè è € ð  Fzð  Fzð  PTð  `dð  hyð  `yð  `yð  GKð  `yð  `yð  `yð  `yð  Fzð  FzrV   ÚVNr5   r#   )rÔ   r  r  r  Úallr3  r   r�   Ú DRAMABOX_DEFAULT_NEGATIVE_PROMPTr¬   r  r  ro   r
  r  )rã   Úsettings_versionré   Úui_defaultsrL   r  r  rö   s          @rT   Úfix_settingszfamily_handler.fix_settingsš  sp  ø€ å˜Ñ(Ô(ñ 	Ý # K§O¢OÐ4GÈÑ$LÔ$LÐ$RÐPRÑ SÔ S× YÒ YÑ [Ô [ÐÝ9<Ð<iÐ<iÐ<iÐ<iÐchÐ<iÑ<iÔ<iÑ9iÔ9ið  1Z°°Ðwzð  Pð  xPð  xPð  UXð  \mð  Umð  UmÐosÐosð  z}ð  ARð  zRð  zRð  svð  svð  XZð  ^`÷  ^eò  ^eð  eZð  eZð  eZð  eZð  w|ð  eZñ  eZô  eZñ  ^Zô  ^Zñ  0ZˆKÐ+Ñ,Ø(*ˆK˜Ñ%Ø×"Ò"Ð#5Õ7XÑYÔYÐYØ×"Ò"Ð#8¸"Ñ=Ô=Ð=Ø×"Ò"Ð#3°SÑ9Ô9Ð9Ø×"Ò"Ð#9¸3Ñ?Ô?Ð?Ø×"Ò"Ð#4Õ6VÑWÔWÐWØ)ŸošoÐ.?ÀÑFÔFˆOÝ˜o­tÑ4Ô4ð %Ø"$�Ø +Ð-Ð-°/À_Ð2TÐ2TØ+:¸?Ô+K�˜KÑ(Ø×"Ò" ;°Ñ4Ô4Ð4Ø4°o×6IÒ6IÐJ_õ  bBð  CXô  bYñ  7Zô  7Zð  [ˆOØ-<ˆKÐ)Ñ*ØˆFå §¢Ð0CÀRÑ HÔ HÐ NÈBÑOÔO×UÒUÑWÔWÐØ69Ð=NÐ6NÐ6NÐSVÐZkÐSkÐSk¨F¨FÐz}ð  BSð  {Sð  {Sð  X[ð  _pð  Xpð  XpÐqvÐqvð  ~Að  EVð  ~Vð  ~Vð  [^ð  bsð  [sð  [sð  vzð  vzð  y{ð  A÷  Fò  Fð  Fzð  Fzð  Fzð  Fzð  X\ð  Fzñ  Fzô  Fzñ  zô  zñ  ,zˆÐ'Ñ(Ø$&ˆ�LÑ!Ø×ÒÐ1°9·=²=ÐARÐTVÑ3WÔ3W×3[Ò3[Ð\eõ  hHñ  4Iô  4Iñ  	Jô  	Jð  	JØ%Ÿ/š/Ð*;¸TÑBÔBˆÝ˜/­4Ñ0Ô0ð 	!Ø ˆOÝ9×?Ò?ÑAÔAð 	3ð 	3‰JˆC�Ø×&Ò& s¨EÑ2Ô2Ð2Ð2Ø)8ˆÐ%Ñ&Ð&Ð&rV   c                 ób  — t          | ¦  «        r@|                     dddt          ddt          dddt	          t
          ¦  «        d	d
œ¦  «         d S |                     ddd|                     di ¦  «                             dt          ¦  «        ddddt	          t          ¦  «        d	dœ
¦  «         d S )Nr}   r   r	   r   rð   rò   r   rô   ÚFG)rö   rU  Úrepeat_generationrV  Úvideo_lengthrï   rW  rñ   ró   rw   rL   Úmulti_prompts_gen_typer5   r#   rý   rõ   )
rö   rU  rb  rV  rc  rï   rW  rñ   rL   rd  )	rÔ   r	  r�   r\  r  r  r  ro   r
  )rã   ré   r^  s      rT   Úupdate_default_settingsz&family_handler.update_default_settingsº  sÛ   € å˜Ñ(Ô(ð 	Ø×Òà),Ø"$Ø)*Ý(IØ$%Ø+-Ý'GØ&)Ø,/Ø!$Ý'+Õ,LÑ'MÔ'MØ.2ðð ñô ð ð  ˆFà×Òà%'Ø Ø%&Ø$-§M¢MÐ2CÀRÑ$HÔ$H×$LÒ$LÈYÕXxÑ$yÔ$yØ !Ø'(Ø#%Ø"%Ý#'Õ(GÑ#HÔ#HØ*.ðð ñ	
ô 	
ð 	
ð 	
ð 	
rV   rÚ   )Ú__name__Ú
__module__Ú__qualname__ÚstaticmethodrØ   rÛ   rÞ   rá   rä   rê   rí   r  r  r¦   r7  r¯   rN  r_  re  rN   rV   rT   rÖ   rÖ   ž  s‘  € € € € € Øð3ð 3ñ „\ð3ð ðð ñ „\ðð ðð ñ „\ðð ð&ð &ñ „\ð&ð ðð ñ „\ðð
 ðYð Yñ „\ðYð ðnð nð nñ „\ðnð ðWð Wñ „\ðWðr ðð ñ „\ðð$ ð "Ø"&ØŒnØ”-Ø$)ØØØ"Øðlð lð lñ „\ðlð\ ð9ð 9ñ „\ð9ð> ð!
ð !
ñ „\ð!
ð !
ð !
rV   rÖ   )Er1  r  rÄ   r¦   Úpostprocessing.seedvc_processorr   rš   r   r9  Úshared.deepy.assetsr   r   Úshared.utilsr   rÈ   Úshared.utils.hfr   Últx2_handlerr
   r   r   Úprompt_enhancerr   r   r   r   rŽ   ÚSCENEMA_ASSET_DIRÚSCENEMA_MAIN_FILENAMEÚSCENEMA_QUANT_FILENAMEr�   r�   r‘   r’   r”   r•   r—   r˜   r–   r™   ÚSCENEMA_DEFAULT_PACEro   rn   r�   r€   r\  r
  r  rp   r‚   r“   rr   r„   rq   rs   rt   rƒ   r…   r†   ru   r‡   r�   rŸ   r¹   rÐ   r  ÚboolrÔ   rÖ   rN   rV   rT   ú<module>ru     s&  ðà 	€	€	€	Ø 	€	€	€	Ø €€€à €€€à bÐ bÐ bÐ bÐ bÐ bÐ bÐ bØ HÐ HÐ HÐ HÐ HÐ HÐ HÐ HØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø (Ð (Ð (Ð (Ð (Ð (à PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }Ð }ð '€ØÐ ØDÐ ØQÐ Ø>Ð Ø:Ð Ø+^Ð (Ø&TÐ #ØÐ Ø*Ð Ø%Ð'8Ð9Ð Ø+˜_Ð Ø)Ð ØxÐxÐxÐ ØÐ Ø#&Ð  Ø&Ð Ø$%Ð !Ø "Ð ð $KÐ  àØØ ð#ð #Ð ð ˜3ð$Ð  ð
 Ø,ØØØ2°:Ô>ðð ð Ø0Ø!ØØ2°=ÔAðð ð Ø%ØØØ2°6Ô:ØØðð ðÐ ð6 $Ø9Ø*ØØ3Ð4IÔJØØðð ð
Ð ð!ð !ð !Ð ð(€ðT(€ðVyÐ ð hÐ ð uÐ ðiÐ ð ]Ð ð wÐ ðBð Bð BðJBð Bð BðJPð Pð Pð*ð ð ð ð ð ð"ð ð ð *˜Sð * Tð *ð *ð *ð *ð~
ð ~
ð ~
ð ~
ð ~
ñ ~
ô ~
ð ~
ð ~
ð ~
rV   