bitHuman local .imx or cloud avatar vs a hosted Sume avatar job

bitHuman renders avatars locally from .imx files or in its cloud, which changes your CPU bill. A hosted Sume avatar job moves the render off your agent.

5 min readSume
All posts

bitHuman's LiveKit plugin can render a realtime avatar either locally from an .imx model file or in the cloud from an avatar ID, and the docs warn that agents use more CPU with .imx files. A hosted Sume avatar job sidesteps the question: the render runs on Sume workers and your process only submits and polls.

What the plugin offers

The LiveKit page says bitHuman avatars run "either locally or in the cloud". The plugin accepts three setups: an .imx model file from bitHuman's console, a direct image (a PIL object, a file path or a URL), or an existing bitHuman avatar ID. You install it with uv add "livekit-agents[bithuman]~=1.8" and set BITHUMAN_API_SECRET, plus an optional BITHUMAN_MODEL_PATH.

AvatarSession takes a model of "expression" or "essence". Essence is the default and gives predefined actions and expressions.

Where the work runs

Local rendering keeps media on your machines but turns your agent process into a render host, so you size CPU for it. Cloud rendering moves that load away at the price of a vendor dependency.

With Sume, you never hold a model file. Create an avatar once, then send avatar_handle and a script to POST /v1/avatar-1.0/talking-video. Sume also takes quality (standard, plus, max), aspect_ratio (1:1, 3:4, 9:16, 4:3, 16:9; default 9:16) and resolution (720p).

Where the avatar render runs (read 2026-10-05)
ItembitHuman local `.imx`bitHuman cloud IDSume avatar job
Render hostYour agent's CPUbitHuman's cloudSume workers
SetupDownload .imx from the consolePick an avatar IDCreate an avatar, keep the handle
OutputLive avatar in a roomLive avatar in a roomMP4 job result
SecretBITHUMAN_API_SECRETBITHUMAN_API_SECRETSUME_API_KEY
DurationSession lengthSession length4 to 60 s per video

A practical way to choose

Ask who pays for idle time. A live avatar occupies compute for as long as the room is open. A Sume job occupies compute only while it renders, then the result is a file that costs nothing to replay.

If your script is fixed, render it once. If viewers drive the conversation, use a live plugin and budget the CPU. Our avatar versus lip-sync versus motion-control guide shows which Sume route fits each input.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume