How it works
Three steps.
Zero editing skills.
Pick a face
Drop in any photo of a face — yours, your friend's, your cat's owner's. One image is all it takes.
Pick a meme
Choose a target GIF — search Giphy right from the app, or use your own file.
Swap & share
The AI pipeline swaps every frame, restores expressions and enhances the result. Download as GIF or MP4.
See it in action
A serious tool,
disguised as a toy.
Giphy, plugged in
The entire Giphy library,
one click away.
Search Giphy without ever leaving the app — trending memes, hashtag shortcuts, instant previews. Pick a GIF and Meme Swap downloads and converts it for the AI pipeline automatically.
- Built-in search with
#memehashtag pills - One click: fetch, convert, ready to swap
- Curated offline library when no API key is set
- Or just drag & drop your own GIF
Privacy by design
Your face never
leaves your Mac.
Everything — the AI models, the processing, the results — lives in a single folder on your machine. Nothing is ever uploaded, tracked or stored in someone else's cloud.
~/.meme-swap/
├── facefusion/AI engine + Python venv├── models/Neural networks, downloaded once└── process/Temp files & results
Works offline
Once installed, face swapping needs no internet connection at all.
Apple Silicon fast
Inference runs through CoreML on the Neural Engine and GPU, with CPU fallback.
Easy to remove
Delete one folder and every model, cache and result is gone. That's it.
Under the hood
Serious AI.
Silly results.
Meme Swap orchestrates FaceFusion, the state-of-the-art open-source face manipulation platform, as a headless engine — wrapped in a fully typed TypeScript pipeline.
FaceFusion
The industry-reference face swapping platform, driven headlessly through its Python CLI. Meme Swap installs it in an isolated virtual environment and streams real-time progress back to the UI — analysing, extracting, processing, merging.
inswapper_128
InsightFace's flagship swap model (with an fp16 variant for speed) transfers identity frame by frame.
CodeFormer
Transformer-based face restoration sharpens each swapped face with an adjustable blend.
Real-ESRGAN ×2
Optional super-resolution upscales the whole frame for crispier final GIFs.
Expression Restorer + Lip Syncer
Keeps the original grimaces, blinks and mouth movement so the meme stays the meme.
FFmpeg
Seamless GIF ↔ MP4 conversion with palette-optimized GIF encoding on the way out.
One engine, three apps
Swap from anywhere.
Web app
A Next.js 14 interface with drag & drop, Giphy search, model settings and live
progress. Runs on localhost — the browser is just the UI, processing
stays on your machine.
pnpm frontend:dev
Desktop app
A native macOS Electron app with a guided first-run setup that installs everything for
you. Grab the .dmg from the
latest release.
Meme Swap.app
MCP server
A Model Context Protocol server that lets AI assistants like Claude or Cursor run face swaps as a tool. "Put my face on the Success Kid meme" — done.
run_faceswap(...)
Get started
One download away
from meme greatness.
Meme Swap for macOS
Native desktop app · Apple Silicon .dmg · guided first-run setup installs
FaceFusion for you
The app isn't notarized yet — on first launch, right-click Meme Swap.app → Open.
# 1. Clone & install the monorepo
$ git clone https://github.com/Tlahey/meme-swap.git && cd meme-swap
$ pnpm install
# 2. One-time: install FaceFusion into ~/.meme-swap
$ pnpm install:facefusion
# 3. Build & launch
$ pnpm build && pnpm frontend:dev
▲ Next.js ready on http://localhost:3010 ✨
Requires macOS with Node.js ≥ 18, pnpm ≥ 9, Python ≥ 3.9 and FFmpeg (brew install ffmpeg). Full guide in the
README.