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.

Observed 2026-09-19 · 18 local transformations · 3 retained every readable creation field
Input recordOperationFields retainedSame pixels?Files
AUTOMATIC1111 parametersCopy original bytes8 / 8Yes, exact RGBA matchOriginal · Export
AUTOMATIC1111 parametersPNG re-encode (default metadata)0 / 8Yes, exact RGBA matchOriginal · Export
AUTOMATIC1111 parametersPNG with keepMetadata0 / 8Yes, exact RGBA matchOriginal · Export
AUTOMATIC1111 parametersJPEG export, quality 900 / 8NoOriginal · Export
AUTOMATIC1111 parametersLossless WebP export0 / 8Yes, exact RGBA matchOriginal · Export
AUTOMATIC1111 parametersRaw pixels to a new PNG0 / 8Yes, exact RGBA matchOriginal · Export
ComfyUI editor and API graphsCopy original bytes2 / 2Yes, exact RGBA matchOriginal · Export
ComfyUI editor and API graphsPNG re-encode (default metadata)0 / 2Yes, exact RGBA matchOriginal · Export
ComfyUI editor and API graphsPNG with keepMetadata0 / 2Yes, exact RGBA matchOriginal · Export
ComfyUI editor and API graphsJPEG export, quality 900 / 2NoOriginal · Export
ComfyUI editor and API graphsLossless WebP export0 / 2Yes, exact RGBA matchOriginal · Export
ComfyUI editor and API graphsRaw pixels to a new PNG0 / 2Yes, exact RGBA matchOriginal · Export
InvokeAI generation recordCopy original bytes10 / 10Yes, exact RGBA matchOriginal · Export
InvokeAI generation recordPNG re-encode (default metadata)0 / 10Yes, exact RGBA matchOriginal · Export
InvokeAI generation recordPNG with keepMetadata0 / 10Yes, exact RGBA matchOriginal · Export
InvokeAI generation recordJPEG export, quality 900 / 10NoOriginal · Export
InvokeAI generation recordLossless WebP export0 / 10Yes, exact RGBA matchOriginal · Export
InvokeAI generation recordRaw pixels to a new PNG0 / 10Yes, exact RGBA matchOriginal · 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.