§
    Û×ja  ã                   óþ  — d Z ddlZddlZddlmZ ddlmZ  ee¦  «                             ¦   «         j	        d         dz  dz  Z
 eh d£¦  «        Z eh d	£¦  «        Zi d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d"d#œ¥e                     d$d%¦  «        ¥e                     d&d'¦  «        ¥Z eh d(£¦  «        Zed)efd*„¦   «         Zd+d,d-œZd)efd.„Zd)efd/„Zd)efd0„Zd)efd1„ZdS )2a÷  Setting-name validation shared by every generation entry point.

Accepted names are the shared catalog in models/_settings.json, the non-setting keys that travel with
settings (identity, versioning, UI transport and the metadata WanGP writes into saved media), and retired
names that older saved settings, queues and defaults may still carry; retired names are ignored rather than rejected.
Other media metadata (written by tools and plugins) is not a setting: split_settings separates it before reuse.
é    N)Úcache)ÚPathé   Úmodelsz_settings.json>$   ÚhdrÚhelpÚmodeÚtaskÚtypeÚstateÚtargetÚmodulesÚis_imageÚpriorityÚsend_cmdÚ	window_noÚ
model_typeÚplugin_dataÚcreation_dateÚhdr_video_crfÚimage_qualityÚloras_choicesÚvideo_qualityÚdeepy_media_idÚmodel_filenameÚbase_model_typeÚframe_schedulerÚgeneration_timeÚdeepy_session_idÚimage_mask_guideÚprofile_priorityÚsettings_versionÚcustom_guide_usedÚgallery_media_idsÚcreation_timestampÚdeepy_media_fingerprintÚ_settings_bundle_task_countÚtransformer_loras_filenamesÚspatial_upsampler_parametersÚtransformer_loras_multipliers>   ÚfpsÚpaceÚshiftÚpromptsÚ	lset_nameÚ
slg_layersÚ
slg_switchÚexaggerationÚslg_end_percÚMMAudio_promptÚsample_solversÚsampler_solverÚsampling_stepsÚscheduler_typeÚslg_start_percÚMMAudio_settingÚadaptive_switchÚaudio_cfg_scaleÚenhanced_promptÚoverride_compileÚoverride_profileÚaudio_postprocessÚtea_cache_settingÚMMAudio_neg_promptÚoverride_attentionÚenhanced_alt_promptÚseedvc_voice_sampleÚseedvc_voice_sample2Útea_cache_start_step_percÚspatial_upsampler_face_countÚstepsÚnum_inference_stepsÚ	num_stepsÚinference_stepsÚwidthzresolution ("WIDTHxHEIGHT")ÚheightÚsizeÚaspect_ratioÚcfgÚguidance_scaleÚ	cfg_scaleÚguidanceÚsamplerÚsample_solverÚ	schedulerÚsolverÚframesÚvideo_lengthÚ
num_framesÚdurationÚduration_secondsÚnegativeÚnegative_promptÚactivated_loras)ÚloraÚloras)ÚnameÚfilenameÚoutput_nameÚoutput_filename)ÚacceleratorÚaccelerator_profileÚprofilez!an accelerator profile's settings>
   Ú	max_widthÚ
max_heightÚacceleratedÚmedia_inputsÚresolution_minÚvae_block_sizeÚlock_resolutionsÚresolution_budgetÚallowed_resolutionsÚresolution_budget_tiledÚreturnc                  óv   — t          t          j        t                               d¬¦  «        ¦  «        ¦  «        S )Nzutf-8)Úencoding)Ú	frozensetÚjsonÚloadsÚSETTINGS_CATALOGÚ	read_text© ó    úBC:\Users\johnn\OneDrive\Documents\AI\shared\utils\setting_names.pyÚcatalog_setting_namesr   .   s,   € å•T”ZÕ 0× :Ò :ÀGÐ :Ñ LÔ LÑMÔMÑNÔNÐNr}   z>frame numbers separated by spaces, such as "181" or "1 97 181"z"WIDTHxHEIGHT")Úframes_positionsÚ
resolutionc                  ó>   — t          ¦   «         t          z  t          z  S ©N)r   ÚNON_SETTING_KEYSÚDEPRECATED_SETTING_KEYSr|   r}   r~   Úaccepted_setting_namesr†   7   s   € Ý Ñ"Ô"Õ%5Ñ5Õ8OÑOÐOr}   c                 ó<   ‡— t          ¦   «         Šˆfd„| D ¦   «         S )Nc                 ó   •— g | ]}|‰v¯|‘Œ	S r|   r|   )Ú.0rc   Úaccepteds     €r~   ú
<listcomp>z)unknown_setting_names.<locals>.<listcomp>=   s#   ø€ Ð>Ð>Ð>�T¨°XÐ)=Ð)=ˆDÐ)=Ð)=Ð)=r}   )r†   ©ÚsettingsrŠ   s    @r~   Úunknown_setting_namesrŽ   ;   s(   ø€ Ý%Ñ'Ô'€HØ>Ð>Ð>Ð>˜XÐ>Ñ>Ô>Ð>r}   c                 ó    ‡— t          ¦   «         Šˆfd„|                      ¦   «         D ¦   «         ˆfd„|                      ¦   «         D ¦   «         fS )z]Separate reusable settings from other metadata, such as saved-media details written by tools.c                 ó$   •— i | ]\  }}|‰v ¯	||“ŒS r|   r|   ©r‰   rc   ÚvaluerŠ   s      €r~   ú
<dictcomp>z"split_settings.<locals>.<dictcomp>C   s)   ø€ ÐPÐPÐP™K˜D %¸tÀxÐ?OÐ?OˆD�%Ð?OÐ?OÐ?Or}   c                 ó$   •— i | ]\  }}|‰v¯	||“ŒS r|   r|   r‘   s      €r~   r“   z"split_settings.<locals>.<dictcomp>C   sX   ø€ ð  S\ð  S\ð  S\ÑcnÐcgÐinð  GKð  S[ð  G[ð  G[ÐSWÐY^ð  G[ð  G[ð  G[r}   )r†   ÚitemsrŒ   s    @r~   Úsplit_settingsr–   @   s‹   ø€ å%Ñ'Ô'€HØPÐPÐPÐP¨8¯>ª>Ñ+;Ô+;ÐPÑPÔPð  S\ð  S\ð  S\ð  S\Ðrz÷  sAò  sAñ  sCô  sCð  S\ñ  S\ô  S\ð  \ð  \r}   c                 ó^  ‡ — ˆ fd„t           D ¦   «         }|r!d                     ˆ fd„|D ¦   «         ¦  «        S t          ‰ ¦  «        }|sdS g }|D ]®}|t          v r|                     |› d�¦  «         Œ$t
                               |                     ¦   «         ¦  «        p>t          t          t          j        |t          ¦   «         dd¬¦  «        ¦  «        d¦  «        }|                     |r|› d	|› d
