Docs index: /llms.txt · every page as Markdown: add .md

‹ Performance

Performance

How fast Essence 2 and Expression 2 render on each platform.

× real time is seconds of avatar video rendered per second: at 1× an avatar keeps up with a live conversation, and anything higher is headroom.

DeviceEssence 2Expression 2
iPhone 18 Pro4.9× real time, 124 fps11.9× real time, 239 fps
iPhone 152.1× real time, 54 fps5.5× real time, 111 fps
Galaxy S25+2.0× real time, 52 fps2.4× real time, 48 fps
Mac (M4)6.9× real time, 174 fps8.8× real time, 176 fps
Linux PC (Intel i7)2.0× real time, 50 fps2.4× real time, 48 fps
Windows PC (Intel i7)0.6× real time, 17 fps1.0× real time, 21 fps
Browser (Chrome, M5)4.0× real time, 101 fps2.4× real time, 49 fps
Cloud GPU (RTX 4090)4.1× real time, 104 fps17.0× real time, 340 fps
Cloud Mac (M4 Max)2.8× real time, 71 fps5.5× real time, 111 fps
Cloud CPU1.1× real time, 28 fps1.3× real time, 27 fps

Each figure is one avatar session rendering as fast as the device allows, on the fastest SDK we measured on that device. How we measure has the method, memory and the raw data.

All measurements

Every SDK and release measured, fastest first on each device.

DeviceModelSDKSpeedfpsLive fpsFirst speechMeasuredMethod
iPhone 18 ProEssence 2Swift package 2.21.44.9×124250.38 s2026-10-08Essence 2 example app benchmark: avatar downloaded by agent code, unpaced x3 back to back, then a live 25 fps run; Release, published 2.21.4
iPhone 18 ProExpression 2Swift package 2.21.411.9×23919.9—2026-10-08examples swift/ios-expression2 (Release, 2.21.4), generate then play
iPhone 15Essence 2Swift package 2.17.32.1×54——2026-09-27slowest of 3 runs (model record)
iPhone 15Expression 2Swift package 2.18.05.5×111——2026-09-27slowest of 3 runs (model record)
Galaxy S25+Essence 2essence2-android 0.7.02.0×52——2026-09-25slowest of 3 runs (model record)
Galaxy S25+Expression 2expression2-android 0.4.102.4×48——2026-09-23slowest of 3 runs (model record)
Mac (M4)Essence 2Python · bithuman 2.11.126.9×174——2026-09-25slowest of 3 runs (model record)
Mac (M4)Essence 2Swift package 2.21.44.3×10924.50.40 s2026-10-08Essence 2 probe on the published v2.21.4 binaries (unpaced pull loop to the reply’s last frame; live 25 fps loop)
Mac (M4)Essence 2CLI 2.8.14.2×106——2026-09-27slowest of 3 runs (model record)
Mac (M4)Expression 2Swift package 2.21.48.8×176——2026-10-08examples swift/macos-expression2 (2.21.4, timed to the last frame), swift run -c release
Mac (M4)Expression 2Python · bithuman 2.11.128.4×169——2026-09-25slowest of 3 runs (model record)
Mac (M4)Expression 2CLI 2.8.18.4×168——2026-09-27slowest of 3 runs (model record)
Linux PC (Intel i7)Essence 2CLI 2.8.12.0×50——2026-09-27slowest of 3 runs (model record)
Linux PC (Intel i7)Essence 2Python · bithuman 2.12.11.2×3024.40.89 s2026-10-08notes/perf/python/bench.py (bithuman.open + Avatar.render, first request -> last frame) and live.py (AsyncBithuman, 40 ms chunks at real-time pace); warm-up excluded; CPU only, no cap
Linux PC (Intel i7)Expression 2Python · bithuman 2.12.12.4×4820—2026-10-08notes/perf/python/bench.py (bithuman.open + Avatar.render, first request -> last frame) and live.py (AsyncBithuman, 40 ms chunks at real-time pace); warm-up excluded; CPU only, no cap
Linux PC (Intel i7)Expression 2CLI 2.8.12.2×44——2026-09-27slowest of 3 runs (model record)
Windows PC (Intel i7)Essence 2Python · bithuman 2.12.90.6×17——2026-11-06Python SDK on Windows, full-body avatar, 8 vCPU; the slowest of four runs is shown
Windows PC (Intel i7)Expression 2Python · bithuman 2.11.181.0×21——2026-09-29slowest of 3 runs (model record)
Browser (Chrome, M5)Essence 2web viewer dcba3354.0×10125—2026-10-08median of 3 runs
Browser (Chrome, M5)Expression 2web viewer dcba3352.4×49——2026-10-08median of 3 runs
Cloud GPU (RTX 4090)Essence 2cloud API4.1×104——2026-09-27slowest of 3 runs (model record)
Cloud GPU (RTX 4090)Expression 2cloud API17.0×340——2026-09-23slowest of 3 runs (model record)
Cloud Mac (M4 Max)Essence 2cloud API2.8×71——2026-09-26slowest of 3 runs (model record)
Cloud Mac (M4 Max)Expression 2cloud API5.5×111——2026-09-23slowest of 3 runs (model record)
Cloud CPUEssence 2cloud API1.1×28——2026-09-25slowest of 3 runs (model record)
Cloud CPUExpression 2cloud API1.3×27——2026-09-24slowest of 3 runs (model record)
  • Only these devices are measured. Other hardware renders at other rates.
  • Browser is the avatar rendering in the visitor’s own tab with WebGPU (render=local). By default the avatar renders in the cloud and streams to the page.
  • Cloud is how fast one finished video is delivered, encoding included, on a server with no other sessions. bitHuman picks the server for each session.
  • A live conversation plays at 25 fps for Essence 2 and 20 fps for Expression 2. Extra speed makes a video file finish sooner; it does not put more frames on screen.

Setup for each SDK: Apple, Android, Web, Python, CLI.

This section moved: docs.bithuman.ai/performance/method#pin-a-tier-for-a-benchmark

This section moved: docs.bithuman.ai/performance#all-measurements

This section moved: docs.bithuman.ai/performance#all-measurements

This section moved: docs.bithuman.ai/performance#all-measurements

This section moved: docs.bithuman.ai/performance#all-measurements

This section moved: docs.bithuman.ai/performance#all-measurements