o >g @sddlmZddlZddlZddlZddlmZddlZddlZGdddej Z GdddZ Gdd d ej j Zd d d ZdS) )sd1_clipN)T5TokenizerFastcs"eZdZdiffdd ZZS)T5XXLTokenizerNc sBtjtjtjtd}tj||dddtddddd dS)N t5_tokenizerFit5xxli) embedding_directory pad_with_endembedding_size embedding_keytokenizer_classhas_start_tokenpad_to_max_length max_length min_length) ospathjoindirnamerealpath__file__super__init__r)selfrtokenizer_datatokenizer_path __class__B/home/comdoleger1/zen-flux-style-shape/comfy/text_encoders/flux.pyr s$zT5XXLTokenizer.__init____name__ __module__ __qualname__r __classcell__rrrrr src@s:eZdZdifddZd defddZdd Zd d ZdS) FluxTokenizerNcCs*|dtj}||d|_t|d|_dS)Nclip_l_tokenizer_class)r)getr SDTokenizerclip_lrr)rrrr&rrrrs zFluxTokenizer.__init__FtextcCs,i}|j|||d<|j|||d<|SNlr)r)tokenize_with_weightsr)rr*return_word_idsoutrrrr-sz#FluxTokenizer.tokenize_with_weightscCs |j|SN)r) untokenize)rtoken_weight_pairrrrr1s zFluxTokenizer.untokenizecCsiSr0rrrrr state_dictszFluxTokenizer.state_dict)F)r!r"r#rstrr-r1r4rrrrr%s  r%csFeZdZdddiffdd ZddZddZd d Zd d ZZS) FluxClipModelNcpucsbttj|||}|dtj}|||d|d|_tj j j |||d|_ t ||g|_dS)N clip_l_classF)devicedtypereturn_projected_pooled model_options)r9r:r<)rrcomfymodel_managementpick_weight_dtyper'r SDClipModelr) text_encoderssd3_clip T5XXLModelrsetdtypes)rdtype_t5r9r:r<r8rrrr#s zFluxClipModel.__init__cCs|j||j|dSr0)r)set_clip_optionsr)roptionsrrrrG+s zFluxClipModel.set_clip_optionscCs|j|jdSr0)r)reset_clip_optionsrr3rrrrI/s z FluxClipModel.reset_clip_optionscCs8|d}|d}|j|\}}|j|\}}||fSr+)rencode_token_weightsr))rtoken_weight_pairstoken_weight_pairs_ltoken_weight_pairs_t5t5_out t5_pooledl_outl_pooledrrrrJ3s z"FluxClipModel.encode_token_weightscCs d|vr |j|S|j|S)Nz*text_model.encoder.layers.1.mlp.fc1.weight)r)load_sdr)rsdrrrrR;s  zFluxClipModel.load_sd) r!r"r#rrGrIrJrRr$rrrrr6"s r6csGfdddt}|S)Ncs(eZdZddiffdd ZZS)z!flux_clip..FluxClipModel_r7Ncs8durd|vr|}|d<tj|||ddS)Nt5xxl_scaled_fp8)rFr9r:r<)copyrr)rr9r:r<)rrFrTrrrCsz*flux_clip..FluxClipModel_.__init__r rrFrTrrFluxClipModel_Bs rW)r6)rFrTrWrrVr flux_clipAsrX)NN)r=rcomfy.text_encoders.t5comfy.text_encoders.sd3_clipcomfy.model_management transformersrtorchrr(rr%nnModuler6rXrrrrs