
    +j                         d dl Z d dlmZ d dlmZmZ d dlZd dlZ G d dej	                  Z
 G d de          Zdefd	ZdS )
    N)override)ComfyExtensionioc                   L    e Zd Zed             Zeddej        fd            ZdS )TextEncodeZImageOmnic                 n   t          j        dddt           j                            d          t           j                            dd          t           j                            ddd          t           j                            d	dd
          t           j                            dd          t           j                            dd          t           j                            dd          t           j                            dd          gt           j	        
                                g          S )Nr   zadvanced/conditioningT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_schemaz"TextEncodeZImageOmni.define_schema	   s    y*, f%%##Od#CC	D$OO
  !5td SSUT22x$77x$77x$77	 &&((
 
 
 	
    NTreturnc	                 p   g }	t          t          d |||g                    }
g }d }t          |
          dk    r$dg}|dgt          |
          dz
  z  z  }|dgz  }d}g }t          |
          D ].\  }}|(|                    |                    |                     ||r|                    dd          }t          d	          }t          j	        ||j
        d
         |j
        d         z  z            }t          |j
        d
         |z  dz            dz  }t          |j
        d         |z  dz            dz  }t          j                            |||dd                              dd          }|	                    |                    |                     0|                    ||          }|                    |          }g }|D ]O}|                    |d          }|                    |          }|                    |d         d                    Pt          |	          dk    rt%          j        |d|	id          }t          |          dk    rt%          j        |d|id          }t          |          dk    rt%          j        |d|id          }t)          j        |          S )Nc                 
    | d uS N )as    r&   <lambda>z.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       @   areadisabled)llama_templatez{}reference_latentsT)appendclip_vision_outputsreference_latents_text_embeds)listfilterlen	enumerater9   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&   executezTextEncodeZImageOmni.execute   s   f44vvv6NOOPPv;;???@K<=VqQQK677K\H!&)) 	6 	6HAu(%%m&@&@&G&GHHH% r#mmB22G,,E#y'-2BW]STEU2U)VWWH!'-"2X"="CDDqHE"7=#3h#>#DEEIF!K66wvvWabbjjklnpqqE""3::e#4#4555vh??88@@ 	8 	8A]]1T]::F;;FCCK$$[^A%67777{a'?ObdoNpy}~~~L~""'?OdftNu  C  D  D  DL !!A%%'?On  qB  OC  LP  Q  Q  QL}\***r(   )NTNNNN)__name__
__module____qualname__classmethodr'   r   rO   ra   r-   r(   r&   r   r      se        
 
 [
( -+ -+  EG  ER -+ -+ -+ [-+ -+ -+r(   r   c                   L    e Zd Zedeeej                          fd            ZdS )ZImageExtensionr)   c                    K   t           gS r,   )r   )selfs    r&   get_node_listzZImageExtension.get_node_listP   s       !
 	
r(   N)	rb   rc   rd   r   r<   typer   	ComfyNoderj   r-   r(   r&   rg   rg   O   sE        
T$r|*<%= 
 
 
 X
 
 
r(   rg   r)   c                  "   K   t                      S r,   )rg   r-   r(   r&   comfy_entrypointrn   W   s      r(   )rM   typing_extensionsr   comfy_api.latestr   r   rC   comfy.utilsrG   rl   r   rg   rn   r-   r(   r&   <module>rr      s        & & & & & & / / / / / / / /     D+ D+ D+ D+ D+2< D+ D+ D+N
 
 
 
 
n 
 
 
      r(   