AI virtual makeup try-on: from prototype to production

Customers leave if they cannot try a shade before buying. We develop turnkey virtual makeup try-on: from data analysis to handover to operations — and reduce manual shade adjustments and returns. The result is consistent quality at scale and less manual work.
Frequently Asked Questions

Virtual makeup try-on: where quality breaks

Virtual makeup try-on breaks not at rendering, but earlier — in data preparation. The shade on screen depends on skin undertone, texture, and shine: the same lipstick on matte and moisturized skin reads as two different colors.

If the training sample is homogeneous, on dark skin or skin with redness the model systematically shifts the tone.

The second source of errors is light. Hard directional light creates deep shadows in lip creases and on the sides of the nose, while diffused light eats away contour and saturation.

Without white balance normalization and a reference color chart, one product in the catalog looks different in photos from different customers, and this cannot be predicted in advance.

The most delicate part is face and lip markup. We need stable key points along the lip contour, the boundary between lips and teeth, eyelid and eyebrow zones, plus robustness to smiling, blinking, hair, and glasses.

An error on the contour — and lipstick creeps beyond the mouth boundary, shadows fall not along the crease but over it.

The cost of shade mismatch on skin is not cosmetic. The customer receives a product that looks different on them and sends it back; in color cosmetics, the return rate is already among the highest. The catalog loses the main thing — trust in the preview, and people stop using it.

That is why we start not with image generation, but with color calibration and shade verification against reference guides at the level of Pantone. Then we break down how this is closed step by step: from markup and quality under different lighting to result control.

What try-on at scale delivers: speed, returns, trust

Speed of delivering the look to the customer

The first question for any try-on is how long to wait for the result. Heavy server-side computation easily stretches the response and kills interest in the product page. We parse the frame by zones: lips, eyelids, and eyebrows separately, and skin tone under makeup separately.

Texture and color transfer run only over these areas, not over the whole photo, so the look delivery time stays within seconds both on a weak connection and at peak load on the storefront.

Return rate and manual edits

The second effect is visible in order statistics. The main reason for cosmetics returns is shade mismatch: one tone in the photo, another on the skin.

If color is transferred by the average value of the frame, the shade drifts along with the lighting, and the seller gets a stream of manual shade edits from customers and consultants.

We calibrate transfer using reference skin areas, account for undertone and the color temperature of light in the image, and apply boundaries with feathering — the shade in the look matches the shade in the tube.

When looks are stable, behavior on the product page changes: the customer more often adds the product to cart, the share of cosmetics returns for "wrong color" falls, and the number of manual shade edits decreases, because a once-configured profile for the line works for the entire palette. Product page conversion grows not through discounts, but through removed uncertainty.

Operating modes: browser service, app, embedding

Try-on mode is primarily about camera access and where the customer comes from. The algorithm is one, the wrappers are three: browser, app, product page.

Customer device limitations weigh more here than interface beauty — they determine both frame quality and time to first result.

When browser mode is enough

A link from an ad or QR code opens without installation — the customer sees the first makeup frame within seconds.

The limitations are honest: some in-app browsers in social networks and messengers do not expose the camera or cut the stream, and weak devices have less memory for computation. Therefore we include a fallback path — try-on using an uploaded photo.

When a module inside the app is needed

Inside the app, camera access is stable, models are stored locally and are not re-downloaded on every visit, and updates arrive with a new build. The trade-off is embedding into an existing product and coordinating with the customer's team.

Option When it fits Limitations
Browser try-on mode One-off campaigns, ad traffic, launch without app changes No camera in some in-app browsers, models load on every visit
Module in a mobile app Ongoing audience, repeat purchases, real-time capture Requires build and release, dependency on permissions and OS version
Embedding in the product page Shade selection where the customer is already choosing a product Store platform rules, someone else's interface, weak control over updates

Work stages: from data review to handover to operations

Try-on breaks not in the model itself, but in data and edge cases: the shade drifts under warm light, pigment covers skin texture, and on dark and very light tones the result looks like a sticker.

That is why the work follows the order "data → metrics → code": until it is defined what counts as a correct try-on, any generation remains a matter of taste.

  1. Brand data audit. We inventory the palette and finishes, and check that every shade has footage under identical lighting conditions — otherwise part of the assortment remains without a reliable reference.
  2. Generation quality metrics. We fix measurable criteria: shade deviation within the tone, preservation of texture and pores, a natural boundary on lips and eyelids — and agree on them before training.
  3. Testing on complex skin types. A separate set: dark and light tones, problem areas, shine, freckles, mixed light. The model must not whiten skin or mute pigment.
  4. Assembly and training. The architecture is selected for the brand's shooting format, and the palette updates without retraining from scratch — a new shade is added in days, not weeks.
  5. Load testing. We review response time and output quality under a stream of simultaneous sessions: predictability during a sale peak matters, not just in a demo.
  6. Handover to operations. We provide configurations, deployment scheme, automated tests, and metric monitoring — the team sees quality degradation before customer complaints arrive.

What remains with you: models, schemes, regulations, access

After acceptance, the solution remains with you as a set of artifacts, not as a service on our side.

We hand over training source code, face segmentation and color transfer model weights, shade palettes in editable form, and the integration scheme — the team can change the assortment and reassemble the build without us.

