o
    i                     @   sz   d dl mZ d dlZd dl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d ZdS )QuadrupleCLIPLoaderc                 C   sl   t jdddt jjdtddt jjdtddt jjdtddt jjd	tddgt j gd
S )Nr   zadvanced/loaderszJ[Recipes]

hidream: long clip-l, long clip-g, t5xxl, llama_8b_3.1_instruct
clip_name1text_encoders)options
clip_name2
clip_name3
clip_name4)node_idcategorydescriptioninputsoutputs)r   SchemaComboInputfolder_pathsget_filename_listClipOutputcls r   8/mnt/c/Users/fbmor/ComfyUI/comfy_extras/nodes_hidream.pydefine_schema
   s   z!QuadrupleCLIPLoader.define_schemac           
      C   sX   t d|}t d|}t d|}t d|}tjj||||gt dd}	t|	S )Nr   
embeddings)
ckpt_pathsembedding_directory)r   get_full_path_or_raisecomfysd	load_clipget_folder_pathsr   
NodeOutput)
r   r   r
   r   r   
clip_path1
clip_path2
clip_path3
clip_path4clipr   r   r   execute   s   
zQuadrupleCLIPLoader.executeN__name__
__module____qualname__classmethodr   r,   r   r   r   r   r   	   s
    
r   c                   @   r   )CLIPTextEncodeHiDreamc                 C   sh   t jddgdt jdt jjddddt jjddddt jjd	dddt jjd
dddgt j gdS )Nr2   zhidream promptzadvanced/conditioningr+   clip_lT)	multilinedynamic_promptsclip_gt5xxlllama)r   search_aliasesr   r   r   )r   r   r   r   StringConditioningr   r   r   r   r   r   %   s   
z#CLIPTextEncodeHiDream.define_schemac                 C   sP   | |}| |d |d< | |d |d< | |d |d< t||S )Nlr7   r8   )tokenizer   r&   encode_from_tokens_scheduled)r   r+   r3   r6   r7   r8   tokensr   r   r   r,   7   s
   
zCLIPTextEncodeHiDream.executeNr-   r   r   r   r   r2   $   s
    
r2   c                   @   s(   e Zd Zedeeej  fddZdS )HiDreamExtensionreturnc                    s
   t tgS N)r   r2   )selfr   r   r   get_node_listA   s   zHiDreamExtension.get_node_listN)	r.   r/   r0   r   listtyper   	ComfyNoderD   r   r   r   r   r@   @   s    r@   rA   c                      s   t  S rB   )r@   r   r   r   r   comfy_entrypointI   s   rH   )typing_extensionsr   r   comfy.sdr"   comfy.model_managementcomfy_api.latestr   r   rG   r   r2   r@   rH   r   r   r   r   <module>   s    	