We built Vivify's Live Face Swap to transform a webcam feed while the session is running.
Unlike an upload-and-wait face swap, it responds to movement and expression in the browser. The most interesting work was keeping access short-lived, metering an open-ended session, and deciding what the first release should not do.
What you can try in the browser
Upload a reference image and press Start. The transformed stream appears beside the camera feed, so movement and expression are visible without rendering a clip first.
Two design challenges
- Session access: the server issues a short-lived credential when the preview starts, keeping the reusable provider key off the client.
- Open-ended usage: unlike a normal generation job, a live session has no fixed duration. We meter active time with heartbeats, settle the final partial segment when it ends, and show usage while it runs.
Where the first release stops
The browser version is preview-only: it does not record, export, or save the transformed stream. We also ask users to use only their own face or images they have permission to use.
Try live face swap browser preview on Vivify. What would you test first: identity consistency, latency, expression preservation, or recovery after occlusion?

Top comments (0)