
    3j                         S SK Jr  S SKrS SKrS SKrS SKJrJr   " S S\R                  5      r
 " S S\R                  5      r " S S	\5      rS
\4S jrg)    )overrideN)ComfyExtensionioc                   4    \ rS rSr\S 5       r\S 5       rSrg)QuadrupleCLIPLoader	   c                    [         R                  " SSSS[         R                  R                  S[        R
                  " S5      S9[         R                  R                  S[        R
                  " S5      S9[         R                  R                  S	[        R
                  " S5      S9[         R                  R                  S
[        R
                  " S5      S9/[         R                  R                  5       /S9$ )Nr   zLoad CLIP (Quadruple)zmodel/loaderszHRecipes:
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display_namecategorydescriptioninputsoutputs)r   SchemaComboInputfolder_pathsget_filename_listClipOutputclss    :/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_hidream.pydefine_schema!QuadrupleCLIPLoader.define_schema
   s    yy)0$c|\5S5STc5de|\5S5STc5de|\5S5STc5de|\5S5STc5de	  
 	
    c                 N   [         R                  " SU5      n[         R                  " SU5      n[         R                  " SU5      n[         R                  " SU5      n[        R                  R	                  XVXx/[         R
                  " S5      S9n	[        R                  " U	5      $ )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clips
             r   executeQuadrupleCLIPLoader.execute   s    !88*U
!88*U
!88*U
!88*U
xx!!jj-]s  tQ  tQ  R^  t_!  `}}T""r"    N__name__
__module____qualname____firstlineno__classmethodr    r2   __static_attributes__r4   r"   r   r   r   	   s(    
 
" # #r"   r   c                   4    \ rS rSr\S 5       r\S 5       rSrg)CLIPTextEncodeHiDream%   c                    [         R                  " SSS/S[         R                  R                  S5      [         R                  R                  SSSS9[         R                  R                  S	SSS9[         R                  R                  S
SSS9[         R                  R                  SSSS9/[         R
                  R                  5       /S9$ )Nr=   zCLIP Text Encode (HiDream)zhidream promptzmodel/conditioning/hidreamr1   clip_lT)	multilinedynamic_promptsclip_gt5xxlllama)r   r   search_aliasesr   r   r   )r   r   r   r   StringConditioningr   r   s    r   r    #CLIPTextEncodeHiDream.define_schema&   s    yy+5,-1f%		D$O		D$O		4N		4N &&(
 	
r"   c                     UR                  U5      nUR                  U5      S   US'   UR                  U5      S   US'   UR                  U5      S   US'   [        R                  " UR                  U5      5      $ )NlrD   rE   )tokenizer   r,   encode_from_tokens_scheduled)r   r1   r@   rC   rD   rE   tokenss          r   r2   CLIPTextEncodeHiDream.execute9   so    v&mmF+C0s--.w7w--.w7w}}T>>vFGGr"   r4   Nr5   r4   r"   r   r=   r=   %   s*    
 
$ H Hr"   r=   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)HiDreamExtensionB   returnc                 "   #    [         [        /$ 7fN)r   r=   )selfs    r   get_node_listHiDreamExtension.get_node_listC   s       !
 	
s   r4   N)r6   r7   r8   r9   r   listtyper   	ComfyNoderW   r;   r4   r"   r   rQ   rQ   B   s)    
T$r||*<%= 
 
r"   rQ   rS   c                     #    [        5       $ 7frU   )rQ   r4   r"   r   comfy_entrypointr]   K   s     s   )typing_extensionsr   r   comfy.sdr(   comfy.model_managementcomfy_api.latestr   r   r[   r   r=   rQ   r]   r4   r"   r   <module>rb      sO    &    /#",, #8HBLL H:
~ 
 0 r"   