Skip to Content
SFW API

Understanding levels

What each of the four nudity levels means, how scores become a level, and what never raises the level.

LevelNameDefinitionScore field
0EverydayRegular, fully clothed content. Always allowed.implied when every score is ≤ 50
1RevealingSwimwear, lingerie and outfits that show more skin.scores.revealing
2Implied NudityUnclothed, with intimate areas covered or out of view.scores.implied_nudity
3ExplicitVisible intimate areas.scores.explicit

The levels are ordinal: scores.revealing is the probability of level ≥ 1, scores.implied_nudity of level ≥ 2, scores.explicit of level 3. They are clamped so the higher threshold never scores above the lower one.

Calibration

Each head is calibrated so its tuned threshold sits exactly at 50. That means a revealing of 51 and an explicit of 51 are equally "just over the line", and you can compare levels on one scale. Scores between roughly 35 and 65 are the model's grey zone; if you route such items to human review, that is the band to use.

Flags

  • art: drawings, anime, paintings, statues, stylised 3D. The level is judged the same way as for photos; the flag lets your policy treat art differently.
  • sex_object: adult toys and genital-shaped objects, independent of nudity.

What never raises the level

By labelling rule, these do not move an image up a level on their own: pose, camera angle, framing or close-ups, facial expression, innuendo, tight clothes, cleavage however deep, a flat chest. When the labeller was torn between two levels, the lower one won, so the model is conservative by design.

GIFs and videos

Frames are sampled evenly across the clip. The media level is the maximum over frames; include_frames: true shows you which frame drove it.

On this page