§
    ÎÐjˆ ã                   ó€  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
mZ d dlZd dlZd dlmZ d dlmZ d dlmZ 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  d
dl!m"Z"m#Z#m$Z$m%Z%m&Z& d
dl'm(Z(m)Z)m*Z* d
dl+m,Z, d
dl-m.Z.m/Z/ d
dl0m1Z1 d
dl2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9 d
dl:m;Z;m<Z< d
dl=m>Z> d
dl-m?Z?m@Z@mAZA d
dlBmCZCmDZD d
dlEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZM d
dlNmOZOmPZP d
dlQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY d
dlZm[Z[ d
dl\m]Z] d
dl^m_Z_ d
dl`maZa d
dlbmcZcmdZdmeZe dZfdZgd Zhd!Zid"Zjd#Zkd$Zld Zmd%Znd&Zo epee¦  «        Zqd'Zrd(Zsd)Zth d*£Zud+evdz  d,ewfd-„Zxd+evdz  d.evd,ewfd/„Zyd0„ Zzd,ewfd1„Z{d{d2evdz  fd3„Z|d4evd,evfd5„Z}d6e~d7e~dz  fd8„Zd9„ Z€d6e~d:evfd;„Z�d:evfd<„Z‚d6e~d:evfd=„Zƒd:evfd>„Z„d?e~d,e~fd@„Z… G dA„ dBej†        j‡        ¦  «        Zˆ G dC„ dDej†        j‡        ¦  «        Z‰ G dE„ dF¦  «        ZŠ G dG„ dHej†        j‡        ¦  «        Z‹ G dI„ dJ¦  «        ZŒdKej†        j‡        d,dfdL„Z�dM„ ZŽd|dOe�fdP„Z�dQe�dRe�fdS„Z‘d,ewfdT„Z’dUewd,e�fdV„Z“dOe�fdW„Z”	 d}dOe�dQe�dRe�dUewdXewf
dY„Z•dZe�d[e�d,e�fd\„Z–d]e�d,e�fd^„Z—d_e�d,e�fd`„Z˜dae�d_e�d,e�fdb„Z™d]e�epz  ešz  dz  dce›dz  d,eAdz  fdd„Zœd,e�dz  fde„Z�	 	 	 	 d~dfeejž                 ejž        z  dge
g ewf         dz  dhe�dz  die�dz  dje�dz  d,ejž        dz  fdk„ZŸ	 ddmejž        dz  dnejž        dz  doe�dpe�dqe�d,ejž        fdr„Z dsejž        dz  dte›d,ewfdu„Z¡dvejž        dz  dwepe�e�e�e�f         dz  dte›d,ewfdx„Z¢ G dy„ dz¦  «        Z£dS )€é    N)Únullcontext)ÚCallableÚIterator)Úinit_empty_weights)Ú	load_file)Úfiles_locator)Úgeneration_progress©Úmmgp_vram_allocator)ÚVIDEO_PROMPT_HDR_OUTPUT_FLAGÚhdr_linear_to_vae_rangeÚsdr_to_vae_rangeé   )ÚAudioConditionByLatentÚAudioConditionByLatentPrefixÚAudioConditionByReferenceLatent)ÚVOCODER_COMFY_KEYS_FILTERÚAudioDecoderConfiguratorÚAudioEncoderConfiguratorÚAudioProcessorÚVocoderConfigurator)ÚLTXV_MODEL_COMFY_RENAMING_MAPÚLTXModelConfiguratorÚX0Model)ÚLatentUpsamplerConfigurator)ÚVideoDecoderConfiguratorÚVideoEncoderConfigurator)ÚDiffusionVideoDecoder)Ú"AUDIO_EMBEDDINGS_CONNECTOR_KEY_OPSÚ-GemmaTextEmbeddingsConnectorModelConfiguratorÚ!GemmaTextEmbeddingsConnectorModelÚ!TEXT_EMBEDDING_PROJECTION_KEY_OPSÚ!TEXT_EMBEDDINGS_CONNECTOR_KEY_OPSÚ"VIDEO_EMBEDDINGS_CONNECTOR_KEY_OPSÚbuild_gemma_text_encoder)Ú&AudioEmbeddings1DConnectorConfiguratorÚ!Embeddings1DConnectorConfigurator)Ú GemmaFeaturesExtractorProjLinear)ÚSpatialTilingConfigÚTemporalTilingConfigÚTilingConfig)ÚAudioLatentShapeÚVideoPixelShape)Ú_apply_ltx2_mask_blendÚ'_apply_ltx2_inpaint_preprocess_dilationÚ_build_outpainting_mask_cthwÚ_get_outpainting_inner_rectÚ_ltx2_inpainting_enabledÚ_merge_ltx2_masksÚ_normalize_outpainting_dimsÚ#_pad_ltx2_masked_control_video_tail)Úis_ic_lora_filenameÚphase2_ic_lora_name)ÚLTX2_INPAINTING_LAPLACIAN_BLENDÚ/LTX2_INPAINTING_LAPLACIAN_MASK_LOW_RES_DILATIONÚ(LTX2_INPAINTING_PREPROCESS_MASK_DILATIONÚ)LTX2_INPAINTING_SANITIZE_LAPLACIAN_SOURCEÚ LTX2_OUTPAINTING_LAPLACIAN_BLENDÚ0LTX2_OUTPAINTING_LAPLACIAN_MASK_LOW_RES_DILATIONÚLTX2_OUTPAINTING_METHODÚ"LTX2_PAD_MASKED_CONTROL_VIDEO_TAIL)ÚDistilledPipeline)Úconvert_sdr_to_hdr)ÚTI2VidTwoStagesPipeline)Ú
UInt8Guide)ÚAUDIO_SAMPLE_RATEÚDEFAULT_NEGATIVE_PROMPTÚDISTILLED_SIGMA_VALUESz#gemma-3-12b-it-qat-q4_0-unquantizedz)ltx-2-spatial-upscaler-x2-1.0.safetensorsTg      @g      @g\�Âõ(\@ç       @Fç      8@iá  )útext_embedding_projection.úfeature_extractor_linear.útext_embeddings_connector.úembeddings_connector.úvideo_embeddings_connector.úaudio_embeddings_connector.)Ú$av_ca_audio_scale_shift_adaln_singleÚ$av_ca_video_scale_shift_adaln_singleÚav_ca_a2v_gate_adaln_singleÚav_ca_v2a_gate_adaln_singleÚaudio_prompt_adaln_singleÚaudio_patchify_projÚaudio_to_video_attnÚprompt_adaln_singleÚvideo_to_audio_attnÚaudio_adaln_singleÚtransformer_blocksÚtimestep_embedderÚaudio_proj_outÚto_gate_logitsÚpatchify_projÚadaln_singleÚaudio_attn1Úaudio_attn2Úaudio_ffÚlinear_1Úlinear_2Úproj_outÚk_normÚq_normÚto_outÚto_kÚto_qÚto_v>   Últx2_22BÚltx2_25_22BÚltx2_25_22B_alpha_genÚltx2_25_22B_layout_to_renderÚbase_model_typeÚreturnc                 ó   — | t           v S ©N)Ú_LTX2_MAIN_LORA_ARCHITECTURES)ro   s    ú8C:\Users\johnn\OneDrive\Documents\AI\models\ltx2\ltx2.pyÚ_ltx2_main_loras_compatibleru   „   s   € ØÕ;Ð;Ð;ó    Úvideo_prompt_typec                 óz   ‡— ‰pdŠt          | ¦  «        o'd‰v o#t          ˆfd„dt          › �D ¦   «         ¦  «         S )NÚ ÚIc              3   ó    •K  — | ]}|‰v V — Œ	d S rr   © ©Ú.0Úletterrw   s     €rt   ú	<genexpr>z1_ltx2_main_ingredients_enabled.<locals>.<genexpr>Š   sO   øè è € ð  awð  awð  BHÐagÐk|Ða|ð  awð  awð  awð  awð  awð  awrv   Ú	KFVOPDEMA)ru   Úanyr   )ro   rw   s    `rt   Ú_ltx2_main_ingredients_enabledrƒ   ˆ   s˜   ø€ Ø)Ð/¨RÐÝ& Ñ7Ô7ð  w¸CÐCTÐ<Tð  wÕ]`ð  awð  awð  awð  awð  Lvõ  Xtð  Lvð  Lvð  awñ  awô  awñ  ^wô  ^wð  Zwð  wrv   c                 óf  — t          | t          ¦  «        r| S t          | t          t          t          f¦  «        r6	 t          | ¦  «                             d¦  «        } n# t          $ r i cY S w xY wt          | t          ¦  «        r,	 t          j	        | ¦  «        S # t          j
        $ r i cY S w xY wi S )Núutf-8)Ú
isinstanceÚdictÚbytesÚ	bytearrayÚ
memoryviewÚdecodeÚ	ExceptionÚstrÚjsonÚloadsÚJSONDecodeError)Úconfig_values    rt   Ú_normalize_configr’   �   sÌ   € Ý�,¥Ñ%Ô%ð ØÐÝ�,¥­	µ:Ð >Ñ?Ô?ð ð	Ý  Ñ.Ô.×5Ò5°gÑ>Ô>ˆLˆLøÝð 	ð 	ð 	ØˆIˆIˆIð	øøøå�,¥Ñ$Ô$ð ð	Ý”:˜lÑ+Ô+Ð+øÝÔ#ð 	ð 	ð 	ØˆIˆIˆIð	øøøà€Is#   »"A ÁA-Á,A-ÂB ÂB.Â-B.c                 óL   — t          | pi                      dd¦  «        ¦  «        S )NÚltx2_edit_anythingF)ÚboolÚget)Ú	model_defs    rt   Ú_is_editanything_modelr˜   �   s%   € Ý��˜b×%Ò%Ð&:¸EÑBÔBÑCÔCÐCrv   Úfallback_config_pathc                 óv  ‡— ddl mŠ t          | t          t          f¦  «        r| si S | d         } | si S dt
          dt          fˆfd„} || ¦  «        }|r|S |si S 	 t          |dd¬¦  «        5 }t          t          j
        |¦  «        ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S # t          $ r i cY S w xY w)	Nr   )Úquant_routerÚone_pathrp   c                 óˆ   •— | si S ‰                      | ¦  «        \  }}|si S t          |                     d¦  «        ¦  «        S )NÚconfig)Úload_metadata_state_dictr’   r–   )rœ   Ú_Úmetadatar›   s      €rt   Ú_read_config_metadataz;_load_config_from_checkpoint.<locals>._read_config_metadata«   sN   ø€ Øð 	ØˆIØ"×;Ò;¸HÑEÔE‰ˆˆ8Øð 	ØˆIÝ  §¢¨hÑ!7Ô!7Ñ8Ô8Ð8rv   Úrr…   ©Úencoding)Úmmgpr›   r†   ÚlistÚtupler�   r‡   Úopenr’   rŽ   ÚloadrŒ   )Úpathr™   r¢   rž   Úreaderr›   s        @rt   Ú_load_config_from_checkpointr­   ¡   s[  ø€ Ø!Ð!Ð!Ð!Ð!Ð!å�$��u˜Ñ&Ô&ð Øð 	ØˆIØ�AŒwˆØð Øˆ	ð9­ð 9µð 9ð 9ð 9ð 9ð 9ð 9ð #Ð" 4Ñ(Ô(€FØð ØˆØð Øˆ	ðÝÐ&¨°gÐ>Ñ>Ô>ð 	8À&Ý$¥T¤Y¨vÑ%6Ô%6Ñ7Ô7ð	8ð 	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øåð ð ð Øˆ	ˆ	ˆ	ðøøøs6   ÁB) Á.!BÂB) ÂB Â B) Â#B Â$B) Â)B8Â7B8Úkeyc                 ó†   — dD ]=}|                       |¦  «        r&t          | t          |¦  «        d …         ¦  «        c S Œ>| S )N)úmodel.úvelocity_model.)Ú
startswithÚ_strip_model_prefixÚlen)r®   Úprefixs     rt   r³   r³   ¿   sR   € Ø/ð ;ð ;ˆØ�>Š>˜&Ñ!Ô!ð 	;Ý& s­3¨v©;¬;¨=¨=Ô'9Ñ:Ô:Ð:Ð:Ð:ð	;à€Jrv   Ú
state_dictÚquantization_mapc                 ó¤  — |�‡d}|                       ¦   «         D ]*}t          |¦  «        }|                     |¦  «        �d} nŒ+|sDd„ |                      ¦   «         D ¦   «         }i }|rd„ |                     ¦   «         D ¦   «         }||fS i }|                      ¦   «         D ]^\  }}t          |¦  «        }|€|||<   Œ|                     |¦  «        }|€Œ4|                     ||¦  «        }	|	D ]}
|
j        ||
j        <   ŒŒ_i }|rK|                     ¦   «         D ]6\  }}t          |¦  «        }|€|}n|                     |¦  «        }|€Œ1|||<   Œ7||fS )NFTc                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r|   ©r³   ©r~   ÚkÚvs      rt   ú
<dictcomp>z!_apply_sd_ops.<locals>.<dictcomp>Ï   s'   € ÐOÐOÐO±D°A°qÕ)¨!Ñ,Ô,¨aÐOÐOÐOrv   c                 ó4   — i | ]\  }}t          |¦  «        |“ŒS r|   rº   r»   s      rt   r¾   z!_apply_sd_ops.<locals>.<dictcomp>Ò   s'   € ÐYÐYÐY¹¸¸1Õ-¨aÑ0Ô0°!ÐYÐYÐYrv   )Úkeysr³   Úapply_to_keyÚitemsÚapply_to_key_valueÚ	new_valueÚnew_key)r¶   r·   Úsd_opsÚ	has_matchr®   Únew_sdÚnew_qmÚvaluerÅ   Ú	new_pairsÚpairs              rt   Ú_apply_sd_opsrÍ   Æ   sÅ  € ØÐØˆ	Ø—?’?Ñ$Ô$ð 	ð 	ˆCÝ% cÑ*Ô*ˆCØ×"Ò" 3Ñ'Ô'Ð3Ø �	Ø�ð 4ð ð 	"ØOÐO¸J×<LÒ<LÑ<NÔ<NÐOÑOÔOˆFØˆFØð ZØYÐYÐ@P×@VÒ@VÑ@XÔ@XÐYÑYÔY�Ø˜6�>Ð!à€FØ ×&Ò&Ñ(Ô(ð 2ð 2‰
ˆˆUÝ! #Ñ&Ô&ˆØˆ>ØˆF�3‰KØà×)Ò)¨#Ñ.Ô.ˆGØˆØØ×1Ò1°'¸5ÑAÔAˆIØð 	2ð 	2ˆDØ#'¤>ˆF�4”<Ñ Ð ð	2ð €FØð 	$Ø*×0Ò0Ñ2Ô2ð 	$ð 	$‰JˆC�Ý% cÑ*Ô*ˆCØˆ~Ø��à ×-Ò-¨cÑ2Ô2�Ø�?ØØ#ˆF�7‰OˆOØ�6ˆ>Ðrv   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó&   •— t          | |‰¦  «        S rr   )rÍ   )r¶   r·   rÆ   s     €rt   Úpostprocessz)_make_sd_postprocess.<locals>.postprocessò   s   ø€ Ý˜ZÐ)9¸6ÑBÔBÐBrv   r|   )rÆ   rÐ   s   ` rt   Ú_make_sd_postprocessrÑ   ñ   ó)   ø€ ðCð Cð Cð Cð Cð Ðrv   rµ   c                 ó¸  — i }|                       ¦   «         D ]À\  }}t          |¦  «        }|                     |¦  «        r|t          |¦  «        d …         }n|                     d¦  «        r|}nŒZ|                     d¦  «        rL|t          d¦  «        d …         }|                     ¦   «         |d|› �<   |                     ¦   «         |d|› �<   Œ»|||<   ŒÁ|i fS )N©zencoder.zdecoder.úper_channel_statistics.rÕ   úencoder.per_channel_statistics.údecoder.per_channel_statistics.)rÂ   r³   r²   r´   Úclone)r¶   rµ   rÈ   r®   rÊ   Úsuffixs         rt   Ú_split_vae_state_dictrÚ   ø   sø   € Ø€FØ ×&Ò&Ñ(Ô(ð  ð  ‰
ˆˆUÝ! #Ñ&Ô&ˆØ�>Š>˜&Ñ!Ô!ð 	Ø•c˜&‘k”k�m�mÔ$ˆCˆCØ�^Š^ÐOÑPÔPð 	ØˆCˆCàØ�>Š>Ð3Ñ4Ô4ð 	 Ø�Ð6Ñ7Ô7Ð9Ð9Ô:ˆFØAFÇÂÁÄˆFÐ=°VÐ=Ð=Ñ>ØAFÇÂÁÄˆFÐ=°VÐ=Ð=Ñ>Ð>àˆF�3‰KˆKà�2ˆ:Ðrv   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó$   •— t          | ‰¦  «        S rr   )rÚ   ©r¶   r·   rµ   s     €rt   rÐ   z*_make_vae_postprocess.<locals>.postprocess  s   ø€ Ý$ Z°Ñ8Ô8Ð8rv   r|   ©rµ   rÐ   s   ` rt   Ú_make_vae_postprocessrß     s$   ø€ ð9ð 9ð 9ð 9ð 9ð Ðrv   c                 ó$  — i }|                       ¦   «         D �]u\  }}t          |¦  «        }|                     |¦  «        r|t          |¦  «        d …         }n|                     d¦  «        sŒX|                     d¦  «        rL|t          d¦  «        d …         }|                     ¦   «         |d|› �<   |                     ¦   «         |d|› �<   Œ¹|                     d¦  «        r|||                     dd¦  «        <   Œè|                     d¦  «        r|||                     dd¦  «        <   �Œd	|v rT|                     d	d
¦  «        \  }}|                     dd¬¦  «        \  }}}	|||› d|› �<   |||› d|› �<   |	||› d|› �<   �Œp|||<   �Œw|i fS )NrÔ   rÕ   rÖ   r×   zdecoder.t_embedder.mlp.0.z.decoder.t_embedder.timestep_embedder.linear_1.zdecoder.t_embedder.mlp.2.z.decoder.t_embedder.timestep_embedder.linear_2.z
.attn.qkv.r   é   r   ©Údimz.attn.qkv.to_q.z.attn.qkv.to_k.z.attn.qkv.to_v.)rÂ   r³   r²   r´   rØ   ÚreplaceÚsplitÚchunk)
r¶   rµ   rÈ   r®   rÊ   rÙ   Ú
prefix_keyÚqr¼   r½   s
             rt   Ú_split_diffusion_vae_state_dictré     sÞ  € Ø€FØ ×&Ò&Ñ(Ô(ð  ñ  ‰
ˆˆUÝ! #Ñ&Ô&ˆØ�>Š>˜&Ñ!Ô!ð 	Ø•c˜&‘k”k�l�lÔ#ˆCˆCØ—’Ð SÑTÔTð 	ØØ�>Š>Ð3Ñ4Ô4ð 	 Ø�Ð6Ñ7Ô7Ð8Ð8Ô9ˆFØAFÇÂÁÄˆFÐ=°VÐ=Ð=Ñ>ØAFÇÂÁÄˆFÐ=°VÐ=Ð=Ñ>Ð>Ø�^Š^Ð7Ñ8Ô8ð 	 ØqvˆF�3—;’;Ð:Ð<lÑmÔmÑnÐnØ�^Š^Ð7Ñ8Ô8ð 		 ØqvˆF�3—;’;Ð:Ð<lÑmÔmÑnÑnØ˜SÐ Ð Ø!$§¢¨<¸Ñ!;Ô!;ÑˆJ˜Ø—k’k !¨�kÑ+Ô+‰GˆAˆq�!Ø=>ˆF�jÐ9Ð9°Ð9Ð9Ñ:Ø=>ˆF�jÐ9Ð9°Ð9Ð9Ñ:Ø=>ˆF�jÐ9Ð9°Ð9Ð9Ñ:Ñ:àˆF�3‰K‰KØ�2ˆ:Ðrv   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó$   •— t          | ‰¦  «        S rr   )ré   rÝ   s     €rt   rÐ   z4_make_diffusion_vae_postprocess.<locals>.postprocess/  s   ø€ Ý.¨z¸6ÑBÔBÐBrv   r|   rÞ   s   ` rt   Ú_make_diffusion_vae_postprocessrì   .  rÒ   rv   rž   c           
      ó˜   — | d         d         }d|d         |d         |d         |d         |d         |d         |d	         |d
         dœiS )NÚvaeÚencoderÚdimsÚin_channelsÚout_channelsÚblocksÚ
patch_sizeÚ
norm_layerÚlatent_log_varÚspatial_padding_mode)rð   rñ   Úlatent_channelsÚencoder_blocksrô   rõ   rö   Úencoder_spatial_padding_moder|   )rž   rï   s     rt   Ú_diffusion_vae_encoder_configrû   5  sh   € Ø�UŒm˜IÔ&€GàØ˜F”OØ" =Ô1Ø& ~Ô6Ø% hÔ/Ø! ,Ô/Ø! ,Ô/Ø%Ð&6Ô7Ø,3Ð4JÔ,Kð	
ð 	
ðð rv   c                   ó<   ‡ — e Zd Zdej        j        ddfˆ fd„Zˆ xZS )Ú_AudioVAEWrapperÚdecoderrp   Nc                 óŠ   •— t          ¦   «                              ¦   «          t          |dd ¦  «        }|�|| _        || _        d S )NÚper_channel_statistics)ÚsuperÚ__init__Úgetattrr   rþ   )Úselfrþ   Ú	per_statsÚ	__class__s      €rt   r  z_AudioVAEWrapper.__init__F  sD   ø€ Ý‰Œ×ÒÑÔÐÝ˜GÐ%=¸tÑDÔDˆ	ØÐ Ø*3ˆDÔ'ØˆŒˆˆrv   ©Ú__name__Ú
__module__Ú__qualname__ÚtorchÚnnÚModuler  Ú__classcell__©r  s   @rt   rý   rý   E  sO   ø€ € € € € ð ¤¤ð °Dð ð ð ð ð ð ð ð ð ð rv   rý   c                   óT   ‡ — e Zd Zdej        j        dej        j        ddfˆ fd„Zˆ xZS )Ú_VAEContainerrï   rþ   rp   Nc                 ód   •— t          ¦   «                              ¦   «          || _        || _        d S rr   )r  r  rï   rþ   )r  rï   rþ   r  s      €rt   r  z_VAEContainer.__init__O  s+   ø€ Ý‰Œ×ÒÑÔÐØˆŒØˆŒˆˆrv   r  r  s   @rt   r  r  N  sZ   ø€ € € € € ð ¤¤ð ¸%¼(¼/ð Èdð ð ð ð ð ð ð ð ð ð rv   r  c                   ó8   — e Zd Zdej        j        ddfd„Zd„ ZdS )Ú_ExternalConnectorWrapperÚmodulerp   Nc                 ó   — || _         d S rr   ©Ú_module)r  r  s     rt   r  z"_ExternalConnectorWrapper.__init__V  s   € ØˆŒˆˆrv   c                 ó   —  | j         |i |¤ŽS rr   r  ©r  ÚargsÚkwargss      rt   Ú__call__z"_ExternalConnectorWrapper.__call__Y  s   € ØˆtŒ|˜TÐ, VÐ,Ð,Ð,rv   )r  r	  r
  r  r  r  r  r  r|   rv   rt   r  r  U  sI   € € € € € ð˜uœxœð °4ð ð ð ð ð-ð -ð -ð -ð -rv   r  c                   ó‚   ‡ — e Zd Zdˆ fd„Zedefd„¦   «         Zej        deddfd„¦   «         Zd	„ Zd
„ Z	d„ Z
ˆ fd„Zˆ xZS )ÚLTX2SuperModelÚ
ltx2_modelÚLTX2rp   Nc                 ó   •— t          ¦   «                              ¦   «          t                               | d|¦  «         |j        }|| _        t          |dd ¦  «        }|�|| _        |j        | _        |j        | _        d S )NÚ_ltx2Úsplit_linear_modules_map)	r  r  ÚobjectÚ__setattr__Úmodelr  r$  Útext_embedding_projectionÚtext_embeddings_connector)r  r   ÚtransformerÚ	split_mapr  s       €rt   r  zLTX2SuperModel.__init__^  s|   ø€ Ý‰Œ×ÒÑÔÐÝ×Ò˜4 ¨*Ñ5Ô5Ð5à Ô&ˆà ˆŒ
Ý˜KÐ)CÀTÑJÔJˆ	ØÐ Ø,5ˆDÔ)à)3Ô)MˆÔ&Ø)3Ô)MˆÔ&Ð&Ð&rv   c                 ó   — | j         j        S rr   ©r#  Ú
_interrupt©r  s    rt   r.  zLTX2SuperModel._interruptl  s   € àŒzÔ$Ð$rv   rÊ   c                 ó   — || j         _        d S rr   r-  )r  rÊ   s     rt   r.  zLTX2SuperModel._interruptp  s   € à %ˆŒ
ÔÐÐrv   c                 ó&   —  | j         j        |i |¤ŽS rr   )r#  r'  r  s      rt   ÚforwardzLTX2SuperModel.forwardt  s   € ØˆtŒzÔ Ð0¨Ð0Ð0Ð0rv   c                 ó&   —  | j         j        |i |¤ŽS rr   )r#  Úgenerater  s      rt   r4  zLTX2SuperModel.generatew  s   € Ø"ˆtŒzÔ" DÐ3¨FÐ3Ð3Ð3rv   c                 ó
   — | d fS rr   r|   r/  s    rt   Úget_trans_lorazLTX2SuperModel.get_trans_loraz  s   € Ø�TˆzÐrv   c                 ó’   •— 	 t          ¦   «                              |¦  «        S # t          $ r t          | j        |¦  «        cY S w xY wrr   )r  Ú__getattr__ÚAttributeErrorr  r#  )r  Únamer  s     €rt   r8  zLTX2SuperModel.__getattr__}  sS   ø€ ð	-Ý‘7”7×&Ò& tÑ,Ô,Ð,øÝð 	-ð 	-ð 	-Ý˜4œ: tÑ,Ô,Ð,Ð,Ð,ð	-øøøs   ƒ $ ¤AÁA)r   r!  rp   N)r  r	  r
  r  Úpropertyr•   r.  Úsetterr2  r4  r6  r8  r  r  s   @rt   r  r  ]  sâ   ø€ € € € € ðNð Nð Nð Nð Nð Nð ð%˜Dð %ð %ð %ñ „Xð%ð Ôð& ð &¨ð &ð &ð &ñ Ôð&ð1ð 1ð 1ð4ð 4ð 4ðð ð ð-ð -ð -ð -ð -ð -ð -ð -ð -rv   r  c                   óh   — e Zd Zddeddfd„Z	 	 ddededed	edz  d
edz  deeeef         z  fd„ZdS )Ú_LTX2VAEHelperé@   Ú
block_sizerp   Nc                 ó   — || _         d S rr   )r@  )r  r@  s     rt   r  z_LTX2VAEHelper.__init__…  s   € Ø$ˆŒˆˆrv   Ú
vae_configÚdevice_mem_capacityÚmixed_precisionÚoutput_heightÚoutput_widthc                 óø   — t          ¦   «         r|dk    s|dk     rdndS |dk    rd}|dk    r|r|dz  }|dk    rd	}n|dk    rd
}nd}n|}|�|n|}|�|dk    r|d	z  }d}|d	k    rd}n|d
k    rd}n|dk    rd}|S )Nrá   i@  é   i   é   r   g      ø?iÀ]  r   é   ià  é€   r
   )	r  rB  rC  rD  rE  rF  Úuse_vae_configÚref_sizeÚspatial_tile_sizes	            rt   Úget_VAE_tile_sizez _LTX2VAEHelper.get_VAE_tile_sizeˆ  sö   € õ Ñ Ô ð 	QØ$¨š/˜/Ð-@À4Ò-GÐ-G�3�3ÈSÐPØ˜Š?ˆ?ØˆJà˜Š?ˆ?Øð @Ø&9¸CÑ&?Ð#Ø" eÒ+Ð+Ø!"��Ø$¨Ò,Ð,Ø!"��à!"��à'ˆNà$1Ð$=�=�=À<ˆØÐ H¨s¢N NØ˜aÑˆNàÐØ˜QÒÐØ !ÐÐØ˜qÒ Ð Ø #ÐÐØ˜qÒ Ð Ø #Ðà Ð rv   )r?  )NN)	r  r	  r
  Úintr  Úfloatr•   r¨   rO  r|   rv   rt   r>  r>  „  s«   € € € € € ð%ð % 3ð %°ð %ð %ð %ð %ð %)Ø#'ð%!ð %!àð%!ð #ð%!ð ð	%!ð
 ˜T‘zð%!ð ˜D‘jð%!ð 
ˆu�S˜#�XŒÑ	ð%!ð %!ð %!ð %!ð %!ð %!rv   r>  r*  c                 óŽ   — dt           j        j        dt          dt          dt          fd„}t          j        || ¦  «        | _        d S )Nr  Ú
model_typeÚsdrp   c           	      ó´  — |s|S t          | dd ¦  «        }|€%d„ |                      ¦   «         D ¦   «         }|| _        dt          dt          t          d z  t          f         fd„}i }g }|                     ¦   «         D �]~\  }}|}	|                     d¦  «        r|t          d¦  «        d …         }|                     d¦  «        r|t          d¦  «        d …         }|                     d¦  «        r|t          d¦  «        d …         } ||¦  «        \  }
}|
s|                     |	¦  «         Œ²|
                     d	¦  «        ru|
t          d	¦  «        d …         }
t          D ],}|
 
                    || 
                    d
d¦  «        ¦  «        }
Œ-|
 
                    d
d¦  «         
                    dd
¦  «        }
t          s|
                     t          ¦  «        r�Œ_|
                     d¦  «        rd|
t          d¦  «        d …         › �}
|
                     d¦  «        rd|
› �}
|
                     d¦  «        rd|
› �}
|
                     d¦  «        rd|
t          d¦  «        d …         › �}
|
|vr_|
                     d¦  «        rd|
› �nd|
› �}|
                     d¦  «        r|› d�|v r|› d�}
n?||v r|}
n8|                     |	¦  «         �ŒT|
                     d¦  «        r|
› d�|v r|
› d�}
|||
› |› �<   �Œ€|rZd                     |d d…         ¦  «        }t          |¦  «        dk    r|dz  }t          dt          |¦  «        › d|› d|› �¦  «        ‚|S )NÚ_lora_module_namesc                 ó   — h | ]\  }}|’ŒS r|   r|   )r~   r:  r    s      rt   ú	<setcomp>zF_attach_lora_preprocessor.<locals>.preprocess_loras.<locals>.<setcomp>¶  s   € ÐEÐEÐE¡W T¨1˜DÐEÐEÐErv   Úlora_keyrp   c                 óÜ  — |                       d¦  «        r| d t          d¦  «         …         dfS |                       d¦  «        r| d t          d¦  «         …         dfS |                       d¦  «        r| d t          d¦  «         …         dfS |                       d¦  «        r| d t          d¦  «         …         dfS |                      d¦  «        }|dk    r| d |…         | |d …         fS dS )Nz.alphaz.diffz.diff_bz.dora_scalez.lora_r   )Nry   )Úendswithr´   Úrfind)rY  Úposs     rt   Úsplit_lora_keyzK_attach_lora_preprocessor.<locals>.preprocess_loras.<locals>.split_lora_key¹  s  € Ø× Ò  Ñ*Ô*ð <ØÐ 0¥3 x¡=¤= .Ð 0Ô1°8Ð;Ð;Ø× Ò  Ñ)Ô)ð :Ø ¥3 w¡<¤< - Ô0°'Ð9Ð9Ø× Ò  Ñ+Ô+ð >ØÐ 1¥3 y¡>¤> /Ð 1Ô2°IÐ=Ð=Ø× Ò  Ñ/Ô/ð FØÐ 5¥3 }Ñ#5Ô#5Ð"5Ð 5Ô6¸ÐEÐEØ—.’. Ñ*Ô*ˆCØ�QŠwˆwØ   ”~ x°°°¤~Ð5Ð5Ø�8rv   r°   zdiffusion_model.ztransformer.Ú
lora_unet_r    ú ú.rL   z5text_embeddings_connector.video_embeddings_connector.rM   rK   rN   rJ   rI   r±   zmodel.velocity_model.z.to_outz.0z, é   z, ...z LTX2 LoRA preprocessing dropped z unmatched keys for model 'z': )r  Únamed_modulesrV  r�   r¨   rÂ   r²   r´   ÚappendÚ!LTX2_COMFY_LORA_UNDERSCORED_NAMESrä   ÚLTX2_ENABLE_EMBEDDING_LORASÚLTX2_EMBEDDING_LORA_PREFIXESr[  ÚjoinÚ
ValueError)r  rS  rT  Úmodule_namesr^  rÈ   Údropped_keysr®   rÊ   Úoriginal_keyÚmodule_namerÙ   r:  Úprefixed_nameÚsamples                  rt   Úpreprocess_lorasz3_attach_lora_preprocessor.<locals>.preprocess_loras±  sY  € Øð 	ØˆIÝ˜tÐ%9¸4Ñ@Ô@ˆØÐØEÐE°×0BÒ0BÑ0DÔ0DÐEÑEÔEˆLØ&2ˆDÔ#ð	¥Sð 	­Uµ3¸±:½s°?Ô-Cð 	ð 	ð 	ð 	ð ˆØˆØŸ(š(™*œ*ð &	5ñ &	5‰JˆC�ØˆLØ�~Š~˜hÑ'Ô'ð +Ø�#˜h™-œ-˜/˜/Ô*�Ø�~Š~Ð0Ñ1Ô1ð 5Ø�#Ð0Ñ1Ô1Ð3Ð3Ô4�Ø�~Š~˜nÑ-Ô-ð 1Ø�#˜nÑ-Ô-Ð/Ð/Ô0�Ø"0 .°Ñ"5Ô"5ÑˆK˜Øð Ø×#Ò# LÑ1Ô1Ð1ØØ×%Ò% lÑ3Ô3ð OØ)­#¨lÑ*;Ô*;Ð*=Ð*=Ô>�Ý=ð Uð U�DØ"-×"5Ò"5°d¸D¿LºLÈÈdÑ<SÔ<SÑ"TÔ"T�K�KØ)×1Ò1°#°sÑ;Ô;×CÒCÀDÈ#ÑNÔN�Ý.ð °;×3IÒ3IÕJfÑ3gÔ3gð ÙØ×%Ò%Ð&=Ñ>Ô>ð Dð DÐVaÕbeÐf}Ñb~Ôb~ð  cAð  cAô  WBð  Dð  D�Ø×%Ò%Ð&CÑDÔDð IØH¸;ÐHÐH�Ø×%Ò%Ð&CÑDÔDð IØH¸;ÐHÐH�Ø×%Ò%Ð&AÑBÔBð mØl¸;ÅsÐKfÑGgÔGgÐGiÐGiÔ;jÐlÐl�Ø ,Ð.Ð.Ø:E×:PÒ:PÐQbÑ:cÔ:cð  !OÐ 6¨Ð 6Ð 6Ð 6ð  jOð  BMð  jOð  jO�Ø×'Ò'¨	Ñ2Ô2ð ¸-Ð7KÐ7KÐ7KÈ|Ð7[Ð7[Ø%2Ð"6Ð"6Ð"6�K�KØ" lÐ2Ð2Ø"/�K�Kà ×'Ò'¨Ñ5Ô5Ð5ÙØ×%Ò% iÑ0Ô0ð 1¸Ð5GÐ5GÐ5GÈ<Ð5WÐ5WØ!,Ð0Ð0Ð0�Ø/4ˆF�kÐ+ 6Ð+Ð+Ñ,Ñ,Øð 	Ø—Y’Y˜|¨B¨Q¨BÔ/Ñ0Ô0ˆFÝ�<Ñ Ô  1Ò$Ð$Ø˜'Ñ!�ÝØxµ3°|Ñ3DÔ3DÐxÐxÐakÐxÐxÐpvÐxÐxñô ð ð ˆrv   )r  r  r  r�   r‡   ÚtypesÚ
MethodTyperp  )r*  rp  s     rt   Ú_attach_lora_preprocessorrs  °  s]   € ðF�uœxœð F½Cð FÅTð FÍdð Fð Fð Fð FõP $)Ô#3Ð4DÀkÑ#RÔ#R€KÔ Ð Ð rv   c                 óH   — t          | t          ¦  «        r| r| d         nd S | S )Nr   )r†   r§   )Úimage_values    rt   Ú_coerce_image_listrv  ü  s-   € Ý�+�tÑ$Ô$ð 7Ø!,Ð6ˆ{˜1Œ~ˆ~°$Ð6ØÐrv   é	   Úframe_countc                 ó  — | €d S t          dt          |¦  «        ¦  «        }t          | t          t          f¦  «        r| r| d         nd } | €d S t          j        | ¦  «        ró|                      ¦   «         }|j        dk    re|j	        d         dv r+| 
                    d¦  «                             d|dd¦  «        S | 
                    d¦  «                             |ddd¦  «        S |j        dk    rb|j	        d         dv r$|d d …d d…f                              d|dd¦  «        S |j	        d         dv r |d d…                              |ddd¦  «        S |S dd l}ddlm} t          | t          ¦  «        rV|                     | ¦  «        5 }|                     |                     d¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   n|                     | ¦  «        d	d d…f         }|                     |d
         |d¬¦  «        S )Nr   r   rá   ©r   rá   rI  rI  éÿÿÿÿ©ÚImageÚRGB.)N.©Úaxis)ÚmaxrP  r†   r§   r¨   r  Ú	is_tensorÚdetachÚndimÚshapeÚ	unsqueezeÚrepeatÚnumpyÚPILr}  r�   r©   ÚarrayÚconvert)Ú	ref_imagerx  ÚimageÚnpr}  Úframes         rt   Ú_duplicate_ref_image_as_videor�    sO  € ØÐØˆtÝ�a�˜[Ñ)Ô)Ñ*Ô*€KÝ�)�d¥E˜]Ñ+Ô+ð Ø$-Ð7�I˜a”L�L°4ˆ	ØÐØ�4Ý„�yÑ!Ô!ð Ø× Ò Ñ"Ô"ˆØŒ:˜Š?ˆ?ØŒ{˜1Œ~ Ð*Ð*Ø—’ qÑ)Ô)×0Ò0°°KÀÀAÑFÔFÐFØ—?’? 1Ñ%Ô%×,Ò,¨[¸!¸QÀÑBÔBÐBØŒ:˜Š?ˆ?ØŒ{˜1Œ~ Ð*Ð*Ø˜Q˜Q˜Q   ˜U”|×*Ò*¨1¨k¸1¸aÑ@Ô@Ð@ØŒ{˜2Œ )Ð+Ð+Ø˜R˜a˜R”y×'Ò'¨°Q¸¸1Ñ=Ô=Ð=ØˆàÐÐÐØÐÐÐÐÐå�)�SÑ!Ô!ð -Ø�ZŠZ˜	Ñ"Ô"ð 	3 eØ—H’H˜UŸ]š]¨5Ñ1Ô1Ñ2Ô2ˆEð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3øð —’˜Ñ#Ô# C¨¨!¨ GÔ,ˆØ�9Š9�U˜9Ô% {¸ˆ9Ñ;Ô;Ð;s   Æ	)F>Æ>GÇGÚwidthÚheightc                 óì  — dd l }ddlm} t          | t          ¦  «        rD|                     | ¦  «        5 }|                     d¦  «        }d d d ¦  «         n# 1 swxY w Y   �nÃt          j        | ¦  «        �r|  	                    ¦   «          
                    ¦   «         }|j        dk    r|d         }|j        dk    r&|j        d         dv r|                     ddd¦  «        }|                      ¦   «         }|j        |j        k    rK|                     ¦   «         d	k    r|d
z  }|                     dd¦  «                             |j        ¦  «        }|                     |dd d…f         ¦  «                             d¦  «        }n¢|                     | ¦  «        }|j        |j        k    rK|                     ¦   «         d	k    r|d
z  }|                     dd¦  «                             |j        ¦  «        }|                     |dd d…f         ¦  «                             d¦  «        }|                     |                     t-          |¦  «        t-          |¦  «        f|j        j        ¦  «        ¦  «        S )Nr   r|  r~  rI  rá   rz  r   rJ  ç      ð?ç     ào@éÿ   .)rˆ  r‰  r}  r†   r�   r©   r‹  r  r‚  rƒ  Úcpur„  r…  ÚpermuteÚdtypeÚuint8r�  ÚclipÚastypeÚ	fromarrayrŠ  ÚresizerP  Ú
ResamplingÚLANCZOS)rŒ  r‘  r’  rŽ  r}  r�  Ú	pil_imager�  s           rt   Ú_msr_ref_image_to_framer¢  "  sh  € ØÐÐÐØÐÐÐÐÐå�)�SÑ!Ô!ð CØ�ZŠZ˜	Ñ"Ô"ð 	- eØŸš eÑ,Ô,ˆIð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ùå	Œ˜Ñ	#Ô	#ñ CØ× Ò Ñ"Ô"×&Ò&Ñ(Ô(ˆØŒ:˜Š?ˆ?Ø˜!”HˆEØŒ:˜Š?ˆ?˜uœ{¨1œ~°Ð:Ð:Ø—M’M ! Q¨Ñ*Ô*ˆEØ—’‘”ˆØŒ;˜"œ(Ò"Ð"Ø�yŠy‰{Œ{˜cÒ!Ð!Ø ™�Ø—J’J˜q #Ñ&Ô&×-Ò-¨b¬hÑ7Ô7ˆEØ—O’O E¨#¨r°¨r¨'¤NÑ3Ô3×;Ò;¸EÑBÔBˆ	ˆ	à—’˜Ñ#Ô#ˆØŒ;˜"œ(Ò"Ð"Ø�yŠy‰{Œ{˜cÒ!Ð!Ø ™�Ø—J’J˜q #Ñ&Ô&×-Ò-¨b¬hÑ7Ô7ˆEØ—O’O E¨#¨r°¨r¨'¤NÑ3Ô3×;Ò;¸EÑBÔBˆ	Ø�8Š8�I×$Ò$¥c¨%¡j¤jµ#°f±+´+Ð%>ÀÔ@PÔ@XÑYÔYÑZÔZÐZs   µAÁAÁAc                 ó,  — t          | pi                      dd¦  «        ¦  «        g}| pi                      dg ¦  «        }|                     d„ t          |t          t
          f¦  «        r|n|gD ¦   «         ¦  «         t          d„ |D ¦   «         ¦  «        S )Nr:  ry   Úlorasc              3   ó4   K  — | ]}t          |¦  «        V — Œd S rr   )r�   ©r~   rÊ   s     rt   r€   z'_is_msr_v2_model_def.<locals>.<genexpr>B  s(   è è € ÐcÐc •#�e‘*”*ÐcÐcÐcÐcÐcÐcrv   c              3   ón   K  — | ]0}d |                      ¦   «         v pd|                      ¦   «         v V — Œ1dS )zmsr-v2z
msr ref v2N)Úlowerr¦  s     rt   r€   z'_is_msr_v2_model_def.<locals>.<genexpr>C  sA   è è € Ð^Ð^Èeˆx˜5Ÿ;š;™=œ=Ð(ÐI¨L¸E¿KºK¹M¼MÐ,IÐ^Ð^Ð^Ð^Ð^Ð^rv   )r�   r–   Úextendr†   r§   r¨   r‚   )r—   Úvaluesr¤  s      rt   Ú_is_msr_v2_model_defr«  ?  s™   € Ý�9�? ×'Ò'¨°Ñ3Ô3Ñ4Ô4Ð5€FØˆ_˜"×!Ò! '¨2Ñ.Ô.€EØ
‡M‚MÐcÐcµJ¸uÅtÍUÀmÑ4TÔ4TÐ+a¨5¨5Ð[`ÐZaÐcÑcÔcÑcÔcÐcÝÐ^Ð^ÐW]Ð^Ñ^Ô^Ñ^Ô^Ð^rv   Úbackground_firstc                 óä  — t          | pi                      dd¦  «        ¦  «        }t          | ¦  «        s|S t          |t          ¦  «        r|pi                      dd¦  «        nd}	 t          |pd¦  «        }n# t
          t          f$ r d}Y nw xY w|dv r|S t          |t          t          f¦  «        rt          |¦  «        nd}t          d|r|dz
  n|¦  «        }t          dd	|z  dz   ¦  «        S )
NÚltx2_msr_frame_counté)   Úmsr_reference_framesry   r   )é   é   é!   r¯  é1   é9   éA   r   r¶  é   )rP  r–   r«  r†   r‡   Ú	TypeErrorri  r§   r¨   r´   r�  Úmin)	r—   Úcustom_settingsÚ
ref_imagesr¬  ÚdefaultÚ	raw_valueÚselectedÚ	ref_countÚsubject_counts	            rt   Ú"_resolve_msr_reference_frame_countrÁ  F  s  € Ý�9�? ×'Ò'Ð(>ÀÑCÔCÑDÔD€GÝ 	Ñ*Ô*ð ØˆÝKUÐVeÕgkÑKlÔKlÐt�Ð& B×+Ò+Ð,BÀBÑGÔGÐGÐrt€IðÝ�y�~ AÑ&Ô&ˆˆøÝ•zÐ"ð ð ð ØˆˆˆðøøøàÐ/Ð/Ð/ØˆÝ#-¨j½4Å¸-Ñ#HÔ#HÐO•�J‘”�Èa€IÝ˜Ð,<ÐK˜9 q™=˜=À)ÑLÔL€MÝˆr�2˜Ñ%¨Ñ)Ñ*Ô*Ð*s   Á'A9 Á9BÂBc                 ó6  — | d d…         }| d         }|g|z  }t          d|dz
  dz  ¦  «        }|t          |¦  «        k    �r	dgt          |¦  «        z  }|t          |¦  «        z
  }dgt          dt          |¦  «        ¦  «        ¢d‘}|D ]}	|dk    r n||	xx         dz  cc<   |dz  }Œ d}	|dk    r0||	t          |¦  «        z  xx         dz  cc<   |dz  }|	dz  }	|dk    °0d}
t          ||¦  «        D ]T\  }}|
dk    rdn
d|
dz
  dz  z   }|
|z   dz
  dz  }|
|z  }
t          |t	          |dz
  |¦  «        dz   ¦  «        D ]}|||<   ŒŒUnÍt          d|dz
  dz  dz   ¦  «        }t          |¦  «        D ]¤\  }	}t          |	|z  t          |¦  «        z  ¦  «        }t          |	dz   |z  t          |¦  «        z  ¦  «        dz
  }|	t          |¦  «        dz
  k    r|dz
  }t          |t	          |dz
  t          ||¦  «        ¦  «        dz   ¦  «        D ]}|||<   ŒŒ¥|S )Nr{  r   r   rb  )r�  r´   ÚrangeÚzipr¹  Ú	enumeraterP  )Úframesrx  Úsubject_framesÚbackground_frameÚvideo_framesÚsubject_budgetÚcountsÚextraÚpriorityÚindexÚcursorr�  ÚcountÚstartÚendÚframe_indexÚsubject_frame_counts                    rt   Ú_build_msr_v2_reference_framesrÕ  V  sÄ  € Ø˜C˜R˜C”[€NØ˜b”zÐØ$Ð%¨Ñ3€LÝ˜˜[¨1™_°Ñ2Ñ3Ô3€Nà�˜^Ñ,Ô,Ò,Ñ,Ø�•s˜>Ñ*Ô*Ñ*ˆØ¥ ^Ñ!4Ô!4Ñ4ˆØÐ9�˜a¥ ^Ñ!4Ô!4Ñ5Ô5Ð9°qÐ9ˆØð 	ð 	ˆEØ˜ŠzˆzØ�Ø�5ˆMˆMŒM˜QÑˆMˆM‰MØ�Q‰JˆEˆEØˆØ�aŠiˆiØ�5�3˜v™;œ;Ñ&Ð'Ð'Ô'¨1Ñ,Ð'Ð'Ñ'Ø�Q‰JˆEØ�Q‰JˆEð �aŠiˆið ˆÝ °Ñ7Ô7ð 	2ð 	2‰LˆE�5Ø 1š˜�A�A¨!¨v¸©z¸QÑ.>Ñ*>ˆEØ˜E‘> AÑ%¨Ñ*ˆCØ�e‰OˆFÝ$ U­C°¸a±ÀÑ,EÔ,EÈÑ,IÑJÔJð 2ð 2�Ø,1�˜[Ñ)Ð)ð2ð		2õ " ! n°qÑ&8¸AÑ%=ÀÑ%AÑBÔBÐÝ% nÑ5Ô5ð 	2ð 	2‰LˆE�5Ý˜Ð 3Ñ3µc¸.Ñ6IÔ6IÑIÑJÔJˆEÝ�u˜q‘yÐ$7Ñ7½#¸nÑ:MÔ:MÑMÑNÔNÐQRÑRˆCØ�˜NÑ+Ô+¨aÑ/Ò/Ð/Ø)¨AÑ-�Ý$ U­C°¸a±ÅÀUÈCÁÄÑ,QÔ,QÐTUÑ,UÑVÔVð 2ð 2�Ø,1�˜[Ñ)Ð)ð2ð Ðrv   Úmsr_v2c                 óz  ‡‡— dd l }t          | t          t          f¦  «        rt          | ¦  «        n| g} |rAdt	          | ¦  «        cxk    rdk    sn t          d¦  «        ‚| dd …         | d d…         z   } n+dt	          | ¦  «        cxk    rdk    sn t          d¦  «        ‚ˆˆfd„| D ¦   «         }|r|rt          ||¦  «        }n_|t	          |¦  «        z  }	|t	          |¦  «        z  }
g }t          |¦  «        D ])\  }}|                     |g|	||
k     rdndz   z  ¦  «         Œ*| 	                    |d¬	¦  «        S )
Nr   rJ  é   zfLTX2 MSR Background + Subjects mode requires 2 to 5 reference images, with the background image first.r   rI  zGLTX2 MSR Subjects / Objects only mode requires 1 to 4 reference images.c                 ó2   •— g | ]}t          |‰‰¦  «        ‘ŒS r|   )r¢  )r~   rŒ  r’  r‘  s     €€rt   ú
<listcomp>z._build_msr_reference_video.<locals>.<listcomp>�  s&   ø€ Ð\Ð\Ð\ÀIÕ% i°¸Ñ?Ô?Ð\Ð\Ð\rv   r  )
rˆ  r†   r§   r¨   r´   ri  rÕ  rÅ  r©  Ústack)r»  rx  r‘  r’  r¬  rÖ  rŽ  rÆ  rÉ  Ú
base_countÚ	remainderrÎ  r�  s     ``         rt   Ú_build_msr_reference_videorÞ  ~  sž  øø€ ð ÐÐÐå%/°
½TÅ5¸MÑ%JÔ%JÐ\•�jÑ!Ô!Ð!ÐQ[ÐP\€JØð dØ•C˜
‘O”OÐ(Ð(Ò(Ð( qÒ(Ð(Ð(Ð(Ýð  Fñ  Gô  Gð  Gà   ”^ j°°!°¤nÑ4ˆ
ˆ
Ø•#�j‘/”/Ð&Ð&Ò&Ð& QÒ&Ð&Ð&Ð&ÝÐbÑcÔcÐcØ\Ð\Ð\Ð\Ð\ÐQ[Ð\Ñ\Ô\€FØð ZÐ"ð ZÝ5°f¸kÑJÔJˆˆà ¥C¨¡K¤KÑ/ˆ
Ø¥# f¡+¤+Ñ-ˆ	ØˆÝ% fÑ-Ô-ð 	Zð 	Z‰LˆE�5Ø×Ò  ¨:¸eÀiÒ>OÐ>O¸¸ÐUVÑ+WÑ XÑYÔYÐYÐYØ�8Š8�L qˆ8Ñ)Ô)Ð)rv   Ú	frame_idxÚstridec                 ód   — t          | ¦  «        } t          |¦  «        }| dk    rdS | dz
  |z  dz   S )Nr   r   )rP  )rß  rà  s     rt   Ú_to_latent_indexrâ  œ  s:   € Ý�I‘”€IÝ�‰[Œ[€FØ�A‚~€~Øˆqà˜‰M˜fÑ$ qÑ(Ð(rv   Ú	tile_sizec                 ó´   — t          | ¦  «        } | dk    rdS t          d| ¦  «        } | dz  dk    r't          t          j        | dz  ¦  «        dz  ¦  «        } | S )Nr   r?  é    ©rP  r�  ÚmathÚceil)rã  s    rt   Ú_normalize_tiling_sizeré  ¥  s_   € Ý�I‘”€IØ�A‚~€~ØˆqÝ�B˜	Ñ"Ô"€IØ�2�~˜ÒÐÝ�œ	 )¨b¡.Ñ1Ô1°BÑ6Ñ7Ô7ˆ	ØÐrv   Útile_framesc                 ó´   — t          | ¦  «        } | dk    rdS t          d| ¦  «        } | dz  dk    r't          t          j        | dz  ¦  «        dz  ¦  «        } | S )Nr   r·  rb  ræ  )rê  s    rt   Ú_normalize_temporal_tiling_sizerì  ¯  sc   € Ý�kÑ"Ô"€KØ�aÒÐØˆqÝ�b˜+Ñ&Ô&€KØ�Q�˜!ÒÐÝ�$œ) K°!¡OÑ4Ô4°qÑ8Ñ9Ô9ˆØÐrv   Úoverlap_framesc                 óô   — t          dt          | ¦  «        ¦  «        } | dz  dk    r"t          t          | dz  ¦  «        dz  ¦  «        } t          dt          | t          d|dz
  ¦  «        ¦  «        ¦  «        } | S )Nr   rb  )r�  rP  Úroundr¹  )rí  rê  s     rt   Ú_normalize_temporal_overlaprð  ¹  su   € Ý˜�C Ñ/Ô/Ñ0Ô0€NØ˜Ñ˜QÒÐÝ�U >°AÑ#5Ñ6Ô6¸Ñ:Ñ;Ô;ˆÝ˜�C µ°A°{ÀQ±Ñ0GÔ0GÑHÔHÑIÔI€NØÐrv   Úfpsc                 óJ  — d}d }t          | t          t          f¦  «        rVt          | ¦  «        dk    rd } n@t          | ¦  «        dk    r%t	          dt          | d         pd¦  «        ¦  «        }| d         } | �yt          | ¦  «        } | dk    rdt	          d| dz  ¦  «        }t          t          j        |dz  ¦  «        dz  ¦  «        }|| k    rt	          d| dz
  ¦  «        }t          | |¬¦  «        }d }|�˜|dk    r’t	          d|¦  «        }t          t          t          j        t          dz  |z  ¦  «        ¦  «        ¦  «        }|dk    rCt          t          |dz  d	z  ¦  «        ¦  «        }t          ||¦  «        }t          ||¬
¦  «        }|€|€d S t!          ||¬¦  «        S )Nr   r   r{  rI  rå  )Útile_size_in_pixelsÚtile_overlap_in_pixelsg      @rá   rb  )Útile_size_in_framesÚtile_overlap_in_frames)Úspatial_configÚtemporal_config)r†   r¨   r§   r´   r�  rP  ré  rç  Úfloorr)   rì  rè  ÚLTX2_VAE_TEMPORAL_TILING_FPSrï  rð  r*   r+   )rã  rñ  Útemporal_tiling_divisorr÷  Úoverlaprø  rê  rí  s           rt   Ú_build_tiling_configrý  Á  sÔ  € ØÐØ€NÝ�)�e¥T˜]Ñ+Ô+ð &Ýˆy‰>Œ>˜QÒÐØˆIˆIå�9‰~Œ~ Ò!Ð!Ý*-¨aµ°Y¸q´\Ð5FÀQÑ1GÔ1GÑ*HÔ*HÐ'Ø! "œˆIØÐÝ*¨9Ñ5Ô5ˆ	Ø�qŠ=ˆ=Ý˜!˜Y¨!™^Ñ,Ô,ˆGÝ�$œ* W¨r¡\Ñ2Ô2°RÑ7Ñ8Ô8ˆGØ˜)Ò#Ð#Ý˜a ¨R¡Ñ0Ô0�Ý0ÀYÐgnÐoÑoÔoˆNà€OØ
€˜3 š7˜7Ý"% aÐ)@Ñ"AÔ"AÐÝ5µc½$¼)ÕD`ÐcfÑDfð  jAñ  EAñ  ;Bô  ;Bñ  7Cô  7Cñ  Dô  DˆØ˜Š?ˆ?Ý ¥ {°Q¡¸Ñ':Ñ!;Ô!;Ñ<Ô<ˆNÝ8¸ÈÑUÔUˆNÝ2Ø$/Ø'5ðñ ô ˆOð
 Ð /Ð"9ØˆtÝ ~ÀÐWÑWÔWÐWrv   c                 ó,  — g }| pg D ]û}t           j                             t          |¦  «        ¦  «                             ¦   «         }t          |¦  «        sŒPt          j        d|¦  «        }|s|                     d¦  «         Œ}t          | 
                    d¦  «        ¦  «        }|dk    r|                     d¦  «         Œ»|                     t          dt          t          d|z  ¦  «        ¦  «        ¦  «        ¦  «         Œü|sd S t          |¦  «        S )Nz-ref([0-9]+(?:\.[0-9]+)?)r   r   r”  )Úosr«   Úbasenamer�   r¨  r6   ÚreÚsearchrd  rQ  Úgroupr�  rP  rï  r¹  )Úloras_selectedÚfactorsÚ	lora_pathr:  ÚmatchÚ	ref_ratios         rt   Ú_infer_ic_lora_downscale_factorr	  å  s  € Ø€GØ#Ð) rð <ð <ˆ	ÝŒw×Ò¥ I¡¤Ñ/Ô/×5Ò5Ñ7Ô7ˆÝ" 4Ñ(Ô(ð 	ØÝ”	Ð6¸Ñ=Ô=ˆØð 	Ø�NŠN˜1ÑÔÐØÝ˜%Ÿ+š+ a™.œ.Ñ)Ô)ˆ	Ø˜Š>ˆ>Ø�NŠN˜1ÑÔÐØØ�Š•s˜1�c¥%¨¨i©Ñ"8Ô"8Ñ9Ô9Ñ:Ô:Ñ;Ô;Ð;Ð;Øð ØˆtÝˆw‰<Œ<Ðrv   ÚvideoÚinterrupt_checkÚexpected_framesÚexpected_heightÚexpected_widthc           	      ó"  — d }| €d S 	 t          j        | ¦  «        rP| }|€|�|d d …d |…d |…f         }|                     dddd¦  «        |�t          |dd ¦  «        }|� |¦   «          S S S t	          | ¦  «        }d }d}	|D �]‘}
|�0 |¦   «         r& |�t          |dd ¦  «        }|� |¦   «          d S d S d S |
€Œ8t          j        |
¦  «        r|
nt          j        |
¦  «        }
|€|�|
d d …d |…d |…f         }
|€†t          |
j        d         ¦  «        }|�|dk    rt          |¦  «        nt          |
j        d         ¦  «        }t          j        |||
j        d         |
j        d         f|
j	        |
j
        ¬¦  «        }t          t          |
j        d         ¦  «        t          |j        d         |	z
  ¦  «        ¦  «        }|dk    r nI|d d …|	|	|z   …f                              |
d |…                              dddd¦  «        ¦  «         |	|z  }	�Œ“|€&	 |�t          |dd ¦  «        }|� |¦   «          d S d S d S |d d …d |	…f         |�t          |dd ¦  «        }|� |¦   «          S S S # |�t          |dd ¦  «        }|� |¦   «          w w w xY w)Nrá   r   r   rJ  Úcloser{  ©r™  Údevice)r  r‚  r˜  r  ÚiterÚtensorrP  r…  Úemptyr™  r  r¹  Úcopy_)r
  r  r  r  r  ÚiteratorrÆ  r  Úvideo_tensorÚ	write_posræ   ÚchannelsÚframe_capacityrx  s                 rt   Ú_collect_video_chunksr  ù  sq  € ð €HØ€}Øˆtð&ÝŒ?˜5Ñ!Ô!ð  	/ØˆFØÐ*¨nÐ.HØ   Ð#3 OÐ#3°_°n°_Ð DÔE�Ø—>’> ! Q¨¨1Ñ-Ô-ð< ÐÝ˜H g¨tÑ4Ô4ˆEØÐ Ø�‘”��ð  à õ= ˜E‘{”{ˆHØˆLØˆIØ!ð )ñ )�Ø"Ð.°?°?Ñ3DÔ3DÐ.Øð. ÐÝ˜H g¨tÑ4Ô4ˆEØÐ Ø�‘”���ð  Ðà Ð ð1 �=ØÝ!&¤°Ñ!7Ô!7ÐP˜˜½U¼\È%Ñ=PÔ=P�Ø"Ð.°.Ð2LØ! ! ! !Ð%5 oÐ%5°¸°Ð"FÔG�EØÐ'Ý" 5¤;¨r¤?Ñ3Ô3�HØ=LÐ=XÐ]lÐopÒ]pÐ]p¥S¨Ñ%9Ô%9Ð%9ÕvyÐzô  {Fð  GHô  {Iñ  wJô  wJ�NÝ#(¤;Ø! >°5´;¸q´>À5Ä;ÈqÄ>ÐRØ#œkØ$œ|ð$ñ $ô $�Lõ
 "¥# e¤k°!¤nÑ"5Ô"5µs¸<Ô;MÈaÔ;PÐS\Ñ;\Ñ7]Ô7]Ñ^Ô^�Ø !Ò#Ð#Ø�EØ˜Q˜Q˜Q 	¨I¸Ñ,CÐ CÐCÔD×JÒJÈ5ÐQ]ÐR]ÐQ]ÔK^×KfÒKfÐghÐjkÐmnÐpqÑKrÔKrÑsÔsÐsØ˜[Ñ(�	‘	ØÐ#Øð ÐÝ˜H g¨tÑ4Ô4ˆEØÐ Ø�‘”���ð  Ðà Ð ð	      : I : Ô.àÐÝ˜H g¨tÑ4Ô4ˆEØÐ Ø�‘”��ð  à øð ÐÝ˜H g¨tÑ4Ô4ˆEØÐ Ø�‘”��ð  à øøøs   ˆAI+ Á,%I+ Â6E I+ È<I+ É+#Jrb  Úinput_framesÚinput_videoÚ	frame_numÚprefix_frames_countÚlatent_stridec                 óP  — | €t          d¦  «        ‚t          |¦  «        }d}|�;|dk    r5t          t          |¦  «        t          |j        d         ¦  «        ¦  «        }t          ||t          | j        d         ¦  «        z   ¦  «        }|dz
  t          |¦  «        z  t          |¦  «        z  dz   }g }|}	|dk    rN|d d …d t          ||¦  «        …f         }
|                     |
¦  «         |	t          |
j        d         ¦  «        z  }	|	dk    rG| }|j        d         |	k    r|r|d d …|	 d …f         n|d d …d |	…f         }|                     |¦  «         |st          d¦  «        ‚t          |¦  «        dk    rt          j        |d¬¦  «        n|d         }|d d …d |…f         S )Nz@LTX2 audio-from-control-video mode requires a raw Control Video.r   r   zDLTX2 audio-from-control-video mode received no Control Video frames.râ   )ri  rP  r¹  r…  rd  r´   r  Úcat)r  r  r  r   r!  Úrequested_framesÚprefix_framesÚtarget_framesÚpiecesÚremaining_framesrµ   ÚtailÚfrozen_videos                rt   Ú_build_frozen_control_videor+  .  sâ  € ð ÐÝÐ[Ñ\Ô\Ð\Ý˜9‘~”~ÐØ€MØÐÐ#6¸Ò#:Ð#:Ý�CÐ 3Ñ4Ô4µc¸+Ô:KÈAÔ:NÑ6OÔ6OÑPÔPˆÝÐ(¨-½#¸lÔ>PÐQRÔ>SÑ:TÔ:TÑ*TÑUÔU€MØ# aÑ'­C°Ñ,>Ô,>Ñ>Å#ÀmÑBTÔBTÑTÐWXÑX€MØ€FØ$ÐØ�qÒÐØ˜Q˜Q˜QÐ C¥# m°]Ñ"CÔ"CÐ CÐCÔDˆØ�Š�fÑÔÐØ�C ¤¨Q¤Ñ0Ô0Ñ0ÐØ˜!ÒÐØˆØŒ:�aŒ=Ð+Ò+Ð+Ø28ÐX�4˜˜˜Ð,Ð,Ð-Ð-Ð-Ô.Ð.¸dÀ1À1À1ÐFWÐGWÐFWÐCWÔ>XˆDØ�Š�dÑÔÐØð aÝÐ_Ñ`Ô`Ð`Ý/2°6©{¬{¸Qª¨•5”9˜V¨Ð+Ñ+Ô+Ð+ÀFÈ1ÄI€LØ˜˜˜˜>˜M˜>Ð)Ô*Ð*rv   Úmedia_tensorÚgammac                 ó  — | �Jt          j        | ¦  «        r6|                      ¦   «         dk     s|dk    s|                      ¦   «         dk    rdS dt	          |¦  «        z  }| j        t           j        k    rÈ|                      t           j        ¬¦  «         	                    d¦  «         
                    dd¦  «                             |¦  «        }|                      |                     d¦  «                             ¦   «          
                    dd¦  «                             t           j        ¬¦  «        ¦  «         dS |                      t           j        ¬¦  «                             d¦  «                             d	¦  «         
                    dd¦  «                             |¦  «        }|                      |                     d
