Skip to content

Hardware & engines ​

Measured on an RTX 4090 host, steady state per worker. The console's Local services page recomputes capacity from your GPU, so treat these as floors.

profileavatar engineVRAMfits on
Lightestwav2lipLS (384) ≈ 2 GB + ASR 1.4 GB, EdgeTTS 0≈ 3.5 GBany 6 GB card
QualityFlashHead ≈ 6.6 GB or MuseTalk 1.5 ≈ 7.7 GB, + ASR≈ 8–9 GB12 GB card, one live session
Pool2 × MuseTalk + ASR≈ 17 GB24 GB card, 2–3 sessions
No GPUremote avatar worker + cloud LLM/TTS0laptop / VPS

Pick by what matters: wav2lipLS is the cheapest to run and the lowest fidelity; MuseTalk is the most robust to arbitrary source videos; FlashHead needs only a single portrait (no bake) but is a 512² head-and-shoulders model.

Latency (measured) ​

Public demo host, one RTX 4090, Qwen realtime brain, 2026-10-11. "Turn end" is when turn-taking commits the visitor's utterance.

MetricMuseTalk 1.5 (512)FlashHead half-body (720×1280)
Turn end → first reply audio from the brain1–170 ms1–170 ms
Turn end → first lip-synced audio from the engine0.40–0.72 s0.86–1.15 s
Engine: audio arrival → first frame (of which compute)0.32–0.55 s (0.24–0.48 s)0.79–0.90 s (0.62–0.76 s)
Local brain (LLM + EdgeTTS): request → first audio / first frame0.37–0.52 s / 0.73–1.07 s—
Instinct decision: Jev through a proxy / local rules0.4–0.85 s / 0 mssame
Viewer packet loss → keyframe (PLI relayed)≤ 0.5 s≤ 0.5 s

Rules of thumb: the engine's first frame is ~1 s behind the first audio on FlashHead and ~0.5 s on MuseTalk, so the audio gate holds the first packets until video is ready (lip-sync from frame 0). Idle costs no GPU at all; the only steady cost per session is the engine while it speaks.