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

‹ Platforms

Windows

Render Essence 2 and Expression 2 on a Windows 11 PC, with no GPU.

Your computer or serverNo GPU neededAPI secretPython 2.11.20

The bithuman Python package: a file in and frames or an MP4 out, or a live stream in and frames out.

Before you start

Both models run on the CPU alone, with no GPU and no WSL. The CLI on Windows runs cloud sessions and MCP.

DetailExpression 2Essence 2
Rendersany character from one portraita photoreal person from one portrait
Installpip install "bithuman[expression-2]"included in the same install
FramesRGB numpy arrays, (height, width, 3) uint8the same
You needCheck
Windows 11 on x86_64 (64-bit Intel or AMD)python -c "import platform; print(platform.system(), platform.machine())" prints Windows AMD64
64-bit Python 3.10–3.14, from python.org or winget install Python.Python.3.12python --version
An API secretYour API secret
A paid plan (Creator or higher): usage bills per second while the avatar runsPricing
About 1 GB of disk (the package, 118–190 MB per avatar)Get-PSDrive C

The package carries the Microsoft C++ runtime it needs, so there is nothing else to install. It is tested on Windows 11; Windows on Arm has no package yet.

Install

In PowerShell:

python -m venv .venv
.venv\Scripts\Activate.ps1
pip install "bithuman[expression-2]"

The package installs no command-line tool.

Authenticate

Set BITHUMAN_API_SECRET in the PowerShell window that runs Python (bithuman.open reads it), or pass api_secret= to AsyncBithuman.create(). See Your API secret. Downloading a sample avatar needs no account.

Run your first avatar

$env:BITHUMAN_API_SECRET = "<your API secret>"
curl.exe -fL -o wise-pup.imx "https://api.bithuman.ai/v1/agent/A23WJF0199/model/download?model=expression-2"
curl.exe -fsSLo speech.wav https://docs.bithuman.ai/samples/speech.wav
import bithuman
bithuman.open("wise-pup.imx").render("speech.wav", out_mp4="out.mp4")
# → out.mp4: wise-pup speaking the sample, 416×720, 15 s

Open out.mp4 to watch it talk. Windows’ own H.264 encoder writes it, so no ffmpeg install is needed. To process the frames yourself, iterate over render without out_mp4=:

import bithuman

with bithuman.open("wise-pup.imx") as avatar:
    frames = [image for image in avatar.render("speech.wav")]
print(len(frames), "frames of", frames[0].shape)
# → 300 frames of (720, 416, 3)

Integrate into your app

The Python API is the same on Windows as on macOS and Linux: AsyncBithuman takes audio as it arrives and yields frames and audio at the model’s rate, interrupt() stops a reply, and the LiveKit plugin renders the avatar inside a LiveKit Agents worker. The code and the calls are in Python: Integrate into your app.

Platform notes

  • The first Essence 2 render downloads a shared audio encoder (about 66 MB) to %USERPROFILE%\.bithuman\deps, once.
  • BITHUMAN_CACHE_DIR moves the download cache from %USERPROFILE%\.cache\bithuman.
  • python -m bithuman render <AGENT_CODE> <audio> downloads your own agent’s model by code and renders it.

Troubleshooting

SymptomCauseFix
Activate.ps1 cannot be loaded because running scripts is disabledPowerShell’s execution policySet-ExecutionPolicy -Scope CurrentUser RemoteSigned, or run .venv\Scripts\python.exe directly
pip finds no wheel32-bit Python, Windows on Arm, or Python outside 3.10–3.14install 64-bit Python 3.10–3.14 on an x86_64 PC
'curl' is not recognized or a PowerShell Invoke-WebRequest errorcurl in Windows PowerShell 5.1 is an aliastype curl.exe, as above
NotSupported opening an Expression 2 filethe extra is missingpip install "bithuman[expression-2]"
NotAuthorised at open: that key was not accepted (401)the secret was rejectedcreate a new one under API secrets

Reference

This section moved: docs.bithuman.ai/platforms/windows#run-your-first-avatar