
    3j                         S SK r S SKJr  S SKJrJr  S SKrS SKr " S S\R                  5      r
 " S S\5      rS\4S	 jrg)
    N)override)ComfyExtensionioc                   T    \ rS rSr\S 5       r\SS\R                  4S jj5       rSr	g)TextEncodeZImageOmni   c                 B   [         R                  " SSS[         R                  R                  S5      [         R                  R                  SSS9[         R
                  R                  SSSS9[         R                  R                  S	SSS
9[         R                  R                  SSS9[         R                  R                  SSS9[         R                  R                  SSS9[         R                  R                  SSS9/[         R                  R                  5       /S9$ )Nr   zmodel/conditioning/z-imageTclipimage_encoder)optionalprompt)	multilinedynamic_promptsauto_resize_images)defaultadvancedvaeimage1image2image3)node_idcategoryis_experimentalinputsoutputs)r   SchemaClipInput
ClipVisionStringBooleanVaeImageConditioningOutput)clss    9/home/wildlama/comfy/ComfyUI/comfy_extras/nodes_zimage.pydefine_schema"TextEncodeZImageOmni.define_schema	   s    yy*1 f%##Od#C		D$O

  !5td SUT2x$7x$7x$7	 &&(
 	
    Nreturnc	                    / n	[        [        S XgU/5      5      n
/ nS n[        U
5      S:  a   S/nUS/[        U
5      S-
  -  -  nUS/-  nSn/ n[        U
5       GH  u  pUb   UR	                  UR                  U5      5        Uc  M.  U(       a  UR                  SS5      n[        S	5      n[        R                  " UUR                  S
   UR                  S   -  -  5      n[        UR                  S
   U-  S-  5      S-  n[        UR                  S   U-  S-  5      S-  n[        R                  R                  UUUSS5      R                  SS5      nU	R	                  UR                  U5      5        GM      UR!                  X,S9nUR#                  U5      n/ nU H;  nUR!                  USS9nUR#                  U5      nUR	                  US   S   5        M=     [        U	5      S:  a  [$        R&                  " USU	0SS9n[        U5      S:  a  [$        R&                  " USU0SS9n[        U5      S:  a  [$        R&                  " USU0SS9n[(        R*                  " U5      $ )Nc                 
    U S L$ N )as    r'   <lambda>.TextEncodeZImageOmni.execute.<locals>.<lambda>!   s    q}r*   r   z!<|im_start|>user
<|vision_start|>z<|vision_end|><|vision_start|>   z<|vision_end|><|im_end|>zA<|vision_end|>{}<|im_end|>
<|im_start|>assistant
<|vision_start|>i         g       @r   areadisabled)llama_templatez{}reference_latentsT)appendclip_vision_outputsreference_latents_text_embeds)listfilterlen	enumerater;   encode_imagemovedimintmathsqrtshaperoundcomfyutilscommon_upscaleencodetokenizeencode_from_tokens_schedulednode_helpersconditioning_set_valuesr   
NodeOutput)r&   r
   r   r   r   r   r   r   r   ref_latentsimagesprompt_listtemplateencoded_imagesiimagesamplestotalscale_bywidthheighttokensconditioningextra_text_embedsptext_embedss                             r'   executeTextEncodeZImageOmni.execute   s   f4vv6NOPv;??@K<=VqQQK677K\H!&)HA(%%m&@&@&GH%#mmB2G,E#yy'--2BW]]STEU2U)VWH!'--"2X"="CDqHE"7==#3h#>#DEIF!KK66wvvWabjjklnpqE""3::e#45 * v?88@A]]1T]:F;;FCK$$[^A%67 
 {a'??ObdoNpy}~L~"'??OdftNu  C  DL !A%'??On  qB  OC  LP  QL}}\**r*   r/   )NTNNNN)
__name__
__module____qualname____firstlineno__classmethodr(   r   rQ   rc   __static_attributes__r/   r*   r'   r   r      sB    
 
( -+  EG  ER  ER -+ -+r*   r   c                   L    \ rS rSr\S\\\R                        4S j5       r	Sr
g)ZImageExtensionO   r+   c                    #    [         /$ 7fr.   )r   )selfs    r'   get_node_listZImageExtension.get_node_listP   s      !
 	
s   
r/   N)re   rf   rg   rh   r   r>   typer   	ComfyNoderp   rj   r/   r*   r'   rl   rl   O   s)    
T$r||*<%= 
 
r*   rl   r+   c                     #    [        5       $ 7fr.   )rl   r/   r*   r'   comfy_entrypointru   W   s     s   )rO   typing_extensionsr   comfy_api.latestr   r   rE   comfy.utilsrI   rs   r   rl   ru   r/   r*   r'   <module>ry      s?     & /  D+2<< D+N
n 
 r*   