¦  «                             d¦  «                             | j        ¬¦  «        ¦  «         dS )NrJ  r   Fr”  ©r™  r•  ç        Tç      à?rG   )r  r‚  rã   ÚnumelrQ  r™  rš  ÚtoÚfloat32Údiv_Úclamp_Úpow_r  Úmul_Úround_Úadd_Úsub_)r,  r-  ÚexponentÚ	correcteds       rt   Ú_apply_gamma_to_mediar>  N  s½  € ØÐ¥5¤?°<Ñ#@Ô#@ÐÀL×DTÒDTÑDVÔDVÐYZÒDZÐDZÐ^cÐghÒ^hÐ^hÐlx×l~Òl~ñ  mAô  mAð  EFò  mFð  mFØˆuØ•U˜5‘\”\Ñ!€HØÔ�Uœ[Ò(Ð(Ø —O’O­%¬-�OÑ8Ô8×=Ò=¸eÑDÔD×KÒKÈCÐQTÑUÔU×ZÒZÐ[cÑdÔdˆ	Ø×Ò˜9Ÿ>š>¨%Ñ0Ô0×7Ò7Ñ9Ô9×@Ò@ÀÀeÑLÔL×OÒOÕV[ÔVaÐOÑbÔbÑcÔcÐcØˆtØ—’¥e¤m�Ñ4Ô4×9Ò9¸#Ñ>Ô>×CÒCÀCÑHÔH×OÒOÐPSÐUXÑYÔY×^Ò^Ð_gÑhÔh€IØ×Ò�y—~’~ cÑ*Ô*×/Ò/°Ñ4Ô4×7Ò7¸lÔ>PÐ7ÑQÔQÑRÔRÐRØˆ4rv   r  Úrectc                 ó²   — | �.t          j        | ¦  «        r|�|                      ¦   «         dk     rdS |\  }}}}| d||…||…f         }t          ||¦  «        S )NrI  F.)r  r‚  rã   r>  )r  r?  r-  ÚtopÚbottomÚleftÚrightÚregions           rt   Ú_apply_gamma_to_video_rectrF  [  so   € ØÐ¥5¤?°<Ñ#@Ô#@ÐÀDÀLÐT`×TdÒTdÑTfÔTfÐijÒTjÐTjØˆuØ#Ñ€Cˆ��uØ˜#˜s 6˜z¨4°¨:Ð5Ô6€FÝ  ¨Ñ/Ô/Ð/rv   c            R       óÜ  — e Zd Zej        ej        dddfdedededej        dej        dedz  dedz  d	dfd
„Z	dedededz  dedz  fd„Z
dbdedz  d	eej        ej        f         fd„Zdcd„Zdcd„Zd„ Ze	 	 	 	 	 dddej        dededededededed	ej        dz  fd„¦   «         Ze	 	 	 	 	 	 	 	 	 	 deded ed!ed"ed#ed$edededed%ed&ed'ed(ed)ed*ej        dz  d+ed,ej        dz  d-edz  ded	eej        ej        dz  f         dz  f(d.„¦   «         Zdfd/„Ze ej        ¦   «         	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dgd?ed@edz  dAedz  dBedCedDedEedFedGedz  dHedz  dIedJedKedz  dLedMedNedOee         dz  dPedQedRedz  dSedTedUedVedWedXedYedZed[ed\edz  d]ee         dz  d^ed_ed ed!ededed`ededz  fNda„¦   «         ¦   «         ZdS )hr!  NrS  ro   r—   r™  Ú	VAE_dtypeÚtext_encoder_filenameÚcheckpoint_pathsrp   c
                 óF  — t          j        d¦  «        | _        || _        || _        || _        || _        d| _        d | _        t          ¦   «         | _	        ddl
m}
 t          |                     dt          ¦  «        ¦  «        | _        |
                     | j        ¦  «         t#          |t$          t&          f¦  «        r!|st)          d¦  «        ‚t%          |¦  «        }n|}|	pi }|r&|                     d¦  «        }|st)          d¦  «        ‚|€|n|}|st)          d	¦  «        ‚|                     d
¦  «        }|r|                     d¦  «        }nd }|s1|s/|                     dt,          ¦  «        }t/          j        |¦  «        }|                     d
¦  «        rdn|                     dd¦  «        }|                      |||||¬¦  «        }|dk    rt5          | j        |¬¦  «        | _        nt9          | j        ||¬¦  «        | _        |                      ¦   «          d S )NÚcudaFr   )ÚropeÚltx2_rope_freqs_fp32zMissing LTX-2 checkpoint path.r*  z-Missing transformer path in checkpoint_paths.z Missing Gemma text encoder path.Últx2_upsampler_Úspatial_upsamplerÚltx2_spatial_upscaler_fileÚ	distilledÚltx2_pipelineÚ	two_stage)Útransformer_pathÚcomponent_pathsÚ
gemma_rootÚgemma_side_files_rootÚspatial_upsampler_path)r  Úmodels)r  Ústage_1_modelsÚstage_2_models)r  r  r™  rH  ro   r—   r.  Ú_hdr_scene_contextr>  rî   Últx_core.model.transformerrM  r•   r–   ÚLTX2_USE_FP32_ROPE_FREQSÚuse_fp32_rope_freqsÚset_use_fp32_rope_freqsr†   r§   r¨   ri  r²   Ú_SPATIAL_UPSCALER_FILENAMEÚflÚlocate_fileÚ_init_modelsr@   ÚpipelinerB   Ú_build_diffuser_model)r  Úmodel_filenamerS  ro   r—   r™  rH  rI  Útext_encoder_filepathrJ  Ú
rope_utilsrU  rV  rW  Úpixel_spatial_upsamplerrY  Úspatial_upsampler_nameÚpipeline_kindÚpipeline_modelss                      rt   r  zLTX2.__init__d  sˆ  € õ ”l 6Ñ*Ô*ˆŒØˆŒ
Ø"ˆŒØ.ˆÔØ"ˆŒØˆŒØ"&ˆÔÝ!Ñ#Ô#ˆŒØBÐBÐBÐBÐBÐBå#'¨	¯ªÐ6LÕNfÑ(gÔ(gÑ#hÔ#hˆÔ Ø×*Ò*¨4Ô+CÑDÔDÐDå�n¥t­U mÑ4Ô4ð 	.Ø!ð CÝ Ð!AÑBÔBÐBÝ# NÑ3Ô3ÐÐà-ÐØ*Ð0¨bˆØð 	RØ.×2Ò2°=ÑAÔAÐØ#ð RÝ Ð!PÑQÔQÐQà.CÐ.KÐ*Ð*ÐQfˆ
Øð 	AÝÐ?Ñ@Ô@Ð@Ø",×"7Ò"7Ð8IÑ"JÔ"JÐØð 	*Ø%4×%8Ò%8Ð9LÑ%MÔ%MÐ"Ð"à%)Ð"Ø&ð 	LÐ/Eð 	LØ%.§]¢]Ð3OÕQkÑ%lÔ%lÐ"Ý%'¤^Ð4JÑ%KÔ%KÐ"ð (2×'<Ò'<Ð=NÑ'OÔ'Oð  A˜˜ÐU^×UbÒUbÐcrÐtñ  VAô  VAˆà×+Ò+Ø-Ø+Ø!Ø"7Ø#9ð ,ñ 
ô 
ˆð ˜KÒ'Ð'Ý-Ø”{Ø&ðñ ô ˆDŒMˆMõ
 4Ø”{Ø.Ø.ðñ ô ˆDŒMð
 	×"Ò"Ñ$Ô$Ð$Ð$Ð$rv   rV  rW  rX  rY  c                 óv  ‡ ‡‡‡0‡1‡2— ddl mŠ2 ‰r‰                     d¦  «        nd Š1t          ‰‰1¬¦  «        Š0‰0st	          d¦  «        ‚dt
          fˆˆfd„}ˆ0ˆ1fd„}d,ˆ2ˆ fd
„	}t          }	t          ¦   «         5  t          j	        ‰0¦  «        }
d d d ¦  «         n# 1 swxY w Y    ||
‰|	d¬¦  «        }
‰r‰                     d¦  «        nd }|rddl
m}  ||
|‰ j        ¦  «         t          |
¦  «        }|                     ¦   «                              d	¦  «         ‰ j                             dd ¦  «        }|�)t!          |¦  «        rt#          j        |d         ¦  «        n
 |d¦  «        }‰r‰                     d¦  «        nd }|rQt'          |dd¬¦  «        5 }t)          j        t-          j        |¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   nt)          j         ||¦  «        ¦  «        }|                     di ¦  «                             d¦  «        dk    }|rt1          d¦  «         n*‰ j                             dd	¦  «        rt1          d¦  «         |                     di ¦  «        }d|d<   d|d<   d|d<   t          ¦   «         5  t5          j	        |rt7          |¦  «        n|¦  «        }|rt9          j	        |¦  «        nt;          j	        |¦  «        }t=          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   |rt?          d ¦  «        ntA          d ¦  «        } ||||d¬!¦  «        }|j!        }|j"        } |d"¦  «        } ||¦  «        }t          ¦   «         5  tG          j	        |¦  «        }tI          j	        |¦  «        }t=          ||¦  «        }d d d ¦  «         n# 1 swxY w Y    |||tA          d#¦  «        ¬$¦  «        }|j!        }|j"        } |d%¦  «        } ||¦  «        }t          ¦   «         5  tK          j	        |¦  «        } d d d ¦  «         n# 1 swxY w Y    || |tL          ¦  «        }  |d&¦  «        }! ||!¦  «        }"t          ¦   «         5  tO          j	        |"¦  «        }#d d d ¦  «         n# 1 swxY w Y    ||#|!tP          ¦  «        }#d'‰v ‰ _)        ‰ j)        rÕ |d'¦  «        }$ ||$¦  «        }%t          ¦   «         5  tU          j	        |%¦  «        }&d d d ¦  «         n# 1 swxY w Y    ||&|$tV          ¦  «        }& |d(¦  «        }' ||'¦  «        }(t          ¦   «         5  tY          j	        |(¦  «        })d d d ¦  «         n# 1 swxY w Y    ||)|'tZ          ¦  «        })t]          |&|)¦  «        }*nb |d)¦  «        }+ ||+¦  «        },t          ¦   «         5  t_          j	        |,¦  «        }*d d d ¦  «         n# 1 swxY w Y    ||*|+t`          ¦  «        }*tc          |‰ j2        |¬*¦  «        }-|-                     ¦   «                              d	¦  «         d }.|rVt          |¦  «        }/t          ¦   «         5  tg          j	        |/¦  «        }.d d d ¦  «         n# 1 swxY w Y    ||.|d ¦  «        }.|-‰ _4        |#‰ _5        |*‰ _6        |*j7        ‰ _7        |*j8        ‰ _8        |‰ _9        |‰ _:        |‰ _;        |‰ _<        | ‰ _=        |.‰ _>        |‰ _?        d ‰ _@        tƒ          jB        ‰ j4        ‰ j5        ‰ j6        ‰ j9        ‰ j:        ‰ j;        ‰ j<        ‰ j=        ‰ j>        ‰ j?        ¬+¦
  «
        S )-Nr   )ÚoffloadÚmodel_config©r™   z)Missing config in transformer checkpoint.r®   c                 ód   •— ‰r,‰                      | ¦  «        }|st          d| › d�¦  «        ‚|S ‰S )Nz	Missing 'z' path in checkpoint_paths.)r–   ri  )r®   r«   rV  rU  s     €€rt   Ú_component_pathz*LTX2._init_models.<locals>._component_path¼  sL   ø€ Øð Ø&×*Ò*¨3Ñ/Ô/�Øð SÝ$Ð%Q°Ð%QÐ%QÐ%QÑRÔRÐRØ�Ø#Ð#rv   c                 ó.   •— t          | ‰¬¦  «        }|p‰S )Nrr  )r­   )r«   rž   Úbase_configr™   s     €€rt   Ú_component_configz,LTX2._init_models.<locals>._component_configÄ  s!   ø€ Ý1°$ÐMaÐbÑbÔbˆFØÐ(˜[Ð(rv   Fc           	      ó¾   •— |€|�t          |¦  «        }‰                     | ||‰j        dd|¬¦  «         |                      ¦   «                              d¦  «         | S )NF)Úpostprocess_sdÚdefault_dtypeÚwritable_tensorsÚignore_missing_keysÚignore_unused_weights)rÑ   Úload_model_datar™  ÚevalÚrequires_grad_)r'  r«   rÆ   rÐ   r}  Úmmgp_offloadr  s        €€rt   Ú_load_componentz*LTX2._init_models.<locals>._load_componentÈ  sr   ø€ ØÐ" vÐ'9Ý2°6Ñ:Ô:�Ø×(Ò(ØØØ*Ø"œjØ!&Ø$)Ø&;ð )ñ ô ð ð �JŠJ‰LŒL×'Ò'¨Ñ.Ô.Ð.ØˆLrv   T)r}  Útransformer_modulesr   )Úinstall_editanything_modulesÚVAE_URLsÚ	video_vaeÚvideo_vae_configr£   r…   r¤   rî   Ú_class_nameÚCausalDiffusionVAEz,[WanGP][LTX2] Loading NAD Diffusion Decoder.Últx2_pruna_vaez4[WanGP][LTX2] Loading PrunaAI VAE (up to x2 faster).Úreflectr÷   rú   Údecoder_spatial_padding_modezvae.)rÐ   r}  Ú	audio_vaez
audio_vae.)rÐ   Úvocoderr(  Úvideo_embeddings_connectorÚaudio_embeddings_connectorr)  )rz  Úside_files_root)
Útext_encoderr(  r)  Úvideo_encoderÚvideo_decoderÚaudio_encoderÚaudio_decoderrŽ  rP  r*  )NNF)Cr¦   rp  r–   r­   ri  r�   r   r   r   Úfrom_configÚeditanythingr„  r—   r   r  r€  r´   rc  rd  r©   ÚcopyÚdeepcopyrŽ   rª   ÚprintÚ
setdefaultr   rû   r   r   r  rì   rß   rï   rþ   r   r   r   r   r(   r"   Úsplit_text_connectorsr'   r$   r&   r   r!   r    r#   r%   r™  r   r’  r(  r)  r�  r�  r“  r”  r•  r–  rŽ  rP  r'  Úmodel2rq  ÚSimpleNamespace)3r  rU  rV  rW  rX  rY  rt  rw  r‚  Útransformer_sd_opsÚvelocity_modelrƒ  r„  r*  r…  Úvideo_vae_pathÚvideo_config_pathr¬   Úvideo_configÚdiffusion_vaeÚvideo_config_vaer“  r”  r†  Úvae_postprocessÚaudio_vae_pathÚaudio_configr•  r–  r�  Úvocoder_pathÚvocoder_configrŽ  Útext_projection_pathÚtext_projection_configr(  Úvideo_connector_pathÚvideo_connector_configr�  Úaudio_connector_pathÚaudio_connector_configr�  r)  Útext_connector_pathÚtext_connector_configr’  rP  Úupsampler_configrv  r™   r�  s3   ```                                             @@@rt   re  zLTX2._init_models­  sË  øøøøøø€ ð 	1Ð0Ð0Ð0Ð0Ð0àFUÐ_˜×2Ò2°>ÑBÔBÐBÐ[_ÐÝ2Ð3CÐZnÐoÑoÔoˆØð 	JÝÐHÑIÔIÐIð	$¥ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð	ð 	ð 	ð 	ð 	ð 	ð 	õ ;ÐÝÑ!Ô!ð 	Kð 	KÝ1Ô=¸kÑJÔJˆNð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kà(˜¨Ð9IÐK]ÐuyÐzÑzÔzˆØL[Ðe˜o×1Ò1Ð2GÑHÔHÐHÐaeÐØð 	^ØBÐBÐBÐBÐBÐBà(Ð(¨Ð9LÈdÌnÑ]Ô]Ð]Ý˜nÑ-Ô-ˆØ×ÒÑÔ×)Ò)¨%Ñ0Ô0Ð0Ø”>×%Ò% j°$Ñ7Ô7ˆØ9AÐ9MÕRUÐV^ÑR_ÔR_Ð9M�"œ.¨°!¬Ñ5Ô5Ð5ÐetÐetð  vAñ  fBô  fBˆØGVÐ`˜O×/Ò/Ð0BÑCÔCÐCÐ\`ÐØð 	LÝÐ'¨°wÐ?Ñ?Ô?ð @À6Ý#œ}­T¬Y°vÑ->Ô->Ñ?Ô?�ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @øõ  œ=Ð):Ð):¸>Ñ)JÔ)JÑKÔKˆLØ$×(Ò(¨°Ñ3Ô3×7Ò7¸ÑFÔFÐJ^Ò^ˆØð 	JÝÐ@ÑAÔAÐAÐAØŒ^×ÒÐ 0°%Ñ8Ô8ð 	JÝÐHÑIÔIÐIØ'×2Ò2°5¸"Ñ=Ô=ÐØ3<ÐÐ/Ñ0Ø;DÐÐ7Ñ8Ø;DÐÐ7Ñ8åÑ!Ô!ð 	Dð 	DÝ4Ô@Ðp}ð  BPÕA^Ð_kÑAlÔAlÐAlð  DPñ  Qô  QˆMØO\ð  UÕ1Ô=¸lÑKÔKÐKÕbzô  cGð  HTñ  cUô  cUˆMÝ% m°]ÑCÔCˆIð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð FSÐuÕ9¸&ÑAÔAÐAÕXmÐntÑXuÔXuˆØ#�O I¨~È?ÐrvÐwÑwÔwˆ	Ø!Ô)ˆØ!Ô)ˆà(˜¨Ñ5Ô5ˆØ(Ð(¨Ñ8Ô8ˆÝÑ!Ô!ð 	Dð 	DÝ4Ô@ÀÑNÔNˆMÝ4Ô@ÀÑNÔNˆMÝ% m°]ÑCÔCˆIð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð $�O I¨~ÕK`ÐamÑKnÔKnÐoÑoÔoˆ	Ø!Ô)ˆØ!Ô)ˆà&� yÑ1Ô1ˆØ*Ð*¨<Ñ8Ô8ˆÝÑ!Ô!ð 	Fð 	FÝ)Ô5°nÑEÔEˆGð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fà!�/ '¨<Õ9RÑSÔSˆà.˜Ð/JÑKÔKÐØ!2Ð!2Ð3GÑ!HÔ!HÐÝÑ!Ô!ð 	mð 	mÝ(HÔ(TÐUkÑ(lÔ(lÐ%ð	mð 	mð 	mñ 	mô 	mð 	mð 	mð 	mð 	mð 	mð 	møøøð 	mð 	mð 	mð 	mà$3 OÐ5NÐPdõ  gHñ  %Jô  %JÐ!à%AÀ_Ð%TˆÔ"ØÔ%ð 	KØ#2 ?Ð3OÑ#PÔ#PÐ Ø%6Ð%6Ð7KÑ%LÔ%LÐ"Ý#Ñ%Ô%ð sð sÝ-NÔ-ZÐ[qÑ-rÔ-rÐ*ðsð sð sñ sô sð sð sð sð sð sð søøøð sð sð sð sà)8¨Ð9SÐUiõ  lNñ  *Oô  *OÐ&à#2 ?Ð3OÑ#PÔ#PÐ Ø%6Ð%6Ð7KÑ%LÔ%LÐ"Ý#Ñ%Ô%ð xð xÝ-SÔ-_Ð`vÑ-wÔ-wÐ*ðxð xð xñ xô xð xð xð xð xð xð xøøøð xð xð xð xà)8¨Ð9SÐUiõ  lNñ  *Oô  *OÐ&Ý(IÐJdð  gAñ  )Bô  )BÐ%Ð%à"1 /Ð2MÑ"NÔ"NÐØ$5Ð$5Ð6IÑ$JÔ$JÐ!Ý#Ñ%Ô%ð }ð }Ý,YÔ,eÐf{Ñ,|Ô,|Ð)ð}ð }ð }ñ }ô }ð }ð }ð }ð }ð }ð }øøøð }ð }ð }ð }à(7¨Ð8QÐSfõ  iJñ  )Kô  )KÐ%å/ØØœ*Ø1ð
ñ 
ô 
ˆð
 	×ÒÑÔ×*Ò*¨5Ñ1Ô1Ð1à ÐØ!ð 	aÝ;Ð<RÑSÔSÐÝ#Ñ%Ô%ð ^ð ^Ý$?Ô$KÐL\Ñ$]Ô$]Ð!ð^ð ^ð ^ñ ^ô ^ð ^ð ^ð ^ð ^ð ^ð ^øøøð ^ð ^ð ^ð ^à / Ð0AÐCYÐ[_Ñ `Ô `Ðà(ˆÔØ)BˆÔ&Ø)BˆÔ&Ø*CÔ*^ˆÔ'Ø*CÔ*^ˆÔ'Ø*ˆÔØ*ˆÔØ*ˆÔØ*ˆÔØˆŒØ!2ˆÔØ ˆŒ
