import streamlit as st from transformers import ( PreTrainedTokenizerFast, VisionEncoderDecoderModel, ViTImageProcessor, ) model_name = "grascii/gregg-vision-v0.2.1" @st.cache_resource(show_spinner=f"Loading {model_name}") def load_model(): model = VisionEncoderDecoderModel.from_pretrained( model_name, token=st.secrets.HF_TOKEN ) tokenizer = PreTrainedTokenizerFast.from_pretrained( model_name, token=st.secrets.HF_TOKEN, ) processor = ViTImageProcessor.from_pretrained(model_name, token=st.secrets.HF_TOKEN) return model, tokenizer, processor @st.cache_data(ttl=3600, show_spinner=f"Running {model_name}") def run_vision(image): model, tokenizer, processor = load_model() pixel_values = processor(image, return_tensors="pt").pixel_values generated = model.generate(pixel_values, max_new_tokens=12)[0] return tokenizer.convert_ids_to_tokens(generated, skip_special_tokens=True)