My lab develops low-cost and easy-to-use tools for identifying fake medicines, but we’re always on the lookout for other types of fakes that we can go after. For example, the cosmetics industry has a massive problem with counterfeit products. Studies estimate that two-thirds of branded makeup and skincare products on sites like eBay, TikTok Shop, and Vinted are fake. Counterfeit cosmetics don’t just waste consumers’ money; they may also expose wearers to harmful contaminants like heavy metals and bacteria.

As part of an ongoing study, I’ve been purchasing both authentic and counterfeit versions of various cosmetics. I’m always struck by how much work fraudsters put into making the fakes look authentic. At a glance, the counterfeit versions of a product are virtually indistinguishable from the genuine ones. However, with a little research and some close inspection, you can start to find little inconsistencies that give away the fakes. But not everyone has the time or expertise to research a particular package before they buy it. That got me wondering: could existing artificial intelligence models be used to identify a counterfeit product? If so, then consumers could snap some photos and use ChatGPT or Gemini or Claude to verify the authenticity of an item before they purchase it.

To explore this idea, I took photos of three different packages of a particular product, “Rhode Peptide Lip Tint.” I chose this product because it’s a known target for counterfeiters according to a recent New York Times article on fake beauty products. For each package, I took four photos of the cardboard box (one for each long side) and two photos of the tube (front and back). I then uploaded each tube’s six photos to Google Gemini and used the Gemini 3.6 Flash model with “Thinking” enabled and fed it the prompt, “Is this tube of Rhode Peptide Lip Tint authentic?”

I recorded the model’s response, then I prodded it to work a little harder using the prompt, “Are there any other red flags you can find?”

I repeated this process for all three packages of the product. The results are further down, but if you’d like to first try your hand at determining whether these packages are authentic or counterfeit, here are the photos. You can click or tap on each photo to view it full size. There are three packages (A, B, and C), each with six images of the package (Image A1, A2, A3, etc.):



Package A

Image A1:


Image A2:


Image A3:


Image A4:


Image A5:


Image A6:



Package B

Image B1:


Image B2:


Image B3:


Image B4:


Image B5:


Image B6:



Package C

Image C1:


Image C2:


Image C3:


Image C4:


Image C5:


Image C6:



Those are the photos that I fed to Gemini. If you want to try to determine for yourself which of the three packages are real and which are fake, don’t scroll any further!

When you’re done, scroll on for my analysis of Gemini’s assessments of these products…



Welcome back! Let’s find out if these packages are real or fake…

For each package below, I start by saying where I got it from and whether it is authentic or counterfeit based on my professional assessment. Then I go through Google Gemini’s responses one-by-one, rating each response as either correct (✅) if the response is technically valid, or incorrect (❌) if Gemini got something factually wrong.



Package A

Package A is fake. I got it for about $5 from a sketchy eBay seller (authentic Rhode Peptide Lip Tint costs around $20). Let’s see what Gemini thinks…


🤖 “This Rhode Peptide Lip Tint appears to be counterfeit due to several prominent typographical errors and packaging discrepancies between the box and the tube.”

✅ Gemini got it right. The AI goes on to share specific observations that convinced it that the product is counterfeit…


🤖 “Typographical Errors: The ingredients list on the outer box misspells Diisostearyl Malate as Diisosteary! Malate using an exclamation mark.”

✅ This is correct!

It looks like someone scanned or photographed the actual ingredient list and then used optical character recognition (OCR) to convert it to text, but the OCR thought that a lower-case L was an exclamation mark. I also noticed this error.


🤖 “On the back of the tube, the regulatory text misspells SOLUTIONS as SOLOTIONS and omits a space in LIMITED,STANLAW.

❌ The first part of this response is incorrect, and looking closely at Image A6, we can see why:

Gemini mistook glare on the tube from the room lighting for a printing typo. A human wouldn’t make this mistake. This is the first of several mistakes that we’ll see Gemini make that can be attributed to photographic artifacts.

✅ The second part of Gemini’s response, the missing space in LIMITED,STANLAW, is valid. A reputable product shouldn’t have typos like that (although—spoiler alert—we’ll revisit that statement later on…).


🤖 “Mismatched Distributor Information: The outer box lists BIORIUS (Belgium and UK) as the Responsible Person (RP), whereas the tube itself lists PWC Services (Ireland and UK). Authentic products maintain identical regulatory contact details on both the outer packaging and the inner container.”

✅ This response really impressed me. Gemini’s not just looking for inconsistencies within photos; it’s also looking for inconsistencies across photos. I’ll admit that I missed this one.

