Skip to content

Finish the Hugging Face Hub integration #1027

Open

Description

@EHxuban11

Tracking the remaining work to make LibreYOLO a complete Hugging Face Hub library. Pick up whatever can be done on a given day.

Context

  • Add LibreYOLO to model libraries huggingface/huggingface.js#2760 (merged 2026-11-06) registered libreyolo as a Hub library: label, repo link and download counting. Wauplin said it takes 2-3 days to go live on hf.co. Until then our model pages show 0 downloads and no "Use this model" button.
  • 1.7.3 (Release 1.7.3: load models by Hugging Face repo id on a plain install #1020) made LibreYOLO("owner/repo") work on a plain pip install libreyolo (huggingface_hub is a core dependency now) and fixed the 10 YOLO9/YOLOX repos that also hold a legacy lowercase checkpoint. Checked on a fresh venv on Python 3.10-3.14 (macOS arm64): LibreYOLO9t, LibreYOLOXs, LibreDFINEn, LibreRFDETRn and others load and detect correctly.
  • Audit of the 464 repos in the LibreYOLO org: LibreYOLO("LibreYOLO/<repo>") works on 429. About 31 more are VLM, generative and 3D models (Moondream, Molmo, PRX, TRELLIS, LGM, TripoSR, CRM, ShowUI, SenseNova, FCOS3D, DetAny3D, SAM 3D Body, ReID-osnet...) that load through LibreVLM, LibreGen, LibreGround or their own class, not LibreYOLO().

To do

  1. Check that #2760 is live on hf.co: libreyolo shows as a library on a model page and downloads are counted.
  2. Library: make LibreYOLO("LibreYOLO/<repo>") on those ~31 repos fail fast with the right call, e.g. "load it with LibreVLM("moondream-3")", instead of "multiple checkpoints" or "no loadable checkpoint". A small map from repo id to usage in libreyolo/utils/hf_hub.py, checked at the top of resolve_hub_checkpoint, plus a test against each family's HF repos. Ship it in a release before step 4.
  3. Library: LibreYOLO("LibreYOLO/librefacerec-l") downloads into ./LibreYOLO/ in the current folder instead of the HF cache (libreyolo/models/facerec/weights.py). After that, every other LibreYOLO/<repo> load from the same folder is affected.
  4. Send the follow-up PR to huggingface/huggingface.js. It is prepared on EHxuban11/huggingface.js:libreyolo-snippet (three commits, 11 lines, lint/format/check/test pass):
    • "Use this model" snippet: from libreyolo import LibreYOLO / model = LibreYOLO("<repo_id>") / results = model("path/to/image.jpg").
    • countDownloads also matching model_index.json and pipeline.json: 13 repos (PRX, ImageDream, TRELLIS) currently match nothing and always count 0.
    • filter: true in its own commit, offering to drop it until download numbers are visible.
    • No custom tags to hide the snippet. The description mentions the ~31 non-LibreYOLO() repos and offers to handle them however the reviewer prefers; it says they point to the right call, which is only true once step 2 is released.
      Send it after step 1, and thank Wauplin in the thread.
  5. Hub model cards (no PR needed, edits in the LibreYOLO org):
    • 22 repos have the wrong pipeline_tag: every -seg RF-DETR, D-FINE and RTMDet repo says object-detection instead of image-segmentation, LibreYOLO9s-pose says object-detection, and Gemma4, Moondream and Qwen3VLEmbedding are off too. 159 cards have no explicit pipeline_tag.
    • 392 cards still show the filename form LibreYOLO("LibreYOLOXs.pt"); add the repo-id form LibreYOLO("LibreYOLO/<repo>"). 16 cards have no usage example.
    • Optional cleanup: delete the legacy lowercase libreyolo9*.pt / libreyoloX*.pt duplicates in the 10 YOLO9/YOLOX repos. Only the 0.1.x releases (no longer on PyPI) used them.
  6. Port the 1.7.3 and 1.7.4 fixes from release to dev.

Activity

  1. added a commit that references this issue on Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions