bithuman: cloud lane serves Expression 1 to an expression-2 agent (silent downgrade, billed as gen-1)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- python
- Lĩnh vực
- backend-api-design
Hướng nghiên cứu
Start by reading avatar.py around lines 326–350 and checking how the plugin maps its model option to the runtime-token request. Then investigate the reported GPU-lane behavior and whether the fix belongs in this repository or the BitHuman service. Done means expression-2 is served when available, or the GPU launcher fails closed rather than silently downgrading.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
The bitHuman cloud lane behind livekit-plugins-bithuman (POST auth.api.bithuman.ai/v1/runtime-tokens/request) serves Expression 1 to an agent whose only built model is expression-2 — a silent downgrade, billed at the Expression-1 rate. The docs for this lane promise the opposite.
Expected
Per the LiveKit deployment guide:
a second-generation agent serves its own model automatically … no
model=kwarg is needed
And per models-v2, expression-2 is served on every cloud tier (GPU / ANE / CPU) and through every delivery surface including the LiveKit plugin.
Actual
Agent A57CQP1723 (Pro account) is built as expression-2 (model_status.expression-2.state: "ready"; supported_models: ["essence-2-max", "expression-2"]). No gen-1 model is built on it at all. Same agent, same account, same day:
| lane | billing_type | video track | face |
|---|---|---|---|
| bitHuman embed viewer | usage_expression_2_model_cloud |
416x720 | renders correctly |
runtime-tokens (this plugin's endpoint) |
usage_expression_model_cloud |
512x512 | featureless smear |
The agent's stylized (non-photoreal) portrait is only renderable by Expression 2, so on this lane the face is destroyed — and the session bills 4.0 cr/min for the older engine vs 3.81 for Expression 2 on the viewer lane.
Note the launcher asymmetry: mode: "cpu" correctly refuses the agent (503: "that launcher serves essence-1 models, and this agent's available model(s) are: essence-2-max, expression-2"), while mode: "gpu" silently substitutes Expression 1 instead of refusing or serving expression-2.
Repro
POST https://auth.api.bithuman.ai/v1/runtime-tokens/request
headers: api-secret: <key>
json: {"livekit_url": ..., "livekit_token": <agent-kind token>,
"room_name": ..., "mode": "gpu", "agent_id": "A57CQP1723"}
Worker joins and publishes 512x512; the account ledger (GET /v2/{user_id}/runtime-sessions) records billing_type: "usage_expression_model_cloud".
Ruled out
- Extra body fields (
model,model_version,billing_type) return 200 and are ignored;modeaccepts onlygpu/cpu. - Plugin v1.7.1 exposes no gen-2 selector (
model: Literal["expression","essence"]only flipsmode). - The plugin's exact JWT attribute set on the worker token (
api_secret+agent_id+lk.publish_on_behalf,avatar.pyL326–350) — tested, no change. - The model itself is fine:
POST /v1/video/generatewithmodel: "expression-2"renders the same agent flawlessly.
Ask
Serve expression-2 on the runtime-tokens lane for agents that have it built (as documented), or expose a parameter that selects it — or at minimum make the gpu launcher fail closed like the cpu launcher does, instead of silently downgrading and billing for it.
Happy to share room names, timestamps and session ids privately. (cc @sgu-bithuman)
- Ngôn ngữ chính
- Python
- Star
- 14.6k
- Fork
- 3.9k
- Merge trung bình
- 3 ngày 11 giờ
- Pull request đã merge (30 ngày)
- 196
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của livekit/agents
-
Assistant markup is stripped from chat history when expressive mode is offCó thể đã có người làm @ShivamSharma43 đã nhận 17 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hostsCó thể làm lại được @AbarnaaSree đã nhận 56 ngày trước và không có pull request nào đang mở. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
livekit/agents#7022 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
Maintainer thường phản hồi trong vòng 1 ngày
-
TranslationRoomIO: unset_track() before a track is linked stalls startup, so the translation is never publishedCó thể đã có người làm @RaphaelFakhri đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 20/100
livekit/agents#8114 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Python AgentServer health check (GET /) returns 200 before the worker has registered with LiveKitCó thể đã có người làm @ninglinLiu đã nhận 2 ngày trước. Đang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
livekit/agents#8092 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của livekit/agents
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
conda-forge/conda-forge-bot#7025 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
chore(ci): publish.yml's release-job comment counts the hand-created Releases as all of themĐang mởarea:ci
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 74/100
catincloud-labs/dagster-dex#149 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
home-assistant/core#188424 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Review backlog (docs-currency): README 'CI run' link lands on a run whose overall badge is cancelledĐang mởagent/reviewer needs-kind needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 63/100
projectbluefin/utah#880 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
redis/memtier_benchmark#850 ·
Maintainer thường phản hồi trong vòng 1 ngày