Docs / Overview

Overview

What Facevity is, how it fits into a camera or video-call pipeline, and where to start.

Facevity is a real-time face beauty SDK for Android. It takes camera frames, finds faces, and returns the same frames with skin smoothing, skin-only tone and brightness, retouch extras, lipstick, teeth whitening, backlight compensation, light reshaping, colour filters and AR accessories applied. All processing happens on the device: the face tracker runs on the CPU (or GPU delegate) and every effect is an OpenGL ES shader.

Current release: 0.3.2 for Android (lipstick, teeth, backlight, accessories, one 0 to 100 slider scale). The iOS SDK is in development, see the iOS preview.

How it works

  1. Frames in. Your app hands Facevity each camera frame, either as an OpenGL texture (OES or 2D) or as an NV21, NV12 or I420 buffer.
  2. Face tracking. A downscaled copy goes to the MediaPipe Face Landmarker on its own thread. Its 478 landmarks (with iris points, head pose and expression blendshapes) are smoothed over time and carried between detections with optical flow, so detection never limits your frame rate.
  3. Masks. Skin, under-eye, smile-line, lip, teeth, eye, beard and hair regions are drawn from the face mesh at a quarter of the resolution and feathered. Where the phone runs it on the GPU, a segmentation model (skin, hair, clothes, background) refines them to the pixel.
  4. Effects. Smoothing, tone and makeup run inside those masks on the GPU; pixels outside the face are left exactly as they were. Accessories are drawn last, anchored to the face.
  5. Frames out. The texture path returns a 2D texture; the buffer path writes the result back into your buffer.

Requirements

Android minSdk 24 (Android 7.0)
GPU OpenGL ES 3.0 recommended; ES 2 contexts work on GPUs with highp fragment precision. Pixel-level segmentation runs only where the phone’s GPU delegate can run it
ABIs arm64-v8a, armeabi-v7a, x86_64
Size AAR ≈ 11.8 MB including the face model, the 8.3 MB segmentation model (optional) and the accessories pack; MediaPipe Tasks Vision adds ≈ 10 MB (arm64), 8 MB (armv7), 12 MB (x86_64) per ABI
Permissions None for the SDK. INTERNET only if you use online licence activation
Languages Kotlin and Java

Two API styles

  • Facevity (package com.knight98.facevity): a compact API with initialize, setParams, processTexture, processBuffer, release. Recommended for new integrations.
  • FVRenderKit (package com.knight98.facevity.kit): mirrors the call flow of FaceUnity’s beauty module (setup → loadAIProcessor → faceBeauty → renderWithInput), for teams migrating existing code.

Both use the same engine and produce the same output.

Where to go next

Need help with an integration? Contact the Facevity team. We answer integration questions during trials.