64#hiddlZddlmZddlmZmZddlmZddlZ ddl Z ddl Z ddl Z ejZdZGddZGdd eZGd d eZd Zdd Zy)N)Image)argsLatentPreviewMethod)TAESDc|dzdz jddjd}tjjr |j t j}|j dt jtjj|j}tj|jS) Ng?g@r)dtypecpu)devicer non_blocking) clampmulcomfymodel_managementdirectml_enabledtotorchuint8device_supports_non_blockingr r fromarraynumpy) latent_image latents_ubytes 5D:\ComfyUI_windows_portable\ComfyUI\latent_preview.pypreview_to_imager s'#-4;;AqA SY   ! ! 2 2 - 0 0u{{ 0 C %((U[[W\WmWmXKXKLXL_L_X`(a }22455ceZdZdZdZy)LatentPreviewercyN)selfx0s rdecode_latent_to_previewz(LatentPreviewer.decode_latent_to_previews rc6|j|}d|tfS)NJPEG)r%MAX_PREVIEW_RESOLUTION)r#preview_formatr$ preview_images rdecode_latent_to_preview_imagez.LatentPreviewer.decode_latent_to_preview_images 55b9  '=>>rN)__name__ __module__ __qualname__r%r+r"rrrrs  ?rrceZdZdZdZy)TAESDPreviewerImplc||_yr!)taesd)r#r2s r__init__zTAESDPreviewerImpl.__init__s  rcz|jj|dddjdd}t|S)Nrr)r2decodemovedimr)r#r$x_samples rr%z+TAESDPreviewerImpl.decode_latent_to_preview"s9::$$RV,Q/771=))rNr,r-r.r3r%r"rrr0r0s *rr0ceZdZddZdZy)Latent2RGBPreviewerNctj|djdd|_d|_|tj|d|_yy)Nr )r rr)rtensor transposelatent_rgb_factorslatent_rgb_factors_bias)r#r?r@s rr3zLatent2RGBPreviewer.__init__(sM"',,/A%"P"Z"Z[\^_"`'+$ " .+0<<8OX]+^D ( /rc|jj|j|j|_|j6|jj|j|j|_|j dk(r |ddddf}n|d}t jjj|jdd|j|j}t|S)N)r r r)bias) r?rr r r@ndimrnn functionallinearr7r)r#r$rs rr%z,Latent2RGBPreviewer.decode_latent_to_preview.s"&"9"9"<"<288TVT]T]"<"^  ' ' 3+/+G+G+J+JQSQYQYbdbkbk+J+lD ( 77a<Aq!GBABxx**11"**Q2CTE\E\cgcc1A  --rr!r9r"rrr;r;'s _ .rr;czd}tj}|tjk7rd}j>t fdt jdDd}t jd|}|tjk(rtj}|tjk(rc|r3td|jj|}t|}n.tj dj#j|,j$ t'j$j(}|S)Nc3XK|]!}|jjr|#ywr!) startswithtaesd_decoder_name).0fn latent_formats r z get_previewer..Fs,HJ}}]%E%EFJs'* vae_approx)latent_channelszHWarning: TAESD previews enabled, but could not find models/vae_approx/{})rpreview_methodr NoPreviewsrLnext folder_pathsget_filename_list get_full_pathAuto Latent2RGBrrSrr0loggingwarningformatr?r;r@)r rO previewermethodtaesd_decoder_pathr2s ` r get_previewerrb>s&I  F $///!  + + 7!%Hl<<\JH"  ".!;!;LJ\!]  (-- -(33F (.. .!d$6 HeHefiijpq.u5  j q qrsSsS!TU  //;/ 0P0PR_RwRwx rcddvrdt|j|jjtj j |fd}|S)Nr')r'PNGcl|d<d}rj|}j|dz||y)Nr$r)r+update_absolute) stepr$x total_steps preview_bytespbarr)r_x0_output_dicts rcallbackz"prepare_callback..callbackcsD  %#%N4  %DD^UWXM TAX{MBr)rb load_devicemodelrOrutils ProgressBar)rostepsrlrmrkr)r_s ` @@@rprepare_callbackrs[sRN_,e//1J1JKI ;; " "5 )DC Orr!)rPILrcomfy.cli_argsrrcomfy.taesd.taesdrcomfy.model_managementrrW comfy.utilsr\ preview_sizer(rrr0r;rbrsr"rrrzsZ 4#**6??**./..:r