By the way, the current authentic tubes of the product I’ve obtained only mention BIORIUS (on both the tube and the box) and not PWC, so it would appear that if you find a recent box or tube that mentions PWC, that suggests that the package is counterfeit.


🤖 “Batch Code Stamp: The deeply stamped batch number (112505) on the tube’s crimp is a known marking frequently seen on counterfeit Rhode lip products circulating from unauthorized sellers.”

✅ This is correct! In fact, several of my counterfeit packages have the same batch number, 112505, even though I obtained them from different sources.

If you see someone selling a package of Rhode Peptide Lip Tint with batch number 112505, I’d encourage you to take your business elsewhere.

Additionally, while Gemini didn’t notice this, I observed that there are no seams visible between the digits on the batch number. Usually, batch numbers like this are created using small interchangeable metal digits inserted into the mold used to manufacture the plastic tube; each digit is a separate piece of metal, and employees can piece together the right digits for a particular batch. On a reputable product, you can usually see little ridges in the plastic between the digits, caused by the plastic flowing into the small gaps between the metal pieces during molding. But on this tube, the batch number has no visible ridges, indicating that it was made using a solid piece of metal with a fixed number—that’s suspicious.


Gemini then concludes:

🤖 “Counterfeit cosmetic products do not undergo standard safety or quality testing and may contain unknown or irritating ingredients. To ensure formula safety, authentic Rhode products should be purchased directly from the official brand website or authorized retailers.”

Good advice! I then gave Gemini my follow-up prompt, “Are there any other red flags you can find?” Here are the responses:


🤖 “Redundant Product Description: The back of the box (Image A3) states, ‘Apply this tinted lip tint daily…‘ Authentic Rhode packaging reads ‘Apply this tinted lip treatment daily…‘ Calling it a ‘tinted lip tint’ is a clear text error.”

✅ Gemini is correct that “tinted lip tint” is suspicious; the AI seems to be picking up on the awkward repetition of “tint,” and I noticed this one too.

But Gemini’s claim that “Authentic Rhode packaging reads ‘Apply this tinted lip treatment daily’” is incorrect, or at least out-of-date. Current authentic packages read “Apply this nourishing formula for a hint of tint and hydrated, pillowy-soft lips.” I’ll call this response a success, even though Gemini got some of the details wrong.


🤖 “Italian Recycling Misspelling: Above the recycling icon on the box back (Image A3), the text reads RACCOLTA PLASTIC. The correct Italian term is RACCOLTA PLASTICA (missing the ‘A’ at the end).”

✅ Correct! And I missed this one (my Italian is limited to menu items at restaurants) but Google Translate informs me that “raccolta plastica” means “plastic collection.”

I’ll also note that this phrase (correct or otherwise) doesn’t appear at all on current authentic packages, at least not on the ones I’ve gotten here in the US.


🤖 “Postal Code Letter/Number Swap: On the regulatory text on the back of the tube (Image A6), the Dublin postal code uses the capital letter O instead of the number 0 (DO1 A2T5 instead of D01 A2T5).”

✅ Now Gemini is just showing off… The AI is correct on all fronts: Ireland uses seven-character postal codes (called Eircodes); the first three characters are called the routing key and D01 (dee-zero-one) is the valid routing key for the Dublin 1 postal district. But the tube says DO1 (dee-oh-one) and that’s not a valid routing key:

Hats off to Gemini on this one; I don’t have enough familiarity with postal codes to notice something like this.


🤖 “Box-Outline Debossing: Image A1 shows a stamped rectangular border outline debossed into the cardboard around the front text (rhode PEPTIDE LIP TINT…). Official Rhode unit cartons are smooth and do not have this outer mold line stamped around the front logos.”

❌ This is totally wrong. Current authentic boxes of Rhode Peptide Lip Tint do have an embossed border around the front text, in the shape of the outline of the tube.


🤖 “Volume Spacing Errors: On the front right side of the box (Image A1), the measurement text is crammed together as 10mL/0.3floze without standard spaces separating the units or the e estimate symbol.”

❌ Also wrong. The volume measurement text does look weirdly crammed together in Image A1, but it looks similarly crammed together on authentic boxes too.


🤖 “Shade Name Placement: On the tube (Image A6), the shade label ‘ribbon’ is printed sideways directly against the crimped seam edge, which differs from standard factory placement.”

❌ I’m also calling this one wrong. In my judgement, the location of the shade name on Image A6 is indistinguishable from the location of the shade name on an authentic tube.



Package B

Package B is also fake. It was another sketchy $5 eBay purchase. But what does Gemini say?

