I Checked 21 AI Models for C2PA Labels. Here's Who Signs
Kling and Seedance video came through fal's API with no C2PA label, only Google's labels matched the trust list, and a lossless remux deleted every label.
By Yuvraj Singh·Founder, Leaxor
Sources linked throughoutClaims checked against vendor docsReviewed September 2026
Short version: I read the content labels on 35 files from 21 AI image and video models, all delivered through the same API host. Thirteen models carried a C2PA label. Only three of those, all Google's, checked out against the official C2PA trust list. Every Kling and Seedance video came back with no label at all, and a lossless file copy that changed no pixels deleted the labels that were there.
Quick flag: Leaxor is mine, and it sells several of these models. That's how I had the files. Where Leaxor itself stands is further down, and it isn't flattering.
What I checked, and how
C2PA is the standard behind "content credentials": a signed record embedded in a file that says what made it. The EU is about to lean on this kind of marking. From 2 December 2026, AI systems already on the market have to mark their output in a machine-readable way under Article 50(2) of the AI Act, according to the Future of Life Institute's AI Act guide.
So I looked at what these models actually ship.
The files came from two places. One was the set of clips I rendered for Leaxor's homepage in August, one per video model, all through fal's API. The other was an image-model benchmark from the same month. I read every file with the official c2pa-python library, version 0.37.10, and validated signatures against the C2PA trust list and the Content Authenticity Initiative's anchors, both fetched on 13 September.
Accusing a company of shipping unlabelled output on one sample is weak. So on 13 September I paid $3.72 to render five of the eight unlabelled models again: Kling v3, Kling v3 Pro, Seedance 2.5, Seedance 1.0 Pro, and a fresh HiDream image. All five came back without a label a second time.
Who signs, and who doesn't
| Model | Media | C2PA label | Signed by | On the C2PA trust list |
|---|---|---|---|---|
| Video | Yes | Google LLC | Yes | |
| Video | Yes | Google LLC | Yes | |
| Image | Yes | Google LLC | Yes | |
| Flux 2 Pro | Image | Yes | Black Forest Labs Inc. | No |
| Ideogram v3 | Image | Yes | Ideogram, Inc. | No |
| Recraft v4 | Image | Yes | Recraft AI | No |
| Image | Yes | Byteplus Pte. Ltd. | No | |
| LTX-2.5 Pro | Video | Yes | fal (the API host) | No |
| LTX-2.5 Fast | Video | Yes | fal (the API host) | No |
| Video | Yes | fal (the API host) | No | |
| Video | Yes | fal (the API host) | No | |
| Video | Yes | fal (the API host) | No | |
| Grok Imagine 1.5 | Video | Yes | Self-signed certificate | No |
| Video | No | n/a | n/a | |
| Video | No | n/a | n/a | |
| Video | No | n/a | n/a | |
| Video | No | n/a | n/a | |
| Video | No | n/a | n/a | |
| Video | No | n/a | n/a | |
| Video | No | n/a | n/a | |
| HiDream | Image | No | n/a | n/a |
Every label that was present described the file as trainedAlgorithmicMedia, the IPTC term for fully AI-generated content.
Three things in that table surprised me.
The same host treats models differently. fal signed labels onto LTX, Hailuo and Wan output itself. Its certificate belongs to "fal - Features & Labels Inc." and each claim names the fal endpoint. Kling and Seedance came through that same API in the same weeks with nothing.
ByteDance labels its images but not its video. Seedream 4.5 was signed by Byteplus, ByteDance's cloud arm. Both Seedance video models, from the same company, were unlabelled.
That doesn't mean ByteDance ignores provenance. The Next Web reported in March that Seedance output made inside CapCut carries C2PA plus an invisible watermark. It means that label didn't travel with the model when it was sold through someone else's API.
Grok's label proves less than it looks like. Grok Imagine's manifest is signed with a certificate whose name, in full, is "Self-signed ephemeral certificate (Content Authenticity SDK) -- LOCAL USE ONLY". That reads like the SDK's built-in test certificate. The file says it's AI-generated, but nothing in the signature ties it to xAI.
Only Google's labels check out against the trust list
A signature can be intact without anyone vouching for the signer. The C2PA trust list is where that vouching happens, and in these files only Google was on it.
Every other label was structurally valid but signed by a certificate outside the list. I want to be careful here. The trust list is new, and not being on it is not evidence of bad faith. It does mean that a verifier following the C2PA rules would treat the labels on the other 10 models, from six different signers, as unverified.
A lossless copy deletes the label
This is the result I'd most want a platform engineer to see.
I took the Google-signed Veo 3.1 clip and a fal-signed Hailuo clip and ran each through ffmpeg -c copy. That's a stream copy: it rewrites the MP4 container and touches no video or audio data. The C2PA manifest was gone from both. Adding -map_metadata 0, the flag most people reach for to keep metadata, didn't bring it back.
Compression is worse, and I have the receipts from my own site. Leaxor's homepage clips go through an ffmpeg encoder to keep them small. Eight of those fifteen clips carried a label on the way in. All eight lost it.
Most video is re-encoded somewhere between the model and the viewer, by an upload pipeline, a CDN or a social platform. A label that dies on the first container rewrite won't survive that trip, and an invisible watermark is the only part of the scheme built to.
Why this matters before 2 December
Article 50(2) puts the marking duty on providers of systems that generate synthetic images, video, audio or text. It has applied since 2 August 2026, and systems already on the market have until 2 December to meet the machine-readable part.
The direction outside Europe is similar, even when the laws differ. Minnesota's ban on AI nudification tools holds the platform itself liable for images its software generates, and a federal judge let it stay in force on 4 September while xAI's challenge continues. That law doesn't require C2PA. It does show regulators moving liability from the person typing the prompt to the company running the model, which is where provenance becomes a company's problem.
If you build on these models through an API, the table is your starting point. For some of them, the label you'd expect isn't in the file you receive.
Where Leaxor stands
I'd be a hypocrite to publish this and skip my own product.
Single clips and images from the video generator and image generator are served from the model host's own file, and downloads stream those bytes unchanged. Whatever label the model attached, you get.
Finished narrated videos are a different story. The pipeline burns captions into the frames, which means re-encoding, which means the label is stripped. Leaxor adds none of its own yet.
The homepage reel lost its labels to my own compression step, as described above.
I'm fixing the finished-video pipeline so it signs its own output before 2 December, and changing the reel encoder to stop discarding labels. When that ships, this post gets updated with the date.
The data and the limits
The full dataset is public: one row per file, with sample date, model, maker, API host, whether a manifest was present, claim generator, signer, validation state and render request ID. It contains no prices.
The limits are real, so here they are plainly.
- One or two files per model. Five of the eight unlabelled models were re-rendered once to confirm. That rules out a one-off, but it isn't a large sample.
- One API host. Everything came through fal, except HiDream, which came through NanoGPT. A model's own app may label output differently, as the CapCut report shows.
- Invisible watermarks aren't covered. I checked for C2PA manifests and IPTC AI-source fields. SynthID and ByteDance's invisible watermark can't be detected this way, so "no label" here means no C2PA manifest, not no marking of any kind.
- A snapshot. Any of these providers could change what they sign tomorrow. The dates are in the data for that reason.
If you're a provider in this table and your output is labelled somewhere I didn't look, send me the endpoint and I'll re-test it and correct the post.
Frequently asked questions
Which AI video models add C2PA content credentials?+
In files delivered through fal's API and checked on 13 September 2026, Veo 3.1 and Veo 3.1 Fast carried C2PA manifests signed by Google, and Grok Imagine 1.5 carried one signed with a self-signed certificate. LTX-2.5, Hailuo 2.3 and Wan 2.5 carried manifests signed by fal, the API host. None of the five Kling versions or either Seedance version tested carried a manifest.
Do Kling and Seedance videos have C2PA labels?+
Not when delivered through fal's API in these tests. Kling v3, v3 Pro, O3 Pro, 2.6 Pro and 1.6 Elements, plus Seedance 2.5 and 1.0 Pro, had no C2PA manifest in files rendered in August, and the four re-rendered on 13 September still had none. ByteDance says Seedance output made inside CapCut carries C2PA, so labelling can depend on where the model is used. These checks cannot detect invisible watermarks.
Does re-encoding or remuxing a video remove C2PA?+
In these tests, yes. A lossless ffmpeg stream copy, which changes no video or audio data, removed the C2PA manifest from both a Google-signed Veo 3.1 clip and a fal-signed Hailuo clip, including when told to keep metadata. Compressing clips for a website removed it from all 8 labelled clips that went through the encoder.
What does the EU AI Act require for AI-generated content?+
Article 50(2) requires providers of AI systems that generate synthetic audio, image, video or text to mark outputs in a machine-readable format and make them detectable as AI-generated. It applies from 2 August 2026, and systems already on the market before then have until 2 December 2026 to add machine-readable marking.
How can I check whether a file has C2PA content credentials?+
Upload it to the Content Authenticity Initiative's verify tool at contentcredentials.org/verify, or read it with the open-source c2patool or c2pa-python library. Check the signer and whether the signature is on the C2PA trust list, not just whether a manifest exists.
Try the models yourself
Leaxor runs the leading image and video models in one place, paid per credit.
Get startedYuvraj SinghFounder, Leaxor
Built Leaxor, an all-in-one AI image and video generator, to kill the two bottlenecks in publishing: 3–5 hours per short, and a second tool for every thumbnail. Now both take minutes.