A native macOS application for real-time face swapping using deep learning technology.
- macOS 10.15 (Catalina) or later
- Python 3.10
- Apple Silicon (M1/M2) or Intel processor
- Minimum 8GB RAM
- 2GB free disk space
- Webcam access
- Download the latest
.dmg
file from the Releases page - Open the
.dmg
file - Drag the Face Swap app to your Applications folder
- Right-click the app and select "Open" for first launch (required for Gatekeeper)
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
Required packages (see requirements.txt for specific versions):
- opencv-python
- numpy
- torch
- torchvision
- PyQt6
- dlib
- mediapipe
- Install development dependencies:
pip install pyinstaller create-dmg
- Build the .app bundle:
pyinstaller --windowed --name "Face Swap" --icon assets/icon.icns main.py
- Create the .dmg installer:
create-dmg \
--volname "Face Swap" \
--window-pos 200 120 \
--window-size 800 400 \
--icon-size 100 \
--icon "Face Swap.app" 200 190 \
--hide-extension "Face Swap.app" \
--app-drop-link 600 185 \
"Face Swap.dmg" \
"dist/Face Swap.app"
mac-face-swap/
├── src/
│ ├── main.py # Application entry point
│ ├── face_swap/ # Core face swapping logic
│ ├── gui/ # PyQt6 GUI components
│ └── utils/ # Helper functions
├── assets/ # Icons and resources
├── tests/ # Unit and integration tests
└── scripts/ # Build and packaging scripts
pytest tests/
- App won't open: Ensure you right-click and select "Open" for first launch
- Camera access denied: Grant camera permissions in System Preferences > Security & Privacy
- Performance issues: Check minimum system requirements and close resource-intensive applications
Please report issues on the GitHub Issues page with:
- macOS version
- Hardware specifications
- Steps to reproduce
- Error messages or screenshots
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- App is signed and notarized with Apple Developer certificate
- No data collection or network access required
- All processing done locally on device