--- title: Iconclass 9B emoji: 🖼️ colorFrom: indigo colorTo: gray sdk: gradio sdk_version: 6.16.0 app_file: app.py pinned: false short_description: Classify artworks with Iconclass codes (9B vision model) --- # Reading pictures with Iconclass Upload an artwork and a 9-billion-parameter vision-language model ([`davanstrien/qwen35-9b-iconclass-sft-multitask-2ep`](https://huggingface.co/davanstrien/qwen35-9b-iconclass-sft-multitask-2ep)) predicts [Iconclass](https://iconclass.org/) codes for what the image depicts. Each code is decoded to plain English (via the `iconclass` Python package) and linked to its entry on iconclass.org. The model was trained multi-task and the demo exposes all three modes: 1. **Classify** — the model decides which codes (and how many) apply. 2. **Cataloguing depth** — ask for *exactly N* codes (a broad 2-code record or a deep 8-code one). 3. **Catalogue completion** — paste the Iconclass codes a record *already has*; the model proposes additional codes only for aspects not yet covered. Most collections are partially catalogued (e.g. ~2 codes/object), so this matches the real cataloguing workflow. Built with the [`gradio.Server`](https://huggingface.co/blog/introducing-gradio-server) pattern — a custom Tufte-styled HTML frontend over a ZeroGPU inference backend. The model loads on CPU at startup and runs on a ZeroGPU A10G inside the `@spaces.GPU` function (~7 s/inference).