Live face swap lets you appear on camera as a consistent AI persona while your real face stays off-stream or off-call. With LiveSwap, the entire process runs in your browser, no CUDA drivers, no model training, no weekend lost to GitHub READMEs. This guide walks from zero to a working swapped feed in OBS, Zoom, or any app that accepts a webcam.
The workflow has five stages: account and credits, photo upload, persona selection, virtual camera routing, and going live. Follow them in order the first time; afterward, going live takes under thirty seconds.
Part of our guide index. For platform-specific encoder settings, see face swap in OBS and Zoom camera setup platform articles.
What you need
Gather these before you start:
A modern browser. Chrome, Edge, Firefox, or Safari on Windows, macOS, or Linux. LiveSwap uses WebRTC for webcam capture and cloud inference for the swap.
A webcam. Built-in laptop cameras work; a 720p USB webcam gives better detection margins. Position it at eye level, arm's length away.
One clear front-facing photo. This becomes your persona source image. Requirements: even lighting, neutral expression, no sunglasses, single subject, JPG/PNG/WebP under 5 MB. Details in best source photo guide.
OBS Studio (recommended). Free download from obsproject.com. OBS 26.0+ includes Start Virtual Camera, which exposes your LiveSwap browser feed to Zoom, Meet, Teams, and other apps. Without a virtual camera bridge, apps only see your physical webcam, not the swapped output.
Stable upload bandwidth. Plan for 10 Mbps upload minimum at 720p, 15–25 Mbps at 1080p. See spec requirements.
A paid LiveSwap plan. There is no free live minutes tier. Plans start at $12/mo (Basic, 15 minutes, 480p). Uploads, persona library browsing, and prep are free.
Step 1, Create your account and add credits
- Open /auth and create your account.
- Choose a plan at /pricing:
- Basic, $12/mo, 15 live minutes, 480p
- Creator, $29/mo, 40 live minutes, 720p
- Pro, $99/mo, 120 live minutes, 1080p
- Studio, $299/mo, 400 live minutes, 1080p
- After checkout, land on the dashboard at
/app.
Credits meter only during active live swap sessions, one credit equals one live minute, billed to the second. Uploading photos and testing angles costs nothing.
If you are unsure which plan fits, estimate your monthly live time: a weekly one-hour stream needs roughly 240 minutes, Studio territory. Occasional private calls fit Basic or Creator.
Step 2, Upload a clear photo
Your source photo anchors the persona's appearance across every session.
- From the dashboard or
/app/streaming, find the avatar sidebar on the left. - Click Add avatar (grid layout) or Upload first avatar / Upload new avatar (list layout).
- Accept the consent dialog, LiveSwap requires confirmation that you have rights to the face image. See LiveSwap policy.
- Select a JPG, PNG, or WebP file under 5 MB.
LiveSwap runs server-side face detection and landmark extraction. If detection succeeds, the avatar appears in your library with a thumbnail. If it fails, you will see an error, usually fixable with a better photo.
Good first photo: daylight or soft indoor light, face centered, eyes open, mouth relaxed, hair off the forehead, no filter.
Avoid: group shots, profile angles, sunglasses, motion blur, screenshots from video calls, celebrity photos you do not own.
Delete failed uploads via the trash icon on the avatar tile and try again.
Step 3, Choose and lock your persona
A persona is the consistent character you present on camera, built from one source photo, reused across sessions.
- Click the avatar thumbnail in the sidebar to select it. Selected avatars show a highlight ring.
- On the dashboard, confirm the persona name matches what you expect (editable on upload).
- Optional: open Settings → Stream quality (gear icon in the app top bar) and set resolution and frame rate within your plan limits before your first session.
You can upload multiple personas and switch between them, but switching during an active session triggers a brief re-warm. For streaming and brand consistency, pick one persona and keep it.
Learn more about persona philosophy at /personas.
Step 4, Enable the virtual camera
LiveSwap renders swapped video inside your browser tab. Other apps cannot see that tab until you route it through a virtual camera device.
The recommended path uses OBS Studio:
-
Install OBS 26.0+ if not already present.
-
In LiveSwap at
/app/streaming, click Go live (see Step 5) and wait for the swapped output. -
Click Connect to OBS in the streaming header when ON AIR appears.
-
Follow the in-app OBS guide:
- Sources → + → Browser, paste your streaming page URL
- Set width/height (1280×720 for Creator, 1920×1080 for Pro/Studio)
- Hold Alt (Win) or Option (Mac) and drag to crop to the swapped output only
- Click Start Virtual Camera in OBS Controls (bottom-right)
-
In your target app, select OBS Virtual Camera as the camera input.
Full Mac vs Windows permission paths, alternative virtual camera tools, and detection fixes are in virtual webcam tutorial.
Zoom path: Settings → Video → Camera → OBS Virtual Camera
Google Meet: Settings (gear) → Video → Camera → OBS Virtual Camera
Microsoft Teams: Settings → Devices → Camera → OBS Virtual Camera
Step 5, Open OBS, Zoom, or your app and go live
Start the LiveSwap session
- Navigate to
/app/streaming. - Confirm your persona is selected in the sidebar.
- Optional: toggle the microphone icon if you want audio published through Agora (most call apps use their own mic separately).
- Click Go live.
- Grant webcam permission if prompted.
- Wait for status to progress: Starting… → Warming up → ON AIR with the red live badge.
Warm-up connects to cloud inference and aligns your live face to the persona. You are not charged for warm-up time.
Connect your target app
For Zoom calls:
- Ensure OBS Virtual Camera is running (Step 4).
- Open Zoom → Settings → Video → select OBS Virtual Camera.
- Verify the preview shows your persona.
- Join the meeting.
For OBS streaming (Twitch, YouTube):
- Add the Browser source as described in Step 4, or add a Video Capture Device source pointing at OBS Virtual Camera if you prefer.
- Configure stream key and output resolution in OBS Settings → Output.
- Click Start Streaming.
Detailed OBS scene layout in how to face swap in OBS.
During the session
- Hide/show webcam preview: eye icon in the control bar toggles the "You" picture-in-picture.
- Stop: click Stop stream, credits stop immediately.
- Switch persona: select a different avatar in the sidebar; a brief switch animation appears. Avoid rapid switching during important moments.
Target latency is sub-500ms end-to-end. If expressions feel delayed, see reduce swap delay.
Troubleshooting common first-time issues
Browser denied camera access
Reload /app/streaming and click Allow when prompted. On macOS, check System Settings → Privacy & Security → Camera → enable your browser. On Windows, Settings → Privacy → Camera → allow desktop apps.
"Pick an avatar before going live"
Select an avatar in the sidebar. If your library is empty, upload one first.
"This avatar is missing detection data"
Delete the avatar and re-upload a clearer photo. Detection must succeed server-side before streaming works.
Virtual camera not in Zoom's list
Start OBS Virtual Camera before opening Zoom. If Zoom was already open, quit and relaunch. Confirm OBS appears under macOS Camera privacy settings.
Black screen in Zoom preview
The browser source URL may be wrong, or the LiveSwap session is not ON AIR. Confirm the swap renders in the browser tab first, then refresh the OBS browser source (right-click → Refresh).
Swap looks waxy or misaligned
Re-upload a neutral front-facing photo. Match your live lighting to the source image. Read quality tips article.
Ran out of credits mid-call
The stream stops cleanly. Top up at compare plans or upgrade your plan from Settings → Billing.
For a full decision tree, see common swap problems.
Worked scenario: ten minutes before a Zoom call
You have a standup at 9:00 AM. At 8:50, you open /app/streaming, select persona "WorkAlias," and click Go live. By 8:52, ON AIR appears. You open OBS, confirm the browser source from yesterday still works, and click Start Virtual Camera. Zoom was closed, you open it fresh, Settings → Video → OBS Virtual Camera, preview looks correct. You join at 8:58. Colleagues see WorkAlias; your real face appears only in the small PIP you hid. Total prep: eight minutes, zero install beyond OBS you already had.
Common mistakes beginners make
Going live before OBS is configured. Always confirm swapped output in the browser, then wire OBS, then open the meeting app.
Using a side-profile photo. Detection needs frontal landmarks. Selfies at arm's length, eye-level, work best.
Ignoring plan resolution limits. 1080p requires Pro or Studio. Setting 1080p in OBS while on Creator produces soft upscaling, match tiers.
Impersonating real people. Use original or properly licensed personas only. See terms of acceptable use.
Next steps
- cam setup walkthrough, Mac/Windows permissions deep-dive
- Face swap in OBS, scenes, cropping, audio routing
- Face swap on Zoom, HD settings, backgrounds
- video meeting privacy, privacy use case framing
- inference pipeline article, technology overview
Start your first session when you are ready.
Advanced first-session topics
Microphone handling in LiveSwap vs meeting apps
LiveSwap's streaming page includes a microphone toggle in the control bar. When disabled (default for many users), only video is processed through the swap pipeline, your meeting app captures audio from its own mic device. When enabled, audio routes through the Agora session alongside video. For Zoom and Teams, the simpler path is: LiveSwap mic off, Zoom mic on your USB headset. For OBS streaming, add Audio Input Capture for your mic independently of the Browser source. This avoids double-audio echo where both paths publish simultaneously.
Quality settings before first Go live
Open the gear icon → Stream quality tab before your maiden session:
- Resolution chips show lock icons on tiers above your plan, Basic sees 480p unlocked, Creator adds 720p, Pro/Studio add 1080p
- Frame rate, 30fps is the stable default; 60fps demands more upload headroom
- Settings persist in localStorage, set once per browser profile
Matching quality to plan prevents starting at an unlocked tier that downscales server-side unpredictably.
Persona library management at scale
After three or more uploads, organize personas by purpose:
- Stream character, distinctive, consistent naming
- Call alias, neutral professional
- Test uploads, delete after validation to reduce sidebar clutter
Switch personas by clicking thumbnails in the sidebar. During ON AIR, switching triggers a brief switching indicator, plan switches during BRB screens, not mid-sentence on camera.
Browser choice for first setup
Chrome and Edge share Chromium's WebRTC stack, most reliable for webcam permission prompts and OBS Browser source rendering. Firefox works but test virtual camera enumeration separately. Safari on Mac functions but OBS Browser source occasionally needs Refresh after sleep/wake cycles.
Credit budgeting for beginners
Basic plan (15 minutes) suits test calls, not weekly streaming. Before first Go live, decide:
- Test budget: 2–3 minutes verifying OBS crop and Zoom preview
- Production budget: remaining minutes for actual call or stream
Stop stream immediately after tests, credits meter ON AIR continuously. The dashboard shows credits remaining in the hero stats row.
Parallel setup on second monitor
Ideal workstation layout:
- Monitor 1: OBS with preview and Virtual Camera controls
- Monitor 2: LiveSwap
/app/streamingtab, browser visible (not minimized)
Single-monitor users: alt-tab between LiveSwap and OBS during setup; snap OBS preview smaller while confirming crop.
When to read platform articles next
After this guide succeeds once, read the platform article for your primary app, policy notes, bitrate tables, and community guideline summaries live there:
- Streamers → OBS scene guide then Twitch integration guide
- Call privacy → Zoom platform and private meetings guide
- Multi-app → virtual camera hub
Guides teach wiring; platform articles teach operating context inside each ecosystem.
Final checklist before production use: persona photo validated, OBS crop saved, virtual camera tested in target app, credits mapped to expected airtime, acceptable use policy read, stop-stream habit confirmed after every session.
Session recovery after browser crash
If the browser tab closes unexpectedly while ON AIR, credits may have ticked until server-side session timeout. After reopening /app/streaming:
- Check dashboard credits, note consumption
- Re-select persona and Go live, new session, new warm-up
- Refresh OBS Browser source if output frozen
- Restart OBS Virtual Camera if target app shows stale frame
Prevent crashes: disable aggressive tab discarding in Chrome flags for liveswap.io; pin the streaming tab.