How Meta decides to show an AI Info label
Meta's AI Info label fires from four independent signals. Which ones you control, which you don't, and how a mostly-photographic image ends up labelled.
The AI Info label on Facebook and Instagram is usually explained as if it were a detector: Meta looks at your image, decides whether it is AI, and labels it. That model predicts the wrong things. It cannot explain why a photograph you shot yourself gets labelled, and it cannot explain why a fully generated video sails through without one.
The accurate model is that Meta reads four independent signals and the label can fire from any of them. Only one of the four is a classifier looking at pixels. Two of the other three live in your file, put there by tools you did not necessarily choose for that purpose. Once you can name all four, both of the confusing outcomes above stop being mysterious.
The four signals
| Signal | Where it lives | Who puts it there | What removes it |
|---|---|---|---|
| C2PA manifest | Cryptographically bound file metadata | The generating or editing tool, if it signs | Any re-encode, screenshot or non-aware edit |
| IPTC DigitalSourceType | Standard image metadata field | Whatever tool wrote the file | A metadata strip, a re-encode, a screenshot |
| Classifiers | Nowhere in the file | Meta, at ingest | Nothing you can do reliably |
| Self-disclosure | Meta's own records for the post | You, at posting time | You, by not using it |
Two of those are metadata. One is a model. One is a switch. They are genuinely independent, which is the part that matters: satisfying one does not suppress another, and a file can trip two of them for entirely unrelated reasons.
C2PA manifests are the Content Credentials standard. A conforming tool signs a manifest describing what made the file and what was done to it, hard-bound to the exact bytes of the asset. When it survives to upload, it is the highest-confidence signal available, because it is the file declaring itself rather than a platform guessing.
IPTC DigitalSourceType is the quieter one and the source of most surprises. It is an ordinary metadata field from the IPTC photo-metadata vocabulary, with a value indicating how the media was produced — including values for media produced by a trained algorithm. It is not signed, not cryptographically bound, and not hard to write. Any tool in your chain can set it, and plenty do, automatically, without surfacing that they have.
Classifiers are Meta's own models inspecting the content directly. You cannot inspect them, cannot appeal to a documented threshold, and cannot predict them from the file. Treat this signal as weather.
Self-disclosure is the toggle on the posting flow. It is the only signal that is entirely, deliberately yours.
The two you actually control
You control the metadata layer and you control the toggle. That is more leverage than it sounds like, because those two signals cover the two failure modes people actually care about.
The surprise label is a metadata problem. Here is the mechanism, and it has nothing to do with how much AI was involved: if any tool in your chain writes a DigitalSourceType value indicating algorithmically produced media, the field is now in the file. It does not carry a proportion. There is no "12% generative fill" value. A camera-original photograph that passed through one editing operation which set that field arrives at Meta carrying a flat assertion about its origin, and the label can fire on it.
That is why the "but it's mostly a real photo" objection lands nowhere. The signal Meta read was not a judgement about the image. It was a field in the file, written by your editor, saying what the file was. If you want to know whether that will happen before you post, the check is not to look at the image. It is to look at the file's metadata.
The missing label is the same problem inverted, and it is the one worth worrying about more. A fully generated video that has been re-encoded on its way to upload arrives with no C2PA manifest and no DigitalSourceType, because both are metadata and metadata does not survive a transcode. Two of the four signals are now gone. What remains is a classifier you do not control and a toggle you may not have flipped. If neither fires, a wholly synthetic asset publishes with nothing on it — which is the outcome every disclosure rule currently landing in the EU, California and China exists to prevent, and the outcome you are exposed for rather than Meta.
The full walk of where metadata dies in a pipeline covers the mechanics. The short version: assume the metadata is gone unless you have looked.
Avoiding a surprise, in five minutes
- Inspect the export, not the project. Open the file you are about to upload and look at its metadata. This is the entire diagnostic. Everything below is what to do with the answer.
- Find which tool writes the field. If DigitalSourceType is present and you did not expect it, export the same asset from each stage of your chain and check each one. The first stage where it appears is your writer. It is almost always an editor with a generative feature, not the generator you were thinking of.
- Decide, rather than discover. Once you know, the question becomes a policy: do you want this file to declare itself or not? For anything with a real AI contribution, the answer should be yes, and the field arriving automatically is doing you a favour. For a file where a generative feature touched a trivial region, this is a conversation to have deliberately rather than to lose an argument with a metadata field about.
- Use the toggle regardless of what the file carries. The toggle and the metadata are independent signals, and a mismatch between them is the thing that looks bad. Flipping it on a file that already declares itself costs nothing.
- Keep the copy consistent across destinations. The same video should not read as candid on one platform and disclosed on another. The cross-platform labelling checklist is the version of this you can run per launch, and the difference between a profile-level and a post-level disclosure decides which one you need where.
Ads are a separate rulebook
Everything above is about the organic label. Meta operates a stricter, mandatory disclosure requirement for political and social-issue advertising, and that is a different kind of obligation: an advertiser duty you owe, not a label the platform infers from your file.
The distinction matters because the two work in opposite directions. On organic content, the label is something that happens to you and the sensible posture is to make it predictable. On regulated advertising categories, disclosure is something you owe and the sensible posture is to assume you owe it. Do not let a clean metadata inspection on an organic post train the reflex that silence is the default anywhere. Meta ads creative workflow is the production side of the same split.
New York added a further layer for a narrow case: since 9 June 2026, an ad reaching New York consumers that features a fully synthetic human performer needs a conspicuous disclosure of its own, which is a visible-copy duty rather than a metadata one. A platform label does not discharge it.
What the label does and does not mean
A useful discipline: read the AI Info label as "one of four signals fired," not as "this content is AI." Those are different claims and only the first one is supported.
It can fire on a real photograph with an eager metadata field. It can fail to fire on a fully generated video whose metadata was stripped. It is a platform's practical compromise between provenance data it can trust and detection it cannot fully rely on, not an authoritative verdict. What AI detection and labels actually establish is the broader version of that argument, and what an AI content label is is the one-page definition.
The version of this that holds up: your disclosure obligation is defined by law and by your own disclosure policy, and the platform label is a signal that may or may not coincide with it. Build the policy first. Let the label be a consequence.
FAQ
Can I remove the metadata to avoid being labelled?
Technically yes, and it is a bad trade. Stripping metadata does not produce a clean file — it produces a file indistinguishable from one that never carried provenance, while leaving any pixel-level watermark a provider applied fully intact. You have removed the cooperative signal and kept the robust one. It also conflicts directly with machine-readable marking expectations under Article 50 in the EU and under California's marking obligation, both of which applied on 2 August 2026.
Why did my photo get labelled when I barely used AI?
Because the signal that fired was almost certainly a metadata field asserting algorithmic origin, and that field has no notion of degree. One generative operation anywhere in your editing chain can set it. Inspect the file, find which stage writes it, and decide from there.
Does a C2PA manifest guarantee a label?
No, and the reason is that manifests frequently do not survive to Meta at all. A manifest is hard-bound to the exact bytes of the file, so any re-encode between your export and the upload invalidates or removes it. A manifest that arrives intact is a strong signal. A manifest that existed when you exported is not evidence of anything about what arrived.
Should I flip the toggle on stylised, obviously synthetic work?
Yes, on consistency grounds rather than deception grounds. Nobody is fooled by an obviously rendered piece, but an inconsistent disclosure policy across your own feed is what creates the impression that the disclosed posts are the exceptions. The threshold for a visible on-screen disclosure genuinely differs by content type. The threshold for using the platform's own toggle does not need to.