How detection works
A flag should come with reasons.
The current build reads provenance declarations and can check OpenAI-issued signals through OpenAI’s verifier on any image check, or from a cached result. It does not independently validate C2PA signatures, run a pixel classifier or decode Google’s SynthID. Scores at or above 70% get an AI verdict. The circle uses a separate bar: it appears only when the score clears your sensitivity setting, with Balanced on by default. Open it to see every signal, no-opinion result and skipped check.
This is stylometry, not proof of authorship. It looks for patterns such as unusually even sentences, stock model vocabulary, polished lists, heavy editorial punctuation and a long comment with no conversational mess. Every pattern that contributes to the score appears in the card.
Slop Squash checks a watermark only when a public verifier exists. OpenAI provides one for OpenAI-issued image signals; the current build calls it on every image check, on any plan, and caches the answer by content hash, so a picture that has been checked once is not sent again. The endpoint is rate limited rather than priced, so past a daily call budget the row says the check was skipped. Google does not let third parties decode SynthID in images or text. Google-made images may still carry Content Credentials, but the current build reads those declarations without independently validating their signatures.
Content Credentials are claims attached to media. The current local parser reads fields such as the named generator and DigitalSourceType, but it does not independently verify the signature or certificate chain. Provider-verified credentials can still arrive through OpenAI’s provenance check. A declaration is useful evidence; by itself, it is not cryptographic proof.
The API reads Software, ImageDescription and CreatorTool fields for known generator names. These fields are unsigned, and most platforms strip them during upload. A match is useful metadata, not proof.
The IPTC/XMP DigitalSourceType field can declare generated media or a composite that includes it. Slop Squash scores those declarations differently and shows the wording it found.
Earlier rechecks and AI-or-human report totals are looked up by a hash of the content. Individual reports are tied to signed-in accounts so abuse can be handled, then deleted with those accounts. The shared verdict cache itself stores no user identity.
Sightengine's generative-image model returns a probability and, where its account data allows, names the closest matching generator. It is the only check that can say anything about an image whose metadata the platform stripped. The integration is written but disabled: running it would send image files to a company our privacy policy does not yet list as a processor, so it stays off until that disclosure is updated. Slop Squash does not run this check today. Hive is named in older material and is not implemented.
On images, a vision model follows a fixed rubric for rendering artifacts and visual patterns. Text gets a separate writing rubric. Either result is a second opinion, and it is cached so the same content does not need another paid call.
With network detection on, checked post text and image URLs go to the Slop Squash API. The page hostname may go with them for aggregate site statistics; the full URL does not. On-device only keeps detection local and runs fewer checks. The exact data flow is in the privacy policy.