Nexa-AI-VL-4x4B-Base / processing_nexa.py
Neura-Tech-AI's picture
Create processing_nexa.py
18cb2b3 verified
Raw
History Blame Contribute Delete
1.47 kB
from transformers import ProcessorMixin, AutoImageProcessor, AutoTokenizer
class NexaVisionMoEProcessor(ProcessorMixin):
attributes = ["image_processor", "tokenizer"]
image_processor_class = "AutoImageProcessor"
tokenizer_class = "AutoTokenizer"
def __init__(self, image_processor=None, tokenizer=None, **kwargs):
if image_processor is None:
image_processor = AutoImageProcessor.from_pretrained("google/siglip2-so400m-patch16-naflex")
if tokenizer is None:
tokenizer = AutoTokenizer.from_pretrained("Neura-Tech-AI/Nexa-AI-4x4B-Instruct")
super().__init__(image_processor, tokenizer, **kwargs)
def __call__(self, text=None, images=None, return_tensors="pt", **kwargs):
if text is None and images is None:
raise ValueError("You must provide either text or images.")
output_kwargs = {}
if images is not None:
image_inputs = self.image_processor(images, return_tensors=return_tensors, **kwargs)
output_kwargs.update(image_inputs)
if text is not None:
text_inputs = self.tokenizer(text, return_tensors=return_tensors, **kwargs)
output_kwargs.update(text_inputs)
return output_kwargs
def batch_decode(self, *args, **kwargs):
return self.tokenizer.batch_decode(*args, **kwargs)
def decode(self, *args, **kwargs):
return self.tokenizer.decode(*args, **kwargs)