48,975 models flagged on the Hub

Every fine-tune comes with fine print.

FinePrint walks every ancestor model and training dataset of any Hugging Face model and tells you what you agree to when you ship it.

FreeOpen sourceWorks on any public Hugging Face model

Replace huggingface.co with this site's domain in any model URL to open its report.

How it works

The model page shows one hop. The terms come from every hop.

A Hugging Face model page lists its direct parents. License terms travel further than that: through fine-tunes, adapters, quantized builds and merges, back to the original release.

Direct parents only

What the model page shows.

svara-tts-v1→3b-hi-ft-research_release apache-2.0
NO LIENS FOUNDOne hop up, everything is apache-2.0.
Full lineage

What FinePrint shows.

svara-tts-v1adapter →3b-hi-ft-research_releasefinetune →orpheus-3b-0.1-pretrainedfinetune →Llama-3.2-3B-Instruct
CLOUDEDCONDITIONSLlama 3.2 terms 3 hops up. 5 obligations to meet before shipping.
Findings

What the whole Hub looks like.

Counted in FalkorDB over all 3,161,594 public models on Hugging Face, Oct 18 2026.

Declared license differs from upstream terms
48,975

models declare a permissive license while inheriting restricted terms.

Only 346 of these ship a license file.

Non-commercial upstream
11,442

declare a permissive license while an ancestor's license is non-commercial, with 2.85M downloads in 30 days.

Downloads
5.88M

downloads in the last 30 days of the 48,975 models above.

One card template
26,406

of them (54%) carry the tags Unsloth's model card template writes, which include license: apache-2.0 whatever the base model is.

What if
27,592of 43,700

FLUX.1-dev family models would still be labelled non-commercial if FLUX.1-dev were relicensed as Apache-2.0, because LoRAs and fine-tunes declare its license themselves.

Saved run on a throwaway GRAPH.COPY of the family (whatif:flux1-dev-apache): copy in 718 ms, walks in 370 ms.

Why a graph

Every descendant of meta-llama/Llama-3.1-8B: 21,653 Hub API calls, or one graph query.

Hub API, one call at a timeabout 3.7 h
FalkorDB graph70 ms

21,639 descendants at a median 0.61 s per Hub call, against the median graph query time.

Running PageRank and the relicensing query on the graph.

Lineage walk

Every ancestor, in one query.

FinePrint keeps Hub lineage in a FalkorDB graph. A report walks finetunes, adapters, quantized builds, merges and training datasets back to the original license, and lists every path a term takes.

finetuneadapterquantizedmergetrained on
Card reader

Reads what the Hub tags leave out.

DeepSeek-R1-Distill-Llama-8B declares MIT and names no base model, so the graph alone says UNKNOWN. Its card says it is derived from Llama 3.1 8B. The card reader quotes that sentence, resolves it to meta-llama/Llama-3.1-8B, and the verdict becomes CLOUDED.

In a manual check, 41 of 48 lineage edges it proposed were correct. It finds datasets too: the LeoScorpius Alpaca GGUF card names tatsu-lab/alpaca, which is CC BY-NC.

Decisions

A decision for the use you have in mind.

Each report ends in ALLOW, CONDITIONS or BLOCK, for commercial or non-commercial use, with a one-line reason and the clause text behind it.

ifmylove2011/girlslike is a FLUX.1 [dev] LoRA that declares apache-2.0. Its base model's license is non-commercial.

For coding agents

Checks before the weights download.

The same answers are available to code. An MCP server gives a coding agent a check_model tool, fineprint check fails CI with exit 1 on a BLOCK model, and fineprint.guard() checks every Hugging Face download first.

MCP serverfineprint check in CIDownload guard

Setup and examples in agent/README.md

Try it here

Pick a model and read its fine print.

Pick a model.

These are real models on the Hub. Each one loads a live report.

Or search any public model.

FinePrint
Report

kenpath/svara-tts-v1

Questions people ask.

Is this legal advice?

No. FinePrint shows what the licenses upstream of a model say, with the clause text and a link to the source. Whether a term applies to you depends on your use and where you are, which is a question for a lawyer.

Where does the data come from?

Lineage and licenses come from Hugging Face Hub metadata: the cfahlgren1/hub-stats daily dump (Apache-2.0), loaded into FalkorDB, plus live Hub lookups for models the dump does not have. Clause text comes from each license's own published text, linked on every clause.

What does UNKNOWN mean?

FinePrint could not reach a finding. The model may not be on the Hub, may have been deleted, may name no base model, or may use a license that is not in the library yet. The decision then reads Review first, and the model should be treated as unchecked.

How does the card reader work, and how accurate is it?

It reads the model card text, picks out the base models and datasets the card names, quotes the sentence for each, and matches every name against the graph. Names it cannot match are listed as not in graph. In a manual check, 41 of 48 edges it proposed were correct.

How do I use it in CI?

Run fineprint check in your pipeline. It finds model ids in code and config files and exits 1 when any model is BLOCK for the use you set. The agent README has a GitHub Actions example and a pre-run hook.

What does the evaluation show?

We scored 120 models against gold labels sealed before any system ran. The strongest baseline is an LLM agent with live Hub API tools. On gold v2 it got 92 right and FinePrint 80, mostly because FinePrint answers UNKNOWN for the 29 models with no declared license. On v3, which treats no license as UNKNOWN, FinePrint leads 103 to 91.

Of 69 models with restricted upstream terms, the agent called 5 clean, all GGUF quantizations of merge trees. FinePrint called none clean. It found terms two or more hops up in 19 of 19 cases, the agent in 14. Median time per model: 9 ms against 11.5 s.

Check a model before you ship it. It takes one URL.

Or open a report directly: /kenpath/svara-tts-v1