
    
3j                         S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  \R                  " \5      rSrSrSrS	rS
\S\4S jr\	" SS9 " S S5      5       rg)z~
API-based text encoding that returns CONDITIONING for LTX-2.
Replaces the CLIP encoding step entirely using an external API.
    N)	safe_open   )
comfy_nodezhttps://api.ltx.videozoNote: If this error persists, the node might be outdated. Please update ComfyUI-LTXVideo to the latest version.zMInvalid API key. Please generate a new API key at: https://console.ltx.video/z:Model ID cannot be identified from the provided model file	ckpt_namereturnc                     Sn[        [        R                  " SU 5      SSS9 nUR                  5       nU(       a  X;  a  [	        [
        5      eX1   sS S S 5        $ ! , (       d  f       g = f)Nencrypted_wandb_propertiescheckpointsptcpu)	frameworkdevice)r   folder_pathsget_full_path_or_raisemetadata
ValueErrorMISSING_MODEL_ID_MESSAGE)r   model_id_keyfr   s       T/home/wildlama/comfy/ComfyUI/custom_nodes/ComfyUI-LTXVideo/gemma_api_conditioning.pyextract_model_idr      s_    /L	++M9E
 
::<<7566%
 
 
s   /A
A*GemmaAPITextEncode)namec            	       X    \ rS rSrSr\S 5       rSrSrSr	Sr
 SS\S	\S
\S\4S jjrSrg)r   *   a  
Encodes text prompts using the LTX Video API, returning CONDITIONING for LTX-2 models.

This node replaces the local CLIP encoding step by sending the prompt to an external API
for processing. It requires an API key and automatically extracts the model ID from the
checkpoint file metadata.

Inputs:
    - api_key: Authentication key for the LTX Video API
    - prompt: Text prompt to encode
    - ckpt_name: Checkpoint file containing model metadata

Returns:
    - CONDITIONING: Encoded prompt conditioning ready for LTX-2 video generation
c                 h    SSSSSSS.4SSSS	S
.4SSSS.4[         R                  " S5      SS04S.0$ )NrequiredSTRING API_KEYFzAPI key for authentication)defaultplaceholder	multilinetooltipTzText prompt to encode)r#   r!   r$   BOOLEANzBWhen enabled, the prompt is enhanced using Gemma 3 before encoding)r!   r$   r
   r$   z+The name of the checkpoint (model) to load.)api_keypromptenhance_promptr   )r   get_filename_list)clss    r   INPUT_TYPESGemmaAPITextEncode.INPUT_TYPES<   sz     #%'0%*#?	 %)#%#: #'#g# !22=A MN3
 	
    )CONDITIONING)conditioningencodezapi node/text/Lightricksr&   r'   r   r(   c                    U(       d  [        S5      eUR                  5       (       d  [        S5      eU(       a  UR                  5       (       d  [        S5      e[        U5      nUUUS.n[        R	                  SUS S  SUS S  S35         [
        R                  " [         S	3US
U 3SS.SS9nUR                  S:X  a  [        [        5      eUR                  S:w  a,  [        SUR                   SUR                   S[         35      e[        R                  " [        R                   " UR"                  5      5      n[        R	                  S5        U4$ ! [$         a#  n	[        S['        U	5       S[         35      eS n	A	ff = f)NzAPI key is requiredzText prompt cannot be emptyzModel path is required)r'   model_idr(   zCalling API to encode prompt: 2   z... with model_id: z...z/v1/prompt-embeddingzBearer zapplication/json)AuthorizationzContent-Type<   )jsonheaderstimeouti     zAPI request failed with status z: 
z+Successfully received conditioning from APIzAPI request failed: z
 )r   stripr   loggerinforequestspostLTXV_API_BASE_URLstatus_codeRuntimeErrorINVALID_API_KEY_MESSAGEtextUPDATE_MESSAGEpickleloadioBytesIOcontent	Exceptionstr)
selfr&   r'   r   r(   r2   payloadresponser/   es
             r   r0   GemmaAPITextEncode.encoded   s    233||~~:;;	 1 1566#I. ,

 	,VCR[M9LXVYWY]O[^_	
	S}}$%%9:'.wi%8$6 H ##s*"#:;;##s*"5h6J6J5K2hmm_\^%&( 
 ";;rzz(2B2B'CDLKKEF ?" 	S!5c!fXS@PQRR	Ss   C
E 
F#FF N)F)__name__
__module____qualname____firstlineno____doc__classmethodr+   RETURN_TYPESRETURN_NAMESFUNCTIONCATEGORYrL   boolr0   __static_attributes__rR   r-   r   r   r   *   si       
  
D %L$LH)H QV/S/S$'/S47/SIM/S /Sr-   )rW   rH   loggingrF   r   r>   safetensorsr   nodes_registryr   	getLoggerrS   r<   r@   rE   rC   r   rL   r   r   rR   r-   r   <module>rc      s   
 
     ! &			8	$+ < 
 T  X 
& 
& 
& %&hS hS 'hSr-   