Image guide · Visual explanation

Where does NovelAI hide metadata?

Removing EXIF does not necessarily remove NovelAI generation data. Some of that information is not stored in a descriptive file block at all—it is encoded in the pixels' Alpha channel.

First, make the hidden layer visible

Both images below show the same 96×96-pixel area from the left side of the source, enlarged by the same amount. The first shows the green background and red character outline. The second ignores the visible colors and maps changes in the Alpha channel's lowest bit.

Enlarged 96 by 96 pixel crop from the left side, showing the background and character outline
Visible image cropA 96×96-pixel crop enlarged to show the ordinary colors and shapes.
Heatmap of least-significant-bit changes in the Alpha channel at the same locationAlpha channel · enhanced
Alpha heatmapPurple means little or no change; yellow and white mark denser low-bit changes.

The heatmap is not a darkened copy of the picture. It isolates the Alpha channel and exaggerates tiny differences with a color scale. The changes line up along the far-left portion of this sample while the rest stays quiet. Each displayed cell summarizes a 3×3-pixel area, so the source file's exact pixel-level pattern is not published.

Hidden data does not always occupy the left side. Its position varies with image dimensions, payload length, and write order. The point of this comparison is simpler: an image can look completely normal while its Alpha channel carries another layer of data.

How is this different from ordinary metadata?

To see why information can remain after a metadata cleanup, think of a PNG as three separate layers:

01

Visible pictureRed, green, and blue channels form the colors you see.

02

File-level metadataSeparate blocks such as EXIF, XMP, tEXt, iTXt, and C2PA.

03

Pixel-level hidden datastealth_pngcomp writes data into the Alpha channel's least significant bits, making it part of the pixel values.

A conventional metadata remover usually targets the second layer. If it preserves the RGBA pixels exactly, the third layer may be copied into the new file too.

How can 254 and 255 carry data?

Each channel in an 8-bit PNG ranges from 0 to 255. For Alpha, 255 is fully opaque and 254 is just one level below it. Their binary values differ only in the final bit:

Alpha 25511111111Can represent 1
Alpha 25411111110Can represent 0

That final bit is the least significant bit, or LSB. A program can read the LSBs from many pixels and reassemble the zeros and ones into bytes, while the visible difference in opacity remains practically imperceptible. That is why the heatmap has to amplify the variation before its location becomes obvious.

What do those bits contain?

NovelAI's public implementation reads the payload in a short sequence:

  1. 1

    Identify the formatRead the fixed stealth_pngcomp marker to identify the payload type.

  2. 2

    Read its lengthUse the length field to determine how many hidden bits follow.

  3. 3

    Decode the contentReassemble bytes, decompress them with gzip, and parse the resulting structured JSON.

The JSON may contain positive and negative prompts, seed, steps, sampler, CFG, model or software details, and signature-related fields. This is not an indecipherable watermark pattern; it is a generation record stored out of sight.

Why can an ordinary metadata remover miss it?

May remain intact

Remove EXIF, XMP, and PNG text chunks, then save the original RGBA pixels losslessly.

Usually disrupted

Remove or rebuild Alpha, resample the image, or convert it to a format without Alpha such as JPEG.

Platform recompression, filters, and color adjustments may also alter low bits. But “probably disrupted” is not the same as “verified absent.” A reliable process deliberately rebuilds the relevant pixels, then checks the result with an independent detector instead of looking only for EXIF.

This is not a robust copyright watermark:
stealth_pngcomp is discreet and can hold substantial data, but it depends on the lowest pixel bits remaining unchanged. Resizing and lossy encoding can easily break it.

Does finding stealth_pngcomp prove a NovelAI origin?

Not on its own. The stealth_pngcomp structure is public, so third-party software can write the same format. Detecting it only establishes that the file contains data matching that structure.

signed_hash addresses a different question: stealth_pngcomp tells you where data is stored; signature verification helps determine whether the image and related metadata pass an origin check. Stronger attribution should consider the format, decoded content, and digital signature together instead of treating any single signal as absolute proof.

What can this site inspect today?

The tool now inspects and removes EXIF, GPS, XMP, PNG text data, C2PA, and common AI generation parameters. It also decodes stealth_pngcomp from Alpha-channel LSBs and displays readable fields such as prompts, seed, and sampler.

When you use the image metadata remover, it rebuilds the Alpha-LSB carrier, verifies the hidden marker is gone before export, and removes ordinary file-level metadata. Processing stays in your browser.

The essential distinction

Ordinary metadata lives in file blocks. stealth_pngcomp lives in the least significant bits of pixel Alpha values. Different locations require different detection and removal methods.

Reference

This explanation is based on NovelAI's public image-metadata project, which includes implementations for reading, writing, and verifying Alpha-channel hidden metadata.

NovelAI / novelai-image-metadata