Spaces:
Sleeping
Sleeping
| #!/usr/bin/env python3 | |
| import warnings | |
| warnings.filterwarnings("ignore", message="Using a slow image processor as `use_fast` is unset.*") | |
| warnings.filterwarnings("ignore", category=FutureWarning, message=".*AutoModelForVision2Seq.*") | |
| import gradio as gr | |
| from pathlib import Path | |
| from app.captioner import get_captioner | |
| cap = get_captioner() | |
| SAMPLES_DIR = Path("./samples") #/.resolve().parents[1] | |
| EXAMPLES = [ | |
| str(SAMPLES_DIR / "test1.jpg"), | |
| str(SAMPLES_DIR / "test2.jpg"), | |
| ] | |
| def caption_fn(image): | |
| # image is a PIL.Image from gradio | |
| return cap.generate_caption(image) | |
| with gr.Blocks(title="Image Captioner (CPU-friendly)") as demo: | |
| gr.Markdown("# 🖼️ Image Captioner\nUpload an image to get a concise caption.\n") | |
| with gr.Row(): | |
| inp = gr.Image(type="pil", label="Input image") | |
| out = gr.Textbox(label="Caption", lines=3) | |
| btn = gr.Button("Generate caption", variant="primary") | |
| btn.click(caption_fn, inputs=inp, outputs=out) | |
| gr.Examples(EXAMPLES, inputs=[inp], outputs=[out], examples_per_page=2) | |
| gr.Markdown( | |
| "Tip: This demo uses a lightweight model by default (CPU). " | |
| "You can switch models/devices via `.env` without code changes." | |
| ) | |
| if __name__ == "__main__": | |
| demo.queue().launch() # add share=True if you want a public link |