🤖 “Based on multiple spelling errors, spacing glitches, and formatting issues across the packaging and tube, this item appears to be counterfeit. Authentic products from established cosmetics brands go through strict quality checks, whereas fakes frequently contain text errors.”

✅ Another correct ID of a counterfeit product from Gemini. On to the reasons:


🤖 “Spelling Error in Usage Instructions (Image B3): The top line of the usage text reads ‘Appli tinted lip treatment daily…’ instead of ‘Apply’.”

❌ Incorrect. This is another case of Gemini mistaking lighting glare for a typo:


🤖 “Misspelled Ingredients (Image B2): The ingredients list contains chemical spelling errors, including ‘Octyidodecanol’ (instead of Octyldodecanol) and ‘Fliuorphlogopite’ (instead of Fluorphlogopite).”

✅ That’s right. For a second time, Gemini notices typos in the complex chemical names in the ingredient list. I think the second chemical actually reads “Flluorphiogopite” on the box, but either way, it’s a misspelling. I noticed this one as well.


🤖 “Lowercase Country Name (Image B3): The origin line reads ‘Made in italy’ using a lowercase ‘i’ instead of capitalized ‘Italy’.”

✅ This does look suspicious, especially since “Fabriqué en Italie” is capitalized correctly immediately afterwards. I noticed this too.


🤖 “Spacing Glitches (Images B3 & B6): The box includes an errant space in ‘SERVIC ES LIMITED’, while the back of the tube omits the space in ‘LIMITED,STANLAW’.

✅ Correct for both. It’s interesting that the missing space in ‘LIMITED,STANLAW’ affects both Package A and Package B, even though many other elements of the packaging are different between A and B. I also noticed these typos.


🤖 “Missing Accents (Image B3): The French translation ends with ‘colorees’ instead of the proper accented ‘colorées’.”

✅ My French is a good (bad) as my Italian, but Google Translate indicates that “colorées” (with the accent) is correct. I missed this one.


🤖 “Further Verification Steps”

Gemini’s next two responses aren’t specific to the photos; rather, they’re general advice on additional steps an individual might take to determine the authenticity of their product.


🤖 “Applicator Orientation: On genuine Rhode tubes, when looking at the front logo, the slanted tip of the applicator should face away from you.”

This is true of authentic tubes, but it’s also true of every fake tube I’ve collected, so this is clearly not a reliable rule-of-thumb. But the applicator isn’t visible in my photos, so I’m not scoring this one way or another.


🤖 “Texture & Fragrance: Authentic Rhode Peptide Lip Tints have a smooth, non-sticky balmy texture and a mild scent, whereas counterfeits often smell strongly of chemicals or feel overly sticky or grainy.”

This seems like good advice, particularly regarding smell: some of my fake tubes have a sickly sweet smell. The authentic product is virtually odorless to my nose. But again, this has nothing to do with the product photos, so no score.


After receiving my follow-up prompt, Gemini continued:

🤖 “Invalid Postal Code (Images B3 & B6): The Dublin address lists the Eircode as DO1 A2T5 using the capital letter ‘O’ instead of the numeric zero (D01).”

✅ This is correct, and it’s a repeat of the same postal code problem that Gemini detected in Package A.


🤖 “Ingredient Spelling Error (Image B2): The compound Phytosteryl/Isostearyl is misspelled as Phytosteryl/Isosteararyl with an extra ‘ar’.”

❌ That’s a mistake. When pressed to look for more errors in the ingredient list, Gemini mistook the glare on a paper crease for a typo:


🤖 “Uneven Text Spacing (Image B4): The key ingredients list on the box side contains wide, irregular spacing gaps between BABASSU and CUPUAÇU.”

✅ Honestly, that side of this box is the most sketchy thing I’ve noticed on all the counterfeit packaging I’ve collected. “Oh, we still need something for the side of the box with the barcode? Let’s put THREE DIFFERENT OILS plus ‘PEPTIDE’ in ALL CAPS with weird spacing. Good work everyone!” Current authentic packages have one side of the box that’s completely blank.


🤖 “Distorted Logos (Image B6): The Leaping Bunny cruelty-free symbol printed on the back of the tube next to the 12M icon is stretched and warped.”

❌ I’m calling this incorrect. Here’s a closeup of the suspect Leaping Bunny logo from Image B6, compared to the Leaping Bunny logo from the website of the Leaping Bunny Program:

The logos look pretty similar to me.


🤖 “Faded Tube Printing (Image B5): The French description and volume details (10 mL / 0.3 fl oz e) on the front of the tube are printed in a low-contrast, barely legible grey font rather than crisp white.”