�n|¦  «         Œ¯dt          |¦  «        dk    rdnd› dd                     |¦  «        › d�S )zvUnknown setting names, or a string setting given another type, as one message; empty when the settings are acceptable.c                 ót   •— g | ]4}‰                      |¦  «        ®t          ‰|         t          ¦  «        °2|‘Œ5S rƒ   )ÚgetÚ
isinstanceÚstr©r‰   rc   r�   s     €r~   r‹   z"settings_error.<locals>.<listcomp>H   sB   ø€ ÐwÐwÐw�d°·²¸TÑ0BÔ0BÐ0NÕWaÐbjÐkoÔbpÕruÑWvÔWvÐ0NˆTÐ0NÐ0NÐ0Nr}   ú c           	   3   ó¢   •K  — | ]I}|› d |t           v rdt           |         z   nd› dt          ‰|         ¦  «        j        › d‰|         ›d�V — ŒJdS )z must be a stringú: Ú z, not r�   ú.N)ÚSTRING_FORMATSr   Ú__name__rœ   s     €r~   ú	<genexpr>z!settings_error.<locals>.<genexpr>J   sÖ   øè è € ð  ~ð  ~ð  pt˜4ð  kð  kÐQUÕYgÐQgÐQg°$½ÈÔ9MÑ2MÐ2MÐmoð  kð  kÕw{ð  }Eð  FJô  }Kñ  xLô  xLô  xUð  kð  kð  X`ð  aeô  Xfð  kð  kð  kð  ~ð  ~ð  ~ð  ~ð  ~ð  ~r}   r    z, (model information, not a setting: omit it)é   g      è?)ÚnÚcutoffz (use ú)zUnknown settingÚsrŸ   z, z3. Model-specific options belong in custom_settings.)r¢   ÚjoinrŽ   ÚMODEL_INFO_KEYSÚappendÚSETTING_HINTSr™   ÚlowerÚnextÚiterÚdifflibÚget_close_matchesr   Úlen)r�   ÚwrongÚunknownÚ	describedrc   Úhints   `     r~   Úsettings_errorr¸   F   s»  ø€ àwÐwÐwÐw�nÐwÑwÔw€EØð ~Ø�xŠxð  ~ð  ~ð  ~ð  ~ð  x}ð  ~ñ  ~ô  ~ñ  ~ô  ~ð  	~Ý# HÑ-Ô-€GØð ØˆrØ€IØð Cð CˆØ•?Ð"Ð"Ø×Ò ÐRÐRÐRÑSÔSÐSØÝ× Ò  §¢¡¤Ñ.Ô.ð  Mµ$µt½GÔ<UÐVZÕ\qÑ\sÔ\sÐwxð  BFð  =Gñ  =Gô  =Gñ  8Hô  8Hð  JLñ  3Mô  3MˆØ×Ò°4ÐA˜DÐ/Ð/¨Ð/Ð/Ð/Ð/¸TÑBÔBÐBÐBð J¥C¨¡L¤L°1Ò$4Ð$4˜S˜S¸"ð  Jð  JÀÇ	Â	È)Ñ@TÔ@Tð  Jð  Jð  Jð  Jr}   )Ú__doc__r±   rx   Ú	functoolsr   Úpathlibr   Ú__file__ÚresolveÚparentsrz   rw   r„   r…   ÚdictÚfromkeysr­   r«   r   r¢   r†   ÚlistrŽ   Útupler–   r›   r¸   r|   r}   r~   ú<module>rÃ      sá  ððð ð €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à�4˜‘>”>×)Ò)Ñ+Ô+Ô3°AÔ6¸ÑAÐDTÑTÐ à�9ð ð ð ñ ô Ð ð $˜)ð %ð %ð %ñ ô Ð ðØÐ"ðØ$/Ð1FðØHYÐ[pðàÐ*ðà,4Ð6SðàU[Ð]zðð }Kð  Mjðð 
Ððð )Ð*:ðð =GÐHXðð ˆð	ð !,¨_ð	ð ?GÈð	ð
 ˆnðð
 +¨Nðð
 =GÐHZðð
 ]gÐhyðð Ð(9ðð ð ð >B¿]º]ÐKnð  qBñ  >Cô  >Cðð ‡m‚mÐEÐGjÑkÔkð€ð �)ð  Vð  Vð  Vñ  Wô  W€ð ðO˜yð Oð Oð Oñ „ðOð
 'gð  wGð  Hð  H€ðP 	ð Pð Pð Pð Pð? tð ?ð ?ð ?ð ?ð
\ ð \ð \ð \ð \ðJ ð Jð Jð Jð Jð Jð Jr}   