ØˆŒåÔ$ØÔ*Ø&*Ô&DØ&*Ô&DØÔ,ØÔ,ØÔ,ØÔ,Ø”LØ"Ô4Øœ
ð
ñ 
ô 
ð 	
sµ   Á8BÂBÂ BÆ'GÇGÇGÊA K>Ë>LÌLÍ*9N/Î/N3Î6N3ÐP(Ð(P,Ð/P,Ñ)R
Ò
RÒRÓS<Ó<T ÔT Ô=UÕU"Õ%U"Ö0W×W×WÙY.Ù.Y2Ù5Y2Úlora_dirc                 óè   ‡— | j         }|�|S t          j        | j                             dd¦  «        d¬¦  «        }t          |d¬¦  «        Št          ˆfd„dD ¦   «         ¦  «        | _         | j         S )	NÚltx2_hdr_scene_embeddings_filery   F)Úerror_if_noner—  )r  c              3   ó®   •K  — | ]O} ‰|                               ¦   «                              ¦   «         j        d g‰|         j        dd…         ¢R Ž V — ŒPdS )r   éþÿÿÿN)rƒ  r—  Úreshaper…  )r~   r:  Útensorss     €rt   r€   z/LTX2._load_hdr_scene_context.<locals>.<genexpr>X  s„   øè è € ð  ([ð  ([ÐosÐ(L¨°¬×(<Ò(<Ñ(>Ô(>×(BÒ(BÑ(DÔ(DÔ(LÈQÐ(jÐQXÐY]ÔQ^ÔQdÐegÐehÐehÔQiÐ(jÐ(jÐ(jð  ([ð  ([ð  ([ð  ([ð  ([ð  ([rv   )Úvideo_contextÚaudio_context)r]  rc  rd  r—   r–   r   r¨   )r  rµ  Úcachedr«   r¼  s       @rt   Ú_load_hdr_scene_contextzLTX2._load_hdr_scene_contextQ  sŸ   ø€ ØÔ(ˆØÐØˆMÝŒ~˜dœn×0Ò0Ð1QÐSUÑVÔVÐfkÐlÑlÔlˆÝ˜D¨Ð/Ñ/Ô/ˆå"'ð  ([ð  ([ð  ([ð  ([ð  xZð  ([ñ  ([ô  ([ñ  #[ô  #[ˆÔØÔ&Ð&rv   c                 ól  — t          | dd ¦  «        }|€d S i }t          | dd ¦  «        }t          | dd ¦  «        }t          | dd ¦  «        }|�||d<   |�||d<   |�||d<   |sd S |                     ¦   «         D ]4\  }}||j        v r|j        |= t          ||t	          |¦  «        ¦  «         Œ5|| _        d S )Nr’  r(  r�  r�  Úfeature_extractor_linearÚembeddings_connector)r  rÂ   Ú_modulesÚsetattrr  Ú_text_connectors)r  r’  Ú
connectorsÚfeature_extractorÚvideo_connectorÚaudio_connectorr:  r  s           rt   Ú_detach_text_encoder_connectorsz$LTX2._detach_text_encoder_connectors[  s   € Ý˜t ^°TÑ:Ô:ˆØÐØˆFØˆ
Ý# DÐ*EÀtÑLÔLÐÝ! $Ð(DÀdÑKÔKˆÝ! $Ð(DÀdÑKÔKˆØÐ(Ø5FˆJÐ1Ñ2ØÐ&Ø1@ˆJÐ-Ñ.ØÐ&Ø7FˆJÐ3Ñ4Øð 	ØˆFØ&×,Ò,Ñ.Ô.ð 	Kð 	K‰LˆD�&Ø�|Ô,Ð,Ð,Ø Ô)¨$Ð/Ý�L $Õ(AÀ&Ñ(IÔ(IÑJÔJÐJÐJØ *ˆÔÐÐrv   c                 ó~   — |                       ¦   «          t          | ¦  «        | _        t          | j        ¦  «         d S rr   )rË  r  Údiffuser_modelrs  r/  s    rt   rg  zLTX2._build_diffuser_modelq  s;   € Ø×,Ò,Ñ.Ô.Ð.Ý,¨TÑ2Ô2ˆÔÝ! $Ô"5Ñ6Ô6Ð6Ð6Ð6rv   c                 ó>   — t          | dd ¦  «        }|€| j        }|d fS )NrÍ  )r  r'  )r  Útranss     rt   r6  zLTX2.get_trans_loraw  s*   € Ý˜Ð.°Ñ5Ô5ˆØˆ=Ø”JˆEØ�dˆ{Ðrv   r   ro  ÚpromptÚnegative_promptÚaudio_sample_rateÚupsampler_variantÚseedrñ  Úpixel_frame_offsetc                 ó\  — t          | j        t          ¦  «        st          d¦  «        ‚t	          t
          |j        ¦  «        \  }}}}|dk    s|t          k    rt          dt          › d�¦  «        ‚|j	        t          j        k    }|                     t          j        ¬¦  «        }|r(|                     d¦  «                             d¦  «        n|                     dd¦  «        }|                     d	¦  «        }|                     | j        t          j        ¬
¦  «        }t)          |
|¦  «        }|� |d¦  «         t          j        |t          j        ¬¦  «        }|j        dk    r|                     d¦  «        n|}|j                             d	¦  «        }| j                             d¦  «        }t          |j        ¦  «        }|j        d         |k    r·|j        d         dk    r|                     d|d¦  «        }nŽ|dk    r|                     dd¬¦  «        }np|d d …d |…f         }|j        d         |k     rQt          j        ||                     |j        d	         ||j        d         z
  |j        d         ¦  «        fd¬¦  «        }t=          |j        |j         |j!        |j"        | j        ¬¦  «        }| #                    |t          |¦  «        ¦  «        }tI          | %                    ¦   «         ¦  «        } ||                     |j        |j	        ¬
¦  «        ¦  «        }| j         &                    |||||||tN          t          |	¦  «        dz  |	||||¬¦  «        }|€d S |d |…d |dz  …d |dz  …f         }| (                    dd	dd¦  «         )                    ¦   «         S )Nz4LTX video upsampling requires a distilled checkpointrá   z4LTX video upsampling expects RGB windows of at most z framesr/  g     à_@r”  g      ð¿r   ©r  r™  zAudio VAE encodingr   r•  T©rã   ÚkeepdimrJ  râ   ©Úsample_rateÚmel_binsÚmel_hop_lengthÚn_fftr  rb  )Úsource_videorÐ  rÑ  Úaudio_latentrÓ  rÔ  Ú
frame_rateÚsigma_valuesÚlatent_frame_offsetrÕ  Útiling_configÚcallbackÚset_progress_statusr  )*r†   rf  r@   ÚRuntimeErrorÚmaprP  r…  ÚLTX2_UPSCALE_MAX_FRAMESri  r™  r  rš  r3  r4  r5  r;  r6  r†  r  Úbfloat16rý  Ú	as_tensorr„  ÚTÚ
_get_modelrñ   r‡  Úmeanr#  Ú	new_zerosr   rÛ  rÜ  rÝ  rÞ  Úwaveform_to_melÚnextÚ
parametersÚupscale_videoÚLTX2_UPSCALE_SIGMASr˜  Ú
contiguous)r  ro  rÐ  rÑ  Úaudio_waveformrÒ  rÓ  rÔ  rñ  rÕ  ÚVAE_tile_sizerå  ræ  r  r  rx  Úsource_heightÚsource_widthÚ	was_uint8Úsourcerä  Úwaveformr•  Útarget_channelsÚaudio_processorÚmelÚaudio_paramsrà  Údecodeds                                rt   ró  zLTX2.upscale_video}  sç  € õ" ˜$œ-Õ):Ñ;Ô;ð 	WÝÐUÑVÔVÐVÝ=@ÅÀfÄlÑ=SÔ=SÑ:ˆ�+˜}¨lØ�qŠ=ˆ=˜KÕ*AÒAÐAÝÐtÕTkÐtÐtÐtÑuÔuÐuØ”L¥E¤KÒ/ˆ	Ø—’¥¤�Ñ/Ô/ˆØ1:ÐX�—’˜UÑ#Ô#×(Ò(¨Ñ-Ô-Ð-ÀÇÂÈdÐTWÑ@XÔ@XˆØ×!Ò! !Ñ$Ô$ˆØ—’ $¤+µU´^�ÑDÔDˆÝ,¨]¸CÑ@Ô@ˆØÐ*ØÐÐ 4Ñ5Ô5Ð5Ý”? >½¼ÐGÑGÔGˆØ,4¬M¸QÒ,>Ð,>�8×%Ò% aÑ(Ô(Ð(ÀHˆØ”:×'Ò'¨Ñ*Ô*ˆØœ×0Ò0°ÑAÔAˆÝ˜mÔ7Ñ8Ô8ˆØŒ>˜!Ô Ò/Ð/ØŒ~˜aÔ  AÒ%Ð%Ø#Ÿ?š?¨1¨o¸qÑAÔA��Ø  AÒ%Ð%Ø#Ÿ=š=¨Q¸˜=Ñ=Ô=��à# A A AÐ'7¨Ð'7Ð$7Ô8�Ø”> !Ô$ Ò6Ð6Ý$œy¨(°H×4FÒ4FÀxÄ~ÐVWÔGXÐZiÐltÔlzÐ{|Ôl}ÑZ}ð  @Hô  @Nð  OPô  @Qñ  5Rô  5Rð  *Sð  YZð   [ñ   [ô   [�HÝ(°]Ô5NÐYfÔYoð  ANô  A]ð  erô  exð  AEô  ALð  Mñ  Mô  MˆØ×-Ò-¨h½Ð<MÑ8NÔ8NÑOÔOˆÝ˜M×4Ò4Ñ6Ô6Ñ7Ô7ˆØ$�} S§V¢V°<Ô3FÈlÔN` VÑ%aÔ%aÑbÔbˆØ”-×-Ò-ØØØ+Ø%Ø/ØØÝ,Ý #Ð$6Ñ 7Ô 7¸1Ñ <Ø1Ø'ØØ 3Ø+ð .ñ 
ô 
ˆð  ˆ?Ø�4Ø˜,˜;˜,Ð(:¨¸Ñ):Ð(:Ð<M¸\ÈAÑ=MÐ<MÐMÔNˆØ�Š˜q ! Q¨Ñ*Ô*×5Ò5Ñ7Ô7Ð7rv   rx  r’  r‘  Úoutput_framesrE  rF  Úwindow_framesÚtile_heightÚ
tile_widthÚgentleÚtiles_per_callÚconditioning_latentÚcarry_framesÚfusion_previousÚfusion_exportc                 óŽ  — t          | j        t          ¦  «        st          d¦  «        ‚|t          k    rt          dt          › d�¦  «        ‚| j                             |||||||||	|
|||||||||t          |¦  «        dz  t          ||
¦  «        |||¬¦  «        }|€d n%|d          	                    dddd	¦  «        |d         fS )
Nz5LTX detail refinement requires a distilled checkpointz&LTX detail refinement expects at most z frames per callrb  )Úload_windowrx  r’  r‘  r  rE  rF  rÐ  rÔ  rá  r  r  r  r  r  r  r	  r
  r  rã  rä  rå  ræ  r  r   rá   r   rJ  )
r†   rf  r@   rç  ré  ri  Úrefine_videorP  rý  r˜  )r  r  rx  r’  r‘  r  rE  rF  rÐ  rÔ  rñ  r  r  r  r  r  r  r	  r
  r  rÕ  r÷  rå  ræ  r  r  s                             rt   r  zLTX2.refine_videoÂ  sþ   € õ8 ˜$œ-Õ):Ñ;Ô;ð 	XÝÐVÑWÔWÐWØÕ0Ò0Ð0ÝÐoÕF]ÐoÐoÐoÑpÔpÐpØ”-×,Ò,Ø#Ø#ØØØ'Ø'Ø%ØØØØ'Ø#Ø!ØØ)Ø 3Ø%Ø+Ø'Ý #Ð$6Ñ 7Ô 7¸1Ñ <Ý.¨}¸cÑBÔBØØ 3Ø+ð1 -ñ 
ô 
ˆð4 �ˆtˆt¨W°Q¬Z×-?Ò-?ÀÀ1ÀaÈÑ-KÔ-KÈWÐUVÌZÐ,XÐXrv   c                 óZ  ‡‡‡‡‡‡‡— dddddœ}	ddl m}
 g Šg Št          dt          |d	         ¦  «        ¦  «        }|d
         }|d                              ¦   «         }t          |d         ¦  «        }‰                     dd¦  «        }|}|pd                     ¦   «         }d„ |                     dg ¦  «        D ¦   «         Š ||dd¬¦  «        Št          ‰t
          ¦  «        r‰gŠˆfd„Šˆˆˆˆˆfd„}ddh}t          |¦  «        ot          ‰v }|o‰d         dk    }|dk    r|r |ddd¦  «         nh|dk    rb|dk    s||dhz  v rT|dk    }||v }d|v }|dk    r|rd }n|dk    r|rd!}n|rd"}n|rd#}n|rd$}nd%}|d&k    r
||dhz  v rd'nd} |||d¦  «         |r |d(d|rd)nd*¦  «         t          ˆfd+„|	D ¦   «         ¦  «        r |d,dd-¦  «          |
||¦  «        d u}t          |¦  «        r|rt          dk    r |d.dd/¦  «         t          |¦  «        r)t          ‰¦  «        s|rt          d0k    r |d1dd2¦  «         ‰                     d3d4¦  «        s3‰                     d5d4¦  «        st          |‰¦  «        r |d6d7d8¦  «         d|v r |d9|dk    rdnd:d;¦  «         ‰‰fS )<NÚ
pose_alignÚposeÚdepthÚcanny)ÚOÚPÚDÚEr   )Úget_outpainting_dimsr   Úguidance_phasesÚaudio_prompt_typeÚvideo_guide_outpainting_ratioÚvideo_guide_outpaintingrS  rT  ry   c                 óp   — h | ]3}t           j                             |¦  «                             ¦   «         ’Œ4S r|   ©rÿ  r«   r   r¨  )r~   Úloras     rt   rX  z-LTX2.get_loras_transformer.<locals>.<setcomp>  s4   € ÐgÐgÐg¸T�"œ'×*Ò*¨4Ñ0Ô0×6Ò6Ñ8Ô8ÐgÐgÐgrv   Úactivated_lorasÚpreload_URLsT)Úreturn_listc                 ó  •— d }‰D ]}}t          |t          ¦  «        rf|                     d¦  «        rQ|                     dd¦  «        d         }| t          j                             |¦  «                             ¦   «         v r|}Œ~|S )Nz
|%lora_dirú|r   r   )r†   r�   r[  rå   rÿ  r«   r   r¨  )Ú	signatureÚmatched_urlÚentryÚ
source_urlÚpreload_urlss       €rt   Ú_get_preload_lora_urlz9LTX2.get_loras_transformer.<locals>._get_preload_lora_url  s‡   ø€ ØˆKØ%ð 1ð 1�Ý˜e¥SÑ)Ô)ð 1¨e¯nªn¸\Ñ.JÔ.Jð 1Ø!&§¢¨S°!Ñ!4Ô!4°QÔ!7�JØ ¥B¤G×$4Ò$4°ZÑ$@Ô$@×$FÒ$FÑ$HÔ$HÐHÐHØ&0˜øØÐrv   c                 óT  •‡— ‰                      ¦   «         Š ‰‰¦  «        p‰                     d| › �d¦  «        }|sd S t          ˆfd„‰D ¦   «         ¦  «        rd S ‰	D ]}‰|v rt          d‰› d|› d�¦  «          d S Œ ‰                     |¦  «         ‰                     |¦  «         d S )NÚ
ltx2_lora_ry   c              3   ó~   •K  — | ]7}‰t           j                             |¦  «                             ¦   «         v V — Œ8d S rr   r  )r~   r  r%  s     €rt   r€   zJLTX2.get_loras_transformer.<locals>._append_system_lora.<locals>.<genexpr>#  sD   øè è € ÐQÐQÀ4�9¥¤× 0Ò 0°Ñ 6Ô 6× <Ò <Ñ >Ô >Ð>ÐQÐQÐQÐQÐQÐQrv   zDefault system 'zW' lora and corresponding multiplier will be ignored as User has provided its own lora (ú))r¨  r–   r‚   r›  rd  )
r:  Ú
multiplierr%  Úurlr  r*  r¤  Ú
loras_multr—   Úselected_lorass
     `  €€€€€rt   Ú_append_system_loraz7LTX2.get_loras_transformer.<locals>._append_system_lora  s  øø€ Ø!ŸšÑ)Ô)ˆIØ'Ð'¨	Ñ2Ô2Ð\°i·m²mÐDWÐQUÐDWÐDWÐY[Ñ6\Ô6\ˆCØð Ø�ÝÐQÐQÐQÐQÈ5ÐQÑQÔQÑQÔQð Ø�Ø&ð ð �Ø Ð$Ð$Ýð  W¨Yð  Wð  Wð  PTð  Wð  Wð  Wñ  Xô  Xð  XØ�F�Fð %ð �LŠL˜ÑÔÐØ×Ò˜jÑ)Ô)Ð)Ð)Ð)rv   Údistilled_8_stepsÚdistilled_8_steps_ancestralÚltx2_hdr_transformÚacescctrR  r”  zdistilled-loraÚres2sÚ1gš™™™™™É?r1  z0.25;0.5z0;0.8z0.5;0.5z0;1rk   Údistilled_1_1Úhdrzic-lora-sdr-to-hdrzic-lora-hdrc              3   ó    •K  — | ]}|‰v V — Œ	d S rr   r|   r}   s     €rt   r€   z-LTX2.get_loras_transformer.<locals>.<genexpr>F  s)   øè è € ÐEÐE¨vˆvÐ*Ð*ÐEÐEÐEÐEÐEÐErv   Úunion_controlzunion-controlÚoutpaintzic-lora-outpaintrJ  Úinpaintzin-outpaintingÚltx2_msrFÚltx2_layout_to_renderÚingredientsgffffffö?zic-lora-ingredientsÚidz1;0zid-lora-celebvhq)Úshared.utils.utilsr  r�  rP  Ústripr�   r–   r¨  r†   ru   r   r‚   r>   r2   rƒ   ) r  Úget_model_recursive_proprS  rw   ro   r—   rµ  Úsample_solverr  Úcontrol_mapr  r  r  Úoutpainting_ratioÚoutpainting_settingrm  Úresolved_base_model_typer3  Údistilled_samplersÚhdr_enabledÚhdr_conversionÚuse_hq_samplerÚuse_distilled_8_stepsÚuse_id_loraÚmultÚdistilled_lora_nameÚany_outpaintingr*  r¤  r1  r)  r2  s       ` `                     @@@@@rt   Úget_loras_transformerzLTX2.get_loras_transformerþ  sž  øøøøøøø€ àØØØð	
ð 
ˆð 	<Ð;Ð;Ð;Ð;Ð;àˆØˆ
Ý˜a¥ VÐ,=Ô%>Ñ!?Ô!?Ñ@Ô@ˆØ"Ð#6Ô7ÐØ"Ð#BÔC×IÒIÑKÔKÐÝ! &Ð)BÔ"CÑDÔDÐØ!Ÿš o°{ÑCÔCˆØ#2Ð Ø&Ð,¨"×3Ò3Ñ5Ô5ˆØgÐgÀVÇZÂZÐPaÐceÑEfÔEfÐgÑgÔgˆØ/Ð/°
¸NÐX\Ð]Ñ]Ô]ˆÝ�l¥CÑ(Ô(ð 	*Ø(˜>ˆLð	ð 	ð 	ð 	ð 	ð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 2Ð3PÐQÐÝ1Ð2JÑKÔKð  BÕPlð  qBð  QBˆØ$ÐU¨Ð3GÔ)HÈIÒ)UˆØ˜KÒ'Ð'¨NÐ'àÐ ¨SÐ2BÑCÔCÐCÐCØ˜kÒ)Ð)¨ÀÒ/BÐ/BÀmÐWiÐmtÐluÑWuÐFuÐFuØ*¨gÒ5ˆNØ$1Ð5GÐ$GÐ!ØÐ!2Ð2ˆKØ !Ò#Ð#¨Ð#Ø��Ø  AÒ%Ð%Ð*?Ð%Ø��Øð Ø!��Øð Ø��Ø&ð Ø ��à�Ø5MÐQ[Ò5[Ð5[Ð`mð  rDð  HOð  GPñ  rPð  aPð  aP / /ð  VaÐØÐÐ 3°TÐ;KÑLÔLÐLØð 	gØÐ  sÀNÐ,eÐ,@Ð,@ÐXeÑfÔfÐfÝÐEÐEÐEÐE¸ÐEÑEÔEÑEÔEð 	GØÐ °°oÑFÔFÐFØ.Ð.Ð/BÐDUÑVÔVÐ^bÐbˆÝ&Ð'?Ñ@Ô@ð 	EÀ_ð 	EÕYpÐtuÒYuÐYuØÐ 
¨CÐ1CÑDÔDÐDÝ&Ð'?Ñ@Ô@ð 	BÕF^Ð_pÑFqÔFqð 	Bð  vEð 	Bõ  Jað  efò  Jfð  JfØÐ 	¨3Ð0@ÑAÔAÐAØ—’˜j¨%Ñ0Ô0ð 	K°I·M²MÐBYÐ[`Ñ4aÔ4að 	Kõ  hFð  G_ð  arñ  hsô  hsð 	KØÐ ¨sÐ4IÑJÔJÐJØÐ#Ð#Ð#ØÐ ¨_ÀÒ-AÐ-A c cÀuÐN`ÑaÔaÐaØ�jÐ Ð rv   é(   ç      @r”  r   ry   r0  ç      @r1  çš™™™™™¹?ç+‡ÙÎ÷ï?éy   é   é   rH   FÚinput_promptÚn_promptÚimage_end_frame_positionÚsampling_stepsÚguide_scaleÚalt_guide_scaler   Ú	window_noÚmasking_strengthÚinput_video_strengthrw   r  Údenoising_strengthÚcfg_star_switchÚ
apg_switchÚperturbation_switchÚperturbation_layersÚperturbation_startÚperturbation_endÚaudio_cfg_scaleÚ	alt_scalerG  Ú	NAG_scaleÚNAG_tauÚ	NAG_alphaÚself_refiner_settingÚself_refiner_planÚself_refiner_f_uncertaintyÚself_refiner_certain_percentageÚaudio_scaleÚoutpainting_dimsr  Ú
image_modeÚinput_video_is_hdrcA                 ó64  ‡ ‡	‡
‡‡‡‡‡3‡4‡7‡¿‡À— ‰ j         rd S d ŠÀd }Bg }C‰ j                             dd¦  «        r-ddlm}D  |D‰ |>|;|<|=|5‰‰3‰4|:|9|¦  «        \  ŠÀ}B}C}E|Er
d x}x}x}}dŠ‰ j                             dd¦  «        dk    }Ft          ‰ j        ¦  «        }G‰ j                             d	d¦  «        }H‰ j                             d
d¦  «        }I‰ j                             dd¦  «        }Jd }K|Ir¢|}K|j        dd …         \  Š3Š4t          ‰3‰4¦  «        dk    st          ‰3‰4¦  «        dk    rt          d¦  «        ‚t          |1|j        d         ¦  «        }1d}d}:d\  }}t          j        j                             |d‰4 dz  d‰3 dz  fd¬¦  «        }‰ j        dv }L|Hp|J ot          ‰ j        ‰¦  «        }M|1}Nd}O|Hr1d‰v r-|+�+t!          ‰ j        |;|+d‰v ¦  «        }O|Lst          |1|O¦  «        }1t#          ‰ j        ¦  «        ot$          ‰v }P|Pr‰ j        d         nd }Qt'          |?¦  «        }?|Pr‰                      |@¦  «        nd }R|Ps|Ird}!d}d },d|v }St+          |¦  «        }t+          |¦  «        }‰€g Š‰€g Šn/t-          ‰t.          t0          f¦  «        rt/          ‰¦  «        Šn‰gŠ|€Qg }Tg }Ut3          ‰‰¦  «        D ]8\  }V}W|Wdk    r|V}Œ|T                     |V¦  «         |U                     |W¦  «         Œ9|TŠ|UŠt7          |0¦  «        }0|0d uod‰v }Xt9          ‰¦  «        }Y|Xo
t:          dk    }Z‰ j                             dd¦  «        }[t#          ‰ j        ¦  «        o|Xo
t:          dk    }\|Prd}\|Xrt:          dk    rd}:|Zr<t=          |t?          ||0¦  «        ¦  «        }t=          |t?          ||0¦  «        ¦  «        }|Yr2tA          ||tB          ¦  «        \  }}tA          ||tB          ¦  «        \  }}d}]d}^tE          ‰ j#        d¦  «        rAtI          ‰ j#        j%        d d ¦  «        }_|_�$tM          tI          |_d!|_d         ¦  «        ¦  «        }^|2dk    rSd‰v rOtO          ˆfd"„d#D ¦   «         ¦  «        r4tM          |1¦  «        dz
  |^z  dz   dk    r|^dz   }1tQ          d$|1› d%�¦  «         t          d&t          d‰¦  «        ¦  «        Š|\r˜tS          |tT          ¦  «        }`tS          |tT          ¦  «        p|`}`t          j+        ‰	¦  «        r)‰
dk    r#tS          ‰	d d …d ‰
…f         tT          ¦  «        p|`}`‰D ]}atS          |atT          ¦  «        p|`}`Œ|`rtQ          d'¦  «         d(}]d)‰vrd}d&}|Ys|Zrd&}|PrSt          j+        ‰	¦  «        r?|?s|Qd*k    r7|?rtX          ntZ          }b |b‰	|Qd¬+¦  «         .                    ‰	j/        ¬,¦  «        Š	|}cd }dta          |)¦  «        }d|dpd}e|edk    r-tM          |1¦  «        dz
  |^z  dz   dk    rtQ          d-¦  «         d}e‰	d u}f|d uo|f p‰
