§
    ÎÐjš   ã            
       óœ   — d dl mZ ddlmZ d dlmZmZmZ d dlZd dl	m
Z
 ddlmZ dZd	Zd
ZdZdZdZddddddddddœ	Z G d„ d¦  «        ZdS )é    )Ú
merge_helpé   )Ú	MAGI_HELP)ÚAnyÚDictÚTupleN)Úbuild_hf_url)ÚMAGI_HUMAN_ENHANCED_PROMPTzDeepBeepMeep/MagiHumanzt5gemma-9b-9b-ul2z"t5gemma-9b-9b-ul2_bf16.safetensorsz.t5gemma-9b-9b-ul2_quanto_bf16_int8.safetensorsÚmagi_human_distillÚ
magi_humané   éÜ   g      @Té   g       @Fgffffffæ?)	Úsr_cfg_numberÚsr_num_inference_stepsÚsr_noise_valueÚsr_video_txt_guidance_scaleÚuse_cfg_trickÚcfg_trick_start_frameÚcfg_trick_valueÚusing_sde_flagÚsr_audio_noise_scalec            	       óŽ  — e Zd Zed„ ¦   «         Zedeeeef         eeef         f         fd„¦   «         Z	ed„ ¦   «         Z
ed„ ¦   «         Zed„ ¦   «         Zededeeef         fd	„¦   «         Zedd„¦   «         Zedd
ej        ej        ddd
d
fd„¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd
S )Úfamily_handlerc                  ó   — t           t          gS ©N)Ú	BASE_ARCHÚDISTILL_ARCH© ó    úLC:\Users\johnn\OneDrive\Documents\AI\models\magi_human\magi_human_handler.pyÚquery_supported_typesz$family_handler.query_supported_types    s   € å�<Ð(Ð(r    Úreturnc                  ó<   — t           t          it          t           gifS r   )r   r   r   r    r!   Úquery_family_mapsz family_handler.query_family_maps$   s   € å�iÐ(­9µ|°nÐ*EÐEÐEr    c                  ó   — dS )Nr   r   r   r    r!   Úquery_model_familyz!family_handler.query_model_family(   s   € àˆ|r    c                  ó
   — ddiS )Nr   )é>   z
Magi Humanr   r   r    r!   Úquery_family_infosz!family_handler.query_family_infos,   s   € àÐ0Ð1Ð1r    c                 ó    — | t           k    rdS dS )Nr   r   )r   )Úbase_model_types    r!   Úget_lora_dirzfamily_handler.get_lora_dir0   s   € à�iÒ'Ð'Ø�<Ø#Ð#r    r,   Ú	model_defc                 óz  — | t           k    }i dd“dd“dd“dd“dd“d	d“d
ddgdddœddœ“dd“ddg“d| “d|rdnd“d|“d|“d| g“dd“dd“d d!“d"d"ddddddd#d"d$d%œd&ddt          t          t          t          t          ¦  «        t          t          t          t
          ¦  «        gt          t          d'| › d(�d)d|rdndd*œ¥}|                     |¦  «         d+|v rNt           	                    ¦   «         D ]\  }}| 
                    ||¦  «         Œ|                     dd,dd-œ¦  «         t          |t          ¦  «        S ).NÚtiny_vae_architectureÚti2v_2_2Úreturns_audioTÚany_audio_promptÚaudio_prompt_choicesÚaudio_guide_labelzDriving AudioÚaudio_guide_window_slicingÚaudio_prompt_type_sourcesÚ ÚAz0Generate Video & Soundtrack based on Text Promptz2Generate Video based on Soundtrack and Text Prompt)r8   r9   F)Ú	selectionÚlabelsÚ
show_labelÚmultimedia_generationÚsample_solvers)ÚUniPCÚunipcÚaudio_guidanceÚguidance_max_phasesr   r   Úlock_inference_stepsÚno_negative_promptÚprofiles_dirÚgroupr   Úfpsé   Úframes_minimumé   é   éû   ée   )Úoverlap_minÚoverlap_maxÚoverlap_stepÚoverlap_defaultÚ
window_minÚ
window_maxÚwindow_stepÚwindow_defaultÚSVLzmodels/magi_human/configs/z.jsoné    )Úlatent_sizeÚframes_stepsÚsliding_windowÚsliding_window_defaultsÚimage_prompt_types_allowedÚmultiple_images_as_text_promptsÚmultiple_submodelsÚtext_encoder_folderÚtext_encoder_URLsÚ!text_prompt_enhancer_instructionsÚ"video_prompt_enhancer_instructionsÚconfig_fileÚvae_block_sizerB   Úvisible_phasesÚURLs2é   )r^   rB   Úlock_guidance_phases)r   ÚTEXT_ENCODER_FOLDERr	   ÚMAGI_HUMAN_REPOÚTEXT_ENCODER_BF16ÚTEXT_ENCODER_QUANTOr
   ÚupdateÚSR_MODEL_DEFAULTSÚitemsÚ
setdefaultr   r   )r,   r.   Ú
is_distillÚextra_model_defÚkeyÚvalues         r!   Úquery_model_defzfamily_handler.query_model_def6   sG  € à$­Ò4ˆ
ð1
Ø# Zð1
à˜Tð1
ð  ð1
ð # Dð	1
ð
   ð1
ð )¨$ð1
ð (Ø  #˜YØQð  YMð  Nð  NØ#ð*ð *ð1
ð $ Tð1
ð Ð1Ð2ð1
ð  *˜nð1
ð "¨
Ð#9 1 1¸ð1
ð  # Jð!1
ð" ! *ð#1
ð$ ˜_Ð-ð%1
ð& �\ð'1
ð( �2ð)1
ð* ˜bð+1
ð, ØØ"à Ø Ø !Ø#$Ø Ø!Ø Ø"%ð	(ð 	(ð +0Ø/3Ø"'Ý#6å�_Õ.AÕCTÑUÔUÝ�_Õ.AÕCVÑWÔWð"õ 2LÝ2LØN¸ÐNÐNÐNØ Ø#$Ø#-Ð4˜a˜a°1ða1
ð 1
ð 1
ˆðd 	×Ò˜yÑ)Ô)Ð)Ø�oÐ%Ð%Ý/×5Ò5Ñ7Ô7ð 7ð 7‘
��UØ×*Ò*¨3°Ñ6Ô6Ð6Ð6Ø×"Ò"Ø&*Ø'(Ø(,ð$ð $ñ ô ð õ
 ˜/­9Ñ5Ô5Ð5r    Nc                 óL   — t           t          ddgg d¢ddgddggdœd	d
gdggdœgS )Nzstable-audio-open-1.0Ú	turbo_vae)zconfig.jsonzgeneration_config.jsonzspecial_tokens_map.jsonztokenizer.jsonztokenizer.modelztokenizer_config.jsonzmodel_config.jsonzmodel.safetensorsz"TurboV3-Wan22-TinyShallow_7_7.jsonz)TurboV3-Wan22-TinyShallow_7_7.safetensors)ÚrepoIdÚsourceFolderListÚfileListzDeepBeepMeep/Wan2.2r8   zWan2.2_VAE.safetensors)rj   ri   )ÚcomputeListr,   r.   s      r!   Úquery_model_filesz family_handler.query_model_filesv   sm   € õ *Ý%8Ð:QÐS^Ð$_ð Wð  Wð  WØ(Ð*=Ð>Ø9Ð;fÐgððð ð 0Ø%' DØ6Ð7Ð8ðð ð
ð 	
r    Fc                 óÂ   — ddl m}  || |||||||||	¬¦
  «
        }|j        |j        j        |j        j        |j        j        |j        dœ}|j	        �
|j	        |d<   ||fS )Nr   )ÚMagiHumanModel)
Úmodel_filenameÚ
model_typer,   r.   Útext_encoder_filenameÚquantizeTransformerÚdtypeÚ	VAE_dtypeÚmixed_precision_transformerÚsave_quantized)ÚtransformerÚtext_encoderÚvaeÚ	audio_vaerw   Útransformer2)
Úmagi_human_modelr~   r‡   rˆ   Úmodelr‰   rŠ   Ú	vae_modelrw   r‹   )r   r€   r,   r.   r‚   Útext_encoder_quantizationrƒ   r„   r…   r†   Úsubmodel_no_listr�   Úkwargsr~   Ú
magi_modelÚpipes                   r!   Ú
load_modelzfamily_handler.load_model‰   s¡   € ð  	5Ð4Ð4Ð4Ð4Ð4à#�^Ø)Ø!Ø+ØØ"7Ø 3ØØØ(CØ)ð
ñ 
ô 
ˆ
ð &Ô1Ø&Ô3Ô9Ø”>Ô'Ø#Ô-Ô7Ø#Ô-ð
ð 
ˆð Ô"Ð.Ø#-Ô#:ˆD�Ñ Ø˜4ÐÐr    c                 ó   — d S r   r   )r,   Úsettings_versionr.   Úui_defaultss       r!   Úfix_settingszfamily_handler.fix_settings²   s   € àˆr    c                 óH   — d|d<   | t           k    rd S d|d<   d|d<   d|d<   d S )Nr   Úsliding_window_overlapç      ð?Úguidance_scaleÚaudio_guidance_scaleé   Únum_inference_steps)r   )r,   r.   Úinputss      r!   Úvalidate_generative_settingsz+family_handler.validate_generative_settings¶   sD   € à+,ˆÐ'Ñ(Ø�lÒ*Ð*ØˆFØ#&ˆÐÑ Ø),ˆÐ%Ñ&Ø()ˆÐ$Ñ%Ð%Ð%r    c                 óÔ   — |                      dddddddddd	œ	¦  «         d
|v rd|d<   | t          k    r|                      ddddœ¦  «         d S |                      ddddœ¦  «         d S )Nr@   g      @ÚFGÚSr8   rM   r   r   )	Úsample_solverÚ
flow_shiftÚmulti_prompts_gen_typeÚimage_prompt_typeÚaudio_prompt_typeÚvideo_lengthÚsliding_window_sizerš   Ú"sliding_window_discard_last_framesrf   rg   Úguidance_phasesrW   )rœ   r�   rŸ   r›   rž   )rm   r   )r,   r.   r—   s      r!   Úupdate_default_settingsz&family_handler.update_default_settings¿   sÎ   € à×ÒØ$ØØ&*Ø!$Ø!#ØØ#&Ø&'Ø23ð

ð 

ñ 
	ô 
	ð 
	ð �iÐÐØ-.ˆKÐ)Ñ*Ø�iÒ'Ð'Ø×ÒØ"%Ø(+Ø')ð ð  ñ ô ð ð ð ð ×ÒØ"%Ø(+Ø'(ð ð  ñ ô ð ð ð r    c                 ó&   — ddl m}  |dd¦  «        S )Nr   )Úget_rgb_factorsÚwanr1   )Úshared.RGB_factorsr°   )r,   r°   s     r!   r°   zfamily_handler.get_rgb_factorsÛ   s&   € à6Ð6Ð6Ð6Ð6Ð6àˆ˜u jÑ1Ô1Ð1r    r   )Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr"   r   r   ÚstrÚlistr%   r'   r*   r-   r   ru   r|   ÚtorchÚbfloat16Úfloat32r”   r˜   r¡   r®   r°   r   r    r!   r   r      sÆ  € € € € € Øð)ð )ñ „\ð)ð ðF˜u T¨#¨s¨(¤^°T¸#¸t¸)´_Ð%DÔEð Fð Fð Fñ „\ðFð ðð ñ „\ðð ð2ð 2ñ „\ð2ð ð$ð $ñ „\ð$ð
 ð=6¨ð =6¸¸cÀ3¸h¼ð =6ð =6ð =6ñ „\ð=6ð~ ð
ð 
ð 
ñ „\ð
ð$ ð "Ø"&ØŒnØ”-Ø$)ØØØ"ð& ð & ð & ñ „\ð& ðP ðð ñ „\ðð ð*ð *ñ „\ð*ð ðð ñ „\ðð6 ð2ð 2ñ „\ð2ð 2ð 2r    r   )Úmodels.help_sharedr   Úinfosr   Útypingr   r   r   r¹   Úshared.utils.hfr	   Úprompt_enhancersr
   rj   ri   rk   rl   r   r   rn   r   r   r    r!   ú<module>rÁ      sû   ðà )Ð )Ð )Ð )Ð )Ð )Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #à €€€à (Ð (Ð (Ð (Ð (Ð (Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8ð +€Ø)Ð Ø8Ð ØFÐ Ø#€Ø€	àØØØ#&ØØØØØð
ð 
Ð ð@2ð @2ð @2ð @2ð @2ñ @2ô @2ð @2ð @2ð @2r    