Free tool · runs in your browser
Find the emote that doesn't belong
A set fails as a set long before any single emote fails on its own. One piece with a different head size, a warmer green or a heavier outline is what makes a set read as machine-made. Drop your set in and find the odd one out.
Drop 2 or more emotes
or · select the whole set at once
Nothing is uploaded. Analysis runs on your machine.
What makes a set look machine-made
Viewers do not judge an emote in isolation. They see a row of them in the emote picker, and they see them dozens of times a stream. The signal that a set was generated rather than commissioned is almost always internal inconsistency, not any individual piece being bad.
Four kinds of drift do most of the damage: the character colour shifting between pieces, the proportions changing (a head that is 10% larger), the framing changing (one emote floating small in its square while others fill it), and the outline weight changing.
How this checker works
Each emote is measured on colour, identity hue, bounding-box aspect, canvas fill, outline share and 28px readability. The set's median becomes the centre, and each piece is scored on how far it sits from that centre.
The thresholds are calibrated against measured noise. Two generations of the same prompt with the same reference already differ by about 6 ΔRGB and 7% framing, so anything inside that band is treated as normal variance rather than drift — otherwise every set would be flagged and the tool would be useless.
Questions
How many emotes do I need?
Two is enough for a comparison, but the analysis gets useful at four or more: the median becomes a real centre rather than an average of two.
Are my files uploaded?
No. Decoding, measuring and scoring all happen in your browser. Nothing leaves the device.
My set is flagged — what now?
Fix the flagged piece rather than the whole set. Regenerating using the closest-matching emote as a reference usually pulls it back into line in one attempt.