
    L3i                     j    d dl Z d dlZd dlZd dlmZ d dlmZmZ i dfdZi ddfdZ	d	 Z
d
 Zd Zd Zy)    N)args)	ImageFileUnidentifiedImageErrorFc                     g }| D ]]  }|d   |d   j                         g}|D ]-  }||   }|r|d   j                  |d       }|||z   }||d   |<   / |j                  |       _ |S )Nr      )copygetappend)	conditioningvaluesr
   ctnkvalold_vals	            &/home/serv3090/ComfyUI/node_helpers.pyconditioning_set_valuesr   	   s    
A 
qT1Q499; 	A)CA$((1d+&!C-CAaDG	 	

 H                  ?c           
         ||kD  rt        j                  d| d| d       | S d}g }| D ]  }|d   j                  dd      }|d   j                  dd	      }t        ||      }	t	        ||      }
|	|
k\  r|j                  |       \|	|kD  r"|j                  t        |g||	|z
  d
             |j                  t        |gi ||	|
d
             |
|k  s|j                  t        |g|
|z   |d
              |S )z
    Apply values to conditioning only during [start_percent, end_percent], keeping the
    original conditioning active outside that range. Respects existing per-entry ranges.
    zstart_percent (z) must be <= end_percent ()gh㈵>r   start_percentr   end_percentr   )r   r   )loggingwarningr	   maxminr
   extendr   )r   r   r   r   EPSr   r   
cond_startcond_endintersect_startintersect_ends              r   +conditioning_set_values_with_timestep_ranger&      s!   
 {"/-8RS^R__`ab
C
A tqTXXos3
qTXXms3mZ8kX6m+HHQKZ'HH,aSJ_nqt_t2uvw	(!.x.x/jw.xyz8#HH,aSMTWDWhp2qrs!t" Hr   c                     d }	  | |      }||t        _        |S # t         t        t        f$ r& t        j                  }dt        _         | |      }Y Hw xY w# ||t        _        w w xY w)NT)OSErrorr   
ValueErrorr   LOAD_TRUNCATED_IMAGES)fnarg
prev_valuexs       r   pillowr/   7   su    J9sG !.8I+H +Z8 44
*.	'sG
 !.8I+ "s!    7AA AA A(c                      t         j                  t         j                  t         j                  t         j                  d} | t
        j                     S )N)md5sha1sha256sha512)hashlibr1   r2   r3   r4   r   default_hashing_function)	hashfuncss    r   hasherr8   D   s8    {{....	I T2233r   c                     | dk(  rt         j                  S | dk(  rt         j                  S | dk(  rt         j                  S y )Nfp32fp16bf16)torchfloat32float16bfloat16)strings    r   string_to_torch_dtyperB   M   s=    }}}}~~ r   c                    | j                   d   |j                   d   k  r|dd | j                   d   f   }| |fS | j                   d   |j                   d   kD  r/t        j                  j                  j	                  | d      } d| d<   | |fS )N.)r   r   r   ).rD   )shaper=   nn
functionalpad)destinationsources     r   image_alpha_fixrK   U   s    v||B//2[..r2223  
		2	b!1	1hh))--k6B"Gr   )r5   r=   r   comfy.cli_argsr   PILr   r   r   r&   r/   r8   rB   rK    r   r   <module>rO      sD        113E   FHWZhk <4r   