Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline | |
| from PIL import Image | |
| # Page config | |
| st.set_page_config(page_title="TinyLLaVA Snapshot", layout="centered") | |
| st.title("πΈ TinyLLaVA β Snapshot Q&A (Hugging Face Spaces Safe)") | |
| # Load TinyLLaVA pipeline | |
| st.info("Loading TinyLLaVA... Please wait β³") | |
| pipe = pipeline( | |
| task="image-to-text", | |
| model="bczhou/tiny-llava-v1-hf", | |
| trust_remote_code=True, | |
| device_map="cpu" | |
| ) | |
| st.success("β Model loaded!") | |
| # Widgets | |
| st.markdown("**1οΈβ£ Take a snapshot OR upload an image**") | |
| image = st.camera_input("π· Click 'Take Photo' below:") | |
| if not image: | |
| image = st.file_uploader("π Or upload an image file", type=["jpg", "png", "jpeg"]) | |
| st.markdown("**2οΈβ£ Enter your question:**") | |
| prompt = st.text_input("π¬", value="Describe this scene.") | |
| # Debug info | |
| st.write(f"πΈ Image uploaded: {'Yes' if image else 'No'}") | |
| st.write(f"π¬ Prompt: {prompt}") | |
| # If both present | |
| if image and prompt: | |
| img = Image.open(image).convert("RGB") | |
| st.image(img, caption="Your Image", use_column_width=True) | |
| query = f"USER: <image>\n{prompt}\nASSISTANT:" | |
| with st.spinner("TinyLLaVA is generating..."): | |
| result = pipe(query, img) | |
| answer = result[0]["generated_text"] | |
| st.subheader("π Answer") | |
| st.write(answer) | |