Compare models
Essence 2 renders a photoreal person; Expression 2 renders any character.
A bitHuman model turns speech audio into a lip-synced talking video of your avatar, live (how it works). Pick by subject: a real person, Essence 2; anything else, Expression 2. The same agent works on every platform that runs its model; on your own hardware it renders from an avatar file (.imx).
The models
Essence 2A photoreal person from one portrait, live.Photoreal, up to 1080pMade for always-on kiosks and displaysRuns on iPhone & iPadMacAndroidLinux (no GPU)BrowserYour serversCloud
Expression 2Any character from one portrait: stylized, animal, robot or human.Cartoons, animals, robots and peopleMotion generated live from the audioOne photo is enoughRuns on iPhone & iPadMacAndroidLinux (no GPU)BrowserYour serversCloudOffline
Essence 1First generation. A pre-built identity with its mouth matched to the audio in real time.Renders on a CPU, no GPU neededLip-sync patched live over pre-rendered motionPlays its built-in gestures; creating new ones isn't available right nowRuns on MacLinux (no GPU)BrowserYour serversCloud
Expression 1First generation. Animates a face from a portrait at runtime.No per-identity build stepRenders on bitHuman cloud GPUs at 512×512Can animate a photo with no agentRuns on Cloud
Essence 1 and Expression 1 are the first generation. They stay supported, and nothing changes for agents that use them.
Choosing a model
Pick the model from the subject:
- A real person: Essence 2.
- Anything else (a cartoon or stylized character, an animal, a robot, a creature, a whole generated scene): Expression 2.
- Not sure: create with
model: "auto". A real person routes to Essence 2, anything else to Expression 2. - On a phone, a Mac or in a browser: Essence 2 or Expression 2.
- Maintaining a first-generation agent: keep it. Essence 1 runs on your own CPU; Expression 1 runs in the bitHuman cloud.
Every model except Expression 2 needs a clear, real human face; otherwise creation is refused with 422 MODEL_SUBJECT_MISMATCH before anything is charged.
Where each model runs
Each place links to the page that sets it up.
| Where | Essence 2 | Expression 2 | Essence 1 | Expression 1 |
|---|---|---|---|---|
| iPhone and iPad | Yes Swift package, Essence2Kit (iOS 26) | Yes Swift package, Expression2 | — | — |
| Mac | Yes Swift package (macOS 26, M3 or newer), CLI, Python | Yes Swift package (macOS 13), CLI, Python | Yes CLI ( run), Python | — |
| Android | Yesessence2-android | Yesexpression2-android | — | — |
| Linux, no GPU | Yes CLI, Python | Yes CLI, Python | Yes CLI ( run), Python | — |
| Browser (WebGPU) | Yesrender=local, for avatars that have a browser build | Yesrender=local | Yesrender=local | — |
| Your servers | Yes CLI, Python, LiveKit plugin | Yes CLI, Python, LiveKit plugin | Yes CLI ( run), Python | — |
| bitHuman cloud | Yes web embed, REST API, LiveKit | Yes web embed, REST API, LiveKit | Yes web embed, REST API, LiveKit | Yes web embed, REST API, LiveKit |
| Fully offline | Not yet Coming later | Yes Linux x86_64 (Business & Enterprise) | Not yet Coming later | — |
Fully offline is for Business and Enterprise clients, arranged through sales (Fully offline).
Rendering on your own hardware, every place but the bitHuman cloud, bills at the self-hosted rate (pricing). How fast each model renders on each device: Performance.
This section moved: docs.bithuman.ai/build/create-avatar#how-creation-works
This section moved: docs.bithuman.ai/resources/renamed#retired-model-and-file-names
This section moved: docs.bithuman.ai/models#choosing-a-model