L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

tripo-api

tripo-api

Tripo3D REST API 实战参考与统一驱动 —— 图生3D / 文生3D / 多视图重建 / 自动绑骨 / 预制动画重定向 的 确切端点、参数、模型版本、积分、以及大量实测踩坑。当任务涉及:用 Tripo 把图/文生成 3D 网格、给模型自动绑骨 (Mixamo 骨架)、套 Tripo 预制动画、选 Tripo 模型版本(v2.5/v3.0/v3.1/P1)、控制贴图质量/四边面/风格化、 排查 Tripo 任务失败(1004/2006)、估算 Tripo 积分消耗 —— 时务必使用本 skill。出现 tripo3d、image_to_model、 multiview_to_model、animate_rig、animate_retarget、tripo api key、图生3D、绑骨、tripo…

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: tripo-api description: >- Tripo3D REST API 实战参考与统一驱动 —— 图生3D / 文生3D / 多视图重建 / 自动绑骨 / 预制动画重定向 的 确切端点、参数、模型版本、积分、以及大量实测踩坑。当任务涉及:用 Tripo 把图/文生成 3D 网格、给模型自动绑骨 (Mixamo 骨架)、套 Tripo 预制动画、选 Tripo 模型版本(v2.5/v3.0/v3.1/P1)、控制贴图质量/四边面/风格化、 排查 Tripo 任务失败(1004/2006)、估算 Tripo 积分消耗 —— 时务必使用本 skill。出现 tripo3d、image_to_model、 multiview_to_model、animate_rig、animate_retarget、tripo api key、图生3D、绑骨、tripo 积分 等关键词也应触发, 即使用户没说"skill"。配套驱动脚本 scripts/tripo_gen.py。 注:做完整 AR/动画管线请配合 ar-3d-animation-pipeline;本 skill 只聚焦 Tripo API 本身。

Tripo3D API 实战参考

经实测(2026-06)整理的 Tripo REST API 用法 + 踩坑。最大教训:Tripo 的 create 几乎不校验参数, 错参数也返回 code:0(任务受理),要到处理阶段才以 error_code:1004 失败 —— 所以"create 成功"不等于 "参数对",必须 poll 到 success 才算数。

基础

  • Base:https://api.tripo3d.ai/v2/openapi
  • Auth:Authorization: Bearer <key>(key 存 gitignore 的 .tripo-key)
  • 核心端点:
    端点作用
    POST /upload (multipart file)上传图 → 返回 data.image_token
    POST /task (JSON)建任务 → 返回 data.task_id(⚠️ 不校验业务参数)
    GET /task/{id}查状态/进度/输出;status ∈ running/success/failed/...;失败看 error_code
    GET /user/balance余额 data.balance
  • 通用流程:upload → create(type=...) → poll(/task/{id} 直到 success) → fetch(output.pbr_model/model)。
  • 网络:常在不稳代理后 → 所有请求加重试。
  • 驱动脚本:scripts/tripo_gen.py(命令:i2m / mv4 / mv / prerig / rig / animate / get / status / balance)。

image_to_model(图生3D,主力)

payload:

{"type":"image_to_model","file":{"type":"png","file_token":"<tok>"},
 "model_version":"v3.1-20260211","texture":true,"pbr":true,
 "texture_quality":"detailed","quad":true,"style":"person:person2cartoon"}
  • ⭐ model_version 一定要显式指定(下表),否则回落到旧默认 v2.5(明显糙)——这是"图很美但 3D 糙"的头号原因。
    版本字符串说明实测
    v2.5-20250123旧默认,几何/贴图糙❌ 别用
    v3.0-20250812大跃升,脸灵动、细节翻倍✅
    v3.1-20260211比 v3.0 几何精度/贴图更好(2026-02-11)✅ 当前首选
    P1-20260311生产级,低面数下几何最精细,风格化/游戏/AR 轻量资产✅ 备选/对照
  • texture_quality:"standard"(默认)/ "detailed"(更细)/ "no"。⚠️ 没有 "HD"(传 HD 报 1004)。
  • quad":true:四边面拓扑(绑骨形变更好)。⚠️ quad 模型输出是 FBX(GLB 存不了四边面)——下载的 .glb 其实是 FBX("Kaydara FBX")。处理见下「quad/FBX」。
  • style:风格化,如 "person:person2cartoon"(卡通化,输入已是卡通时变化不大)、"object:clay" 等。
  • 其它:face_limit(面数)、smart_low_poly、pbr、texture。
  • 输出:output.pbr_model(优先)或 output.model + output.rendered_image(webp 预览图,几十 KB,验收很方便)。

multiview_to_model(多视图重建)

files:[front,left,back,right](每个 {type:png,file_token},缺的给 {})。 ⚠️ 实测坑:① 慢且易卡 99%(单图 i2m ~1min;多视图 10–25min 甚至超时)——poll 超时要调到 1500s+,且记下 task_id,超时后用 GET /task/{id} 重取;② 4 张分开生成的视图易不一致 → 重建出鬼影/五官变柔。结论:优先"单张精美正面图 + 高版本",比多视图更稳。

animate_rig(自动绑骨)

{"type":"animate_rig","original_model_task_id":"<i2m_task_id>","out_format":"glb","spec":"mixamo"}
  • 先可选 animate_prerigcheck({type,original_model_task_id} → output.riggable)。
  • ⭐ 服务端绑骨,吃 task_id 不吃本地文件 → quad 的 FBX 根本不用手动处理:传 i2m 的 task_id + out_format:"glb",直接拿绑好骨的模型。
  • spec(关键,默认 "tripo"):
    • "mixamo" → 骨架命名 mixamorig:Hips/...,能接 Mixamo 动作库 + 程序化烘焙,但用不了 Tripo 预制动画;
    • "tripo"(默认)→ Tripo 自有骨架,能用 animate_retarget 预制动画,但接不了 Mixamo。
    • 按动画来源选 spec:要 Mixamo/手烘(挥手/倒茶)→ mixamo;要 Tripo 预制(idle/walk/run)→ tripo。
  • rig_type:默认 biped(还有 quadruped/hexapod/octopod/avian/serpentine/aquatic/others)。
  • rig 也有 model_version:默认旧的 v1.0-20240301,有更新的 v2.0-20250506(更好的蒙皮,值得指定)。
  • 快(~15s)。⚠️ 若源模型是 quad,绑骨输出仍是 FBX 内容(哪怕要 glb)——要进浏览器得 FBX→GLB(见下)。
  • 升级了模型就要重绑骨(绑骨质量 ≈ 输入网格质量)。

animate_retarget(预制动画)—— ⭐ 可用,但必须配 spec:"tripo" 的绑骨

{"type":"animate_retarget","original_model_task_id":"<spec=tripo 的 RIG task_id>",
 "animation":"preset:idle","out_format":"glb","bake_animation":true}
  • 预制清单(human biped):preset:idle / walk / run / dive / climb / jump / slash / shoot / hurt / fall / turn (+ preset:quadruped:walk / hexapod:walk / octopod:walk / serpentine:march / aquatic:march)。 没有挥手/打招呼/倒茶/鼓掌/跳舞(语义/社交动作得 Mixamo / Cascadeur)。
  • ⭐⭐ 1004 的真正原因(实测踩坑,2026-06):retarget 只认 spec:"tripo" 骨架。我们为接 Mixamo 而用 spec:"mixamo" 绑骨,结果 retarget 一律 error_code:1004(create 阶段 code:0 是假象,处理才报)。换成 spec:"tripo" 绑骨 → retarget preset:idle 立刻成功。 已穷举验证:与 quad/无前缀/bake_animation 都无关,纯粹是 rig 的 spec。
  • 字段:original_model_task_id(必须是 rig 任务;传 i2m 任务 → create 即 2006)、animation(单个用 animation,多个用 animations:[...])、out_format、bake_animation(默认 true)、export_with_geometry、animate_in_place。
  • ⚠️ spec 二选一的取舍:
    • spec:"tripo" → 能用 Tripo 预制动画,但骨架是 Tripo 自有命名 → 接不了 Mixamo 动作 / 我们的 mixamo 程序化烘焙;
    • spec:"mixamo" → 能接 Mixamo 动作库(挥手等) 和程序化,但用不了 Tripo 预制。
    • 因为 Tripo 预制本就没有挥手/倒茶,做"打招呼/倒茶"这类仍走 mixamo 那条;只有想要 idle/walk/run/jump 这种通用循环动作,才值得改 tripo spec。
  • 只看 poll 到 success 才算"能用",别被 create 的 code:0 骗了。

quad/FBX 处理(只在"网页预览未绑骨纯模型"时需要)

  • quad 模型 / quad 源的绑骨输出 = FBX 内容(文件头 "Kaydara FBX"),@gltf-transform 读不了(报 Unexpected token 'K')。
  • 转换:node_modules/fbx2gltf/bin/<OS>/FBX2glTF -i x.fbx -o y --binary(三角化;蒙皮/材质保留)→ 再 gltf-transform optimize。
  • ⚠️ fbx2gltf 与 @gltf-transform/cli 用 --no-save 装会互相 prune;要么一条命令同装两个,要么用哪个临时重装。gltf-transform CLI 要 Node ≥20。
  • 走 Tripo 全自动绑骨(rig 出 glb)时完全不用碰 FBX。

积分(实测 2026-06,起点 600)

操作约
image_to_model(v3.x + pbr)25–30
上面再加 detailed + quad~40 / 个
animate_rig10–20
multiview_to_model更贵 + 慢
  • ⚠️ 失败任务的扣分规则不一致:图生成 create 被拒(参数错,create 阶段 1004)不扣分;但处理阶段才失败的任务(如 retarget 1004、rig)会小额扣分。探参数优先用"会在 create 阶段被拒"的方式才真免费。
  • 探参数小技巧:发请求看 create.code(0=受理),但必须 poll 看 success 才确认参数有效——别浪费在"create 成功但处理失败"上。

错误码 & 账号坑(实测)

码含义典型触发
1004参数无效(通用,不指明哪个)texture_quality:"HD";mixamo 骨架去 retarget;错的 model_version(处理阶段才报)
2001任务不存在 / 无权访问换了 API key(=换账号)后引用旧 key 建的 task_id —— task_id 跟账号绑定!
2006模型类型不符合该操作retarget 的 original_model_task_id 传了 i2m 任务(必须传 rig 任务)
  • ⚠️⚠️ task_id 是账号级的:换 Tripo key(尤其换号/换余额)后,之前所有 task_id 全部 2001 失效 → 必须从图重新生成(图在本地就行),不能复用旧 task。换 key 前留好本地源图。
  • 余额:GET /user/balance。注意失败任务的扣分见上「积分」。

一句话决策

  • 要质量:v3.1-20260211(或对照 P1-20260311)+ texture_quality:detailed(+ quad 若后续要绑骨/外部精修)。
  • 要绑骨:先定动画来源再选 spec —— Mixamo/手烘 → spec:mixamo;Tripo 预制 → spec:tripo。服务端出 glb,不碰 FBX。
  • 要动画:Tripo 预制(idle/walk/run…)可用,但 rig 必须 spec:tripo(mixamo 骨架 retarget 会 1004);Tripo 没有挥手/倒茶,这类走 Mixamo / Cascadeur / 程序化。
  • 永远 poll 到 success 才算成功;多视图记 task_id 防超时丢结果。

⚠️ 面部/口型动画就绪性(2026-06 血泪补:在揭小贤上撞了一整轮墙)

核心教训:Tripo(图生3D)给的是「渲染资产」(为静态好看而生),不是「动画资产」(为变形而构建)。两者由不同流程产出,任何技术都无法在裸资产上跨越这道鸿沟。

  • API 的 animate_rig = 身体骨架(biped),没有任何面部骨/blendshape/viseme。 绑了骨 ≠ 能动脸。在裸 API 模型上做口型,只能手工硬接下巴骨/形态键 → 必败于三条资产硬伤:
    • 拓扑:三角面乱流,嘴周无同心 edge loop → 单骨一转就扯歪脸、形态键一拉就撕裂。(好口型前提=嘴周环形四边 loop。)
    • 口腔内部:嘴是「微张+一片平红」烘进贴图,没有真牙/舌/喉几何 → 一张大就露平红"血盆大口"。
    • UV 碎片化:嘴的 UV 散落全图、和身体交错 → 没法干净重绘嘴(一画甩满身);QuadriFlow 自动重拓扑也只出均匀四边、给不了面部 loop。
  • ✅ 正路:Tripo 的口型/面部在 STUDIO(GUI)产品里,不在我们调的 API 里。 Studio 有面部绑定 + blendshape 生成(含语音音素 viseme)+ 重拓扑。要讲解口型 → 用 Studio 给头做 viseme,别在裸 API 模型上硬雕。
  • ✅ "分部件"有效:API 无 part 参数,但可单独生成"只有头"的高精度模型(面数预算全给脸→面部拓扑远好于整身一次生成),头单独绑面部、身体另生成再组装。
  • ⚠️ 运行时网格很可能仍是三角面:quad:true 出 FBX,FBX→glTF(浏览器要 GLB)又三角化 → quad 好布线没保到运行时;要精修/动画就在 FBX/源模型阶段做。

Gate 0 —— 生成前必答 + 生成后必检(以后第一步就做)

  1. 脸要不要动? 只"临现+身体手势"→ API 路径够用。要口型/表情 → 必须生成阶段解决面部(Studio viseme / 生产级头),绝不事后硬接。
  2. 要脸动 → 头单独高精度生成(面数全给脸)。
  3. 拓扑锁死:quad(+ 考虑 P1),并验证运行时网格是否真可用。
  4. 生成后机检(动画就绪性,不达标不做面部):① 口腔有真几何还是画死的红 ② UV 单岛还是碎片 ③ 嘴周有 loop 吗 ④ 四边面占比。
  5. 小代价先验:rendered_image + 一次拓扑/UV 机检判"就绪性",再决定绑骨/口型。
Skills enregistrées