AGPL in Commercial Computer Vision: The Ultralytics Question
Ultralytics YOLO is AGPL-3.0. Three compliant options for closed-source CV products, and the questions to ask any CV vendor.
For Business

On this page
Ultralytics offers YOLO under AGPL-3.0 or a commercial license. For a closed-source camera analytics product, review the code, model, and integration before production. Source obligations depend on the covered work and its use. The options are to comply with AGPL, obtain suitable commercial terms, or choose an alternative with compatible licenses.
A commercial computer vision project can reach this fork as soon as the first demo. Someone runs pip install ultralytics, gets a working object detector in five lines, and the demo sells the project. Then one question decides whether the product is viable: what license did we just build on?
Why YOLO is the default reach
Ultralytics earned the position. Its onboarding is convenient for a quick detection prototype — clean API, pretrained weights for detection, pose, and segmentation, one-line export to ONNX and TensorRT. The documentation actually answers questions.
Many CV tutorials use it. When a team needs a working detector by Friday, Ultralytics is the shortest path. That short path is exactly how it ends up load-bearing in architectures nobody audited.
What AGPL actually triggers
GPL sets obligations when a covered work is conveyed to another party. AGPL adds a requirement for modified versions used over a network. AGPL Section 13 requires an offer of Corresponding Source—the source needed to build that version—to users interacting with it remotely.
Network interaction is not automatically distribution, nor does it automatically bring every application on the same server under AGPL. Review whether the integration forms a covered combined work, whether it is modified, and who interacts with it. The GNU network-interaction FAQ explains the distinction.
Ultralytics states that proprietary commercial integration requires Enterprise terms if the project is not open-sourced. That is the vendor's licensing position. Do not substitute an assumption that all internal use is exempt. Review your actual architecture and obtain written terms before choosing a route.
I covered the license tiers in the earlier licensing post. A camera-product audit should include libraries, weights, and integration code.
The three compliant options
Option one: buy the Ultralytics commercial license. Legitimate and simple. Check which components and rights the agreement covers. Permission for vendor code does not remove obligations for third-party dependencies; your existing workflow can stay in place. It suits teams already deep in the Ultralytics toolchain. Budget it as a recurring product cost, and archive the agreement where due diligence will find it.
Option two: open-source your product under AGPL. Meet the applicable source obligations and confirm that the client's rights and distribution strategy allow it. This is a business choice to agree explicitly. It can fit internal tools and open-core products, but needs careful consideration for a closed product.
Option three: build on Apache-2.0 model families. Detection now has mature permissive alternatives: YOLOX, PP-YOLOE, RT-DETR variants, RF-DETR, D-FINE. Their performance varies. Test accuracy on your own site images and check the licenses of the exact code and weights you intend to use.
What you give up is convenience — more assembly, less polish. A compatible Apache-2.0 component has no AGPL-style network-source obligation; check fees and obligations across the rest of the stack. The weights still need their own clearance: code, weights, and datasets are three different contracts.
A product decision, made at the right time
A PPE-compliance detection product I advised — cameras checking whether workers at industrial sites wear helmets and vests — hit exactly this fork. The pilot ran on Ultralytics pretrained weights, as pilots do. The demo is what won the project.
Before production coding began, the team put the license question on the table. They priced the commercial license against the integration cost of an Apache-2.0 family, then switched model families — before fine-tuning, before the training pipeline, before the deployment tooling hardened around one API.
That ordering is the entire lesson. The switch was made during the pilot, while the architecture was still easy to change. Twelve months later — after custom datasets, fine-tuned checkpoints, export scripts, and monitoring all shaped around one stack — the same switch becomes a re-platforming project, negotiated under pressure, while the shipped product may remain noncompliant. License decisions do not get cheaper by deferring them. They compound.
Procurement: questions for any CV vendor
The trap also arrives pre-packaged. Analytics boxes, "AI camera" platforms, and NVR add-ons may contain Ultralytics components; check the exact product and version. Integration and resale require checking what rights and source obligations apply to the combined product.
Before signing, I ask every CV vendor four questions:
- Which detection stack and model family does the product run? "Our proprietary AI" is not an answer. A specific model family and version is.
- If Ultralytics or other AGPL code is inside, show the commercial license. The actual agreement, not an assurance.
- Who owns the fine-tuned weights, and what were they trained on? Check whether the dataset terms restrict training, use, or distribution of the resulting weights.
- Will you warrant license compliance in the contract? Review the scope and exclusions of the warranty. Hesitation is a reason to ask for evidence, rather than proof of noncompliance.
The takeaway
Review licensing before production: what components you use, what rights you need, and what source must be offered. Compare commercial terms with the cost of switching models and AGPL compliance. Record the decision and terms so the next team can check them.
Related Posts
Need help applying this approach?
System Architecture Consulting
Map requirements, integrations, and risks before building or expanding a system. Get design options and priorities to discuss with your team.
Explore related servicesDescribe the operational problem you are facing so we can discuss a suitable next step.