Skip to content
ModelListedExternal
Browse files

Naturalist Bioclip v1

On-device model package for the Sylva naturalist app (fungi & plants identification). This repo hosts a swappable model package consumed via a manifest; the app downloads only what the manifest lists.

KindOtherBase modelimageomics/bioclipVersionRevision 22a18d2Cgrade

Model source

Kind
Other
File size
7.16 KB–165 MB
Base model
imageomics/bioclip
Version
vRevision 22a18d2
Updated
Nov 2, 2026
Downloads
0
Source
Hugging Face

Source description

Sylva · BioCLIP v1 (image encoder, int8) + text-embedding table

On-device model package for the Sylva naturalist app (fungi & plants identification). This repo hosts a swappable model package consumed via a manifest; the app downloads only what the manifest lists.

Contents

FileWhat
image_encoder.onnxBioCLIP v1 image encoder only (OpenCLIP ViT-B/16), fp16 weights with fp32 input/output (~173 MB). Feed a plain float32 [1,3,224,224] tensor; boundary Cast nodes handle fp16 internally.
text_embeddings_v1.safetensorsPrecomputed, L2-normalised text embeddings for the candidate species (fp16, 512-dim).
species_index.jsonspecies_id → row mapping into the table.
manifest.jsonModel manifest (architecture, preprocessing, files + sha256).
registry.jsonRegistry entry the app lists in Settings → Models.

The text encoder is not shipped: the candidate list is fixed, so species names are encoded once offline into the table above. The table is model-specific — v1 embeddings are not compatible with a v2 encoder.

Inference (how the app uses it)

  1. Preprocess per manifest.preprocess (CLIP normalisation, 224×224 center crop).
  2. Run the image encoder → 512-d embedding, L2-normalise.
  3. Cosine similarity against text_embeddings → softmax (logit_scale) → top-N.
  4. Join species_id to the app's curated species/toxicity DB.

Provenance & quality

  • Derived from imageomics/bioclip (OpenCLIP ViT-B/16). Only the image tower is exported.
  • Precision: fp16. Validated cosine similarity of embeddings fp16-vs-fp32 on control inputs = 1.000 (target ≥ 0.99).
  • A compact high-accuracy int8 encoder (static/QDQ with a calibration set, or a distilled tower) is planned follow-up: plain dynamic int8 on this ViT lands at ~0.97 cosine, below the quality bar, so v1 ships fp16 (§13).

⚠️ Safety

This model outputs a taxon only. It is not a source of edibility information and must never be used to decide whether something is safe to eat. Fungi identification is error-prone (fine-grained, deadly look-alikes). The Sylva app keeps toxicity in a separate curated layer and always shows warnings and look-alikes. Consult an expert before consuming any wild organism.

The candidate species list in this v1 package is a small seed for the MVP and will be expanded (regional/frequency-based) in later revisions without an app update.

Sources

1 source
Hugging FacePrimaryVersion 22a18d2fd141d2301968d93881b9e4431470c149
huggingface.co/m3r1al/naturalist-bioclip-v1/tree/22a18d2fd141d2301968d93881b9e4431470c149

Verified Nov 2

Download files

Repository files

File inventory only; completeness is unverified.

Model artifacts

2 artifacts

image_encoder.onnx

onnx · 165 MB · SHA-256 d982b6800a5b…3e9d · Hugging Face

Download file

text_embeddings_v1.safetensors

safetensors · FP16 (unverified) · 7.16 KB · SHA-256 98773c1aa837…cad3 · Hugging Face

Download file

Source excerpts

2 excerpts

--- license: mit library_name: onnxruntime tags: - image-classification - clip - bioclip - on-device - onnx - mobile base_model: imageomics/bioclip --- # Sylva · BioCLIP v1 (image encoder, int8) + text-embedding table On-device model package for the **Sylva** naturalist app (fungi & plants identification). This repo hosts a swappable model package consumed via a [manifest](./manifest.json); the app downloads only what the manifest lists. ## Contents | File | What | |---|---| | `image_encoder.onnx` | BioCLIP v1 **image encoder only** (OpenCLIP ViT-B/16), fp16 weights with **fp32 input/output** (~173 MB). Feed a plain float32 `[1,3,224,224]` tensor; boundary Cast nodes handle fp16 internally. | | `text_embeddings_v1.safetensors` | Precomputed, L2-normalised text embeddings for the candidate species (fp16, 512-dim). | | `species_index.json` | `species_id → row` mapping into the table. | | `manifest.json` | Model manifest (architecture, preprocessing, files + sha256). | | `registry.json` | Registry entry the app lists in Settings → Models. | The text encoder is **not** shipped: the candidate list is fixed, so species names are encoded once offline into the table above. **The table is model-specific** — v1 embeddings are not compatible with a v2 encoder. ## Inference (how the app uses it) 1. Preprocess per `manifest.preprocess` (CLIP normalisation, 224×224 center crop). 2. Run the image encoder → 512-d embedding, L2-normalise. 3. Cosine similarity against `text_embeddings` → softmax (`logit_scale`) → top-N. 4. Join `species_id` to the app's curated species/toxicity DB. ## Provenance & quality - Derived from [`imageomics/bioclip`](https://huggingface.co/imageomics/bioclip) (OpenCLIP ViT-B/16). Only the image tower is exported. - Precision: **fp16**. Validated cosine similarity of embeddings fp16-vs-fp32 on control inputs = **1.000** (target ≥ 0.99). - A compact high-accuracy **int8** encoder (static/QDQ with a calibration set, or a distilled tower) is planned follow-up: plain dynamic int8 on this ViT lands at ~0.97 cosine, below the quality bar, so v1 ships fp16 (§13). ## ⚠️ Safety This model outputs a **taxon only**. It is **not** a source of edibility information and must never be used to decide whether something is safe to eat. Fungi identification is error-prone (fine-grained, deadly look-alikes). The Sylva app keeps toxicity in a separ...

Source context: 0 downloads · 1 likes · Pipeline image-classification · Library onnxruntime · Repo m3r1al/naturalist-bioclip-v1