Documentation and update regulations

  • Model composition and purpose of each: where face zone selection is, where tone matching is, where lighting correction is.
  • Training scripts and prepared frame sets — retraining for new shooting equipment or salon conditions.
  • Shade palettes in editable format: a new tone is added to the reference without rebuilding the model.
  • Shade update regulation: who enters a batch, what checks it passes, and how it is rolled back.
  • Integration scheme: call points, exchange formats, storefront behavior when the service is unavailable.
  • Access and roles: repository, model registry, monitoring panel, separation of environments and keys.

Output quality control

  • A reference set of frames with different skin types and lighting — acceptance and regression runs before every deployment.
  • Metrics: share of frames with confidently determined tone, frequency of manual edits, share of failures on edge cases.

Case study: how we cut returns and manual shade edits

Initial situation

Cosmetics brand Lumielle came with a try-on prototype that relied on a few prepared studio photos and fell apart on live phone shots.

A customer chose a shade by a flat swatch, got a different tone on their skin — and went to support saying "I was sent the wrong color." Returns for this reason consumed a noticeable share of category orders, and the content team manually corrected shades on product pages after every complaint.

Engineers rewrote the matching core: segmentation of lip, eye, and skin zones, bringing the image to neutral light, rendering the shade with skin tone and highlight taken into account. Instead of one texture — a set of finishes: matte, satin, with shimmer.

The content team received an admin panel where a shade is linked to a product page and updated without developer involvement.

Result in numbers

Metric Before After
Share of returns with reason "shade did not match" 18% 7%
Support requests about tone matching, per 1000 orders 46 13
Customers who complete try-on through saving the look 31% 68%
Manual shade edits by content team, per week 20+ 3

Measurements were taken on comparable traffic and assortment so the comparison would not drag seasonality along.

Shade-related returns stopped being the main line item in the direction's reporting, and support was unloaded so much that some shifts were moved to care consultations instead of complaint handling.

The brand direction manager confirmed: try-on is used as the main way to choose a tone on the product page.

How does the generative approach differ from manual layer drawing?

Manual layer drawing is when a separate layer with a mask is drawn for each shade, blending mode is configured, and highlight, matte finish, and lip contour are worked out separately.

The accuracy of tone matching here rests on the number of prepared layers and the precision of masks, that is, on the artist's discipline, not on an algorithm.

The limit comes from the arithmetic of combinations.

The volume of manual image preparation grows as the product "shade × skin type × lighting × facial expression," not as a sum: a new product forces redrawing all face states, otherwise the tone drifts on dark skin or under warm light.

In addition, the mask is static — it does not know that lips are pressed together, and a seam appears at the area boundary.

The generative approach removes this dependency on manual markup. The model learns on "before and after" pairs with different shades and shooting conditions, so a new product is added by fine-tuning or by describing the shade, not by drawing a layer.

Tone matching accuracy is measured in color space: the model predicts how pigment will lie on existing skin, taking its tone and light as input parameters.

The weak spot of generation is the predictability of fine mechanics. Shine, glitter, and texture behavior when the head turns are more reliably held by limiting the generation area and overlaying controllable layers on top.

That is why working solutions are almost always hybrid, and the choice between approaches is a question of the number of shades and shooting variability.

Common technical doubts and short answers to them

Customer doubts are usually the same: lighting, rights to faces, weak customer phones, palette growth, and acceptance of the result. The short answers below remove them before the start — major cosmetics chains such as Sephora have the same requirements for try-on.

What happens under different lighting?

Tone color depends on white balance, so the frame is normalized before overlay: profiles are selected on reference images in warm, cool, and mixed light. The shade on screen matches the catalog.

How are rights to face images handled?

Model shoots are done with written consent, and part of the sample consists of synthetic faces. The customer's frame is not saved and does not go to the server: processing runs on the device, and only anonymized metrics are transmitted upward.

What if the customer has a weak phone?

We test budget devices separately: the face is cropped, heavy effects are replaced with lightweight overlay. Try-on remains smooth — simple is better than frozen.

How are new shades added to the catalog?

A shade is described by a set of parameters rather than a separate build: the palette expands with a table of values, from dozens to hundreds of positions, without retraining. A seasonal new item reaches the storefront immediately.

How is the work result accepted?

We fix a set of reference scenes — by lighting, skin tone, and angle — and a threshold for deviation from agreed samples. Acceptance runs on this set: it is visible which scenarios are accepted and which went back for revision.

Let's discuss the task: what is needed to start and estimate

To come back with an estimate and work plan rather than clarifying questions, at project start we need a minimum set of input data.

Virtual makeup try-on strongly depends on the scenario: show a shade on the user's face, match a palette to skin tone, or create a look for a product page — these are three different tasks with different requirements for color transfer accuracy.

At this stage, we need from you:

  • 3-5 examples of shooting under the conditions in which try-on will be used: front camera, daylight, mixed indoor lighting.
  • Product reference: official photos of shades, textures, palette — what is considered the color sample.
  • Touchpoints: where try-on appears and what happens after it — transition to cart, saving the look, sending to chat.
  • Platform and privacy constraints: required browsers and devices, whether uploaded photos can be stored, whether offline operation is needed.
  • Acceptance criteria: who approves the result and on which control sample we verify color transfer accuracy.

Task discussion takes one conversation, after which we assemble a prototype on your materials, run it on the control sample, and come back with an estimate and a stage-by-stage work plan: data preparation, model, integration, acceptance.

AI Development Areas

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1393
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1368
  • B2B Advance company logo design
    B2B Advance company logo design
    815
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1139
  • AIDER company logo development
    AIDER company logo development
    1057
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1152