Photo conditions can change what our computer vision model sees. Users provide images through hardware and settings we do not control. A flagship phone from 2024 and a mid-range phone from 2021 can capture meaningfully different images of the same skin. Even one phone produces different data in direct window light and bathroom fluorescents.
In the months before our early-access launch, we ran a structured test to measure degradation across capture conditions and identify when model confidence becomes unreliable. This post explains what we found and how Cutib handles low-quality photo inputs.
What we tested
We created a controlled set of photos showing the same subjects under systematically varied conditions. We isolated lighting type, direct natural window light, overcast diffused outdoor, indoor warm incandescent, indoor cool fluorescent, bathroom vanity LED, and low-light indoor, focal distance, close, mid-range, and far, and phone generation, spanning three tiers of sensor quality across several common device categories.
For each condition, we ran the skin reading pipeline and compared its attribute predictions with a ground-truth reading from our esthetician reviewer under controlled conditions. We checked more than the final skin type classification: individual readings for texture, hydration indicators, surface oiliness pattern, and barrier condition markers also had to match the ground truth.
Lighting had the largest effect
Lighting type had the greatest effect on reading accuracy. Direct natural light, including overcast or indirect window light, produced the closest agreement with ground truth. Warm incandescent light caused the most distortion in undertone and surface reflectance readings. Its color temperature shift compresses the warm-tone range, which carries useful information about barrier condition and hydration.
Bathroom vanity LED light was consistently difficult. It is common because people often apply skincare there and naturally take photos there. Vanity lighting is usually meant to flatter, not neutralize: it fills shadows under the eyes and chin, varies widely in color temperature, and makes surface texture appear different under high-contrast downward light than diffused frontal light. Texture confidence fell noticeably versus natural light, even when the image looked "good quality" by conventional standards.
Cool fluorescent light was another major failure mode. It shifts apparent undertone toward blue-gray and misreads oiliness signals in a consistent direction, underestimating surface sebum in photos with that color temperature profile.
Camera hardware mattered less than expected
We expected a wider gap between high-end and mid-range phone cameras. Among phones most users have, sensor quality mattered less than lighting. A mid-range phone in good window light outperformed a flagship phone in bathroom fluorescent lighting on nearly every measured attribute. We therefore emphasize lighting in photo guidance and avoid strong camera hardware requirements, since the data did not support them.
Hardware did matter consistently for close photos from older phones with limited autofocus or optical stabilization. Close-range motion blur added enough texture noise to weaken fine surface analysis, especially in close-up detail shots. We added a sharpness check that flags images with blur above a defined threshold before full analysis.
Focal distance and framing
For the attributes we read, the ideal focal distance is about the distance used for a clear selfie. Too close collapses depth of field, leaving parts of the face out of focus and distorting texture. Too far reduces the resolution available for the subtle surface readings the model needs.
Off-axis photos, with the face turned significantly away, reduced accuracy more on one side because the resulting shadows create asymmetric lighting artifacts. Most users take roughly frontal selfies, making this a minority case. It occurs often enough among users self-conscious about being photographed that we wanted to handle it gracefully instead of silently producing unreliable output.
Handling low-quality inputs
These tests led us to add an explicit quality layer before full skin analysis. It checks sharpness, lighting color temperature outliers, extreme shadows or highlights covering much of the face, and facial alignment. Photos failing a hard threshold on any check return a quality flag with specific adjustment guidance instead of proceeding to low-confidence analysis.
Photos that pass the hard thresholds but fall within a reduced-confidence range continue to full analysis with lower confidence weights for attributes most affected by the conditions. The recommendation layer uses those weights to choose broader product families for uncertain attributes instead of unsupported narrow recommendations.
In practice, a refusal to provide a confident reading in challenging light is not a product failure. It means the model is correctly declining to generate output it does not trust. Our early-access users responded positively when we explained this behavior. They preferred an honest "we need a better photo" to a confident recommendation based on input the model could not read. Accuracy is useful only when calibrated, and calibration includes recognizing insufficient input.
What we are still working on
The two unresolved failure modes are warm incandescent photos and mixed lighting, where one source is natural and another artificial. Both create color temperature gradients across the face that are difficult to correct without risking overcorrection in the opposite direction. We have improved guidance and photo re-take flows more successfully than computational compensation at inference time. For now, clearly communicating capture conditions is more reliable for accuracy than solving the lighting problem inside the model.