A ChatGPT image carries two marks, and only one of them is removable. OpenAI says images generated with ChatGPT, Codex or the OpenAI API "include both signals": Content Credentials, which is C2PA metadata sitting in the file header, and a SynthID watermark embedded in the pixels. The first comes off with a segment-level strip that never decodes the picture — measured below at a decoded-pixel hash that does not move. The second is the picture, so nothing removes it without changing the image. A tool that promises to remove the ChatGPT image watermark is doing the first and naming the second.
OpenAI's provenance documentation, updated 2026-10-12, describes the two signals and why it uses both. On the images row of its own table it states that images generated with ChatGPT, Codex or the OpenAI API "include both signals", and on the design it says: "Metadata can carry detailed information, but platforms, editing tools, and file conversions may remove it. Watermarks carry less context, but because they are embedded in the generated content itself, they may survive some transformations that remove metadata."
That sentence is the whole page in one line. The two layers fail in opposite directions, which is exactly why one is removable and the other is not.
| Layer | Where it lives | How it fails | What removes it |
|---|---|---|---|
| Content Credentials (C2PA) | The file header, in a JUMBF manifest | "can be lost through everyday actions, such as taking a screenshot or converting a file" | A segment-level strip. No re-encoding, no pixel change. |
| SynthID watermark | The pixels of the image itself | survives light edits; "extensive changes such as heavy image cropping, file compression, substantial paraphrasing, or translation" can make it undetectable | Nothing, without changing the image. See the measured cost of every route. |
There is no OpenAI account behind this workspace, so no ChatGPT image was generated and nothing here claims to have stripped one. What can be measured without one is the property that makes the metadata route honest, and it is the same measurement the rest of this site uses: a header operation never decodes the picture, so the picture cannot change.
The strip takes 4,415 bytes out of the header and the decoded pixels hash identically before and after. That is the whole claim behind "removes metadata without re-encoding", and it is why the honest half of this page is genuinely good news. It is also why it is not an answer to the question you asked: the route that leaves the image alone is the route that never looks inside it.
Reproduce it with python dev/synthid_edits.py, which builds the fixture with ffmpeg, splices the APP11 segment in, and runs five routes including this one.
OpenAI is blunt about what a watermark does and does not establish: it is "evidence that an OpenAI model likely generated or processed the content", and on its own it does not establish who authored or owns the content, whether disclosure was required, or who is legally responsible. It also says plainly that provenance signals do not replace visible labels or other disclosures, and that its tools are not designed to detect content generated by other AI models.
Two consequences worth stating. A negative detector result is not proof a person made the file, and a stripped header is not proof of anything either. And if you are the one publishing, removing the credentials does not discharge a labelling obligation — that is a separate question and not one a metadata tool answers.
Half of one can. OpenAI puts two signals on an image generated through ChatGPT, Codex or the OpenAI API: Content Credentials, which is C2PA metadata in the file header, and a SynthID watermark embedded in the pixels. The metadata half is removed by a segment-level tool without re-encoding, and our measurement shows the decoded pixels coming out byte-identical. The SynthID half is part of the picture, so removing it means changing the picture. Any site that promises both is describing one of them and naming the other.
No. The SynthID layer is invisible, and OpenAI's documentation describes it as a signal embedded in the content itself rather than something added on top. There is no sparkle, badge or corner mark on a ChatGPT image from this mechanism, which is why a visible-mark remover will report finding nothing. If you are looking at a visible mark in the corner of an image, it is a different generation and a different answer.
No, and the pair is the interesting part. Content Credentials sit in the header and are lost through everyday actions such as a screenshot or a file conversion, which OpenAI says is why it uses both signals: a watermark carries less context but, being embedded in the content, may survive the transformations that strip metadata. So a clean header does not mean an unmarked image, and the site that tells you otherwise has stripped one layer and billed it for both.
Use the official checkers, not a remover. openai.com/verify takes PNG, JPG and WEBP images plus several audio formats and reports whether it found provenance signals associated with content generated or exported by OpenAI tools. The Content Provenance API does the same from code. Google's SynthID Detector at synthid.com also covers OpenAI among its partners. A positive result is strong evidence; a negative one is not, and OpenAI lists the reasons a supported file can still come back clean.
It removes one of two signals, and the one it removes is the weaker one. OpenAI describes Content Credentials as removable through ordinary handling and the watermark as the layer designed to survive, so stripping metadata reduces what a checker can see without removing the mark itself. It also does not make the image look handmade to any classifier: statistical AI detectors read the render, not the header. Neither does it change what you should do about disclosure, which is a separate question and not one a metadata tool answers.
Different media, different layers, so read the page for the medium you have. On text, OpenAI's EU rollout uses textGrain, which adjusts how the model chooses between words and inserts no characters, while the rest of the world has no production text watermark documented — that part is on the ChatGPT watermark page. On audio, OpenAI says generated audio carries a SynthID watermark in the waveform itself, which is the same situation as image pixels. The metadata route is the one that is honest across all three.
Sources: OpenAI Help Center, Provenance signals in OpenAI-generated content (updated 2026-10-12) · openai.com/verify · Google DeepMind, Google SynthID. The measurement is reproduced by dev/synthid_edits.py. Related: the ChatGPT text watermark, Claude vs ChatGPT, a watermark on an ordinary photo.