InternVL3

InternVL3 is a native multimodal large language model released by OpenGVLab that jointly learns vision and language in a single pre-training stage. LibreYOLO wraps it as an open-vocabulary object detector: any list of text labels becomes the class set, with no fixed head and no fine-tuning required.

Tasks
detection
Sizes
1b, 2b, 8b at 448 px
Install
pip install libreyolo
Support tier
Sibling tier, since v. A separate product surface with its own factory and contract.
Upstream
InternVL3 by Shanghai AI Laboratory (OpenGVLab), MIT (code); Qwen License (weights). Paper, source
Licenses
Code MIT, weights MIT (code); Qwen License (weights). Commercial use

Install

InternVL3 needs the vlm extra, which pulls in transformers for the chat-template backbone.

bash
pip install "libreyolo[vlm]"

Predict

LibreInternVL3 is a Python class, not a .pt checkpoint: it is not loaded through the LibreYOLO() factory, and the libreyolo CLI does not resolve it. The LibreVLM(...) factory (from libreyolo import LibreVLM) also reaches this family by alias, e.g. LibreVLM("internvl3-2b"); the class used below is what it constructs. Weights come from OpenGVLab's own -hf Hugging Face repositories, not a LibreYOLO mirror; the first call downloads and caches them locally, and logs a one-time license notice for the gated Qwen weights before it does.

Python
from libreyolo import LibreInternVL3, SAMPLE_IMAGE model = LibreInternVL3(size="2b") # Open vocabulary: any words work, not a fixed class head. Sticky# across every later predict()/track() call until set again.model.set_classes(["person", "bicycle", "dog"])result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
Raw chat
from libreyolo import LibreInternVL3, SAMPLE_IMAGE model = LibreInternVL3(size="2b") # The escape hatch beneath the detection convenience: free-form# questions, counting, or any prompt the boxes wrapper doesn't cover.text = model.chat(SAMPLE_IMAGE, "Describe the scene in one sentence.")print(text)

result.boxes carries the parsed detections like any other family. Confidence is a placeholder: InternVL3 emits no per-box score, so every detection gets the same constant confidence, and conf= only drops rows below that constant, it does not rank them. iou discards near-duplicate boxes of the same class above the given overlap, a side effect of greedy decoding repeating an object; it is not a class-wise NMS pass. Skip set_classes() and the vocabulary defaults to the COCO-80 names. See prediction for sources, streaming and result handling.

Variants

Three sizes: 1b, 2b and 8b, all OpenGVLab's native -hf checkpoints (a Qwen LLM backbone, not the two-tower architecture the original InternVL paper describes). LibreYOLO's benchmark harness has not measured this family, so there are no published accuracy numbers to compare them by; pick a size against your own compute budget.

LibreYOLO exposes this family for prediction only. train(), val() and export() all raise NotImplementedError: fine-tune upstream and load the result instead, dataset validation is skipped because a placeholder confidence would make COCO mAP misleading, and export is out of scope for a generative model with no state dict to trace.

Licensing

Check the license on the Hugging Face repository of the specific weights you download. Every checkpoint in the LibreYOLO org carries one, and they are not always the same across a family. That repository is the authoritative source; the summary below describes what applied when this page was last verified.

This is a description of the licenses involved, not legal advice. If the answer matters commercially, read the licenses yourself and take your own counsel.

Original work
InternVL3, Shanghai AI Laboratory (OpenGVLab)
Upstream license
MIT (code); Qwen License (weights)
LibreYOLO code
MIT
Weights
MIT (code); Qwen License (weights), distributed by their authors. LibreYOLO does not host or mirror them.
Interpretation
InternVL3's own code is MIT, permissive and usable in commercial and closed-source products. The `-hf` checkpoints this family loads carry a Qwen LLM backbone and are licensed separately, under Alibaba Cloud's Qwen License: free to use, modify and redistribute with a "Built with Qwen" or "Improved using Qwen" attribution requirement, and a 100 million monthly-active-user ceiling on commercial use above which Alibaba's own authorization is required. LibreYOLO does not host or redistribute these weights: LibreInternVL3 downloads the matching size directly from OpenGVLab/InternVL3-<size>-hf on Hugging Face the first time it runs, and logs a one-time notice for the Qwen License before that download.

InternVL3's own code is MIT, permissive and usable in commercial and closed-source products. The -hf checkpoints this family loads carry a Qwen LLM backbone and are licensed separately, under Alibaba Cloud's Qwen License: free to use, modify and redistribute with a "Built with Qwen" or "Improved using Qwen" attribution requirement, and a 100 million monthly-active-user ceiling on commercial use above which Alibaba's own authorization is required. LibreYOLO does not host or redistribute these weights: LibreInternVL3 downloads the matching size directly from OpenGVLab/InternVL3-<size>-hf on Hugging Face the first time it runs, and logs a one-time notice for the Qwen License before that download.

Citation

@article{zhu2025internvl3,
  title={Internvl3: Exploring advanced training and test-time recipes for open-source multimodal models},
  author={Zhu, Jinguo and Wang, Weiyun and Chen, Zhe and Liu, Zhaoyang and Ye, Shenglong and Gu, Lixin and Tian, Hao and Duan, Yuchen and Su, Weijie and Shao, Jie and others},
  journal={arXiv preprint arXiv:2504.10479},
  year={2025}
}

Copied from the authors' citation block at github.com/OpenGVLab/InternVL#citation.

Verified against LibreYOLO v1.5.0. Support tables, checkpoints and benchmark numbers on this page are generated from the released library and the published weights, not written by hand.