Live Face Swap at 30fps
The only on-device face swap SDK that runs in real-time. Drop-in SwiftUI camera view, per-frame API for WebRTC, and static image swap — all at 512px, fully on the device.
One session = unlimited frames. A 3-hour stream costs $0.01.
import AmigoFaceSwapSDK
// 1. Initialize (one-time)
try await AmigoFaceSwap.initialize(apiKey: "your-key")
// 2. Enroll a target face
let latent = try await AmigoFaceSwap.enrollFace(from: photo)
// 3. Drop-in live camera — 30fps face swap
AmigoLiveCameraView(targetLatent: latent)What is Amigo AI SDK?
Amigo AI SDK (package name: AmigoFaceSwapSDK) is a face swap SDK for iOS that lets developers add live face swap streaming to their app. It is the developer toolkit behind the Amigo AI consumer app. Android support is coming soon. The SDK runs entirely on-device using CoreML — no server calls, no cloud processing, no privacy trade-offs.
Unlike cloud-based face swap APIs, Amigo AI SDK processes every frame on the device GPU in real-time. Livestream face swap runs at 30fps on iPhone 12 and 45fps on iPhone 15 Pro. The SDK provides a drop-in AmigoLiveCameraView for SwiftUI, an AmigoLiveViewController for UIKit, and a per-frame processFrame() API for WebRTC or custom pipelines. All modes output at 512x512 resolution. Install via Swift Package Manager.
How do I add face swap to my streaming app?
Add AmigoFaceSwapSDK via Swift Package Manager. The integration flow is: (1) call AmigoFaceSwap.downloadModelsIfNeeded() to download ML models from CDN (free, ~50MB one-time), (2) call AmigoFaceSwap.initialize(apiKey:) to validate your license ($0.01/session), (3) call AmigoFaceSwap.enrollFace(from:) to get a reusable FaceLatent embedding, (4) drop in AmigoLiveCameraView(targetLatent:) for live camera or call swapFace(in:using:) for images. Pricing is $0.01 per session with 1,000 free sessions every month.
Real-time livestream on iPhone 12
Output resolution, all modes
Per session — unlimited frames
Frames sent to any server
Real-time livestream face swap
Drop-in SwiftUI view or UIKit view controller. The SDK handles camera, face detection, and rendering at 30fps.
AmigoLiveCameraView — One Line of SwiftUI
Drop AmigoLiveCameraView(targetLatent: latent) into your SwiftUI hierarchy. For UIKit, present AmigoLiveViewController. The SDK handles AVCaptureSession, face detection, CoreML inference, and Metal rendering.
Need full control? Use AmigoLiveSession directly — add session.previewView to your own view hierarchy, swap targets at runtime, and receive each processed frame via delegate callback for recording or streaming.
For WebRTC or custom pipelines, use AmigoFaceSwap.processFrame(_:using:) — feed any CVPixelBuffer and get a CIImage back synchronously. Designed for sustained 30fps on a serial background queue.
Device Performance
Measured with .innerLips lip mode, 512px output, single face, front camera.
Static Image Swap
Call AmigoFaceSwap.swapFace(in:using:) with a UIImage and FaceLatent. Returns the swapped UIImage asynchronously. Full pipeline: detection → warp → inference → blend. Configurable lip mode.
Per-Frame API (WebRTC / Video)
Feed any CVPixelBuffer to processFrame(_:using:) and get a CIImage back synchronously. Designed for WebRTC, video file playback, screen recording, or any custom camera pipeline. Returns nil when no face is detected.
Built for production mobile apps
CoreML acceleration, CDN model delivery, reusable face embeddings, and configurable rendering.
FaceLatent: Enroll Once, Swap Forever
Enroll a target face with enrollFace(from:) to get a 512-dimensional FaceLatent embedding. Cache it, reuse it, swap targets at runtime with zero latency. Supports pre-computed server-side embeddings too.
CDN Model Download (Free)
ML models download from CDN on first use — not bundled in your app binary. Call downloadModelsIfNeeded() during onboarding. Only emap.bin (1MB) is bundled. Download is free; no license charge.
512px Output Resolution
All swap modes output at 512x512 pixels. Consistent quality across livestream, image, and per-frame modes on every supported device.
LipMode Control
Fine-tune lip blending with .none, .outerLips, or .innerLips (default). Choose the most natural look for your use case — photo editing, live camera, or video content.
Background Replacement
Replace the background behind the detected person with any image. Set session.backgroundImage on the live camera session. Set to nil to disable. Works in real-time.
Fully On-Device & Private
CoreML inference on device GPU. No images leave the device, ever. GDPR and CCPA compliant by architecture. No DPA, no privacy policy changes required.
What can you build?
Developers use Amigo AI SDK to add face swap to streaming, social, video editing, and video call apps.
Streaming Apps
Add real-time face swap to Twitch, YouTube Live, or custom RTMP streaming. Per-frame API drops into any pipeline at 30fps.
Social Media Apps
Face swap filters for stories, reels, and UGC. Drop-in camera view for SwiftUI. No cloud, no privacy concerns for your users.
Video Editing Apps
Swap faces in recorded video frame-by-frame on-device. No upload needed. Process locally at 512px with CoreML.
Video Call Apps
Face swap for WebRTC video conferencing. processFrame() returns in under 33ms — fast enough for real-time calls with zero cloud latency.
Simple, usage-based pricing
Pay per session, not per frame. One session = unlimited frames. A 3-hour livestream costs the same as a 10-second test.
Most SDKs charge per minute, per frame, or per MAU. Amigo AI SDK charges per initialize() call. Once initialized, process as many frames as you want — livestream for hours, swap thousands of images, render entire videos. One session, one penny.
Estimate your cost
Ready to add face swap to your app?
1,000 free sessions every month. No credit card required. $0.01/session after that. Integrate in minutes, not days.