o yfB1@sddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z ddl mZddlZddlZddZddZdgZd d Zd d Zd dZdS)N)sharedimages sd_modelssd_vaesd_models_configerrors)plaintext_to_htmlcCs|durdSt|\}}id|i|}d}|D]\}}|dtt|dtt|dd7}qt|dkrEd }d |d }d||fS) N)r r parametersr z

z

z

 rzNothing found in the image.z

z

)rread_info_from_imageitemsrstrstriplen)imagegeninfor infokeytextmessager_C:\Users\Luke\Documents\Stable diffusion\Automatic1111\stable-diffusion-webui\modules\extras.py run_pnginfos"     rc Csdd}|dkr||p||p||}n|dkr||}n |dkr'||}nd}|dur/dStj|\}}|d} tdtd|td | t|| dS) NcSs$|rt|nd}|tjkr|SdSN)r$find_checkpoint_config_near_filenamersd_default_config)xresrrrconfig(szcreate_config..configrz.yamlzCopying config:z from:z to:)ospathsplitextprintshutilcopyfile) Z ckpt_result config_sourceabcrcfgfilename_Zcheckpoint_filenamerrr create_config's     r/z?cond_stage_model.transformer.text_model.embeddings.position_idscCs|r |jtjkr |S|Sr)dtypetorchfloathalf)tensorenablerrrto_halfDsr6cCsHi}|||fD]}tj|d}|durq||jqtj|dddS)NF)indent ensure_ascii)rcheckpoints_listgetupdatemetadatajsondumps)primary_model_namesecondary_model_nametertiary_model_namer=checkpoint_namecheckpoint_inforrr read_metadataKsrEc1stjjdddd}dd}dd}d d }fd d }fd d}fdd}|d|f|||f|ddfd}||\}}}|rHdnd|rMdndtj_|sX|dStj||re|se|dS|rltj|nd|rz|sz|d|dS|rtj|ndd}d}|rdtj_tdjdtj jdd}nd}|rdtj_tdjdtj jdd}dtj_t | tj_ t | D]5}|tvrqd |vr||vr||t||} |||| ||<n t||||<tjjd7_q~tjdjdtj_tdjdtj jdd}!td!d"tj_t |! tj_ t |! D]}|r2d |vr2||vr2|tvrPq9|!|}"||}#|"j|#jkr!|"jdd|"jd#d|#jdd|#jd#dkr!|"jdd$kr|#jdd%krtd&|"jdd$kr|#jdd'krtd(|"jdd'kr|#jdd$kr||"dddd$ddddf|#|!|dddd$ddddf<d)}nN|"jdd%kr|#jdd$ksJd*|d+|"jd,|#j||"dddd$ddddf|#|!|dddd$ddddf<d)}n||"|#|!|<t|!|||!|<tjjd7_q9~tj| d}$|$durvtd-|$d.tj_tj|$dd}%|% D]}d/|}&|&|!vrst|%|||!|&<q_~%|r|s|! D] }t|!|||!|<q| rt| }'t|!D]}t|'|r|!|dqtjj ptj!}(|d0kr|n||rd1nd07|rd2nd07d3|7t"j#$|(})tjd4tj_td5|)di}*| r|rr|*%j&r|*%j&r|*%j&| r:z |*%t'(|Wnt)y5}+z t*+|+d6WYd}+~+nd}+~+wwd7|*d8<| r| rd9j,rIj,ndrPj,nd|||| | | ||d: },ifd;d<}-|-rp|-rw|-t'-|,|*d=<t'-|*d><t"j#.|)\}.}/|//d?krt0jj1|!|)t |*dkr|*ndd@nt2|!|)t3t4fdAdBtj5Dd}0|0r|06t7|)| tdC|)d3dDtj_tj8gdEdFt9d$DdC|)S)GNz model-merge)jobcSs,|tj_tjgddtdD|S)NcSsg|]}tqSr)grr<.0r.rrr ^sz1run_modelmerger..fail..r7)rstatetextinfoendrange)rrrrfail[s zrun_modelmerger..failcSsd||||S)Nr r)theta0theta1alpharrr weighted_sum`sz%run_modelmerger..weighted_sumcSs||Srr)rQtheta2rrrget_differencecsz'run_modelmerger..get_differencecSs |||Srr)rPZ theta1_2_diffrRrrradd_differencefs z'run_modelmerger..add_differencecs@j}j}tdd}td}|d|d|d|dS)Nr r!(z) + ) model_nameround)r)r*ZMaMb) multiplierprimary_model_infosecondary_model_inforrfilename_weighted_sumis  z.run_modelmerger..filename_weighted_sumcs8j}j}j}td}|d|d|d|dS)Nr!z + rWz - rXrY)r)r*r+M)r]r^r_tertiary_model_inforrfilename_add_differenceqs  z0run_modelmerger..filename_add_differencecsjSr)rZr)r^rrfilename_nothingysz)run_modelmerger..filename_nothing)z Weighted sumzAdd differencezNo interpolationr rz)Failed: Merging requires a primary model.z+Failed: Merging requires a secondary model.zFailed: Interpolation method (z) requires a tertiary model.Fz Loading BzLoading z...cpu) map_locationz Loading CzMerging B and Cmodelz Merging...zMerging A and Br!r7 zPWhen merging inpainting model with a normal one, A must be the inpainting model.z\When merging instruct-pix2pix model with a normal one, A must be the instruct-pix2pix model.Tz Bad dimensions for merged layer z: A=z, B=zBaking in VAE from z Baking in VAEzfirst_stage_model.r z .inpaintingz.instruct-pix2pix.ZSavingz Saving to zreadin metadata from jsonptformatwebui) typeZprimary_model_hashZsecondary_model_hashZtertiary_model_hash interp_methodr] save_as_half custom_namer( bake_in_vaediscard_weightsZ is_inpaintingZis_instruct_pix2pixcs@||j|j|jddd|j<|jdidS)Nsd_merge_recipe)nameZ legacy_hashrtsd_merge_models)calculate_shorthashruhashr=r;sha256r<)rD)rvrradd_model_metadata&s   z+run_modelmerger..add_model_metadatartrvz .safetensors)r=c3s|] }|jkr|VqdSr)ru)rIckpt)r-rr @sz"run_modelmerger..zCheckpoint saved to zCheckpoint savedcSsg|] }tjjtdqS))choices)rGDropdownr<rcheckpoint_tilesrHrrrrJJsz#run_modelmerger..):rrKbegin job_countrr:rLr%r-read_state_dictrkeyssampling_stepstqdmcheckpoint_dict_skip_on_merger;r1 zeros_like sampling_stepnextjobshape RuntimeErrorr6rvae_dict load_vae_dictrecompilelistsearchpopcmd_optsckpt_dir model_pathr"r#joinr<r=r>loads Exceptionrdisplayryr?r$lower safetensors save_filesave list_modelsnextvaluesrwr/rMrN)1id_taskr@rArBror]rprqcheckpoint_formatr(rrrs save_metadataadd_merge_recipecopy_metadata_fields metadata_jsonrOrSrUrVr`rcrdZ theta_funcsZfilename_generatorZ theta_func1Z theta_func2Zresult_is_inpainting_modelZ result_is_instruct_pix2pix_modelZtheta_1Ztheta_2rt2Ztheta_0r)r*Zbake_in_vae_filenamerZ theta_0_keyregexrZoutput_modelnamer=eZ merge_reciperzr. extensionZ created_modelr)r-r]r^rvr_rbrrun_modelmergerXs8    H   H>H                 &  r)r"rr&r>r1rmodulesrrrrrrmodules.ui_commonrgradiorGZsafetensors.torchrrr/rr6rErrrrrs