o
    iJ	                     @   sb   d dl m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 )    )override)ComfyExtensionioc                   @   4   e Zd ZedejfddZedejfddZdS )CLIPTextEncodeControlnetreturnc              
   C   s@   t jddt jdt jdt jjddddgt j gddS )	Nr   _for_testing/conditioningclipconditioningtextT)	multilinedynamic_promptsnode_idcategoryinputsoutputsis_experimental)r   SchemaClipInputConditioningStringOutputcls r   5/mnt/c/Users/fbmor/ComfyUI/comfy_extras/nodes_cond.pydefine_schema   s   


z&CLIPTextEncodeControlnet.define_schemac           
      C   sj   | |}|j|dd\}}g }|D ]}|d |d  g}	||	d d< ||	d d< ||	 qt|S )NT)return_pooledr      cross_attn_controlnetpooled_output_controlnet)tokenizeencode_from_tokenscopyappendr   
NodeOutput)
r   r	   r
   r   tokenscondpooledctnr   r   r   execute   s   

z CLIPTextEncodeControlnet.executeN	__name__
__module____qualname__classmethodr   r   r   r'   r.   r   r   r   r   r      
    r   c                   @   r   )T5TokenizerOptionsr   c                 C   sR   t jddt jdt jjddddddd	t jjd
dddddd	gt j gddS )Nr5   r   r	   min_paddingr   i'  r    T)defaultminmaxstepadvanced
min_lengthr   )r   r   r   r   Intr   r   r   r   r   r   "   s   

z T5TokenizerOptions.define_schemac                 C   s@   |  }dD ]}|d|| |d|| qt|S )N)t5xxl	pile_t5xlt5basemt5xlumt5xxlz{}_min_paddingz{}_min_length)cloneset_tokenizer_optionformatr   r'   )r   r	   r6   r<   t5_typer   r   r   r.   0   s
   
zT5TokenizerOptions.executeNr/   r   r   r   r   r5   !   r4   r5   c                   @   s(   e Zd Zedeeej  fddZdS )CondExtensionr   c                    s
   t tgS N)r   r5   )selfr   r   r   get_node_list;   s   zCondExtension.get_node_listN)	r0   r1   r2   r   listtyper   	ComfyNoderJ   r   r   r   r   rG   :   s    rG   r   c                      s   t  S rH   )rG   r   r   r   r   comfy_entrypointC   s   rN   N)
typing_extensionsr   comfy_api.latestr   r   rM   r   r5   rG   rN   r   r   r   r   <module>   s    	