Summary
FaceSwap swaps a face into any video in about a minute. Users upload a face photo (or generate an AI avatar from a prompt), pick a source video or paste a TikTok URL, and get an HD swapped result.
The problem
Face-swap tools are either toys with watermarks and low resolution, or developer libraries that demand a GPU and a pipeline most people will never set up. There was room for a clean, fast, hosted product that just works from a browser.
What I built
A full-stack SaaS around a hosted generation pipeline:
- An API that orchestrates the Kling motion-control model on Kie.ai.
- Async job handling with status polling, so the UI shows progress instead of hanging on a long render.
- Media storage and delivery on Cloudflare R2, served through a dedicated CDN subdomain.
- Auth and a results gallery, deployed on Docker with its own API and CDN domains.
Why it matters
It hides all the hard parts, model orchestration, storage, delivery, behind a one-minute upload-to-result flow. The async pipeline keeps it responsive even when the underlying model is slow.
Tech
Node API, Kie.ai (Kling Motion Control), Cloudflare R2, async job processing, Docker, with separate app, API and CDN subdomains.