Free image utility
Compare image metadata before and after export.
Did your saved prompt, seed or ComfyUI workflow survive? Upload the original and its exported copy to compare the creation details our reader can find.
Two still images, up to 10 MB each. Files are read on our server to return this result. No AI model call, account or saved public report. Privacy
What this comparison reads
Supported records include AUTOMATIC1111 PNG parameters and compatible EXIF UserComment data, supported ComfyUI PNG execution graphs, and InvokeAI PNG generation records. We compare the prompt, negative prompt, recorded model and available settings. ComfyUI editor and API graphs have separate fingerprints.
Image dimensions are separate from saved generation dimensions. A resize can change the image size while leaving a recorded generation size unchanged. The tool reads records; it does not reconstruct missing instructions or verify that a model created the picture.
EXIF camera fields, GPS, complete XMP records and Content Credentials signatures are outside this comparison. For signed records use the C2PA checker. To copy a saved prompt use the image prompt extractor.
Our export experiment: 18 tests, downloadable files
We attached three synthetic record types to a code-drawn image and ran six explicit operations on each. Only the three byte-for-byte copies retained all the supported creation fields in this run. 15 of 18 outputs had exactly the same decoded RGBA pixels as their original; matching pixels did not guarantee matching records.
These are results for Sharp 0.35.4, not measured behavior of the AUTOMATIC1111, ComfyUI or InvokeAI applications. Each name describes the record format we constructed. The prompts and model names are demonstration data, not claims about the image’s origin.
| Input record | Operation | Fields retained | Same pixels? | Files |
|---|---|---|---|---|
| AUTOMATIC1111 parameters | Copy original bytes | 8 / 8 | Yes, exact RGBA match | Original · Export |
| AUTOMATIC1111 parameters | PNG re-encode (default metadata) | 0 / 8 | Yes, exact RGBA match | Original · Export |
| AUTOMATIC1111 parameters | PNG with keepMetadata | 0 / 8 | Yes, exact RGBA match | Original · Export |
| AUTOMATIC1111 parameters | JPEG export, quality 90 | 0 / 8 | No | Original · Export |
| AUTOMATIC1111 parameters | Lossless WebP export | 0 / 8 | Yes, exact RGBA match | Original · Export |
| AUTOMATIC1111 parameters | Raw pixels to a new PNG | 0 / 8 | Yes, exact RGBA match | Original · Export |
| ComfyUI editor and API graphs | Copy original bytes | 2 / 2 | Yes, exact RGBA match | Original · Export |
| ComfyUI editor and API graphs | PNG re-encode (default metadata) | 0 / 2 | Yes, exact RGBA match | Original · Export |
| ComfyUI editor and API graphs | PNG with keepMetadata | 0 / 2 | Yes, exact RGBA match | Original · Export |
| ComfyUI editor and API graphs | JPEG export, quality 90 | 0 / 2 | No | Original · Export |
| ComfyUI editor and API graphs | Lossless WebP export | 0 / 2 | Yes, exact RGBA match | Original · Export |
| ComfyUI editor and API graphs | Raw pixels to a new PNG | 0 / 2 | Yes, exact RGBA match | Original · Export |
| InvokeAI generation record | Copy original bytes | 10 / 10 | Yes, exact RGBA match | Original · Export |
| InvokeAI generation record | PNG re-encode (default metadata) | 0 / 10 | Yes, exact RGBA match | Original · Export |
| InvokeAI generation record | PNG with keepMetadata | 0 / 10 | Yes, exact RGBA match | Original · Export |
| InvokeAI generation record | JPEG export, quality 90 | 0 / 10 | No | Original · Export |
| InvokeAI generation record | Lossless WebP export | 0 / 10 | Yes, exact RGBA match | Original · Export |
| InvokeAI generation record | Raw pixels to a new PNG | 0 / 10 | Yes, exact RGBA match | Original · Export |
Download results CSV · Full observations and SHA-256 hashes · Example license and scope
Repeat the experiment
The downloadable observations record the exact Node, Sharp and libvips versions and the call used for each operation. Keep those versions with any reproduction. For a compact standalone exercise, compare a byte copy with a PNG re-export using the public reproduction script and files.
npx tsx scripts/create-metadata-retention.ts
Start with each original PNG. Copy its bytes, re-encode to PNG, re-encode with keepMetadata(), export JPEG at quality 90, export lossless WebP, and rebuild a PNG from decoded pixels. Then run the same reader on both files and compare their decoded RGBA buffers. Exact calls, output files and field-level results are in the JSON download.
Sharp documents that its default output strips metadata. In our fixture run, keepMetadata() also did not preserve these custom PNG creation records. That is an observed result for this version and these records, not a claim that every metadata field is removed. Sharp output documentation.
What this experiment cannot tell you
We did not upload files to social networks or test browser downloads or operating-system screenshots. Rebuilding a PNG from raw pixels is an explicit pixel-only operation. It is not a measured screenshot workflow. No C2PA signature survival, detector accuracy or generator authorship was tested.
Keep the original file when you need its saved creation details. Test your own export path with both files above; a format name alone does not tell you which fields survived.