o
    io                     @   st   d dl mZ d dlmZ d dlZ d dlZG dd dejZG dd dejZ	G dd	 d	ej
ZG d
d dejZdS )    )sd1_clip)T5TokenizerFastNc                       s(   e Zd Zddddi f fdd	Z  ZS )T5BaseModelcpulastNc                    sN   t jt jt jtd}t j||||||dddtj	j
jddd
 d S )Nzt5_config_base.json   r   )endpadT)
devicelayer	layer_idxtextmodel_json_configdtypemodel_optionsspecial_tokensmodel_classenable_attention_maskszero_out_masked)ospathjoindirnamerealpath__file__super__init__comfytext_encoderst5T5)selfr
   r   r   r   r   r   	__class__ 7/mnt/c/Users/fbmor/ComfyUI/comfy/text_encoders/sa_t5.pyr      s   0zT5BaseModel.__init____name__
__module____qualname__r   __classcell__r#   r#   r!   r$   r      s     r   c                       "   e Zd Zdi f fdd	Z  ZS )T5BaseTokenizerNc                    sB   t jt jt jtd}t j|dddtdddd|d
 d S )Nt5_tokenizerFi   t5basei   )	pad_with_endembedding_sizeembedding_keytokenizer_classhas_start_tokenpad_to_max_length
max_length
min_lengthtokenizer_data)	r   r   r   r   r   r   r   r   r   )r    embedding_directoryr7   tokenizer_pathr!   r#   r$   r      s   $zT5BaseTokenizer.__init__r%   r#   r#   r!   r$   r+          r+   c                       r*   )SAT5TokenizerNc                    s   t  j||dtd d S )Nr-   )r8   r7   	clip_name	tokenizer)r   r   r+   )r    r8   r7   r!   r#   r$   r      s   zSAT5Tokenizer.__init__r%   r#   r#   r!   r$   r;      r:   r;   c                       s$   e Zd Zddi f fdd	Z  ZS )	SAT5Modelr   Nc                    s"   t  jd|||dtd| d S )Nr-   )r
   r   r   name
clip_modelr#   )r   r   r   )r    r
   r   r   kwargsr!   r#   r$   r      s   "zSAT5Model.__init__r%   r#   r#   r!   r$   r>      s    r>   )r   r   transformersr   comfy.text_encoders.t5r   SDClipModelr   SDTokenizerr+   SD1Tokenizerr;   SD1ClipModelr>   r#   r#   r#   r$   <module>   s    