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
- 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.
- 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.
- 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.
- 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.
- 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(packagecom.knight98.facevity): a compact API withinitialize,setParams,processTexture,processBuffer,release. Recommended for new integrations.FVRenderKit(packagecom.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
- Android quick start: add the dependency, set up a licence and process your first frame.
- Video-call integrations: Agora, ZEGOCLOUD, LiveKit and WebRTC examples.
- API reference: classes, methods and parameters.
- Licensing: trial and production keys, app-ID binding and offline licence files.
- Migrating from FaceUnity: a step-by-step mapping.
- FAQ: performance, privacy, limitations.
Need help with an integration? Contact the Facevity team. We answer integration questions during trials.