HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/sd-webui/modules/xlmr.py
# from transformers import BertPreTrainedModel, BertConfig
# import torch.nn as nn
# import torch
# from transformers.models.xlm_roberta.configuration_xlm_roberta import XLMRobertaConfig
# from transformers import XLMRobertaModel,XLMRobertaTokenizer
# from typing import Optional
#
# from modules import torch_utils
#
#
# class BertSeriesConfig(BertConfig):
#     def __init__(self, vocab_size=30522, hidden_size=768, num_hidden_layers=12, num_attention_heads=12, intermediate_size=3072, hidden_act="gelu", hidden_dropout_prob=0.1, attention_probs_dropout_prob=0.1, max_position_embeddings=512, type_vocab_size=2, initializer_range=0.02, layer_norm_eps=1e-12, pad_token_id=0, position_embedding_type="absolute", use_cache=True, classifier_dropout=None,project_dim=512, pooler_fn="average",learn_encoder=False,model_type='bert',**kwargs):
#
#         super().__init__(vocab_size, hidden_size, num_hidden_layers, num_attention_heads, intermediate_size, hidden_act, hidden_dropout_prob, attention_probs_dropout_prob, max_position_embeddings, type_vocab_size, initializer_range, layer_norm_eps, pad_token_id, position_embedding_type, use_cache, classifier_dropout, **kwargs)
#         self.project_dim = project_dim
#         self.pooler_fn = pooler_fn
#         self.learn_encoder = learn_encoder
#
# class RobertaSeriesConfig(XLMRobertaConfig):
#     def __init__(self, pad_token_id=1, bos_token_id=0, eos_token_id=2,project_dim=512,pooler_fn='cls',learn_encoder=False, **kwargs):
#         super().__init__(pad_token_id=pad_token_id, bos_token_id=bos_token_id, eos_token_id=eos_token_id, **kwargs)
#         self.project_dim = project_dim
#         self.pooler_fn = pooler_fn
#         self.learn_encoder = learn_encoder
#
#
# class BertSeriesModelWithTransformation(BertPreTrainedModel):
#
#     _keys_to_ignore_on_load_unexpected = [r"pooler"]
#     _keys_to_ignore_on_load_missing = [r"position_ids", r"predictions.decoder.bias"]
#     config_class = BertSeriesConfig
#
#     def __init__(self, config=None, **kargs):
#         # modify initialization for autoloading
#         if config is None:
#             config = XLMRobertaConfig()
#             config.attention_probs_dropout_prob= 0.1
#             config.bos_token_id=0
#             config.eos_token_id=2
#             config.hidden_act='gelu'
#             config.hidden_dropout_prob=0.1
#             config.hidden_size=1024
#             config.initializer_range=0.02
#             config.intermediate_size=4096
#             config.layer_norm_eps=1e-05
#             config.max_position_embeddings=514
#
#             config.num_attention_heads=16
#             config.num_hidden_layers=24
#             config.output_past=True
#             config.pad_token_id=1
#             config.position_embedding_type= "absolute"
#
#             config.type_vocab_size= 1
#             config.use_cache=True
#             config.vocab_size= 250002
#             config.project_dim = 768
#             config.learn_encoder = False
#         super().__init__(config)
#         self.roberta = XLMRobertaModel(config)
#         self.transformation = nn.Linear(config.hidden_size,config.project_dim)
#         self.pre_LN=nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
#         self.tokenizer = XLMRobertaTokenizer.from_pretrained('xlm-roberta-large')
#         self.pooler = lambda x: x[:,0]
#         self.post_init()
#
#     def encode(self,c):
#         device = torch_utils.get_param(self).device
#         text = self.tokenizer(c,
#                         truncation=True,
#                         max_length=77,
#                         return_length=False,
#                         return_overflowing_tokens=False,
#                         padding="max_length",
#                         return_tensors="pt")
#         text["input_ids"] = torch.tensor(text["input_ids"]).to(device)
#         text["attention_mask"] = torch.tensor(
#             text['attention_mask']).to(device)
#         features = self(**text)
#         return features['projection_state']
#
#     def forward(
#         self,
#         input_ids: Optional[torch.Tensor] = None,
#         attention_mask: Optional[torch.Tensor] = None,
#         token_type_ids: Optional[torch.Tensor] = None,
#         position_ids: Optional[torch.Tensor] = None,
#         head_mask: Optional[torch.Tensor] = None,
#         inputs_embeds: Optional[torch.Tensor] = None,
#         encoder_hidden_states: Optional[torch.Tensor] = None,
#         encoder_attention_mask: Optional[torch.Tensor] = None,
#         output_attentions: Optional[bool] = None,
#         return_dict: Optional[bool] = None,
#         output_hidden_states: Optional[bool] = None,
#     ) :
#         r"""
#         """
#
#         return_dict = return_dict if return_dict is not None else self.config.use_return_dict
#
#
#         outputs = self.roberta(
#             input_ids=input_ids,
#             attention_mask=attention_mask,
#             token_type_ids=token_type_ids,
#             position_ids=position_ids,
#             head_mask=head_mask,
#             inputs_embeds=inputs_embeds,
#             encoder_hidden_states=encoder_hidden_states,
#             encoder_attention_mask=encoder_attention_mask,
#             output_attentions=output_attentions,
#             output_hidden_states=True,
#             return_dict=return_dict,
#         )
#
#         # last module outputs
#         sequence_output = outputs[0]
#
#
#         # project every module
#         sequence_output_ln = self.pre_LN(sequence_output)
#
#         # pooler
#         pooler_output = self.pooler(sequence_output_ln)
#         pooler_output = self.transformation(pooler_output)
#         projection_state = self.transformation(outputs.last_hidden_state)
#
#         return {
#             'pooler_output':pooler_output,
#             'last_hidden_state':outputs.last_hidden_state,
#             'hidden_states':outputs.hidden_states,
#             'attentions':outputs.attentions,
#             'projection_state':projection_state,
#             'sequence_out': sequence_output
#         }
#
#
# class RobertaSeriesModelWithTransformation(BertSeriesModelWithTransformation):
#     base_model_prefix = 'roberta'
#     config_class= RobertaSeriesConfig