In short

  • Ordinary resizes, transcodes and upscales drop C2PA manifests by default. Nobody has to strip them on purpose.
  • The AI Act makes the generator's maker put the marker in. It does not ban you from removing it. Keep it anyway, because platforms read it.
  • Run c2patool on an exported file. It either prints the manifest or reports that none was found.
  • Keeping the manifest does not replace the visible AI label. A viewer cannot see a machine-readable marker.
On this page
  1. What the rule says
  2. Which tools remove C2PA metadata
  3. How to check a file in one command
  4. How to keep the C2PA manifest
  5. You still need a visible AI label
  6. A 15-minute setup for your pipeline
  7. Questions people ask

This is not legal advice, and I am not a lawyer. It is my reading of the rules named in each source box below. It is written so you know which questions to ask a qualified IT and media lawyer.

Almost every AI content pipeline destroys provenanceProvenance Provenance is the recorded history of how a piece of media was made and changed. Open the glossary data by accident. The generator embeds a C2PA manifest, a piece of data in the file that says an AI model made the image. Then a resize, an upscale, a format conversion or a video export writes a new file. The new file does not carry the manifest, so the marker is gone.

Corrected on 1 October 2026. An earlier version said the EU AI Act forbids you to remove these markers. It does not. The Act puts the marking duty on the tool maker. The reasons to keep the markers are practical, and they are below.

There are good reasons to keep the markers. TikTok, Meta and YouTube read them to label your posts automatically. Your generator’s terms may also forbid removing them. And a master file with its manifest shows where an image came from.

What the rule says

Article 50(2): “Providers of AI systems, including general-purpose AI systems, generating synthetic audio, image, video or text content, shall ensure that the outputs of the AI system are marked in a machine-readable format and detectable as artificially generated or manipulated.” Recital 133 names the techniques: “watermarks, metadata identifications, cryptographic methods for proving provenance and authenticity of content, logging methods, fingerprints”.

EU AI Act Art. 50 (opens in a new tab)checked

This duty is on the provider, the company that makes the generator. Most big generators use C2PAC2PA C2PA, also known as Content Credentials, is data stored inside a file that records how the file was made, including whether AI generated it. Open the glossary Content Credentials for it. Article 50 does not tell you, the deployer, what to do with the marker afterwards. Your own rule is the visible label, further down this page.

If you train and publish your own model, you may count as a provider yourself. That is a question for a lawyer.

One document does ban removing markers. It is the EU Code of Practice on AI-generated content, and it is not law. Tool makers can choose to sign it. Those who sign promise to put this into their terms:

Section 1, Measure 1.2(b): signatory providers will include in their terms “a prohibition of the intentional removal of or tampering with metadata markings by deployers or any other third party”.

European Commission — Code of Practice on transparency of AI-generated content (opens in a new tab)checked

So if your generator signed the Code, its terms may forbid you to remove the markers on purpose. Read the terms of the tools you use. Most markers are not removed on purpose, though. Ordinary tools strip them by default, and you can check any file in one command.

Which tools remove C2PA metadata

Check these in your own pipeline and do not just trust the list. Versions change, and the defaults change with them. Run the check from the next section before and after each stage.

  • Format conversion and video export. ffmpeg has no C2PA support. Every transcode builds a new container from the streams it decoded. -map_metadata 0 copies the tag dictionary, but not the JUMBF box that holds a C2PA manifest. Most NLE (video editor) exports have the same problem.

  • Batch resizing. ImageMagick and similar tools often keep EXIF and ICC but drop application segments they do not know. If your posting routine ends with a resize to platform dimensions, that resize is the most likely place where you lose the manifest.

  • Anything written by a Python script. PIL.Image.open(src).save(dst) writes a file with exactly the metadata you passed in the call. Usually that is none. If your scheduler, watermarker or collage builder is written in Python, assume it strips the manifest until you have proved that it does not.

  • Upscalers and face restoration. GFPGAN, CodeFormer, Real-ESRGAN and the ComfyUIComfyUI ComfyUI is a node-based interface for building image-generation pipelines. Each step is a box that is wired to the next. Open the glossary nodes that wrap them decode the image to tensors and encode a new image. The metadata is lost on the way.

  • “Export for web” in an image editor. This setting exists to remove everything that is not pixels.

  • Screenshots of your own work. If you screenshot a generated image to crop it, all provenance data is gone. Many people do this.

What did not work

A one-line batch convert that ran before every upload

The posting routine ended with magick mogrify -resize 1080x -quality 88 *.png to get Instagram’s dimensions in one pass. It ran for months. Every file that reached a platform had been through it.

Checking a single output with c2patool returned no claim found. The source files straight out of the generator all had a valid manifest. Nothing after that step did. The resize step in the middle removed the marker that the generator had put in.

The fix was simple: keep the generator output as the master, do the resize with a tool that keeps the manifest, and check one file per batch instead of assuming. The extra step costs about ten seconds per batch.

How do I check whether my pipeline is stripping the manifest? Ask it in #question-thread. Someone there has usually had the same problem.

Open the DiscordWhat is inside the server

How to check a file in one command

c2patool is the reference implementation from the Content Authenticity Initiative. Point it at a file and it prints the manifest as JSON. The output includes which software generated the file and what was done to it afterwards:

c2patool output.jpg

If the manifest is gone, it tells you so and prints no claim. That is the full test.

For a second check without installing anything made for C2PA, use exiftool. It shows whether the JUMBF container that carries the manifest survived:

