DEV Community

mix
mix

Posted on

We Built a Live Face Swap Preview in the Browser

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.

Vivify live face swap browser preview showing camera input and AI output side by side

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)