dk    Š¿dx}g}hd }id }jd }k|€|��p|Sr/tc          |‰	|1‰
|^¦  «        }jtM          |jj        d         ¦  «        }1�n?|fo|X}h|fo‰¿ o|gp|h }l|\rZ|�|n|}m|m€d n&te          |mj        d         |mj        d.         |0¦  «        }n|n�'tg          |m|ntT          ¦  «        rtQ          d/¦  «         d(}]‰
}o|gs|hr·‰
dk    r!‰	d d …df         |d d …df<   |Zr|�	d|d d …df<   nƒt          j4        ‰	d d …d ‰
…f         |d d …dd …f         gd¬0¦  «        }|ZrQ|�Ot          j4        t          j5        ‰	d d…d ‰
…f         |j/        |j6        ¬1¦  «        |d d …dd …f         gd¬0¦  «        }|hr‰
 }ondŠ
d}od Š	n|lr‰
 }otn          r^|Zr\|odk    rtM          |1¦  «        tM          |o¦  «        z
  ntM          |1¦  «        }ptq          |||p¦  «        \  }}tq          |||p¦  «        \  }}g }q||fD ]@}r|r�<|q                     |rj/        t          j9        k    rtu          |r¦  «        n|r|o|cf¦  «         ŒA|qr|q}i|d&k    r]|�-|�+|j/        t          j9        k    rtu          |¦  «        n|||od2œ}kn.|�,|�*|j/        t          j9        k    rtu          |¦  «        n|||od2œ}kd}s|Hrþd‰v rú|+�ø|Lr•dd3l;m<}tm=}u  |ut}          j?        ‰ j        d4         ¦  «        ¦  «        }vt-          |+t.          t0          f¦  «        rt/          |+¦  «        n|+g}wd‰v r|wdd …         |wd d…         z   }wˆ3ˆ4fd5„|wD ¦   «         }x |t|x|v|O|c¦  «        }in^t�          |+|OtM          ‰4¦  «        tM          ‰3¦  «        d‰v tƒ          ‰ j        ¦  «        ¦  «        }y|i€g }i|i                     |yd|cf¦  «         d(}sn£|MrFd‰v rB|+�@tM          |1¦  «        }zt…          |+|z¦  «        }y|y�|i€g }i|i                     |yd|cf¦  «         d(}sn[|GsY|JsWd‰v rSd6‰vrOd‰vrK|+�I‰ j                             d7d¦  «        }zt…          |+|z¦  «        }y|y�|i€g }i|i                     |yd|cf¦  «         d }{g }|g }}g }~g }|Jr9|+d         d.‰d8d(f}€|}                     |€¦  «         |~                     |€¦  «         d(}sd}�d¤ˆ	ˆˆ¿ˆ
fd9„	}‚d¤ˆˆˆfd:„	}ƒ|€ |‚|||¦  «         n>|t‡          d|^¦  «        ‰d8f}€||                     |€¦  «         |                     |€¦  «         |�C||€|Ndz
  ntM          |¦  «        ‰f}€|}                     |€¦  «         |~                     |€¦  «          |ƒ|}|~¦  «         t‰          |9|5¦  «        }„ˆ7ˆ fd;„}…|*ptI          ‰ d<d ¦  «        }*|Gr|+nd }†d }‡d }ˆd&}‰|,��h|/€d}/t          d&t          dt‹          |/¦  «        ¦  «        ¦  «        }Š|Šd&k    �r2‰ j         rd S t          jF        |,¦  «        |-}Œ}‹‰ j         rd S |‹jG        dk    r)|‹ H                    d¦  «         H                    d¦  «        }‹n%|‹jG        dk    r|‹jI         H                    d¦  «        }‹tM          tI          ‰ jJ        d=|‹j        d         ¦  «        ¦  «        }�|�dk    r|‹j        d         }�|‹j        d         |�k    rÅ|‹j        d         dk    r|�dk    r|‹ K                    d|�d¦  «        }‹n–|�dk    r|‹ L                    dd(¬>¦  «        }‹nx|‹d d …d |�…d d …f         }‹|‹j        d         |�k     rV|�|‹j        d         z
  }Ž|‹ M                    |‹j        d         |Ž|‹j        d         f¦  «        }�t          jN        |‹|�gd¬0¦  «        }‹|‹ .                    d?t          jO        ¬@¦  «        }‹dA|v rBtM          t¡          t‹          |Œ¦  «        t¢          z  ¦  «        ¦  «        }�|‹d d …d d …d |�…f         }‹t¥          ‰ jJ        jS        ‰ jJ        jT        ‰ jJ        jU        ‰ jJ        jV        ‰ j6        ¬B¦  «        }‘d}’tM          |Œpd¦  «        }ŒtM          |‹j        d.         ¦  «        }“dA|vr.|‘ W                    |‹|Œ¦  «        rtQ          dC|“› dD|Œ› dE�¦  «         d(}’|’�s�|‘ .                    |‹j6        ¦  «        }‘|‘ X                    |‹|Œ¦  «        }”‰ j         rd S t³          ‰ jJ         Z                    ¦   «         d ¦  «        }•|•�|•j6        n‰ j6        }–|•�|•j/        n‰ j/        }—|” .                    |–|—¬@¦  «        }”t          j[        ¦   «         5  ‰  J                    |”¦  «        }˜d d d ¦  «         n# 1 swxY w Y   ‰ j         rd S tI          tI          ‰ jJ        dFd ¦  «        dGdH¦  «        }™|˜ .                    ‰ j6        ‰ j/        ¬@¦  «        }˜|.�\dA|vrX‰ jJ        jU        |™z  ‰ jJ        jS        z  }št          dt¹          j]        |.|šz  dIz   ¦  «        ¦  «        }›|˜d d …d d …d |›…d d …f         }˜dA|v rt½          |˜¦  «        g}‡g }ˆt¾          }‰nîtÁ          ja        tÅ          |˜j        d         tM          |1¦  «        ddt‹          |5¦  «        ¬J¦  «        |˜j        d         |˜j        dK         ‰ jJ        jS        ‰ jJ        jU        |™¬L¦  «        }œ|œjc        }�|˜j        d         dk    rd }‡nX|˜j        d         |�k     rtÉ          |˜¦  «        g}‡n6|˜j        d         |�k    r|˜d d …d d …d |�…d d …f         }˜tË          |˜|Š¦  «        g}‡tM          ‰3¦  «        }žtM          ‰4¦  «        }Ÿ|IrdndM} |ž| z  dk    r'tM          t¹          jf        |ž| z  ¦  «        | z  ¦  «        }ž|Ÿ| z  dk    r'tM          t¹          jf        |Ÿ| z  ¦  «        | z  ¦  «        }Ÿ|{�P|ždz  }¡|Ÿdz  }¢|{j        dK         |¡k    s|{j        dH         |¢k    rd }{n!|{ .                    ‰ j6        ‰ j/        ¬@¦  «        }{d }£|r|ntÎ          }¤|:dk    }¥|irtÑ          |)|(|GdN¬O¦  «        nd }¦|ir|¦€|sr|¥s|i}£|€dA|v rtÒ          nt‹          |¦  «        }§nt‹          |¦  «        }§dA|v r|§dk    rtÒ          }§|  j                    ¦   «         } dP}¨t-          |;tÖ          ¦  «        r<	 t‹          |;                     dQ|¨¦  «        ¦  «        }¨n# tØ          t          f$ r Y nw xY wd|¨cxk     rdk     sn dP}¨d}©tM          |pd¦  «        dk    s‰	�!‰¿st          dtM          ‰
pd¦  «        ¦  «        }©‰ j                             dRd¦  «        }ªˆÀˆ fdS„}«|Qd*k    rutÛ          ‰ jn        ‰ jo        ‰ jp        ‰ j#        j%        ‰ j6        |||r‰
nd|||Rd         tM          |1¦  «        |ž|Ÿt‹          |5¦  «        tM          |6¦  «        |„|(‰7|8|…¬T¦  «        d f}¬�nYt-          ‰ j#        tâ          ¦  «        �r |«d¥i dU|“dV|¤“dWtM          |6¦  «        “dX|ž“dY|Ÿ“dZtM          |1¦  «        “d[t‹          |5¦  «        “d\|©“dQ|¨“d]tM          |¦  «        “d^t‹          |¦  «        “d_|§“d`|“da|“db|“dc|“dd|“de|“dft‹          |¦  «        “dgt‹          |¦  «        “dh| “di||“dj|}pd “dk|~pd “dl|�r|nd “dm|i“dn|e“do|£“dp|{“dq|„“drd“ds|‡“dt|ˆ“du|‰“dv‰7“dw|8“dx|…“dy|(“dz|*“d{|k“d||“d}|“d~|h“d|¥“d€|j“d�|j“d‚|$“dƒ|%“d„|&“d…|'“d|[“d†|†“dR|ª“d‡|Q“dˆ|Pp|I“d‰dŠ‰v o|¥ “Ž}¬�n$i }­|Fr@|­ r                    t‹          |!¦  «        t‹          |"¦  «        t‹          |#¦  «        d‹œ¦  «          |«d¥i dU|“dV|¤“dWtM          |6¦  «        “dX|ž“dY|Ÿ“dZtM          |1¦  «        “d[t‹          |5¦  «        “d\|©“dQ|¨“di||“dj|}pd “dk|~pd “dl|�r|nd “dft‹          |¦  «        “d_|§“dm|i“dn|e“do|£“dp|{“dq|„“drd“ds|‡“dt|ˆ“du|‰“dv‰7“dw|8“dx|…“dy|(“dz|*“d{|k“d||“d}|“d‡|Q“dŒ|R“dˆ|Pp|I“d‰dŠ‰v o|¥ “d~|h“d|¥“d€|j“d�|j“d‚|$“dƒ|%“d„|&“d…|'“d|[“d†|†“dR|ª“d�|Fo|L“dŽ|J“|­¤Ž}¬d }®d }¯t-          |¬t0          ¦  «        rtç          |¬¦  «        dHk    r|¬\  }°}±}®}¯n4t-          |¬t0          ¦  «        rtç          |¬¦  «        dKk    r|¬\  }°}±}®n|¬\  }°}±|°�|±€|Ps|Isd S ‰ j         rd S té          |°|…tM          |1¦  «        tM          ‰3¦  «        tM          ‰4¦  «        ¬�¦  «        }²|²€d S |²d d …d |N…d ‰3…d ‰4…f         }²|IrOdd�lumv}³ |8� |8d‘¦  «          |³|²|K||5tî          jx        d’         jy                             d“d”¦  «        ˆ fd•„¦  «        S |]�rÔt          jz        |²¦  «        rt÷          d–¦  «        ‚t‹          tT          ¦  «        }´|²j/        t          j9        k    rÇ|² .                    t          jO        ¬,¦  «         |                    d—¦  «         }                    d&d¦  «         ~                    |´¦  «        }µ|²                     |µ €                    d—¦  «         �                    ¦   «          }                    d&d—¦  «         .                    t          j9        ¬,¦  «        ¦  «         nÁ|² .                    t          jO        ¬,¦  «         ‚                    d¦  «         €                    d˜¦  «         }                    d&d¦  «         ~                    |´¦  «        }µ|²                     |µ €                    d™¦  «         ƒ                    d¦  «         .                    |²j/        ¬,¦  «        ¦  «         |Yo�t          }¶|Zo�t
          }·|¶s|·r>|�|n|}¸|�|n|}¹|·r�t          n�t          }º�t          |²|¸|¹|N‰3‰4|º|¶o�t          ¬š¦  «        }²|2dk    r|²d d …d d…f         }²|2dk    s|Prd nM|±�J|± Š                    ¦   «          E                    ¦   «          ‹                    ¦   «          Œ                    ¦   «         nd }»|»�=|»jG        dk    r2|»j        d         d›v r#|»j        d         |»j        d         k    r|»jI        }»tM          tI          ‰ j�        dœ�t          ¦  «        ¦  «        }¼|²|»|¼d�œ}½|Prd(|½dž<   dŸ|½d <   |Q|½d‡<   |®�|®|½d¡<   |¯�|¯|½d¢<   |B�dd£lm�}¾  |¾‰ |½|B|C‰
|1|5|¦  «        }½|½S )¦NÚ
joyai_echoFr   )Úprepare_joyai_echo_contextry   rS  rT  rR  r@  Últx2_alpha_genrA  rº  i€  i@  uW   Alpha Gen supports source videos up to 1920Ã—1088. Resize the source before loading it.)r”  r0  r   rå  Ú	replicate)Úmode>   rl   Últx2_25_22B_msrrm   rn   rz   ÚKr6  r”  Ú2ÚVrJ  Úself_refiner_max_plansrb  Úpipeline_componentsÚvideo_scale_factorsÚtimec              3   ó    •K  — | ]}|‰v V — Œ	d S rr   r|   r}   s     €rt   r€   z LTX2.generate.<locals>.<genexpr>÷  s*   øè è € Ð>pÐ>pÐ_e¸vÐIZÐ?ZÐ>pÐ>pÐ>pÐ>pÐ>pÐ>prv   ÚPODEzW[WAN2GP][LTX2] Expanding image pose/depth/edge control from one latent to two latents (z, frames) to allow denoised image generation.r0  zc[WAN2GP][LTX2] Applying full-frame gamma preprocessing for outpainting IC-LoRA conditioning images.TÚGr7  )Ú	transformÚchannel_dimr/  z\[WAN2GP][LTX2] Disabling downscaled control conditioning for single-latent-frame generation.r{  za[WAN2GP][LTX2] Applying preserved-area gamma preprocessing for outpainting IC-LoRA control video.râ   r  )r
  ÚmaskÚstart_frame)ÚMSRReferenceImagesÚload_slot_embeddingsÚltx2_msr_slot_embeddings_filec           	      óf   •— g | ]-}t          |t          ‰¦  «        t          ‰¦  «        ¦  «        ‘Œ.S r|   )r¢  rP  )r~   Úrefr’  r‘  s     €€rt   rÚ  z!LTX2.generate.<locals>.<listcomp>a  s3   ø€ Ð`Ð`Ð`ÐTWÕ1°#µs¸5±z´zÅ3ÀvÁ;Ä;ÑOÔOÐ`Ð`Ð`rv   ÚFÚltx2_ic_lora_ref_video_framesÚlanczosc                 ó  •— ‰�‰rd S t          ‰‰j        d         ¦  «        }|dk    rd S ‰d d …d |…f                              dddd¦  «        d‰f}|                      |¦  «         |�|                     |¦  «         d S d S )Nr   r   rJ  rá   )r¹  r…  r˜  rd  )Útarget_listÚ
