Image-to-Text
Transformers
Safetensors
molparser_vision_encoder_decoder
image-text-to-text
chemistry
custom_code
Instructions to use UniParser/MolParser-Mobile with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use UniParser/MolParser-Mobile with Transformers:
# Use a pipeline as a high-level helper # Warning: Pipeline type "image-to-text" is no longer supported in transformers v5. # You must load the model directly (see below) or downgrade to v4.x with: # 'pip install "transformers<5.0.0' from transformers import pipeline pipe = pipeline("image-to-text", model="UniParser/MolParser-Mobile", trust_remote_code=True)# Load model directly from transformers import AutoModelForImageTextToText model = AutoModelForImageTextToText.from_pretrained("UniParser/MolParser-Mobile", trust_remote_code=True, dtype="auto") - Notebooks
- Google Colab
- Kaggle
| """Processor that combines MolParser Mobile image preprocessing and tokenizer.""" | |
| from __future__ import annotations | |
| from pathlib import Path | |
| from typing import Sequence | |
| from .image_processing_molparser_mobile import MolParserImageProcessor | |
| from .tokenization_molparser_mobile import MolParserTokenizer | |
| class MolParserProcessor: | |
| attributes = ["image_processor", "tokenizer"] | |
| image_processor_class = "MolParserImageProcessor" | |
| tokenizer_class = "MolParserTokenizer" | |
| def __init__( | |
| self, | |
| image_processor: MolParserImageProcessor | None = None, | |
| tokenizer: MolParserTokenizer | None = None, | |
| ): | |
| self.image_processor = image_processor or MolParserImageProcessor() | |
| self.tokenizer = tokenizer | |
| def register_for_auto_class(cls, auto_class: str = "AutoProcessor"): | |
| cls._auto_class = auto_class | |
| def from_pretrained(cls, pretrained_model_name_or_path: str, **kwargs) -> "MolParserProcessor": | |
| path = str(pretrained_model_name_or_path) | |
| image_processor = MolParserImageProcessor.from_pretrained(path, **kwargs) | |
| tokenizer = MolParserTokenizer.from_pretrained(path, **kwargs) | |
| return cls(image_processor=image_processor, tokenizer=tokenizer) | |
| def save_pretrained(self, save_directory: str, **kwargs): | |
| Path(save_directory).mkdir(parents=True, exist_ok=True) | |
| image_files = self.image_processor.save_pretrained(save_directory, **kwargs) | |
| tokenizer_files = () | |
| if self.tokenizer is not None: | |
| tokenizer_files = self.tokenizer.save_pretrained(save_directory, **kwargs) | |
| return tuple(image_files) + tuple(tokenizer_files) | |
| def __call__( | |
| self, | |
| images=None, | |
| text: str | Sequence[str] | None = None, | |
| return_tensors: str | None = None, | |
| **kwargs, | |
| ): | |
| encoded = {} | |
| if images is not None: | |
| encoded.update(self.image_processor(images=images, return_tensors=return_tensors, **kwargs)) | |
| if text is not None: | |
| if self.tokenizer is None: | |
| raise ValueError("MolParserProcessor was created without a tokenizer.") | |
| encoded.update(self.tokenizer(text, return_tensors=return_tensors, **kwargs)) | |
| return encoded | |
| def decode(self, *args, **kwargs): | |
| if self.tokenizer is None: | |
| raise ValueError("MolParserProcessor was created without a tokenizer.") | |
| return self.tokenizer.decode(*args, **kwargs) | |
| def batch_decode(self, *args, **kwargs): | |
| if self.tokenizer is None: | |
| raise ValueError("MolParserProcessor was created without a tokenizer.") | |
| return self.tokenizer.batch_decode(*args, **kwargs) | |
| __all__ = ["MolParserProcessor"] | |