
    +jt                     l    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dS )    N)args)	ImageFileUnidentifiedImageErrorFc                     g }| D ]v}|d         |d                                          g}|D ]:}||         }|r#|d                             |d           }|||z   }||d         |<   ;|                    |           w|S )Nr      )copygetappend)	conditioningvaluesr
   ctnkvalold_vals	            ,/home/wildlama/comfy/ComfyUI/node_helpers.pyconditioning_set_valuesr   	   s    
A 
 
qT1Q499;; 	 	A)C (A$((1d++&!C-CAaDGG	H                  ?c           
      `   ||k    rt          j        d| d| d           | S d}g }| D ]}|d                             dd          }|d                             dd	          }t          ||          }	t	          ||          }
|	|
k    r|                    |           w|	|k    r*|                    t          |g||	|z
  d
                     |                    t          |gi ||	|
d
                     |
|k     r*|                    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&      si   
 {""a-aaS^aaabbb
C
A t tqTXXos33
qTXXms33mZ88kX66m++HHQKKKZ''HH,aSJ_nqt_t2u2uvvwww	(!.x.x/jw.x.x.xyyzzz8##HH,aSMTWDWhp2q2qrrsssHr   c                     d }	  | |          }n@# t           t          t          f$ r& t          j        }dt          _         | |          }Y nw xY w||t          _        n# ||t          _        w xY w|S )NT)OSErrorr   
ValueErrorr   LOAD_TRUNCATED_IMAGES)fnarg
prev_valuexs       r   pillowr/   7   s    J9BsGG+Z8   4
*.	'BsGG
 !.8I+ !.8I+8888Hs&    A :A
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   s2    {..	 I T233r   c                 r    | dk    rt           j        S | dk    rt           j        S | dk    rt           j        S d S )Nfp32fp16bf16)torchfloat32float16bfloat16)strings    r   string_to_torch_dtyperB   M   sC    }}~ r   c                     | j         d         |j         d         k     r|dd | j         d         f         }nF| j         d         |j         d         k    r*t          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	1$((88wr   )r5   r=   r   comfy.cli_argsr   PILr   r   r   r&   r/   r8   rB   rK    r   r   <module>rO      s             1 1 1 1 1 1 1 113E      FHWZhk    <  4 4 4      r   