
    3j	                         S r SSKrSSKJr  SSKrSSKrSSKJrJ	r	   " S S\	R                  5      r " S S\5      rS	\4S
 jrg)z"PiD (Pixel Diffusion Decoder) node    N)override)ComfyExtensionioc                   t    \ rS rSr\S\R                  4S j5       r\S\S\	S\R                  4S j5       rSrg)	PiDConditioning   returnc                 h   [         R                  " SSSS[         R                  R                  S5      [         R                  R                  SSS9[         R
                  R                  S	/ S
QSSS9[         R                  R                  SSSSSSS9/[         R                  R                  5       /S9$ )Nr   zPiD Conditioningzmodel/conditioningzYAttaches a latent and a degrade_sigma scalar to a CONDITIONING for PiD decoding/upscalingpositivelatentz&latent (from VAEEncode or a KSampler).)tooltiplatent_format)fluxsd3sdxl	qwenimager   zFlux1 (16-ch) and Flux2 (128-ch) latents are auto-detected from channel dim under 'flux'. For SD3 (16-ch), SDXL (4-ch), or QwenImage (16-ch), select manually.)optionsdefaultr   degrade_sigmag        g      ?g{Gz?z?0 = clean latent. Increase to denoise corrupted latent outputs.)r   minmaxstepr   )node_iddisplay_namecategorydescriptioninputsoutputs)r   SchemaConditioningInputLatentComboFloatOutput)clss    6/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_pid.pydefine_schemaPiDConditioning.define_schema   s    yy%+)t%%j1		2Z[8\fl (H  I#Scs]  	 __++-.
 	
    r   r   c                    US   nUS:X  aH  UR                   S   S:X  a  [        R                  R                  O[        R                  R                  nOqUS:X  a  [        R                  R
                  nOPUS:X  a  [        R                  R                  nO/US:X  a  [        R                  R                  nO[        SU 35      eU" 5       R                  U5      nUR                  S	:X  a  US S 2S S 2S
4   n[        R                  " [        U5      /[        R                  S9n[        R                   " ["        R$                  " XUS.5      5      $ )Nsamplesr         r   r   r   zUnknown latent_format:    r   )dtype)	lq_latentr   )shapecomfylatent_formatsFlux2FluxSD3SDXLWan21
ValueError
process_inndimtorchtensorfloatfloat32r   
NodeOutputnode_helpersconditioning_set_values)	r&   r   r   r   r   r,   fmt_clsr1   sigma_ts	            r'   executePiDConditioning.execute    s   #F"4;MM!4D4Ke**00QVQeQeQjQjGe#**..Gf$**//Gk)**00G6}oFGGI((1	>>Q!!Q'*I,,m 45U]]K}}\AAH
  	r*    N)__name__
__module____qualname____firstlineno__classmethodr   r   r(   strr?   rA   rF   __static_attributes__rH   r*   r'   r   r      sO    
bii 
 
& c % TVTaTa  r*   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)PiDExtension6   r	   c                    #    [         /$ 7fN)r   )selfs    r'   get_node_listPiDExtension.get_node_list7   s       s   
rH   N)rI   rJ   rK   rL   r   listtyper   	ComfyNoderV   rO   rH   r*   r'   rQ   rQ   6   s)    !T$r||*<%= ! !r*   rQ   r	   c                     #    [        5       $ 7frT   )rQ   rH   r*   r'   comfy_entrypointr\   <   s     >s   )__doc__r=   typing_extensionsr   rB   comfy.latent_formatsr3   comfy_api.latestr   r   rZ   r   rQ   r\   rH   r*   r'   <module>ra      s@    (  &   /(bll (V!> ! r*   