png::meta tEXt · iTXt · zTXt

How PNG Metadata Extraction Works

From dropped file to readable prompt in under a second — here is what happens under the hood, and why it is private by design.

The four steps

  1. Upload the PNG. Drop the original file on the extractor or use the "Upload PNG → Extract Metadata" button. Screenshots and re-encoded images will not work — see the FAQ.
  2. Chunks are parsed in your browser. A PNG is a signature followed by a list of chunks (length, type, data, CRC). PNGMeta walks that list and picks out the three text chunk types defined by the PNG specification: tEXt (Latin-1), zTXt (deflate-compressed) and iTXt (UTF-8, optionally compressed). Compressed payloads are inflated with the browser's native DecompressionStream.
  3. Prompts and settings are recognised. ComfyUI stores a prompt and a workflow JSON chunk; PNGMeta walks the prompt graph and pulls the text out of every CLIPTextEncode node. Automatic1111 and Forge store a single parameters chunk with the prompt, negative prompt, steps, sampler, CFG scale, seed and model hash. Every other chunk (Software, Comment, XMP, custom keys) is shown raw.
  4. Reuse the result. Copy any value, or download the ComfyUI workflow JSON and drag it onto the ComfyUI canvas to reproduce the exact node graph.

Privacy: parsing happens client-side

The file is read with the browser's File API and parsed by JavaScript on your device. There is no upload step before you see results, no account, and no install. That is also why it is fast: a 5 MB PNG is parsed in a few milliseconds.

Which tools embed metadata in PNGs?

ComfyUI, Automatic1111 WebUI, Forge, InvokeAI, SwarmUI, Fooocus and most Stable Diffusion / Flux front-ends write text chunks by default. Midjourney and DALL·E web downloads generally do not. Any PNG that contains standard text chunks — including files produced by Photoshop, GIMP or ImageMagick — will show its metadata here as well.

Why some PNGs come back empty

Text chunks are ancillary: an encoder is free to drop them. Screenshots, WhatsApp/Telegram "photo" sends, Discord mobile, most social networks and any JPEG/WebP conversion strip them permanently. If you need to keep the workflow, always share the original file as a document/attachment.

Developer? See the chunk reference and code samples to parse PNG metadata yourself.