-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Bal Masqué is a privacy-first face anonymisation and metadata removal tool. It detects faces in images and applies blurring effects to protect identities. It also strips all sensitive metadata (EXIF, GPS, XMP, ICC profiles) from images before sharing.
100% offline — No data ever leaves your device.
| Platform | Technology | Status |
|---|---|---|
| 🪟 Windows | Python / Tkinter / PyInstaller | ✅ Supported |
| 🐧 Linux | Python / Tkinter / PyInstaller | ✅ Supported |
| 🍎 macOS (Intel) | Python / Tkinter / PyInstaller | ✅ Supported |
| 🍎 macOS (Apple Silicon) | Python / Tkinter / PyInstaller | ✅ Supported |
| 🤖 Android (5.0+) | Python / Kivy / Buildozer | ✅ Supported |
- Automatic face detection using OpenCV Haar cascades (3 classifiers: frontal, alternative, profile)
- 3 blur effects: Pixelisation, Gaussian blur, Black mask
- Adjustable intensity (5–50 slider)
- Complete metadata removal: EXIF, GPS coordinates, XMP, ICC profiles, IPTC, JPEG APP segments
- Risk scoring: Analyses image metadata and assigns a privacy risk score (0–100)
- Secure cleanup: Overwrites temporary files with zeros before deletion
- Android share integration: Appears in the "Share with" menu for images
Download the latest release from the Releases page:
-
Windows: Extract the ZIP and run
BalMasque.exe -
Linux: Extract the tarball,
chmod +x BalMasque, then run./BalMasque -
macOS: Extract the tarball, then
open BalMasque.app - Android: Extract the ZIP, enable "Unknown sources" in Settings, install the APK
git clone https://github.com/comenottaris/BAL-MASQUE.git
cd BAL-MASQUE
pip install -r requirements.txt
python bal_masque.py- Open an image (drag & drop or file picker)
- Detect faces (automatic detection with 25% margin expansion)
- Blur detected faces (choose effect and intensity)
- Save the anonymised image (metadata is automatically stripped)
| Shortcut | Action |
|---|---|
Ctrl+O |
Open image |
Ctrl+D |
Detect faces |
Ctrl+B |
Apply blur |
Ctrl+S |
Save image |
Ctrl+Z |
Undo |
Ctrl+M |
Show metadata |
The Android app is configured for safe sideloading:
- No internet permission: The app is fully offline, no data is transmitted
- Scoped storage: Uses MediaStore API on Android 10+ for proper storage access
-
Backup disabled:
android:allowBackup="false"prevents cloud backup of processed images -
Minimal permissions: Only
READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE, andREAD_MEDIA_IMAGES - Secure cleanup: Temporary files are overwritten with zeros before deletion
- Target API 34: Compatible with Android 14 security requirements
BAL-MASQUE/
├── bal_masque.py # Desktop application (Tkinter)
├── bal_masque_mobile.py # Android application (Kivy)
├── buildozer.spec # Android build configuration
├── intent_filter.xml # Android share intent filter
├── requirements.txt # Desktop dependencies
├── requirements-mobile.txt # Mobile dependencies
├── logo.png # Application icon
├── tests/
│ └── test_bal_masque.py # Unit tests
├── docs/ # Documentation / Wiki
├── screenshots/ # UI screenshots
└── .github/workflows/
└── release.yml # CI/CD pipeline
GPL-3.0 — Free and open-source software.
Bal Masqué est un outil militant d'anonymisation des visages et de suppression des métadonnées. Il détecte les visages dans les images et applique des effets de flou pour protéger les identités. Il supprime également toutes les métadonnées sensibles (EXIF, GPS, XMP, profils ICC) des images avant leur partage.
100% hors-ligne — Aucune donnée ne quitte jamais votre appareil.
| Plateforme | Technologie | Statut |
|---|---|---|
| 🪟 Windows | Python / Tkinter / PyInstaller | ✅ Supporté |
| 🐧 Linux | Python / Tkinter / PyInstaller | ✅ Supporté |
| 🍎 macOS (Intel) | Python / Tkinter / PyInstaller | ✅ Supporté |
| 🍎 macOS (Apple Silicon) | Python / Tkinter / PyInstaller | ✅ Supporté |
| 🤖 Android (5.0+) | Python / Kivy / Buildozer | ✅ Supporté |
- Détection automatique des visages via OpenCV Haar cascades (3 classificateurs : frontal, alternatif, profil)
- 3 effets de flou : Pixelisation, Flou gaussien, Masque noir
- Intensité réglable (curseur 5–50)
- Suppression complète des métadonnées : EXIF, coordonnées GPS, XMP, profils ICC, IPTC, segments APP JPEG
- Score de risque : Analyse les métadonnées et attribue un score de risque vie privée (0–100)
- Nettoyage sécurisé : Écrase les fichiers temporaires avec des zéros avant suppression
- Intégration partage Android : Apparaît dans le menu « Partager avec » pour les images
Téléchargez la dernière version depuis la page des Releases :
-
Windows : Extraire le ZIP et lancer
BalMasque.exe -
Linux : Extraire l'archive,
chmod +x BalMasque, puis./BalMasque -
macOS : Extraire l'archive, puis
open BalMasque.app - Android : Extraire le ZIP, activer « Sources inconnues » dans les paramètres, installer l'APK
git clone https://github.com/comenottaris/BAL-MASQUE.git
cd BAL-MASQUE
pip install -r requirements.txt
python bal_masque.py- Ouvrir une image (glisser-déposer ou sélecteur de fichier)
- Détecter les visages (détection automatique avec élargissement de 25%)
- Flouter les visages détectés (choisir l'effet et l'intensité)
- Sauvegarder l'image anonymisée (les métadonnées sont automatiquement supprimées)
| Raccourci | Action |
|---|---|
Ctrl+O |
Ouvrir une image |
Ctrl+D |
Détecter les visages |
Ctrl+B |
Appliquer le flou |
Ctrl+S |
Sauvegarder l'image |
Ctrl+Z |
Annuler |
Ctrl+M |
Afficher les métadonnées |
L'application Android est configurée pour une installation sécurisée en sideloading :
- Aucune permission internet : L'application est entièrement hors-ligne, aucune donnée n'est transmise
- Stockage scopé : Utilise l'API MediaStore sur Android 10+ pour un accès au stockage conforme
-
Sauvegarde désactivée :
android:allowBackup="false"empêche la sauvegarde cloud des images traitées -
Permissions minimales : Uniquement
READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGEetREAD_MEDIA_IMAGES - Nettoyage sécurisé : Les fichiers temporaires sont écrasés avec des zéros avant suppression
- API cible 34 : Compatible avec les exigences de sécurité d'Android 14
BAL-MASQUE/
├── bal_masque.py # Application bureau (Tkinter)
├── bal_masque_mobile.py # Application Android (Kivy)
├── buildozer.spec # Configuration build Android
├── intent_filter.xml # Filtre d'intent partage Android
├── requirements.txt # Dépendances bureau
├── requirements-mobile.txt # Dépendances mobile
├── logo.png # Icône de l'application
├── tests/
│ └── test_bal_masque.py # Tests unitaires
├── docs/ # Documentation / Wiki
├── screenshots/ # Captures d'écran
└── .github/workflows/
└── release.yml # Pipeline CI/CD
GPL-3.0 — Logiciel libre et open-source.