exiftool -G1 -a output.jpg

Build one of these into your pipeline as an automatic check after export, so you do not have to run it by hand. A batch that produces files with no manifest should fail loudly, the same way a broken build does.

How to keep the C2PA manifest

  • Keep the generator output as a master that never changes. Never edit in place. Make every derivative from the master. The master keeps its manifest whatever happens later. If you ever have to show what a file was, you have it.

  • Move the destructive step out of the default path. Do resize, crop and colour work in a tool that you have checked keeps the manifest, or do not do it at all. You can usually avoid cropping to a platform aspect ratio: set the dimensions in the prompt pipeline when you generate.

  • Where an edit really has to break the chain, add a manifest and do not replace the old one. C2PA supports a new manifest that points to the previous one, so the history stays intact. This needs a signing certificate. For most solo operators that is more effort than changing the pipeline so the lossy step is not needed.

  • Separate platform behaviour from your own. Most social platforms re-encode on upload, and many throw away metadata when they do. That happens after the file has left your hands, and you cannot change it. It also means the machine-readable layer cannot be your AI labelAI label An AI label is a platform’s own marker that says an account or a post is AI-generated. Open the glossary for the viewer.

You still need a visible AI label

People often get this the wrong way round. Keeping the C2PA manifest does not replace the visible AI label. You still have to label the content. The AI disclaimer generator has a ready line for each platform.

Disclosure of artificially generated or manipulated image, audio and video content must be made in a clear and distinguishable manner at the latest at the time of the first interaction or exposure. A machine-readable marker embedded in the file is not perceptible to a viewer and does not satisfy that requirement on its own.

EU AI Act Art. 50(4) and 50(5) (opens in a new tab)checked

Keep both. The viewer sees the visible caption. A platform or a verification tool sees the manifest. For the labelling side, read what the EU AI Act means for AI persona operators. It covers what counts as first contact, why an invented persona is still covered, and where Instagram and FanvueFanvue Fanvue is a subscription content platform that officially allows AI creators and labels them as AI. Open the glossary policy overlap.

The fines in the AI Act are for breaking its rules, such as your labelling rule:

Non-compliance with the Article 50 transparency obligations is subject to administrative fines of up to EUR 15 000 000 or, for undertakings, up to 3% of total worldwide annual turnover for the preceding financial year, whichever is higher. There is no turnover threshold below which the obligation ceases to apply.

EU AI Act Art. 99(4) (opens in a new tab)checked

For small businesses, including a one-person business, the lower of the two amounts is the limit:

In the case of SMEs, including start-ups, each fine referred to in this Article shall be up to the percentages or amount referred to in paragraphs 3, 4 and 5, whichever thereof is lower.

EU AI Act Art. 99(6) (opens in a new tab)checked

A solo operatorOperator The person who runs an AI persona. The operator generates the content, posts it, answers messages and gets paid. Open the glossary is unlikely to get that maximum fine. A platform will usually act on a missing label long before a regulator does.

A 15-minute setup for your pipeline

Fifteen minutes of setup removes most of this risk for good:

  1. Write down every tool your files pass through between the generator and the platform. Most operators cannot write this list from memory.
  2. Run c2patool on one file at each stage. Mark where the manifest disappears.
  3. Replace or remove that stage.
  4. Add the check to the pipeline as an automatic test. Then you notice within a week when a tool update changes a default.
  5. Keep the masters. Cold storage is cheap, and a regenerated file is not the same evidence.

The EU compliance hub has more on the regulation and where it affects your daily work.

The masters have a second use. When an account disappears, a copy of every file with its provenance intact is the most useful thing you can have. Risk, bans and recovery builds it into the recovery plan. The re-encoding step that strips manifests is usually an automation step. Where the hours go helps you decide which steps you should automate at all.

Sources for this article

The platform rules, laws and numbers above come from these documents. The date says when we last opened each one and checked it.

  1. EU AI Act Art. 50checked
  2. European Commission — Code of Practice on transparency of AI-generated contentchecked

Questions people ask

Does re-encoding an image count as removing a watermark?

In effect, yes. After your pipeline ran, the marker is gone. The file does not show whether your tool deleted it on purpose or just failed to copy it. The AI Act does not ban you from removing it. But platforms can no longer read it, and your generator's terms may forbid removing it.

How do I check whether a file still has its C2PA manifest?

Run c2patool on the file. If there is a manifest, it prints the claim as JSON. If not, it reports that no claim was found. exiftool with the -G1 -a flags also shows whether a JUMBF block survived the export.

The platform strips metadata when I upload. Am I in breach?

No. The AI Act sets no rule for you about these markers. The platform also re-encodes the file after it has left your hands. It does mean that provenance data cannot be your AI label. The visible label is the part you control from start to finish, and it is what Article 50(5) wants the viewer to see.

Does keeping the C2PA manifest mean I do not need a visible label?

No. They do different jobs. Article 50(4) says you have to tell people the content is AI. Article 50(5) says they must see that clearly at first contact. A viewer cannot see a machine-readable manifest. Keep both.

Can I re-sign a file after editing it?

C2PA lets you add a new manifest that points to the previous one. That keeps the chain and does not replace it. Signing needs a certificate. For most solo operators it is easier to pick editing tools that carry the existing manifest through.

GusOperator, AI OFM City

Three years of running several AI personas on Fanvue and social media.

I checked this article on . How articles are made and checked

Questions? Ask in #question-thread on our Discord. People who run AI influencers answer there. 5,857+ members.

Back to the top