extra_listrx  r'  r  rf  Úis_start_image_onlyr   s       €€€€rt   Ú_append_prefix_entriesz-LTX2.generate.<locals>._append_prefix_entries�  sª   ø€ ØÐ"Ð&9Ð"Ø�ÝÐ1°;Ô3DÀQÔ3GÑHÔHˆKØ˜aÒÐØ�Ø     L [ L Ô1×9Ò9¸!¸QÀÀ1ÑEÔEÀqÐJ^Ð_ˆEØ×Ò˜uÑ%Ô%Ð%ØÐ%Ø×!Ò! %Ñ(Ô(Ð(Ð(Ð(ð &Ð%rv   c                 ó&  •— t          t          ‰¦  «        t          ‰¦  «        ¦  «        }t          ‰d |…         ‰d |…         ¦  «        D ]D\  }}|t          |¦  «        ‰df}|                      |¦  «         |�|                     |¦  «         ŒEd S )Nr—  )r¹  r´   rÄ  rP  rd  )	r™  rš  Úinjected_ref_countrŒ  rß  r'  Úframes_relative_positions_listÚframes_to_injectrf  s	         €€€rt   Ú_append_injected_ref_entriesz3LTX2.generate.<locals>._append_injected_ref_entriesš  sÁ   ø€ Ý!$¥SÐ)9Ñ%:Ô%:½CÐ@^Ñ<_Ô<_Ñ!`Ô!`ÐÝ(+Ð,<Ð=PÐ>PÐ=PÔ,QÐSqð  sFð  tFð  sFô  TGñ  )Hô  )Hð -ð -Ñ$�	˜9Ø"¥C¨	¡N¤NÐ4HÈ)ÐT�Ø×"Ò" 5Ñ)Ô)Ð)ØÐ)Ø×%Ò% eÑ,Ô,Ð,øð	-ð -rv   c                  ó2   •— ‰ � ‰ dd dd¦  «         ‰j         S )Nr{  FT©r.  )rå  r  s   €€rt   r  z&LTX2.generate.<locals>.interrupt_check±  s'   ø€ ØÐ#Ø�˜˜T 5¨$Ñ/Ô/Ð/Ø”?Ð"rv   rÆ  rñ   rØ  r—  r×  r9  rÚ  zA[WAN2GP][LTX2] Audio conditioning is too short for mel encoding (z samples at z0 Hz); disabling it so audio frames are denoised.Ú
patchifierÚaudio_latent_downsample_factorrI  g•Ö&è.>)ÚbatchrÆ  r‘  r’  rñ  rá   )r  rÜ  rÛ  Ú
hop_lengthr¥  r?  ÚEditAnything)Úforce_phase2_controlÚ
force_namegü©ñÒMbP?Úprompt_relay_epsilonÚltx2_22B_classc                  óª   •— ‰�‰j                              ‰¦  «        nt          ¦   «         }|5   ‰j         di | ¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nr|   )rf  Újoyai_echo_contextr   )Úpipeline_kwargsÚpipeline_contextÚjoyai_contextr  s     €€rt   Úrun_ltx2_pipelinez(LTX2.generate.<locals>.run_ltx2_pipelineK  s©   ø€ ØR_ÐRk˜tœ}×?Ò?ÀÑNÔNÐNÕq|Ñq~Ôq~ÐØ!ð 8ð 8Ø$�t”}Ð7Ð7 Ð7Ð7ð8ð 8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s   ®AÁAÁA)rä  Úloras_slistsrå  ræ  r  rÐ  rÑ  rÔ  r’  r‘  Ú
num_framesrá  Úprompt_relay_frame_offsetÚnum_inference_stepsÚcfg_guidance_scaleÚaudio_cfg_guidance_scalerh  ri  rj  rk  rl  rm  Úalt_guidance_scalero  rG  ÚimagesÚguiding_imagesÚguiding_images_stage2Úimages_stage2Úvideo_conditioningÚ#video_conditioning_downscale_factorÚvideo_conditioning_stage2Úlatent_conditioning_stage2rä  Úenhance_promptÚaudio_conditioningsÚaudio_conditionings_stage2Úaudio_identity_guidance_scalerå  ræ  r  r³  Útext_connectorsÚmasking_sourcere  Úreturn_latent_sliceÚ!continuous_conditioning_and_guideÚskip_stage_2Úfrozen_video_conditioningÚfrozen_output_videors  rt  ru  rv  Úeditanything_ref_imagesÚhdr_transformÚ
skip_audioÚtiled_stage_2Ú~)rp  rq  rr  Úprecomputed_contextsÚuse_ancestral_samplerÚlayout_to_render)r  r  r  r  )Úalpha_resultz$Exporting Alpha Matte and RGBA VideoÚwgpÚrgba_video_outputÚpng_zipc                  ó   •— ‰ j         S rr   r£  r/  s   €rt   ú<lambda>zLTX2.generate.<locals>.<lambda>é  s   ø€ ð  ]aô  ]l€ rv   z†LTX2 decoded video output is still an inference tensor; decode_video_to_tensor must allocate the output buffer outside inference mode.r•  r1  rG   )Úmask_low_res_dilationÚsanitize_masked_source)r   rJ  Úoutput_sampling_rate)ÚxÚaudioÚaudio_sampling_rater;  Úlinear_srgbÚ
hdr_formatÚlatent_sliceÚ_memory_latents)Úrecord_joyai_echo_memoryrr   r|   )�r.  r—   r–   r|  r}  r˜   r…  r�  r¹  ri  r  r  Ú
functionalÚpadro   rƒ   rÁ  ru   r   r•   rÀ  rv  r†   r§   r¨   rÄ  rd  r4   r2   r>   r3   r0   r/   r:   Úhasattrrf  r  r†  rP  r‚   r›  r>  ÚLTX2_OUTPAINT_GAMMAr‚  r   r   r3  r™  r	  r+  r1   rF  ÚconcatÚ
zeros_liker  r?   r5   rš  rC   Úmsrr�  r‘  rc  rd  rÞ  r«  r�  râ  rý  rQ  Ú
from_numpyr„  r†  rì  r•  r‡  rî  rï  r#  r4  rï  Ú"LTX2_ID_LORA_MAX_REFERENCE_SECONDSr   rÛ  rÜ  rÝ  rÞ  Úwaveform_too_short_for_melrð  rñ  rò  Úinference_moderç  rù  r   ÚLTX2_ID_LORA_GUIDANCE_SCALEr,   Úfrom_video_pixel_shaper-   rÆ  r   r   rè  rE   r7   ÚLTX2_ID_LORA_AUDIO_CFG_SCALEr¨  r‡   r¸  rA   r'  r“  r”  rB   Úupdater´   r  ÚvfxrÕ  ÚsysÚmodulesÚserver_configÚis_inferencerç  r5  r6  r7  r  r8  r9  r:  r;  r8   r<   r=   r9   r.   r;   rƒ  r—  rˆ  rŽ  rD   rå  )Ár  r^  r_  Úimage_startÚ	image_endr`  ra  rb  rc  r  r   rd  r  Úinput_frames2r   Úinput_masksÚinput_masks2rŸ  re  rf  rÈ  rw   r  rg  rh  ri  rj  rk  rl  rm  rn  ro  rG  rp  rq  rr  rs  rt  ru  rv  r³  r  rÆ  Úinput_ref_imagesÚinput_waveformÚinput_waveform_sample_rateÚaudio_conditioning_endrw  rx  r  ry  r’  r‘  rñ  rÔ  rå  ræ  r÷  Úguide_phasesrº  Úvideo_guideÚframe_window_optionsÚ	gen_staterz  rµ  r  Újoyai_memory_bankÚjoyai_store_mem_selectorsr}  Úclear_joyai_control_inputsÚdistillr˜  rì  Ú	alpha_genrÔ  Úalpha_sourceÚltx25Úmain_ingredientsÚoutput_frame_numÚmsr_frame_countrM  rÎ  Úhdr_scene_contextÚaudio_from_control_videoÚnew_frames_to_injectÚ"new_frames_relative_positions_listÚframe_to_injectÚframe_relative_positionrT  Últx2_inpaintingÚnew_outpaintingr…  Ú"requested_outpaint_gamma_roundtripÚuse_outpaint_gamma_roundtripr!  Úscale_factorsÚconditioning_gamma_appliedrŒ  Úto_working_spaceÚcontrol_strengthÚic_lora_downscale_factorr¿  Úhas_prefix_framesÚmerge_conditioning_and_guiderÉ  r¾  Úfrozen_control_videorÇ  Úskip_first_guide_latentÚcontrol_tensorÚcontrol_rectÚcontrol_start_frameÚtarget_control_framesÚconditioning_entriesÚcontrol_framesÚ#force_stage2_ref_video_conditioningr�  r‘  ÚslotsÚrefsrÆ  Ú	ref_videoÚref_frame_countrÁ  rº  r»  r¼  r½  r'  Ústage2_overriderœ  r¡  rä  r  rÍ  rÃ  rÄ  rÅ  Úaudio_strengthrü  Úwaveform_sample_raterý  Úpad_channelsrç  Úmax_samplesrþ  Úskip_audio_conditioningÚinput_samplesrÿ  r   Úaudio_deviceÚaudio_dtyperà  Úaudio_downsampleÚtoken_secondsÚprefix_tokensÚtarget_shaper&  Útarget_heightÚtarget_widthÚresolution_divisorÚexpected_lat_hÚexpected_lat_wrÀ  rÑ  rÊ  Úphase2_ic_loraÚeffective_audio_cfg_scaler«  rµ  r¬  r²  Úpipeline_outputÚdistilled_kwargsrã  Úmemory_latentsr
  rß  r  rÕ  r<  r=  Úblend_inpaintingÚblend_outpaintingÚblend_sourceÚ
