o
    i                     @   sj   d dl mZ d dlZd dlmZmZ G dd dejZG dd dejZG dd	 d	eZ	d
e	fddZ
dS )    )overrideN)ComfyExtensionioc                   @   ,   e Zd Zedd ZedejfddZdS )CLIPTextEncodeSDXLRefinerc                 C   sp   t jddt jjddddddt jjd	d
dtjdt jjdd
dtjdt jjddddt jdgt j	
 gdS )Nr   advanced/conditioningascoreg      @g        g     @@g{Gz?)defaultminmaxstepwidth   r   r	   r
   r   heighttextT	multilinedynamic_promptsclipnode_idcategoryinputsoutputs)r   SchemaFloatInputIntnodesMAX_RESOLUTIONStringClipConditioningOutputcls r'   :/mnt/c/Users/fbmor/ComfyUI/comfy_extras/nodes_clip_sdxl.pydefine_schema   s   

z'CLIPTextEncodeSDXLRefiner.define_schemareturnc                 C   s&   | |}t|j||||ddS )N)aesthetic_scorer   r   add_dict)tokenizer   
NodeOutputencode_from_tokens_scheduled)r&   r   r   r   r   r   tokensr'   r'   r(   execute   s   
z!CLIPTextEncodeSDXLRefiner.executeN__name__
__module____qualname__classmethodr)   r   r/   r2   r'   r'   r'   r(   r      s
    
r   c                   @   r   )CLIPTextEncodeSDXLc                 C   s   t jddt jdt jjdddtjdt jjdddtjdt jjd	ddtjd
dt jjdddtjd
dt jjdddtjdt jjdddtjdt jjdd
d
dt jjdd
d
dg	t j	 gdS )Nr8   r   r   r   r   r   r   r   crop_wT)r	   r
   r   advancedcrop_htarget_widthtarget_heighttext_gr   text_lr   )
r   r   r"   r   r   r   r    r!   r#   r$   r%   r'   r'   r(   r)      s   

z CLIPTextEncodeSDXL.define_schemar*   c
                 C   s   | |}
| |	d |
d< t|
d t|
d krc| d}t|
d t|
d k rA|
d  |d 7  < t|
d t|
d k s+t|
d t|
d krc|
d  |d 7  < t|
d t|
d ksMt|j|
||||||ddS )Nlg )r   r   r9   r;   r<   r=   r,   )r.   lenr   r/   r0   )r&   r   r   r   r9   r;   r<   r=   r>   r?   r1   emptyr'   r'   r(   r2   0   s   

"zCLIPTextEncodeSDXL.executeNr3   r'   r'   r'   r(   r8      s
    
r8   c                   @   s(   e Zd Zedeeej  fddZdS )ClipSdxlExtensionr*   c                    s
   t tgS N)r   r8   )selfr'   r'   r(   get_node_list>   s   zClipSdxlExtension.get_node_listN)	r4   r5   r6   r   listtyper   	ComfyNoderH   r'   r'   r'   r(   rE   =   s    rE   r*   c                      s   t  S rF   )rE   r'   r'   r'   r(   comfy_entrypointF   s   rL   )typing_extensionsr   r   comfy_api.latestr   r   rK   r   r8   rE   rL   r'   r'   r'   r(   <module>   s    !	