o
    i                     @   sv   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dZi ddfd	d
Z	dd Z
dd Zdd Zdd ZdS )    N)args)	ImageFileUnidentifiedImageErrorFc           	      C   sr   g }| D ]2}|d |d   g}|D ]}|| }|r*|d |d }|d ur*|| }||d |< q|| q|S )Nr      )copygetappend)	conditioningvaluesr   ctnkvalold_val r   */mnt/c/Users/fbmor/ComfyUI/node_helpers.pyconditioning_set_values	   s   r                 ?c              	   C   s   ||krt d| d| d | S d}g }| D ]Z}|d dd}|d dd	}t||}	t||}
|	|
kr>|| q|	|krP|t|g||	| d
 |t|gi ||	|
d
 |
|k rr|t|g|
| |d
 q|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_endr   r   r   +conditioning_set_values_with_timestep_range   s(   


 r#   c              
   C   sd   d }z'z| |}W n t ttfy   tj}dt_| |}Y nw W |d ur(|t_|S |d ur1|t_w )NT)OSErrorr   
ValueErrorr   LOAD_TRUNCATED_IMAGES)fnarg
prev_valuexr   r   r   pillow7   s   r+   c                  C   s    t jt jt jt jd} | tj S )N)md5sha1sha256sha512)hashlibr,   r-   r.   r/   r   default_hashing_function)	hashfuncsr   r   r   hasherD   s   
r3   c                 C   s.   | 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)stringr   r   r   string_to_torch_dtypeM   s   r<   c                 C   sf   | j d |j d k r|dd | j d f }| |fS | j d |j d kr/tjj| d} d| d< | |fS )N.)r   r   r   ).r=   )shaper7   nn
functionalpad)destinationsourcer   r   r   image_alpha_fixU   s   rD   )r0   r7   r   comfy.cli_argsr   PILr   r   r   r#   r+   r3   r<   rD   r   r   r   r   <module>   s    	