How to tell if an image is SDXL (Stable Diffusion XL)
Stable Diffusion XL (SDXL) is an open-weights image model released by Stability AI in 2023. Because the weights are public, most SDXL images are produced on someone's own hardware through interfaces such as AUTOMATIC1111 or ComfyUI rather than through a hosted service, and that changes what evidence an image ends up carrying. This page covers the visual patterns SDXL tends to leave behind, what its files do and do not record, and the points at which each of those signals stops working.
Visual tells
Dimensions that are multiples of 64 with a total area near one megapixel. SDXL was trained using aspect-ratio buckets built around a target area of roughly 1024 x 1024 pixels (1,048,576), with widths and heights varying in multiples of 64. Sizes that look arbitrary at first glance, such as 1152 x 896, 1216 x 832, 1344 x 768, 832 x 1216 and 640 x 1536, come directly from that bucket list. This is the most mechanical tell available, but it only holds if the image has not been cropped, upscaled or resized since generation.
Long text collapses while short text sometimes survives. The SDXL paper states the model "encounters difficulties when rendering long, legible text" and that generated text "may contain random characters or exhibit inconsistencies"; the model card puts it more bluntly, saying the model "cannot render legible text". Signage, book spines, product packaging and street markings drift into invented letterforms partway through a word. This is one of the more useful ways to separate SDXL from models released later that were built specifically for typography.
Concept bleeding. This failure mode is named by SDXL's own authors, who describe it as "the unintended merging or overlap of distinct visual elements". In practice a colour, material or texture from one object appears on an unrelated object nearby. The paper's own example is an orange garment tinting a pair of sunglasses. Look for a colour in the scene that has no light source or surface to justify it.
Spatial relationships come out wrong. The model card lists compositionality as a limitation, giving the example of failing at "rendering an image corresponding to 'A red cube on top of a blue sphere'". Relationships like on top of, behind, under and to the left of get swapped, merged, or applied to the wrong object, even when everything in the scene is individually rendered well.
Fine high-frequency detail is reconstructed as mush while the main subject stays sharp. The model card states that "the autoencoding part of the model is lossy". The effect shows up in crowd faces, distant window frames, chain-link, embroidery, fabric weave and fine hair, which resolve into smeared approximations rather than detail. This is independent of image resolution, so it is visible even in an otherwise crisp 1024-pixel image.
Duplicated subjects at extreme aspect ratios, and unreliable hands. Images generated far from square more often contain a second head, an extra limb, or a mirrored copy of the subject. On hands, the SDXL paper acknowledges "challenges when synthesizing intricate structures, such as human hands". Treat hand errors as weak evidence on their own: most models released after SDXL handle hands better, and many SDXL fine-tunes were trained specifically to correct this, so a clean pair of hands does not rule SDXL out.
Metadata & provenance
SDXL does not write C2PA Content Credentials. The openly released weights and the reference generation pipeline produce no C2PA manifest, and the model card does not mention provenance metadata. It also does not carry SynthID, which is a Google DeepMind system used in Google's own models such as Imagen, Veo and Lyria, and is not part of any Stable Diffusion release. There is one invisible watermark, and it is conditional. Hugging Face diffusers includes a StableDiffusionXLWatermarker that embeds a fixed 48-bit value (0b101100111110110010010000011110111011000110011110, hex b3ec907bb19e) using the invisible-watermark library's dwtDct method, skipping images under 256 pixels. The diffusers documentation states the add_watermarker argument "will default to True if the package is installed, otherwise no watermarker will be used", so it is absent whenever invisible-watermark is not present. It is a single constant applied identically to every image, decoding to an arbitrary bit pattern rather than readable text, so at most it indicates the pipeline used and never identifies a specific image or user. ComfyUI does not apply it, which is the subject of an open issue titled "SDXL invisible-watermark is not applied". Since most SDXL images in circulation were generated through interfaces rather than the diffusers pipeline directly, most of them carry no watermark at all. Where it is present, the invisible-watermark project's own test results show dwtDct survives JPEG compression, noise and brightness changes, but fails after a 50 percent resize, an aspect-changing crop, or rotation. Any image resized on the way to the web has most likely lost it. The model writes no EXIF or XMP generator tag of its own. Any generator information comes from the interface. AUTOMATIC1111 writes a PNG tEXt chunk under the keyword "parameters" containing the prompt, negative prompt, sampler, steps, CFG scale, seed, size and model hash, and uses an EXIF UserComment field for JPEG and WebP output. ComfyUI writes PNG text chunks named "prompt" and "workflow" holding the JSON node graph, often zlib-compressed because workflows are large. Where present, the recorded model name or hash is the only thing that confirms which checkpoint was actually used, and is the difference between "this looks like SDXL" and "this says it is SDXL". All of this metadata is trivially removable and routinely removed without anyone intending to. Re-saving in most editors, converting formats, taking a screenshot, or uploading to a platform that re-encodes and resizes will drop the text chunks and can break the watermark at the same time. Absence of metadata is not evidence that an image is genuine, and its presence is not proof either, since text chunks can be edited or copied onto an unrelated file.
How well WeDetect handles SDXL (Stable Diffusion XL)
wedetect analyses pixels, so it still returns a result when metadata has been stripped, but the result is a probability rather than a verdict. Across modern generators the detector scores about 89 percent overall, and about 85 percent recall on the group covering Midjourney, DALL-E, SDXL and Flux. There is no separately published figure for SDXL on its own; it sits inside that grouped number. Performance is not uniform across the Stable Diffusion family: on Stable Diffusion 3.5 the measured recall is about 62 percent, meaning roughly four in ten SD 3.5 images are missed, and that gap is worth knowing before relying on a negative result for any recent Stable Diffusion output. Thousands of community SDXL fine-tunes exist and their outputs can differ substantially from base SDXL, so recall on a particular checkpoint may be better or worse than the group figure. Heavy compression, screenshots, upscaling and post-generation editing all lower confidence. Use the detector as one input alongside the file's dimensions, its metadata and your own reading of the image, not as the sole basis for a decision that matters.
Check an image now
Drop the image in below — free, no sign-up, deleted after analysis.
Drag & drop, paste, or click to upload
PNG · JPG · WEBP · HEIC — your image is analyzed privately and deleted
This is an estimate, not proof — the detector can be wrong, producing both false positives and false negatives. Don't rely on it as your only source; verify anything important. wedetect.ai is not liable for decisions made from these results. See our Terms.
Frequently asked questions
Does SDXL add a watermark to images?
Sometimes, and less often than people assume. The Hugging Face diffusers pipeline embeds a fixed 48-bit value using the invisible-watermark library's dwtDct method, and it is enabled by default only when that library is installed. ComfyUI does not apply it, which is a known open issue. The value is the same constant on every image, so it can suggest which pipeline produced a file but says nothing about the individual image or who made it. According to the library's own published test results it survives JPEG compression but fails after resizing, aspect-changing crops or rotation, so images that have passed through a platform that resizes them have probably lost it. There is no visible watermark, no C2PA Content Credential and no SynthID on SDXL output.
How can I tell if an image is SDXL or Midjourney or Flux?
Start with the dimensions. SDXL's training buckets produce distinctive sizes near one megapixel with both sides a multiple of 64, such as 1216 x 832 or 896 x 1152, which differ from the sizes other services output. Then look at any text in the image: SDXL degrades on longer strings, whereas several models released after it render text far more reliably, so legible multi-word signage argues against SDXL. Provenance metadata is the third signal, since hosted services are more likely to attach C2PA Content Credentials while SDXL run locally attaches nothing. None of these is conclusive on its own, particularly for a cropped or resized image, and a fine-tuned SDXL checkpoint can look quite unlike base SDXL.
Can you get the prompt from an SDXL image?
Only if the metadata is still attached, and never from the pixels themselves. AUTOMATIC1111 stores the prompt, negative prompt, sampler, steps, CFG scale, seed and model hash in a PNG text chunk called "parameters". ComfyUI stores the full node graph in chunks called "prompt" and "workflow". If either is intact you can read the prompt directly and, more usefully, read the model name or hash that confirms which checkpoint was used. Once the file has been re-saved, converted, screenshotted or uploaded somewhere that re-encodes it, that information is gone and cannot be recovered. No tool reconstructs a prompt from pixels alone, whatever it claims.
If the metadata is stripped, can an SDXL image still be detected?
Yes, but with less certainty, and the answer is a probability rather than proof. A pixel-based classifier does not depend on metadata, so it still works on stripped files. wedetect scores about 89 percent overall on modern generators and about 85 percent recall on the group that includes SDXL. Detection is weaker on newer Stable Diffusion releases: on Stable Diffusion 3.5 the measured recall is about 62 percent, so a meaningful share of those images are missed. Heavy compression, screenshots and upscaling reduce confidence further. Combine the detector's output with the image's dimensions, whatever metadata survives, and the visual checks above rather than treating any single signal as decisive.
Other generators: Midjourney · DALL·E 3 · GPT-4o · Stable Diffusion · Flux · Grok · Firefly · Gemini · Nano Banana · GPT Image 2 · Flux 2 · SD 3.5 · Sora · all generators.