blend_maskrÛ  Úaudio_npÚoutput_audio_sampling_rateÚresultrå  r›  r±  sÁ   `        ``   `  ` ` `                             ``  `                                                                                                                                       @@rt   r4  zLTX2.generateS  s7(  øøøøøøøøøøøø€ ðL Œ?ð 	Ø�4ØˆØ ÐØ$&Ð!ØŒ>×Ò˜l¨EÑ2Ô2ð 	'Ø>Ð>Ð>Ð>Ð>Ð>ð gAð  gAð  BFð  HQð  Sbð  doð  qEð  GJð  L]ð  _eð  glð  nzð  |Ið  KTñ  gUô  gUÑcˆMÐ,Ð.GÐIcØ)ð 'ØLPÐP�ÐP˜}ÐP¨{¸\Ø$&Ð!Ø”.×$Ò$ _°kÑBÔBÀkÒQˆÝ-¨d¬nÑ=Ô=ˆØŒn× Ò  ¨UÑ3Ô3ˆØ”N×&Ò&Ð'7¸Ñ?Ô?ˆ	Øœ>×-Ò-Ð.EÀuÑMÔMÐØˆØð 		vØ'ˆLØ(Ô.¨r¨s¨sÔ3‰MˆF�EÝ�6˜5Ñ!Ô! DÒ(Ð(­C°¸Ñ,>Ô,>ÀÒ,EÐ,EÝ Ð!zÑ{Ô{Ð{Ý˜I |Ô'9¸!Ô'<Ñ=Ô=ˆIØˆLØˆLØ3;Ñ0ÐÐ 0Ý œ8Ô.×2Ò2°<À!ÀeÀVÈbÁ[ÐRSÐV\ÐU\Ð_aÑUaÐAbÐitÐ2ÑuÔuˆLØÔ$ð  )Dð  DˆØ #Ð 7Ð'7Ð8ð  EÕ=[Ð\`Ô\pð  sDñ  >Eô  >EÐØ$ÐØˆØð 	<�3Ð+Ð+Ð+Ð0@Ð0LÝ@Ø”ØØ ØÐ(Ð(ñ	ô ˆOð ð <Ý 	¨?Ñ;Ô;�	å1°$Ô2FÑGÔGÐ}ÕLhÐl}ÐL}ˆØ@KÐU˜œÐ';Ô<Ð<ÐQUˆÝ!Ð"4Ñ5Ô5ÐØFQÐ[˜D×8Ò8¸ÑBÔBÐBÐW[ÐØð 	"˜)ð 	"ØˆIØ "ÐØ!ˆNØ#&Ð*;Ð#;Ð Ý(¨Ñ5Ô5ˆÝ& yÑ1Ô1ˆ	ØÐ#Ø!ÐØ)Ð1Ø-/Ð*Ð*ÝÐ6½½u¸ÑFÔFð 	NÝ-1Ð2PÑ-QÔ-QÐ*Ð*à.LÐ-MÐ*ØÐØ#%Ð Ø13Ð.Ý<?Ð@PÐQoÑ<pÔ<pð Wð WÑ8�Ð!8Ø*¨aÒ/Ð/Ø"1�K�Kà(×/Ò/°Ñ@Ô@Ð@Ø6×=Ò=Ð>UÑVÔVÐVÐVØ3ÐØ-OÐ*å6Ð7GÑHÔHÐØ*°$Ð6ÐS¸3ÐBSÐ;SˆÝ2Ð3DÑEÔEˆØ)ÐJÕ.EÈÒ.JˆØ!%¤×!3Ò!3Ð4LÈaÑ!PÔ!PÐÝ-HÈÔI]Ñ-^Ô-^ð  .TÐcrð  .Tõ  xOð  STò  xTÐ*Øð 	7Ø16Ð.Øð 	Õ6¸!Ò;Ð;ØˆLØð 	zÝ+¨KÕ9UÐVbÐdtÑ9uÔ9uÑvÔvˆKÝ,¨\Õ;WÐXeÐgwÑ;xÔ;xÑyÔyˆLØð 	YÝ(OÐP\Ð^iõ  lTñ  )Uô  )UÑ%ˆL˜+Ý*QÐR_Ðamõ  pXñ  +Yô  +YÑ'ˆM˜<Ø',Ð$ØˆÝ�4”=Ð"7Ñ8Ô8ð 	VÝ# D¤MÔ$EÐG\Ð^bÑcÔcˆMØÐ(Ý #¥G¨M¸6À=ÐQRÔCSÑ$TÔ$TÑ UÔ U�Ø˜Š>ˆ>˜cÐ%6Ð6Ð6½3Ð>pÐ>pÐ>pÐ>pÐioÐ>pÑ>pÔ>pÑ;pÔ;pÐ6Õwzð  |Eñ  xFô  xFð  IJñ  xJð  O\ñ  w\ð  _`ñ  w`ð  efò  vfð  vfØ%¨Ñ)ˆIÝð  dÐluð  dð  dð  dñ  eô  eð  eå" 3­¨CÐ1EÑ(FÔ(FÑGÔGÐØ-ð 		4Ý)>¸{ÕL_Ñ)`Ô)`Ð&Ý)>¸yÕJ]Ñ)^Ô)^Ð)|Ðb|Ð&ÝŒ˜{Ñ+Ô+ð \Ð0CÀaÒ0GÐ0GÝ-BÀ;ÈqÈqÈqÐRfÐSfÐRfÐOfÔCgÕi|Ñ-}Ô-}ð  .\ð  B\Ð*Ø-ð Að A�	Ý-BÀ9ÕNaÑ-bÔ-bð  .Að  gAÐ*Ð*Ø)ð 4ÝÐ{Ñ|Ô|Ð|Ø/3Ð,ØÐ'Ð'Ð'Ø!$ÐØ"ÐØð 	#˜oð 	#Ø"ÐØð 	|�5œ?¨;Ñ7Ô7ð 	|Ð=Oð 	|ÐS`ÐdmÒSmÐSmØ:LÐbÕ6Ð6ÕRbÐØ*Ð*¨;À-Ð]^Ð_Ñ_Ô_×bÒbÐitÔizÐbÑ{Ô{ˆKØ-ÐØ#'Ð Ý#BÀ>Ñ#RÔ#RÐ Ø.FÐ.KÈ!Ð+Ø.°Ò2Ð2½¸Y¹¼È!Ñ9KÐP]Ñ8]Ð`aÑ8aÐfgÒ7gÐ7gÝÐpÑqÔqÐqØ23Ð/à'¨tÐ3ÐØ)°Ð5ÐmÐ?PÐ;PÐ;lÐTgÐklÒTlÐØKPÐPÐ$Ð'HØ!ÐØ#ÐØˆØÐ# }Ñ'@Ø'ð 9Ý'BÀ<ÐQ\Ð^gÐi|ð  Lñ  (Mô  (MÐ$ÝÐ 4Ô :¸1Ô =Ñ>Ô>�	‘	ð 5FÐ4YÈ/Ð1Ø*;ð  +fÐEXÐAXð  +fÐcð  deð  Deð  _fÐ'Ø5ð <Ø5AÐ5M \ \ÐS`�NØ+9Ð+A 4 4ÕGbÐcqÔcwÐxzÔc{ð  ~Lô  ~Rð  SUô  ~Vð  Xhñ  Hiô  Hi�LØ#Ð/Õ4NÈ~Ð_kõ  nAñ  5Bô  5BÐ/Ýð  Bñ  Cô  Cð  CØ7;Ð4à&9Ð#Ø/ð ?Ð3Tð ?Ø*¨aÒ/Ð/Ø-8¸¸¸¸A¸Ô->˜ Q Q Q¨ TÑ*Ø*ð 2¨{Ð/FØ01˜K¨¨¨¨1¨Ñ-øå',¤|°kÀ!À!À!ÐEYÐFYÐEYÐBYÔ6ZÐ]iÐjkÐjkÐjkÐmnÐmoÐmoÐjoÔ]pÐ5qÐwxÐ'yÑ'yÔ'y˜Ø*ð A¨{Ð/FÝ*/¬,½Ô8HÈÐUWÐVWÐUWÐYmÐZmÐYmÐUmÔInð  wBô  wHð  Q\ô  Qcð  9dñ  9dô  9dð  fqð  rsð  rsð  rsð  uvð  uwð  uwð  rwô  fxð  8yð  @ð  +Añ  +Aô  +A˜KØ8ð 1Ø/BÐ.BÐ+Ð+à./Ð+Ø/0Ð+Ø"&�K�KØ,ð ?Ø+>Ð*>Ð'å5ð J¸/ð JØYlÐopÒYpÐYp­C°	©N¬N½SÐATÑ=UÔ=UÑ,UÐ,UÕvyð  {Dñ  wEô  wEÐ)Ý0SÐT`Ðbmð  pEñ  1Fô  1FÑ-�L +Ý2UÐVcÐeqð  tIñ  3Jô  3JÑ/�M <à')Ð$Ø'3°]Ð&Cð tð t�NØ%Ð1Ø,×3Ò3ÐSaÔSgÕkpÔkvÒSvÐSvµZÀÑ5OÔ5OÐ5Oð  }Kð  M`ð  brð  5sñ  tô  tð  tøØ'ð >Ø)=Ð&Ø# cÒ)Ð)Ø"Ð.°<Ð3KàAMÔASÕW\ÔWbÒAbÐAb¥Z°Ñ%=Ô%=Ð%=ÐhtØ$/Ø+>ð*ð *˜˜ð
 &Ð1°mÐ6OàBOÔBUÕY^ÔYdÒBdÐBd¥Z°Ñ%>Ô%>Ð%>ÐjwØ$0Ø+>ð*ð *˜ð /4Ð+Øð %	L�3Ð+Ð+Ð+Ð0@Ð0LØð LØIÐIÐIÐIÐIÐIÐIÐIà,Ð,­R¬^¸D¼NÐKjÔ<kÑ-lÔ-lÑmÔm�Ý1;Ð<LÍtÕUZÈmÑ1\Ô1\Ðt•tÐ,Ñ-Ô-Ð-ÐcsÐbt�ØÐ+Ð+Ð+Ø   œ8 d¨2¨A¨2¤hÑ.�DØ`Ð`Ð`Ð`Ð`Ð[_Ð`Ñ`Ô`�Ø%7Ð%7¸ÀÀÐXhÑ%iÔ%iÐ"Ð"å6Ø$Ø#Ý˜‘J”JÝ˜‘K”KØÐ,Ð,Ý(¨¬Ñ8Ô8ñô �	ð &Ð-Ø)+Ð&Ø"×)Ò)¨9°aÐ9IÐ*JÑKÔKÐKØ26Ð/Ð/Øð 	L #Ð):Ð":Ð":Ð?OÐ?[Ý! )™nœnˆOÝ5Ð6FÈÑXÔXˆIØÐ$Ø%Ð-Ø)+Ð&Ø"×)Ò)¨9°aÐ9IÐ*JÑKÔKÐKØ6:Ð3øØð 	LÐ"2ð 	L¸Ð?PÐ8PÐ8PÐUXÐ`qÐUqÐUqÐvyð  BSð  wSð  wSð  Xhð  XtØ"œn×0Ò0Ð1PÐRSÑTÔTˆOÝ5Ð6FÈÑXÔXˆIØÐ$Ø%Ð-Ø)+Ð&Ø"×)Ò)¨9°aÐ9IÐ*JÑKÔKÐKà%)Ð"àˆØˆØ "ÐØˆØð 	7ð & aÔ(¨"Ð.BÀIÈtÐTˆEØ×!Ò! %Ñ(Ô(Ð(Ø!×(Ò(¨Ñ/Ô/Ð/Ø26Ð/Øˆð		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð 		)ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð ÐØ"Ð" 6¨=Ñ9Ô9Ð9Ð9à Õ"2°1°mÑ"DÔ"DÐFZÐ\eÐfˆEØ�MŠM˜%Ñ Ô Ð Ø× Ò  Ñ'Ô'Ð'àÐ ØÐ8PÐ8XÐ 0°1Ñ 4Ð 4Õ^aÐbzÑ^{Ô^{ð  ~Rð  SˆEØ×!Ò! %Ñ(Ô(Ð(Ø!×(Ò(¨Ñ/Ô/Ð/à$Ð$ ^Ð5JÑKÔKÐKå,¨]¸CÑ@Ô@ˆð	#ð 	#ð 	#ð 	#ð 	#ð 	#ð *ÐT­W°TÐ;MÈtÑ-TÔ-TˆØ6BÐ"LÐ"2Ð"2ÈÐà"ÐØ%)Ð"Ø(+Ð%ØÑ%ØÐ"Ø!�Ý  ¥c¨#­u°[Ñ/AÔ/AÑ&BÔ&BÑCÔCˆNØ Ò#Ñ#Ø”?ð  Ø˜4Ý27Ô2BÀ>Ñ2RÔ2RÐTnÐ.�Ø”?ð  Ø˜4Ø”= AÒ%Ð%Ø'×1Ò1°!Ñ4Ô4×>Ò>¸qÑAÔA�H�HØ”] aÒ'Ð'Ø'œz×3Ò3°AÑ6Ô6�HÝ"%¥g¨dÔ.@À-ÐQYÔQ_Ð`aÔQbÑ&cÔ&cÑ"dÔ"d�Ø" aÒ'Ð'Ø&.¤n°QÔ&7�OØ”> !Ô$¨Ò7Ð7Ø”~ aÔ(¨AÒ-Ð-°/ÀAÒ2EÐ2EØ#+§?¢?°1°oÀqÑ#IÔ#I˜˜Ø(¨AÒ-Ð-Ø#+§=¢=°QÀ =Ñ#EÔ#E˜˜à#+¨A¨A¨AÐ/?°Ð/?ÀÀÀÐ,BÔ#C˜Ø#œ>¨!Ô,¨Ò>Ð>Ø+:¸X¼^ÈAÔ=NÑ+N˜LØ"*×"4Ò"4°h´nÀQÔ6GÈÐW_ÔWeÐfgÔWhÐ5iÑ"jÔ"j˜CÝ',¤y°(¸C°ÀaÐ'HÑ'HÔ'H˜Hà#Ÿ;š;¨e½5¼=˜;ÑIÔI�ØÐ+Ð+Ð+Ý"%¥e­EÐ2FÑ,GÔ,GÕJlÑ,lÑ&mÔ&mÑ"nÔ"n�KØ'¨¨¨¨1¨1¨1¨l¨{¨lÐ(:Ô;�HÝ"0Ø $Ô 2Ô >Ø!Ô/Ô8Ø#'Ô#5Ô#DØÔ,Ô2Øœ;ð#ñ #ô #�ð +0Ð'Ý'*Ð+?Ð+DÀ1Ñ'EÔ'EÐ$Ý # H¤N°2Ô$6Ñ 7Ô 7�ØÐ/Ð/Ð/°O×4^Ò4^Ð_gÐi}Ñ4~Ô4~Ð/Ýð  @Ð^kð  @ð  @ð  zNð  @ð  @ð  @ñ  Aô  Að  AØ.2Ð+Ø.ñ 3iØ&5×&8Ò&8¸¼Ñ&IÔ&I�OØ)×9Ò9¸(ÐDXÑYÔY�CØ”ð $Ø#˜tÝ#'¨Ô(:×(EÒ(EÑ(GÔ(GÈÑ#NÔ#N�LØ:FÐ:R <Ô#6Ð#6ÐX\ÔXc�LØ8DÐ8P ,Ô"4Ð"4ÐVZÔV`�KØŸ&š&¨¸K˜&ÑHÔH�CÝÔ-Ñ/Ô/ð ?ð ?Ø'+×'9Ò'9¸#Ñ'>Ô'>˜ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?à”ð $Ø#˜tÝ'.Ý Ô 2°LÀ$ÑGÔGØ8Øñ(ô (Ð$ð
 $0§?¢?¸$¼+ÈTÌZ ?Ñ#XÔ#X�LØ-Ð9¸cÐIZÐ>ZÐ>Zà(,Ô(:Ô(IÐL\Ñ(\Ð_cÔ_qÔ_}Ñ(}˜Ý(+¨A­t¬zÐ:PÐS`Ñ:`ÐcgÑ:gÑ/hÔ/hÑ(iÔ(i˜Ø'3°A°A°A°q°q°q¸.¸=¸.È!È!È!Ð4KÔ'L˜ØÐ/Ð/Ð/Ý/NÈ|Ñ/\Ô/\Ð.]Ð+Ø57Ð2Ý8SÐ5Ð5å'7Ô'NÝ+Ø&2Ô&8¸Ô&;Ý'*¨9¡~¤~Ø&'Ø'(Ý$)¨#¡J¤Jðñ ô ð &2Ô%7¸Ô%:Ø%1Ô%7¸Ô%:Ø(,Ô(:Ô(FØ'+Ô'9Ô'HØ;Kð(ñ (ô (˜ð )5Ô(;˜Ø'Ô-¨aÔ0°AÒ5Ð5Ø26Ð/Ð/Ø)Ô/°Ô2°]ÒBÐBÝ3OÐP\Ñ3]Ô3]Ð2^Ð/Ð/à+Ô1°!Ô4°}ÒDÐDØ/;¸A¸A¸A¸q¸q¸qÀ.À=À.ÐRSÐRSÐRSÐ<SÔ/T Ý3IÈ,ÐXfÑ3gÔ3gÐ2hÐ/å˜F™œˆÝ˜5‘z”zˆØ#,Ð4˜R˜R°"ÐØÐ-Ñ-°Ò2Ð2Ý¥¤	¨-Ð:LÑ*LÑ MÔ MÐPbÑ bÑcÔcˆMØÐ,Ñ,°Ò1Ð1Ý�tœy¨Ð8JÑ)JÑKÔKÐN`Ñ`ÑaÔaˆLà%Ð1Ø*¨bÑ0ˆNØ)¨RÑ/ˆNà*Ô0°Ô3°~ÒEÐEØ-Ô3°AÔ6¸.ÒHÐHà-1Ð*Ð*à-G×-JÒ-JÐRVÔR]ÐeiÔeoÐ-JÑ-pÔ-pÐ*à$(Ð!Ø&.ÐK˜(˜(Õ4KˆØ# qÒ(ˆð M_ð  iÕ,¨^¸\Ð`lð  zHð  Iñ  Iô  Ið  Ið  eiˆØð 	; >Ð#=ÐBeÐ#=ÐnzÐ#=Ø(:Ð%ØÐ"ØHKÐO`ÐH`ÐH`Õ(DÐ(DÕfkÐlwÑfxÔfxÐ%Ð%å(-¨oÑ(>Ô(>Ð%ØÐ#Ð#Ð#Ð(AÀSÒ(HÐ(HÝ(DÐ%Ø%×+Ò+Ñ-Ô-ˆØ#ÐÝ�o¥tÑ,Ô,ð 	ðÝ',¨_×-@Ò-@ÐAWÐYmÑ-nÔ-nÑ'oÔ'oÐ$Ð$øÝ�zÐ*ð ð ð Ø�ðøøøàÐ'Ð+Ð+Ò+Ð+¨!Ò+Ð+Ð+Ð+Ø#'Ð Ø$%Ð!Ýˆyˆ~˜AÑÔ Ò"Ð" {Ð'>ÐGZÐ'>Ý(+¨A­sÐ3FÐ3KÈ!Ñ/LÔ/LÑ(MÔ(MÐ%Øœ×+Ò+Ð,<¸eÑDÔDˆð	8ð 	8ð 	8ð 	8ð 	8ð 	8ð
 ˜IÒ%Ð%Ý0°´¸TÔ=OÐQUÔQcÐeiÔerô  fGð  IMô  ITð  Vbð  {Að  dHð  dwð  dwð  GHð  JPð  Rcð  deô  Rfõ  hkð  luñ  hvô  hvð  xEð  GSõ  UZð  [^ñ  U_ô  U_õ  adð  eiñ  ajô  ajð  zGð  Vbð  muð  K^ð  pð  @ñ  @ô  @ð  BFð  FˆO‰OÝ˜œÕ'>Ñ?Ô?ñ x	Ø/Ð/ð 9ð 9ð 9Ø#�|ð9à / ð9õ ˜‘Y”Y�Yð9ð %�}ð	9ð
 #�lð9õ ˜y™>œ>˜>ð9õ ! ™:œ:˜:ð9ð +DÐ*Cð9ð &:Ð%9ð9õ %(¨Ñ$7Ô$7Ð$7ð9õ $)¨Ñ#5Ô#5Ð#5ð9ð *CÐ)Bð9ð !0 ð9ð &˜:ð9ð %8Ð$7ð9ð  %8Ð$7ð!9ð" $6Ð#5ð#9ð$ "2Ð!1ð%9õ& $)¨Ñ#9Ô#9Ð#9ð'9õ(   	Ñ*Ô*Ð*ð)9ð* ,˜mð+9ð, �vð-9ð.  .Ð5°øð/9ð0 '<Ð&C¸tøð19ð2 0?ÐH˜m˜mÀDøð39ð4 $6Ð#5ð59ð6 5XÐ4Wð79ð8 +DÐ*Cð99ð: ,FÐ+Eð;9ð< ,˜mð=9ð>  %˜uð?9ð@ %8Ð$7ðA9ðB ,FÐ+EðC9ðD /LÐ.KðE9ðF "˜ðG9ðH %8Ð$7ðI9ðJ !0 ðK9ðL *˜\ðM9ðN !0 ðO9ðP  .˜~ðQ9ðR "2Ð!1ðS9ðT %8Ð$7ðU9ðV 3TÐ2SðW9ðX *˜\ðY9ðZ +?Ð*>ð[9ð\ %9Ð$8ð]9ð^ &:Ð%9ð_9ð` #4Ð"3ða9ðb ,FÐ+Eðc9ðd 1PÐ0Oðe9ðf (>Ð'=ðg9ðh )@Ð(?ði9ðj  .˜~ðk9ðl ,˜mðm9ðn 'Ð3¨)øðo9ðp "Ð%6Ð6ÐK¸|Ð;Køðq9ˆO‰Oðv  "ÐØð Ø ×'Ò'å%*¨9Ñ%5Ô%5Ý#(¨¡>¤>Ý%*¨9Ñ%5Ô%5ðð ñô ð ð 0Ð/ð 3ð 3ð 3Ø#�|ð3à / ð3õ ˜‘Y”Y�Yð3ð %�}ð	3ð
 #�lð3õ ˜y™>œ>˜>ð3õ ! ™:œ:˜:ð3ð +DÐ*Cð3ð &:Ð%9ð3ð �vð3ð  .Ð5°øð3ð '<Ð&C¸tøð3ð 0?ÐH˜m˜mÀDøð3õ $)¨Ñ#9Ô#9Ð#9ð3ð *CÐ)Bð3ð  $6Ð#5ð!3ð" 5XÐ4Wð#3ð$ +DÐ*Cð%3ð& ,FÐ+Eð'3ð( ,˜mð)3ð*  %˜uð+3ð, %8Ð$7ð-3ð. ,FÐ+Eð/3ð0 /LÐ.Kð13ð2 "˜ð33ð4 %8Ð$7ð53ð6 !0 ð73ð8 *˜\ð93ð: !0 ð;3ð<  .˜~ð=3ð> "2Ð!1ð?3ð@ %8Ð$7ðA3ðB ,˜mðC3ðD &7Ð%6ðE3ðF 'Ð3¨)øðG3ðH "Ð%6Ð6ÐK¸|Ð;KøðI3ðJ 3TÐ2SðK3ðL *˜\ðM3ðN +?Ð*>ðO3ðP %9Ð$8ðQ3ðR &:Ð%9ðS3ðT #4Ð"3ðU3ðV ,FÐ+EðW3ðX 1PÐ0OðY3ðZ (>Ð'=ð[3ð\ )@Ð(?ð]3ð^  .˜~ð_3ð` '.Ð&7°%øða3ðb "2Ð!1Ø"ðe3ð 3ˆOðj ˆØˆÝ�o¥uÑ-Ô-ð 	+µ#°oÑ2FÔ2FÈ!Ò2KÐ2KØ9HÑ6ˆE�5˜,¨¨Ý˜­Ñ/Ô/ð 	+µC¸Ñ4HÔ4HÈAÒ4MÐ4MØ)8Ñ&ˆE�5˜,˜,à*‰LˆE�5àˆ=˜U˜]°K˜]À9˜]Ø�4àŒ?ð 	Ø�4Ý,ØØ+Ý 	™NœNÝ ™KœKÝ˜u™:œ:ð
ñ 
ô 
ˆð ÐØ�4à# A A AÐ'8Ð(8Ð'8¸'¸6¸'À6ÀEÀ6Ð$IÔJˆØð 	mØ)Ð)Ð)Ð)Ð)Ð)Ø"Ð.Ø#Ð#Ð$JÑKÔKÐKØ�< ¨l¸KÈÍcÌkÐZ_ÔN`ÔNn×NrÒNrð  tGð  IRñ  OSô  OSð  Ulð  Ulð  Ulð  Ulñ  mô  mð  mØ'ñ 		_ÝÔ! ,Ñ/Ô/ð mÝ"ð  $lñ  mô  mð  mÝÕ0Ñ1Ô1ˆHØÔ!¥U¤[Ò0Ð0Ø(ŸOšOµ%´-˜OÑ@Ô@×EÒEÀeÑLÔL×SÒSÐTWÐY\Ñ]Ô]×bÒbÐckÑlÔl�	Ø×"Ò" 9§>¢>°%Ñ#8Ô#8×#?Ò#?Ñ#AÔ#A×#HÒ#HÈÈeÑ#TÔ#T×#WÒ#WÕ^cÔ^iÐ#WÑ#jÔ#jÑkÔkÐkÐkà(ŸOšOµ%´-˜OÑ@Ô@×EÒEÀcÑJÔJ×OÒOÐPSÑTÔT×[Ò[Ð\_ÐadÑeÔe×jÒjÐksÑtÔt�	Ø×"Ò" 9§>¢>°#Ñ#6Ô#6×#;Ò#;¸CÑ#@Ô#@×#CÒ#CÈ,ÔJ\Ð#CÑ#]Ô#]Ñ^Ô^Ð^Ø*ÐNÖ/NÐØ+ÐPÖ0PÐØð 	Ð0ð 	Ø+7Ð+C˜<˜<ÈˆLØ(3Ð(?˜˜À\ˆJØXið  %_Ö$TÐ$Tö  p_Ð!Þ1°,ÀÈjÐZjÐlrÐtyð  Rgð  @Pð  @~ö  U~ð  ñ  ô  ˆLØ˜Š>ˆ>Ø'¨¨¨¨2¨A¨2¨Ô.ˆLØ%¨š>˜>¨[˜>�4�4ÐfkÐfw¸e¿lºl¹n¼n×>RÒ>RÑ>TÔ>T×>XÒ>XÑ>ZÔ>Z×>`Ò>`Ñ>bÔ>bÐ>bð  ~BˆØÐ H¤M°QÒ$6Ð$6ØŒ~˜aÔ  FÐ*Ð*¨x¬~¸aÔ/@À8Ä>ÐRSÔCTÒ/TÐ/TØ#œ:�Ý%(­°´Ð?UÖWhÑ)iÔ)iÑ%jÔ%jÐ"àØØ#=ð
ð 
ˆð
 ð 	4Ø ˆF�5‰MØ#0ˆF�<Ñ Ø&3ˆF�?Ñ#ØÐ#Ø%1ˆF�>Ñ"ØÐ%Ø(6ˆFÐ$Ñ%ØÐ(Ø<Ð<Ð<Ð<Ð<Ð<Ø-Ð-¨d°FÐ<MÐOhÐj}ð  @Ið  KNð  PYñ  Zô  ZˆFØˆs*   û&|ü|ü|ÁH?#AI# ÁI#AI7ÁI6AI7rr   )rp   N)r   NNNN)
r   Nr   NNr   NNNN©NNNN)?NNNNrV  rW  r”  Nr   r   NNNNNNNNNry   ry   Nr   r   r   Nr0  r”  Nr0  ry   r”  rX  r1  r   ry   rY  rZ  NNNNNNNNNr[  r   r\  r]  rH   r   NNNr   NNNNFN)r  r	  r
  r  rê  r4  r�   r‡   r™  r  re  r¨   ÚTensorrÀ  rË  rg  r6  r	   rP  rQ  ró  r•   Úslicer  rU  rð  r§   r4  r|   rv   rt   r!  r!  c  sƒ  € € € € € ð #œ^Ø!&¤Ø,0Ø $Ø(,ðG%ð G%ð ðG%ð ð	G%ð
 ðG%ð Œ{ðG%ð ”;ðG%ð  # T™zðG%ð  ™+ðG%ð 
ðG%ð G%ð G%ð G%ðRb
ð ðb
ð ð	b
ð
  # T™zðb
ð !$ d¡
ðb
ð b
ð b
ð b
ðH'ð '°°d±
ð 'ÀeÈEÌLÐZ_ÔZfÐLfÔFgð 'ð 'ð 'ð 'ð+ð +ð +ð +ð,7ð 7ð 7ð 7ðð ð ð ð #$ØØØ ØðB8ð B8à”ðB8ð ðB8ð ð	B8ð ðB8ð ðB8ð ðB8ð ðB8ð  ðB8ð 
Œ˜Ñ	ðB8ð B8ð B8ñ ÔðB8ðH ð"  Ø37ØØ/3Ø&*Ø"#ØØØ Øð39Yð 9Yð ð9Yð ð	9Yð
 ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð ð9Yð  ð!9Yð" #œ\¨DÑ0ð#9Yð$ ð%9Yð& œ¨Ñ,ð'9Yð( ˜t‘|ð)9Yð*  ð+9Yð4 
ˆuŒ|˜Uœ\¨DÑ0Ð0Ô	1°DÑ	8ð59Yð 9Yð 9Yñ Ôð9YðvS!ð S!ð S!ð S!ðj Ø€UÔÑÔð  $ØØØ/3Ø Ø Ø!$ØØ#$ØØØØØØØ'+Ø)-Ø-1Ø Ø!#Ø!#Ø+/Ø ØØ#$Ø04Ø$'Ø"%Ø(,ØØØØØØ$%Ø!#Ø,/Ø16ØØØØØØ#'Ø#Ø$(Ø-1ØØØØØØØØ ØØØØØ!ØØ#(Ø#ðC}
ð }
àð}
ð ˜‘*ð}
ð #&¨¡*ð}
ð ð}
ð ð}
ð ð}
ð !ð}
ð ð}
ð&   $™,ð'}
ð( $ d™lð)}
ð, ð-}
ð. ð/}
ð0 " D™Lð1}
ð2 ð3}
ð4 ð5}
ð6 !ð7}
ð8 " #œY¨Ñ-ð9}
ð: "ð;}
ð<  ð=}
ð>  ™ð?}
ð@ ðA}
ðB ðC}
ðD ðE}
ðF ðG}
ðH ðI}
ðJ "ðK}
ðL ðM}
ðN %*ðO}
ðP */ðQ}
ð` ˜T‘\ða}
ðb ˜sœ) dÑ*ðc}
ðd ðe}
ðf ðg}
ðh ði}
ðj ðk}
ðl ðm}
ðn ðo}
ð@ !ðA}
ðB ˜‘*ðC}
ð }
ð }
ñ Ôñ Ôð}
ð }
ð }
rv   r!  rr   )rw  )FrM  )rb  )¤rö  r™  rŽ   rç  rÿ  r  rq  Ú
contextlibr   Útypingr   r   r  Ú
torchaudioÚ
accelerater   Úsafetensors.torchr   Úshared.utilsr   rc  Úshared.utils.phase_progressr	   Úshared.cuda_memoryr   Úshared.utils.hdrr   r   r   Últx_core.conditioningr   r   r   Últx_core.model.audio_vaer   r   r   r   r   r^  r   r   r   Últx_core.model.upsamplerr   Últx_core.model.video_vaer   r   Ú0ltx_core.model.video_vae.diffusion_video_decoderr   Últx_core.text_encoders.gemmar   r    r!   r"   r#   r$   r%   Ú1ltx_core.text_encoders.gemma.embeddings_connectorr&   r'   Ú.ltx_core.text_encoders.gemma.feature_extractorr(   r)   r*   r+   Últx_core.typesr,   r-   Ú
inpaintingr.   r/   r0   r1   r2   r3   r4   r5   Ú
lora_utilsr6   r7   Últx2_runtimer8   r9   r:   r;   r<   r=   r>   r?   Últx_pipelines.distilledr@   Últx_pipelines.hdr_ic_lorarA   Últx_pipelines.ti2vid_two_stagesrB   Últx_pipelines.utils.media_iorC   Últx_pipelines.utils.constantsrD   rE   rF   Ú_GEMMA_FOLDERrb  r_  rñ  ró  rî  ré  Ú&LTX2_DISABLE_STAGE2_WITH_CONTROL_VIDEOrf  rú  r¨   rô  ré  rg  re  rs   r�   r•   ru   rƒ   r’   r˜   r­   r³   r‡   rÍ   rÑ   rÚ   rß   ré   rì   rû   r  r  rý   r  r  r  r>  rs  rv  rP  r�  r¢  r«  rÁ  rÕ  rÞ  râ  ré  rì  rð  r§   rQ  rý  r	  rN  r  r+  r>  rF  r!  r|   rv   rt   ú<module>rl     sÊ
  ðØ 
€
€
€
Ø €€€Ø €€€Ø €€€Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à €€€Ø Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dÐ dà xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xÐ xðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 BÐ AÐ AÐ AÐ AÐ AØ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XØ SÐ SÐ SÐ SÐ SÐ Sðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Ið  Ið  Ið  Ið  Ið  Ið  Ið  IØ \Ð \Ð \Ð \Ð \Ð \Ø ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ð ]Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð AÐ @Ð @Ð @Ð @Ð @Ð @Ð @ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 7Ð 6Ð 6Ð 6Ð 6Ð 6Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø DÐ DÐ DÐ DÐ DÐ DØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø mÐ mÐ mÐ mÐ mÐ mÐ mÐ mÐ mÐ mð 6€ØHÐ ØÐ Ø!Ð Ø"Ð Ø%1Ð "ØÐ Ø)-Ð &Ø#Ð Ø#Ð Ø�eÐ2Ñ3Ô3Ð ØÐ ð Ð ð%Ð !ð@ !uÐ tÐ tÐ ð<°°t±ð <Àð <ð <ð <ð <ðw°C¸$±Jð wÐSVð wÐ[_ð wð wð wð wð
ð ð ð D¨ð Dð Dð Dð Dðð ¸SÀ4¹Zð ð ð ð ð<˜Sð  Sð ð ð ð ð(˜dð (°d¸T±kð (ð (ð (ð (ðVð ð ð dð °Cð ð ð ð ð( #ð ð ð ð ð°ð ¸cð ð ð ð ð6¨Cð ð ð ð ð¨$ð °4ð ð ð ð ð ð ð ð ð �u”x”ñ ô ð ðð ð ð ð �E”H”Oñ ô ð ð-ð -ð -ð -ð -ñ -ô -ð -ð$-ð $-ð $-ð $-ð $-�U”X”_ñ $-ô $-ð $-ðN)!ð )!ð )!ð )!ð )!ñ )!ô )!ð )!ðXIS¨5¬8¬?ð IS¸tð ISð ISð ISð ISðXð ð ð<ð <¸#ð <ð <ð <ð <ð@[¨cð [¸3ð [ð [ð [ð [ð:_ tð _ð _ð _ð _ð+Ðaeð +Ðjmð +ð +ð +ð +ð %¸ð %ð %ð %ð %ð\ ð*ð *àð*ð ð*ð ð	*ð
 ð*ð ð*ð *ð *ð *ð<) ð )¨Sð )°Sð )ð )ð )ð )ð cð ¨cð ð ð ð ð°ð ¸ð ð ð ð ð°ð À#ð È#ð ð ð ð ð!X C¨%¡K°$Ñ$6¸Ñ$=ð !XÀEÈDÁLð !XÐUaÐdhÑUhð !Xð !Xð !Xð !XðH°s¸T±zð ð ð ð ð, 26Ø"&Ø"&Ø!%ð0ð 0Ø�E”LÔ! E¤LÑ0ð0à˜b $˜hÔ'¨$Ñ.ð0ð ˜4‘Zð0ð ˜4‘Zð	0ð
 ˜$‘Jð0ð „\�DÑð0ð 0ð 0ð 0ðt ð+ð +Ø”, Ñ%ð+à” Ñ$ð+ð ð+ð ð	+ð
 ð+ð „\ð+ð +ð +ð +ð@
¨¬°tÑ(;ð 
ÀEð 
Èdð 
ð 
ð 
ð 
ð0¨U¬\¸DÑ-@ð 0ÈÈcÐSVÐX[Ð]`ÐN`ÔHaÐdhÑHhð 0Ðqvð 0Ð{ð 0ð 0ð 0ð 0ðoð oð oð oð oñ oô oð oð oð orv   