❌ Another borderline claim. I think that the text is illegible in Image B5 because it is located along the curved side of the tube and is poorly illuminated, not because of a printing defect, so I’ll count this one as a failure.


🤖 “Messy Crimp Stamping (Image B6): The stamped batch code on the tube crimp overlaps the printed white vertical stripe unevenly.”

❌ To my eye, the orientation of the white stripe relative to the batch code is similar to that found on authentic tubes, so this is incorrect.


🤖 “Excessive Shrink Wrap (Images B1 & B3): The outer box is encased in thick, heavily wrinkled plastic shrink wrap with warped seams, which differs from authentic retail box packaging.”

❌ This is totally wrong; the box is not encased in any shrink wrap. I think that Images B1 and B3 both have spots with high glare on the packages, and Gemini mistook this shiny surface for plastic wrap. The AI is right that authentic boxes don’t come with shrink wrap, though.



Package C

Package C is authentic. I purchased it from a Sephora store in Moreno Valley, California for about $20. Sephora is one of Rhode’s authorized resellers so it’s reasonable to assume that the product will be authentic.

So what does Gemini think of the authentic Package C?


🤖 “Based on the details visible in your images, this tube and box of Rhode Peptide Lip Tint (in the shade Ribbon) show definitive signs of being a counterfeit product.”

Whaaaaaaat???

After going two-for-two successfully identifying counterfeit Rhode Peptide Lip Tint, Gemini says that the package I bought at Sephora is also fake?!? And Gemini doesn’t mince words—it said Packages A and B merely “appeared to be counterfeit” but Package C from Sephora has “definitive signs of being a counterfeit product”?!?

I read on to find out Gemini’s claimed reasons for suspecting Package C:


🤖 “Spelling Typos in the Ingredients (Image C2): The ingredient list contains obvious spelling errors that would not pass authentic quality control. It lists “Svnthetic Fluorphlogopite” (using a ‘v’ instead of a ‘y’) and “Ethylhexvl Palmitate” (using a ‘v’ instead of a ‘y’).”

✅ I pulled out the box to take a look, and by golly, Gemini was right:

Two different chemical terms, each with a “v” instead of a “y”. These mistakes were eerily similar to the typos that Gemini found in the ingredient lists of the counterfeit Packages A and B.

Is it possible that the product from Sephora was also fake?

To find out, I went to the source and purchased a tube of Rhode Peptide Lip Tint (“ribbon” shade) directly from Rhode’s website:

If this package isn’t authentic, then nothing is. And I checked the ingredients list:

There they are, “Svnthetic” and “Ethylhexvl,” just like my Package C from Sephora. Authentic Rhode packages do have typos in their ingredient lists.

I reached out to Rhode for a final confirmation, and I haven’t heard back from them yet. But I think the take-home message is clear: errors in chemical names in ingredient lists, while strongly associated with counterfeit products, can also appear in authentic products. A typo on a package unfortunately isn’t proof that the product is fake.


I then looked at the other problems that Gemini had found with Package C:

🤖 “Grammar/Accent Errors (Image C2): The Italian translation line at the top prints ‘TINTA LABBRÂ’ with an incorrect circumflex accent over the final ‘A’.”

✅ This appears to be correct too. I think it’s actually a tilde (Ã) above the A on the box and not a circumflex, but either way, Google Translate indicates that no accent is necessary in “TINTA LABBRA” (“lip stain”). It’s a minor error that clearly escaped detection at Rhode. But Gemini noticed it, and it made the AI wrongly decide that this package was counterfeit.


🤖 “Barcode Printing (Image C3): The font weight and numeric alignment on the barcode sticker differ from standard factory unit packaging.”

❌ I don’t see it. The barcode in Image C3 appears to be identical to the barcode on my package shipped directly from Rhode.


Now, just like in Gemini’s response for Package B, the AI suggests the same two additional tests that a consumer can use to check for authenticity:

🤖 “Additional Physical Checks for the Tube: Applicator Orientation: On an authentic Rhode tube, when you hold the slanted tip against your lips while looking in a mirror, the printed rhode logo on the front faces outward toward the mirror. Counterfeits frequently have the slanted applicator attached backward or off-center.”

Same as before, this is true for all of the packages I’ve collected, both authentic and counterfeit.


🤖 “Scent & Formula: Genuine Rhode lip tints have a smooth, cushiony, non-sticky texture. Counterfeit formulas often feel gritty, watery, or overly sticky and frequently carry a heavy plastic or chemical odor.”

Also same as before.


Gemini concludes:

🤖 “Because counterfeit cosmetics are unregulated and can cause allergic reactions or skin irritation, it is safest to avoid using this product.”

Gee, Gemini, that’s unfortunate because I paid $20 for it and it’s actually authentic!


I then prompted the AI for more red flags, and these were the results:

🤖 “Debossed Box Border (Image C1): The front of the carton features a raised, rectangular inset frame stamped around the text. Genuine Rhode boxes have a completely smooth, flat front panel with clean text printing rather than an embossed outline.”

❌ Same as before, this is wrong; the authentic boxes have embossed features.


🤖 “Distorted Cruelty-Free Icon (Image C3): The bunny icon next to the 12M PAO symbol on the back of the box is a generic, warped silhouette instead of Rhode’s official Leaping Bunny logo.”

❌ Gemini seems to be confused here—the Leaping Bunny isn’t Rhode’s official logo.


🤖 “Text Ghosting on Tube (Image C5): The French translation line (“BAUME À LÈVRES TEINTÉ AUX PEPTIDES”) on the front of the plastic tube shows distinct shadow ghosting beneath the white letters, caused by misaligned double-printing.”

❌ Wrong; this appears to be yet another case of Gemini mistaking glare for a printing error.


🤖 “Overly Bold Crimp Batch Stamp (Image C6): The batch code (116099) pressed into the end seal of the tube is exceptionally deep, thick, and large. Authentic Rhode tubes use a much finer, subtle font for batch stamp indents.”

❌ Also incorrect. Maybe the lighting made the batch stamp look unusually deep? Regardless, it’s very similar to the tube direct from Rhode (but with a different batch number, as you might expect).


🤖 “Misaligned Shade Label (Image C6): The shade name “ribbon” is printed off-center directly against the crimped edge, causing the text to fade out along the border.”

❌ Gemini also observed this in the fake packages, but to my eye the shade name is printed in roughly the same location on all of my tubes, both authentic and counterfeit.


🤖 “Coarse Crimp Texture (Images C5 & C6): The vertical seal ridges on the flat end of the tube are rough and unevenly pressed, whereas authentic packaging features a smooth, uniform crimp.”

❌ Similar to the batch code above, I think the lighting is playing tricks on Gemini.



Conclusions

Based on this little experiment, what are the prospects for using commercial AI tools like Gemini to identify counterfeit cosmetics? Here are my thoughts.

AI was better than I expected at finding fakes. Gemini found meaningful packaging discrepancies that I didn’t, like the mismatch between the distributor names on the box and the tube in Package A, and the malformed Irish postal codes on Packages A and B. I suspect that the vast majority of humans inspecting these packages wouldn’t pick up on these discrepancies. Even if they did, they’d likely have to spend significant time poring over the packages to find these errors. Gemini found them in a few seconds using just six photos of each package. And this was using a general-purpose model, not one tailored for this particular task. I’d say that for this particular skincare product and this particular AI model, AI will do a better job than the average human at detecting a fake. But this is a popular brand with a known history of attracting counterfeiters, and there are obviously hundreds of other beauty products on the shelves; AI might not do as good a job detecting fake versions of those.

AI struggled with photo artifacts. Most of Gemini’s mistakes could be attributed to glare, shadow, parallax, and other photographic peculiarities. This was a natural consequence of having only a few still images of each product to analyze. In contrast, a human inspecting a package is constantly moving the box and tube to view it from all angles, so a human wouldn’t make these mistakes. Having AI tools analyze short videos of suspect packages may be a more effective strategy than the one employed here.

AI was very good at finding typos on packaging. Most people won’t notice the difference between “octyldodecanol” and “octyidodecanol” in a long list of chemicals, but AI excels at finding these errors. And typos like these frequently occur on counterfeit packages of this product, so AI-assisted typo detection could be an effective tool for identifying counterfeit products. HOWEVER…

Authentic products can have typos too. It’s unfortunate that authentic packages of Rhode Peptide Lip Tint have two typos in their ingredient lists. It doesn’t just reflect poorly on Rhode’s quality control—it also puts their products at greater risk of being incorrectly flagged as counterfeit by AI tools like Gemini which justifiably associate typos with counterfeit products. Reputable manufacturers need to avoid mistakes on their packaging, especially if people start relying on their AI-powered phones to check the authenticity of a product before purchasing it. And we should be developing other anti-counterfeiting technologies too—I’m personally a fan of using random patterns to uniquely identify products, as we did with pharmaceuticals a few years ago in our work on CandyCodes.

In conclusion, I’m pretty negative about AI in general, but this experience made me cautiously optimistic about the role the technology could play in protecting consumers from counterfeit products.