o ¶ñyfÿã@sjddlZddlZddlZddlZddlZddlmZddlmZdd„Z dd„Z dd „Z d d œd d „Z dS)éN)ÚThread)Ú startup_timerc Cst d¡ tj¡t d¡ dd„¡ddl}t d¡ddl}t d¡t j dt dd t j dt d d t j d d ¡ddl}t d ¡ddlm}m}m}m}t d¡ddl}t d¡ddl}t d¡ddlm} |  ¡t d¡ddlm} m} m} t d¡dS)Nztorch.distributed.nnÚxformerscSs d| ¡vS)Nz"A matching Triton is not available)Ú getMessage)Úrecord©rúcC:\Users\Luke\Documents\Stable diffusion\Automatic1111\stable-diffusion-webui\modules\initialize.pyÚ s zimports..rz import torchÚignoreÚpytorch_lightning©ÚactionÚcategoryÚmoduleÚ torchvisionZGRADIO_ANALYTICS_ENABLEDÚFalsez import gradio)ÚpathsÚtimerÚ import_hookÚerrorsz setup pathsz import ldmz import sgm)Ú shared_initzinitialize shared)Ú processingÚgradio_extensonsÚuiz other imports)ÚloggingÚ getLoggerÚsetLevelÚERRORÚ addFilterÚtorchrrr ÚwarningsÚfilterwarningsÚDeprecationWarningÚ UserWarningÚosÚenvironÚ setdefaultÚgradioÚmodulesrrrrZldm.modules.encoders.modulesZsgm.modules.encoders.modulesrÚ initializerrr) rr r'rrrrZldmZsgmrrrrrrrÚimports s,        r*cCs.ddlm}|jsddlm}| ¡dSdS)Nr©Úcmd_opts)r)Úmodules.shared_cmd_optionsr,Úskip_version_checkr(rÚcheck_versions)r,rrrrr/+s   þr/cCsÈddlm}| ¡| ¡| ¡| ¡| ¡| ¡ddlm}|  ¡t   d¡ddl m }ddlm}tjdtdd |  |j¡t   d ¡dd lm}|  |j¡t   d ¡td ddS)Nr©Úinitialize_util©Ú sd_modelszsetup SD modelr+)Úcodeformer_modelr z(torchvision.transforms.functional_tensorr zsetup codeformer)Ú gfpgan_modelz setup gfpganF©Úreload_script_modules)r(r1Úfix_torch_versionÚfix_pytorch_lightningÚfix_asyncio_event_loop_policyÚvalidate_tls_optionsÚconfigure_sigint_handlerÚconfigure_opts_onchanger3Z setup_modelrrr-r,r4r r!r#Úcodeformer_models_pathr5Úgfpgan_models_pathÚinitialize_rest)r1r3r,r4r5rrrr)3s&          r)Fr6cszddlm}ddlm}| ¡t d¡ddlm}| ¡t d¡ddlm }|  ¡t d¡dd lm ‰m }m }|jrL| ¡jˆ_| ¡d Sdd lm}| ¡t d ¡dd lm}| |j¡t d¡t d¡ | ¡Wd ƒn1s€wY|r¢ˆjjr¢dd„tj ¡DƒD]} t | ¡q•t d¡ddlm} |   ¡t d¡ddlm!} |  "¡t d¡ddlm#} | j# $¡t d¡ddlm%} m&}m'‰|  (|j)¡ˆ )¡t d¡ddlm*}| +¡t d¡‡‡fdd„}ˆjj,s t-|d .¡dd lm/}| 0¡t d!¡dd"lm1}| 2¡| 3¡dd#lm4}| 2¡| 5¡t d$¡d S)%zE Called both from initialize() and when reloading the webui. rr+)Ú sd_samplersz set samplers)Ú extensionszlist extensionsr0zrestore config state file)ÚsharedÚupscalerÚscriptsNr2zlist SD models)Ú localizationzlist localizationsz load scriptscSsg|] \}}| d¡r|‘qS)z modules.ui)Ú startswith)Ú.0ÚnamerrrrÚ rsz#initialize_rest..zreload script modules)Ú modelloaderzload upscalers)Úsd_vaez refresh VAE)Útextual_inversionz#refresh textual inversion templates)Úscript_callbacksÚsd_hijack_optimizationsÚ sd_hijackzscripts list_optimizers)Úsd_unetzscripts list_unetscs8ddlm}| ¡ˆjˆjdurˆ ¡| ¡dS)a* Accesses shared.sd_model property to load model. After it's available, if it has been loaded before this access by some extension, its optimization may be None because the list of optimizers has not been filled by that time, so we apply optimization again. r©ÚdevicesN)r(rSZtorch_npu_set_deviceÚsd_modelZcurrent_optimizerZapply_optimizationsZfirst_time_calculationrR©rPrCrrÚ load_model‹s   z#initialize_rest..load_model)Útarget)Ú shared_itemszreload hypernetworks)Úui_extra_networks)Úextra_networkszinitialize extra networks)6r-r,r(rAZ set_samplersrrrBÚlist_extensionsr1Úrestore_config_state_filerCrDrEÚ ui_debug_modeZUpscalerLanczosZscalersZ sd_upscalersZ load_scriptsr3Z list_modelsrFZlist_localizationsÚlocalizations_dirÚ subcategoryÚoptsZenable_reloading_ui_scriptsÚsysÚitemsÚ importlibÚreloadrKZload_upscalersrLZrefresh_vae_listrMZ list_textual_inversion_templatesrNrOrPZon_list_optimizersZlist_optimizersrQZ list_unetsÚskip_load_model_at_startrÚstartrXZreload_hypernetworksrYr)Zregister_default_pagesrZZregister_default_extra_networks)r7r,rArBr1rDrEr3rFrrKrLrMrNrOrQrVrXrYrZrrUrr@Nsr               ÿ                   r@) rcrr$rar Ú threadingrÚ modules.timerrr*r/r)r@rrrrÚs