Docs / FAQ

FAQ

Common questions about performance, privacy, compatibility, licensing and current limitations.

General

Which platforms are supported?

Android, from Android 7.0 (minSdk 24), on arm64-v8a, armeabi-v7a and x86_64. An iOS SDK is in development; see the iOS preview.

Does Facevity do makeup, stickers or background blur?

Partly. Since 0.3 there is lipstick (six shades or any colour, matte to gloss), teeth whitening, backlight compensation and eleven AR accessories such as glasses, hats, crowns and earrings. Eyeshadow and blush, animated stickers, body shaping and background blur or replacement are not included.

What does the slider scale mean?

Every 0 to 100 level: 0 = off, 50 = natural, 100 = strong but still realistic. This is the scale since 0.3.0; apps that stored 0.2 levels convert them once with the table in the migration guide.

How many faces can it handle?

One by default, up to four (FacevityOptions.Builder().maxFaces(4)).

Does it work with Java?

Yes. The API uses builders, static methods and overloads so it reads naturally from Java.

Performance

How fast is it?

Measured in October 2026:

  • Android Emulator (API 34, Apple-silicon host): about 1 ms of CPU time per frame on the caller’s thread for the texture path, about 3 ms for the buffer path (which adds two copies and a readback). GPU time for the NATURAL and GLAM presets was 2.5 to 4.7 ms per frame on 400×500 to 640×800 frames and 3.8 to 4.5 ms at 720×1280.

  • OnePlus phone (Android 16, Mali GPU), front camera at 720p: whole processTexture CPU time about 2 to 5 ms with a face; face landmarks on the GPU delegate about 20 ms per detection at about 40 results per second, on a separate thread. The camera delivered 25 fps in indoor light, which limited the frame rate.

  • 0.3 effects: on the emulator’s call path (software GL, 360×640 NV21, NATURAL preset) each of lipstick, teeth and backlight costs less than the run-to-run noise (±1 ms of about 20 ms); all together add at most 1.2 ms. An accessory adds one textured mesh of 98 triangles per face, within noise.

Emulator GPU timings are indicative only; expect GPU times 2 to 4× higher on mid-range phones. The heavy work runs at reduced resolution (≤ 640 px for smoothing, ≤ 320 px for masks and detection) with one full-resolution pass. We recommend measuring on your target devices with the demo app’s live counters or fv.stats().

Will it slow down my camera?

It shouldn’t block it. Face detection runs on its own thread with at most one frame in flight. The buffer path waits at most 75% of the frame interval; a frame that misses it is filled with the last retouched frame (up to 250 ms old) rather than the raw camera image, so the effect does not flicker on and off in calls. Repeated and dropped frames are counted in stats().

How much does it add to my APK?

The 0.3.2 AAR is about 11.8 MB: the face model, the 8.3 MB segmentation model and a 590 KB accessories pack. MediaPipe Tasks Vision adds about 10 MB (arm64), 8 MB (armv7) or 12 MB (x86_64) per ABI. Use App Bundles so each device downloads only its ABI. You can remove assets/facevity/selfie_multiclass.tflite to save 8.3 MB; masks then use landmarks and colour.

How much memory does it use?

At 720p, roughly 11 MB of textures plus under 4 MB of small render targets, and 20 to 30 MB of native memory for the face model. The buffer path adds a GL thread and two frame-sized buffers.

Privacy

Does any face data leave the device?

No. Tracking and rendering are entirely on the device. Facevity never uploads camera frames, landmarks or biometric data. Licence activation and the daily refresh send only the licence key or token, the app ID, the signing-certificate fingerprint, a random install ID and the SDK version.

Does it work offline?

Yes. Licences are verified locally. With online activation, a cached token keeps working for the offline grace period (7 days by default, up to 30). Offline licence files need no network at all.

Integration

Texture or buffer path?

Prefer the texture path when you have a GL texture (camera preview, WebRTC, ZEGOCLOUD). It avoids copies. Use the buffer path for SDKs that give you NV21, NV12 or I420 frames (for example Agora’s frame observer).

Do remote participants see the effect?

Yes, if you process the outgoing track before the encoder, as in the video-call examples. Processing only the local preview would not change what others see.

Why does the watermark appear mirrored in my preview?

The published frame is correct; front-camera previews are mirrored by the renderer, so text drawn into the frame appears mirrored locally.

Licensing

How do I get a trial?

Request one here with your company, app and Android package names. Trials are issued by our team for 1 to 90 days.

Do I need an app update to go from trial to production?

No. The same key is upgraded on our side and installed apps pick it up at their next refresh.

Limitations

What are the current limitations?

We’d rather you hear them from us:

  • Testing scope: the effects were measured on the Android Emulator with still CC0 photos. Real-device testing so far: the camera preview on a OnePlus phone and video calls on a realme RMX3686. The 0.3 effects and accessories have not yet been checked in a live call on a phone, and the backlight tests used composites made from CC0 photos. Broad device-model coverage is still in progress, and the video-call samples have not been run against every vendor SDK version.
  • Accessories are flat images with perspective, not 3D models: beyond about 35° of head turn caps and glasses look flat, glasses have no arms, and long hair does not cover headbands.
  • Tracking: faces smaller than about 8% of the frame width, strong profile views (beyond about 60°) and heavy occlusion may not be tracked; effects then fade out rather than misapply.
  • Coloured light lowers the effect strength where segmentation is off, because skin detection by colour becomes less certain. Backlight compensation lifts the face, neck and hair; hands far from the face stay as they were.
  • Very deep wrinkles in strong side light are reduced rather than erased.
  • Reshape covers slim face, jaw and eyes only.
  • No side-by-side comparison with FaceUnity has been published yet.

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