Essence 2
Essence 2 renders a photoreal person from one portrait, live.
What it is
Essence 2 (essence-2) renders a photoreal person from one portrait, up to
1080×1920 (portrait). From your portrait the platform generates a 10-second
video of that person; the model then animates lip-sync and expression over it live,
with a sharp mouth and teeth taken from that video. Creating an Essence 2 avatar
takes about 2 hours (Create your own avatar).
How it is created, served and kept moving while idle: How it works.
When to choose it
- A photorealistic person — start here.
- Always-on displays — kiosks, lobby screens and 24/7 assistants.
- On your own hardware — every SDK platform runs it.
Essence 2 needs a clear, real human face: a cartoon, animal, robot or
creature, or a photo with no face found, is refused with
422 MODEL_SUBJECT_MISMATCH before anything is charged. For a stylized
character, or a scene generated from one photo, choose
Expression 2. See
Choosing a model.
Where it runs
| Where | Essence 2 | How |
|---|---|---|
| iPhone and iPad | Yes | Swift package, Essence2Kit (iOS 26) |
| Mac | Yes | Swift package (macOS 26, M3 or newer), CLI, Python |
| Android | Yes | essence2-android |
| Linux, no GPU | Yes | CLI, Python |
| Browser (WebGPU) | Yes | render=local, for avatars that have a browser build |
| Your servers | Yes | CLI, Python, LiveKit plugin |
| bitHuman cloud | Yes | web embed, REST API, LiveKit |
| Fully offline | Yes | Linux x86_64 (Business & Enterprise) |
A complete app for iPhone and iPad is the iOS Essence 2 example; for Android, the Android Essence 2 example.
The file you download is <CODE>.imx, from
GET /v1/agent/{code}/model/download?model=essence-2
or bithuman pull <CODE> --model essence-2. How fast it renders on each device
is on performance.
Limits and expectations
- Output plays at 25 frames a second everywhere it runs. How fast a platform renders is on performance.
- The downloadable file is about 140–160 MB, varying per identity — read
Content-Lengthrather than assuming a size. - The face is fixed at creation. To change it, create a new agent.
- The first session on a new agent can take longer to connect while the identity is provisioned; later sessions reuse it.
- Before training completes, a launch that requests this model is refused
with
409 MODEL_NOT_GENERATED. Once ready,essence-2appears in the agent’ssupported_models.
Next steps
- Models — the four models side by side
- Agents API — create, poll, download
- Embed widget — a live session in minutes
- Video API — render an MP4 with
model: "essence-2" - Session behavior & troubleshooting
This section moved: docs.bithuman.ai/build/create-avatar#how-creation-works
This section moved: docs.bithuman.ai/performance/method#pin-a-tier-for-a-benchmark
This section moved: docs.bithuman.ai/models/how-it-works#idle-and-speaking-behavior