Steve-Mr/EmojiFace

Identify faces in an image and replace them with emojis.

What FaceMoji does

FaceMoji (also called EmojiFace) is a small Android/web app that detects human faces in a picture and covers each face with an emoji (or applies a blur). All the image processing happens locally – nothing is uploaded to a server.

How it works

  • The app uses a pre‑trained YOLOv8‑face model (from the derronqi/yolov8-face project) to locate faces in an image.
  • Once a face rectangle is found, the app either:
    • draws a chosen emoji over the region, or
    • applies one of several blur styles (Gaussian, pixelation, halftone‑like).
  • Users can manually add, move, or delete emojis and blur areas, and they can import their own emoji‑style font files.

Where you can run it

Platform How to get it Notes
Web (PWA) Click the Deploy with Vercel button in the README or follow the instructions in web/README.md. The site runs entirely in the browser and stores no data remotely. Works on desktop and mobile browsers; can be installed as a Progressive Web App.
Android Download the latest release from the GitHub Releases page (two APK flavors):
default – normal app icon (can be hidden in settings).
icon‑disabled – app icon hidden by default, intended for “share‑to‑app” use.
Both APKs are signed and can be installed manually. The hidden‑icon version is useful when you want to launch the app only via the Android share menu.

Main features

  1. Automatic face detection → emoji overlay (default) or blur.
  2. Manual editing – add, move, or delete emojis / blur patches.
  3. Multiple blur styles – Gaussian, pixelation, custom halftone‑like effect.
  4. Icon‑hiding mode – run the app solely through image‑share intents.
  5. Custom emoji fonts – import your own emoji‑style font to change the overlay appearance.

Limitations & caveats

  • The face‑detection model is offline and runs on‑device, but it is not as robust as cloud‑based services – it may miss faces or mis‑detect them in some images.
  • The web version was quickly assembled by a contributor (Jules / Vibe Coding); its code quality and stability are not guaranteed.
  • The app is provided “as‑is” with no warranty.

How to contribute / build yourself

  • The repository contains a web folder with its own README for deployment instructions.
  • Android source code can be compiled with Android Studio; the two APK flavors are defined in the Gradle configuration.
  • The face‑detection model is pulled from the external derronqi/yolov8-face project, so updating the model simply means replacing the .pt file used by the app.

Acknowledgements

  • Emoji icons are adapted from the Carnival Masks Pack on Freepik.
  • Face detection relies on the YOLOv8‑face model from derronqi/yolov8-face.

TL;DR – FaceMoji is a privacy‑first Android/web tool that uses an on‑device YOLOv8 face detector to replace faces with emojis or blur them, with optional manual editing and a hidden‑icon mode for share‑only usage.

Related

  • Project
  • Dispatch
  • Project
  • Project
  • Project