A field journal for cloud-gazers. Snap the sky, click the cloud you mean, and a small local model isolates it, names the shape it sees, and files it in your dex. Built for the Build Small Hackathon (Chapter Two: An Adventure in Thousand Token Wood ).
| Stage | Model | Params |
|---|---|---|
| Isolate the clicked cloud | SlimSAM (Zigeng/SlimSAM-uniform-77) | ~0.08B |
| Alpha-matte into a transparent sticker | OpenCV | — |
| Embed + compare to your collection | CLIP ViT-B/32 | ~0.15B |
| Name the shape | SmolVLM2-2.2B-Instruct | ~2.2B |
Everything runs locally — no cloud APIs — which keeps it well under the 32B cap and targets the Off the Grid badge.
This needs a GPU Space to be snappy (it works on CPU but slowly). On a normal
GPU Space it runs as-is. On ZeroGPU the @spaces.GPU decorators are already in
place; if you hit a device-placement error, the usual fix is to move the model
.to("cuda") inside the decorated functions rather than at import.
pip install -r requirements.txt
python app.py
VLM_ID in app.py controls the naming model. Alternatives under the cap:
vikhyatk/moondream2 — ~2B, purpose-built for "what is this" (uses a
trust_remote_code API, so the call site changes slightly).Qwen/Qwen2.5-VL-7B-Instruct — more capable, heavier.16 commits
Python
100.0%
A field journal for cloud-gazers. Snap the sky, click the cloud you mean, and a small local model isolates it, names the shape it sees, and files it in your dex. Built for the Build Small Hackathon (Chapter Two: An Adventure in Thousand Token Wood ).
| Stage | Model | Params |
|---|---|---|
| Isolate the clicked cloud | SlimSAM (Zigeng/SlimSAM-uniform-77) | ~0.08B |
| Alpha-matte into a transparent sticker | OpenCV | — |
| Embed + compare to your collection | CLIP ViT-B/32 | ~0.15B |
| Name the shape | SmolVLM2-2.2B-Instruct | ~2.2B |
Everything runs locally — no cloud APIs — which keeps it well under the 32B cap and targets the Off the Grid badge.
This needs a GPU Space to be snappy (it works on CPU but slowly). On a normal
GPU Space it runs as-is. On ZeroGPU the @spaces.GPU decorators are already in
place; if you hit a device-placement error, the usual fix is to move the model
.to("cuda") inside the decorated functions rather than at import.
pip install -r requirements.txt
python app.py
VLM_ID in app.py controls the naming model. Alternatives under the cap:
vikhyatk/moondream2 — ~2B, purpose-built for "what is this" (uses a
trust_remote_code API, so the call site changes slightly).Qwen/Qwen2.5-VL-7B-Instruct — more capable, heavier.16 commits
Python
100.0%