# 3D 生成
> 用混元 3D 或 Tripo 生成 3D 模型:文生、单图、多视图和草图的输入方式,各模型的选项取值,以及提交、查询、下载模型文件的完整流程和响应。
## 接口
| 项目 | 内容 |
| --- | --- |
| 方法与地址 | `POST https://platform.sgt.site/media/v1/3d/generations` |
| 请求头 | `Authorization: Bearer <虚拟密钥>`、`Content-Type: application/json`;建议加 `Idempotency-Key` |
| 返回 | 任务对象 `media.task`,`type` 为 `3d`,通常是 HTTP 202、`status: "queued"` |
| 查询结果 | `GET https://platform.sgt.site/media/v1/tasks/{id}`,建议每 5–10 秒一次,直到 `succeeded` 或 `failed` |
| 结果位置 | `artifacts[]`:模型文件 `kind: "model3d"`,预览图 `cover`;Tripo 另有 `image`,Express 选 `mp4` 时有 `video` |
| 下载 | 产物一律是平台签名链接,直接 GET,不带 `Authorization` |
| 取消 | 当前五款模型都不支持 |
3D 生成可能需要数分钟。提交时用 `"wait": 0` 立即拿到任务 ID,再轮询;完整的轮询脚本见[快速开始](overview.md)。只接受下文的完整模型 ID,不接受 `hunyuan`、`tripo` 等简称;一次请求生成一个模型,不接受 `n`。
## 输入方式
| 输入方式 | 怎么填 | 混元 3.0 / 3.1 | 混元 Express | Tripo 3.1 / P1 |
| --- | --- | --- | --- | --- |
| 文生 3D | 只写 `prompt` | 支持 | 支持 | 支持 |
| 单图生 3D | 1 项 `reference` / `image` | 支持,此时不能再写 `prompt` | 支持,此时不能再写 `prompt` | 支持;`prompt` 仅文生模式生效,图片模式请省略 |
| 多视图 | 主图 + 其他视角,见下表 | 支持,主图 + 最多 7 个视角 | 不支持 | 支持,前、后、左、右最多 4 张 |
| 草图 | `generate_type: "Sketch"`,同时写 `prompt` 和主图 | 支持 | 不支持 | 不支持 |
多视图的 `role` 写法:
| 模型 | 主图 | 其他视角 |
| --- | --- | --- |
| 混元 3.0 / 3.1 | `reference` 或 `multi_view_front`(二选一,只能一张) | `multi_view_left`、`multi_view_right`、`multi_view_back`、`multi_view_top`、`multi_view_bottom`、`multi_view_left_front`、`multi_view_right_front` |
| Tripo 3.1 / P1 | 不需要单独主图 | `multi_view_front`、`multi_view_back`、`multi_view_left`、`multi_view_right`;不能和单图 `reference` 同时使用 |
图片规则:
| 项目 | 规则 |
| --- | --- |
| 来源 | 每项只能填 `url`(公网 HTTP(S) 地址)或 `file_id`([上传文件](media-files.md)得到的 `id`);不支持 `asset_id` |
| 类型 | `type` 固定为 `image`;平台参考文件上限为 10 MiB,直接 URL 和模型输入还需满足下方的厂商限制 |
| 数量 | 每个 `role` 最多一张,不能重复 |
**文件限制分两层检查。** 10 MiB 是平台参考文件的能力上限,不是所有 3D 模型都能接受 10 MiB 图片:混元主图的公网 URL 文件还需不超过 8 MB,格式为 JPG/JPEG/PNG/WEBP,宽、高各自 128–5000 px;附加视图只支持 JPG/PNG,单张小于 8 MB、合计小于 100 MB,宽、高均大于 128 且小于 5000 px。`file_id` 解析后也要满足目标模型的输入要求。Tripo 指南要求同一物体、主体清楚、遮挡少,未给出可套用到直接 URL 的统一像素或大小数值;不要把混元阈值当成 Tripo 官方限制。
## 通用参数
| 字段 | 类型 | 适用模型 | 说明 |
| --- | --- | --- | --- |
| `model` | string | 全部 | 必填:`hy-3d-3.0`、`hy-3d-3.1`、`hy-3d-express`、`tripo-3d-3.1`、`tripo-3d-p1` |
| `prompt` | string | 全部 | 物体描述,最多 1024 字符。与图片能否同时使用见上表 |
| `references` | array | 全部 | 参考图片,见上文 |
| `output_format` | string | 仅混元 | 模型文件格式,取值见混元参数表 |
| `negative_prompt` | string | 仅 Tripo | 不希望出现的内容,最多 255 字符 |
| `seed` | integer | 仅 Tripo | 模型随机种子,-2147483648 至 2147483647 |
| `provider_options` | object | 全部 | 厂商选项,命名空间固定为 `tencent`,例如 `{"tencent": {"enable_pbr": true}}` |
| `metadata` | object | 全部 | 你的业务信息,随任务原样返回;不超过 64 KiB |
| `wait` | integer | 全部 | 本次请求最多等待的秒数,0–50,默认 0。3D 建议填 0 |
| `callback_url` | string | 全部 | 可选的 HTTPS 任务通知地址,由平台接管,不进入上游请求体;回调不能替代任务查询,见[任务回调](task-callbacks.md) |
某模型不接受的字段,传入会返回 400 `unsupported_parameter`。不用的字段直接省略,不要传 `null`。
图片、视频和上述五款 3D 模型的统一提交都受理符合规则的 `callback_url`。真实 Provider 与真实回调链路尚未验证;请保存任务 ID,并持续通过任务查询确认结果与账务状态,不能因未收到通知而重新生成。
## 混元 3D 参数怎么填
| 字段 | 位置 | `hy-3d-3.0` | `hy-3d-3.1` | `hy-3d-express` |
| --- | --- | --- | --- | --- |
| `output_format` | 顶层 | 可选 `stl`、`usdz`、`fbx`;省略时返回默认格式 | 同 3.0 | `obj`、`glb`、`stl`、`usdz`、`fbx`、`mp4` |
| `generate_type` | `provider_options.tencent` | `Normal`(默认)、`Geometry`、`Sketch`、`LowPoly` | `Normal`(默认)、`Geometry`、`Sketch` | 不接受 |
| `face_count` | `provider_options.tencent` | 3000–1500000 | 3000–1500000 | 不接受 |
| `polygon_type` | `provider_options.tencent` | `triangle` 或 `quadrilateral` | 同 3.0 | 不接受 |
| `enable_pbr` | `provider_options.tencent` | 布尔值,默认 `false` | 同 3.0 | 布尔值,默认 `false` |
| `enable_geometry` | `provider_options.tencent` | 不接受 | 不接受 | 布尔值,默认 `false`;`true` 时只生成白模,不能选 `obj` |
各选项的含义:
| 选项 | 含义 |
| --- | --- |
| `generate_type: "Normal"` | 带纹理的完整模型 |
| `generate_type: "Geometry"` | 只生成几何(白模),不带纹理 |
| `generate_type: "Sketch"` | 用草图加文字生成,必须同时提供 `prompt` 和主图 |
| `generate_type: "LowPoly"` | 低面数模型,仅 3.0 |
| `face_count` | 目标面数,越大细节越多 |
| `polygon_type` | 网格类型:三角面或四边面 |
| `enable_pbr` | 生成 PBR 材质贴图 |
| `output_format` | 选择输出格式,不保证追加文件;默认与模式差异见下表,遍历完整的 `artifacts` |
### 默认输出与格式选择
`output_format` 是可选字符串,统一接口映射为腾讯原生 `result_format`;省略表示使用该型号和模式的默认行为,空字符串和 `null` 不表示默认。以下按当前接入的五款型号分别说明:
**五款型号的默认输出、模式影响与显式格式**
| 型号 | 未指定格式时 | 模式和选项的影响 | 显式格式 |
| --- | --- | --- | --- |
| `hy-3d-3.0` | Normal 默认 OBJ 与 GLB;OBJ 可包装为 ZIP,附带材质/贴图 | Geometry 默认 GLB 且无纹理,PBR 不生效;Sketch 使用图文;LowPoly 改变拓扑,`face_count` 不生效 | `stl/usdz/fbx` 选择一种模型输出格式,不承诺在默认文件之外追加;预览图另计 |
| `hy-3d-3.1` | Normal 默认 OBJ 与 GLB | Geometry 默认 GLB;支持 Sketch,不支持 LowPoly;纹理、PBR 影响内容 | 同 3.0;以结果列表为准 |
| `hy-3d-express` | 腾讯参数表规定普通模式默认 OBJ;其示例又含 OBJ + GLB,不能据示例保证文件数量 | `enable_geometry=true` 默认 GLB,不支持 OBJ;`enable_pbr` 控制材质 | `obj/glb/stl/usdz/fbx/mp4`;MP4 可只有展示视频,没有可编辑模型 |
| `tripo-3d-3.1` | 普通示例为 GLB,但未承诺所有模式都固定 GLB | `quad=true` 强制 FBX;`generate_parts=true` 需关闭 texture/pbr/quad;`compress=geometry` 使用 meshopt,查看器需支持对应压缩 | 不支持 `output_format`;按返回文件识别,不按模型名猜 |
| `tripo-3d-p1` | 共用指南未单独规定 P1 默认格式;普通示例是 GLB,不能据此保证 P1 的所有结果 | 支持纹理、PBR、几何压缩等;不支持 quad、smart_low_poly、generate_parts、geometry_quality | 不支持 `output_format`;保留并识别实际文件 |
依据:[腾讯专业版](https://cloud.tencent.com/document/product/1823/137181)、[Express](https://cloud.tencent.com/document/product/1823/137175)、[Tripo](https://cloud.tencent.com/document/product/1823/137074),核对于 2026-10-15。默认规则帮助选择请求,实际交付始终以本次结果为准。
模型格式(OBJ/GLB/FBX)和文件包装(如 ZIP)不同:ZIP 应按 ZIP 保存并解包查看其中模型与贴图,不能改名为 `.obj` 或 `.glb`。`kind=model3d` 只表示用途,`application/octet-stream` 只表示通用二进制。模型产物通过 `format` 标明可识别的模型格式,已知 ZIP 包装通过 `container=zip` 表达,`filename` 给出建议保存名;未知信息省略,不从请求的 `output_format` 推断。字段来源与完整性检查见[任务产物字段](media-tasks.md)。
## Tripo 参数怎么填
以下字段都放在 `provider_options.tencent`。Tripo 不接受顶层 `output_format`,模型文件格式不可选。
| 字段 | `tripo-3d-3.1` | `tripo-3d-p1` | 含义 |
| --- | --- | --- | --- |
| `texture` | 布尔值,默认 `true` | 同左 | 生成纹理 |
| `pbr` | 布尔值,默认 `true` | 同左 | 生成 PBR 材质;开启时纹理也会生成 |
| `texture_quality` | `standard`(默认)、`detailed`、`extreme` | 同左 | 纹理质量 |
| `texture_alignment` | `original_image`、`geometry` | 同左 | 纹理对齐方式 |
| `face_limit` | 1–1500000;见下方说明 | 50–20000 | 面数上限 |
| `geometry_quality` | `standard`(默认)、`detailed` | 不接受 | 几何质量 |
| `quad` | 布尔值 | 不接受 | 输出四边面 |
| `smart_low_poly` | 布尔值 | 不接受 | 智能低面数 |
| `generate_parts` | 布尔值 | 不接受 | 按部件拆分 |
| `orientation` | `default`、`align_image` | 同左 | 朝向是否对齐输入图 |
| `compress` | `geometry` | 同左 | 压缩几何 |
| `image_seed`、`texture_seed` | 32 位整数 | 同左 | 图片和纹理的随机种子;模型种子用顶层 `seed` |
| `enable_image_autofix`、`auto_size`、`export_uv` | 布尔值 | 同左 | 自动修正输入图、自动尺寸、导出 UV |
`tripo-3d-3.1` 的 `face_limit` 范围随其他选项变化,默认 1–1500000,`geometry_quality`、`quad`、`smart_low_poly` 会改变上下限:
**`tripo-3d-3.1` 各选项组合下的 `face_limit` 范围**
| 选项组合 | `face_limit` 范围 |
| --- | --- |
| 默认 | 1–1500000 |
| `geometry_quality: "detailed"` | 1–2000000 |
| `quad: true` | 1–150000 |
| `smart_low_poly: true` | 500–20000 |
| `smart_low_poly: true` 且 `quad: true` | 500–10000 |
`generate_parts: true` 时,`texture`、`pbr`、`quad` 必须都为 `false`。P1 不接受 3.1 独有的选项,显式传 `false` 也会被拒绝。
## 完整请求示例
以下示例可直接复制,先按[快速开始](overview.md)设置 `GATEWAY_ORIGIN` 和 `KEY`。每个新的生成请求请换一个新的 `Idempotency-Key`;图片地址替换为可公开访问的地址,或改用 `file_id`。
按使用场景选择示例。表中只列出支持该用法的型号;当前密钥能否使用,以[模型列表](models.md#models-media-3d)的查询结果为准:
| 我要做什么 | 支持的型号 | 示例 |
| --- | --- | --- |
| 只用文字描述生成 | 五款均支持 | [文生 3D(混元 Express)](#media-3d-h-847a137b) |
| 用一张图片生成 | 五款均支持 | [单图生 3D(Tripo 3.1)](#media-3d-h-11a4fb09) |
| 用多个视角的图片生成 | `hy-3d-3.0`、`hy-3d-3.1`(主图加最多 7 个视角);`tripo-3d-3.1`、`tripo-3d-p1`(前、后、左、右) | [混元 3.0](#media-3d-h-5f425c87)、[Tripo P1](#media-3d-h-cdd17f5d)、[Tripo 3.1](#media-3d-h-b1d7a5c5) |
| 用草图加文字生成 | `hy-3d-3.0`、`hy-3d-3.1`(`generate_type: "Sketch"`) | [草图生 3D(混元 3.1)](#media-3d-h-2b7b5b32) |
| 只要白模,不要纹理 | `hy-3d-express`(`enable_geometry`);`hy-3d-3.0`、`hy-3d-3.1`(`generate_type: "Geometry"`) | [只要白模(混元 Express)](#media-3d-h-8bc84f3d) |
| 低面数模型 | `hy-3d-3.0`(`LowPoly`);`tripo-3d-3.1`(`smart_low_poly`) | [低面数模型(混元 3.0 LowPoly)](#media-3d-h-1cd3bdcd) |
| 按部件拆分、方便编辑 | 仅 `tripo-3d-3.1`(`generate_parts`) | [多视图生成可编辑部件(Tripo 3.1)](#media-3d-h-7916fbc7) |
| 指定模型文件格式 | 仅混元三款(`output_format`);Tripo 不可选 | [默认输出与格式选择](#media-3d-h-978e5ef6) |
### 文生 3D(混元 Express)
```bash
curl -s "$GATEWAY_ORIGIN/media/v1/3d/generations" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 3d-demo-001" \
-d '{
"model": "hy-3d-express",
"prompt": "一只坐着的橘色卡通猫,圆润造型",
"output_format": "glb",
"provider_options": {"tencent": {"enable_pbr": true}},
"metadata": {"order_id": "M1001"},
"wait": 0
}'
```
### 单图生 3D(Tripo 3.1)
```json
{
"model": "tripo-3d-3.1",
"references": [
{"role": "reference", "type": "image", "url": "https://files.example.com/cat.png"}
],
"provider_options": {
"tencent": {"texture_quality": "detailed", "face_limit": 100000}
},
"wait": 0
}
```
### 多视图(混元 3.0)
混元的多视图不能再写 `prompt`:
```json
{
"model": "hy-3d-3.0",
"references": [
{"role": "multi_view_front", "type": "image", "url": "https://files.example.com/front.png"},
{"role": "multi_view_left", "type": "image", "url": "https://files.example.com/left.png"},
{"role": "multi_view_back", "type": "image", "url": "https://files.example.com/back.png"}
],
"output_format": "fbx",
"provider_options": {
"tencent": {"enable_pbr": true, "face_count": 300000, "polygon_type": "triangle"}
},
"wait": 0
}
```
### 多视图(Tripo P1)
```json
{
"model": "tripo-3d-p1",
"references": [
{"role": "multi_view_front", "type": "image", "file_id": "替换为正面图的文件 id"},
{"role": "multi_view_back", "type": "image", "file_id": "替换为背面图的文件 id"},
{"role": "multi_view_left", "type": "image", "file_id": "替换为左侧图的文件 id"},
{"role": "multi_view_right", "type": "image", "file_id": "替换为右侧图的文件 id"}
],
"provider_options": {"tencent": {"face_limit": 20000}},
"wait": 0
}
```
### 草图生 3D(混元 3.1)
```json
{
"model": "hy-3d-3.1",
"prompt": "木质椅子,四条腿,带靠背",
"references": [
{"role": "reference", "type": "image", "url": "https://files.example.com/chair-sketch.png"}
],
"provider_options": {"tencent": {"generate_type": "Sketch"}},
"wait": 0
}
```
### 只要白模(混元 Express)
```json
{
"model": "hy-3d-express",
"prompt": "一只坐着的猫",
"output_format": "stl",
"provider_options": {"tencent": {"enable_geometry": true, "enable_pbr": false}},
"wait": 0
}
```
### 低面数模型(混元 3.0 LowPoly)
选择 `hy-3d-3.0`;3.1 和 Express 不支持此模式。`polygon_type: "quadrilateral"` 表示四边面与三角面混合,并非保证全部为四边面。LowPoly 下 `face_count` 不生效,所以此示例省略它。
```bash
BASE_URL="https://platform.sgt.site"
KEY="YOUR_VIRTUAL_KEY"
curl -sS --request POST "$BASE_URL/media/v1/3d/generations" \
-H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: hy-lowpoly-001" \
-d '{
"model": "hy-3d-3.0",
"prompt": "一把用于游戏场景的简洁木椅,结构清晰,低面数风格",
"output_format": "fbx",
"provider_options": {
"tencent": {
"generate_type": "LowPoly",
"polygon_type": "quadrilateral",
"enable_pbr": false
}
},
"wait": 0
}'
```
提交返回平台 `media.task`;保存 `id`,按本页下方的查询流程读取 `artifacts` 中的 `model3d`。`output_format` 选择模型格式,不保证追加文件;不应凭数组位置假定文件数量。
### 多视图(Tripo 3.1)
四个 URL 分别替换为同一物体的正、后、左、右图。此处每个视角是一条 `references`;不要再同时提供单图 `reference`。Tripo 的图片输入不靠 `prompt` 改写物体,此例不填写提示词。
**完整请求:Tripo 3.1 四视图**
```bash
BASE_URL="https://platform.sgt.site"
KEY="YOUR_VIRTUAL_KEY"
# 将 JSON 中 example.com 的素材 URL 分别替换为你自己的公网素材地址
curl -sS --request POST "$BASE_URL/media/v1/3d/generations" \
-H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: tripo31-multiview-001" \
-d '{
"model": "tripo-3d-3.1",
"references": [
{
"role": "multi_view_front",
"type": "image",
"url": "https://example.com/inputs/front.png"
},
{
"role": "multi_view_back",
"type": "image",
"url": "https://example.com/inputs/back.png"
},
{
"role": "multi_view_left",
"type": "image",
"url": "https://example.com/inputs/left.png"
},
{
"role": "multi_view_right",
"type": "image",
"url": "https://example.com/inputs/right.png"
}
],
"provider_options": {
"tencent": {
"texture": true,
"pbr": true,
"face_limit": 100000,
"geometry_quality": "standard",
"texture_quality": "detailed",
"texture_alignment": "original_image",
"orientation": "align_image"
}
},
"wait": 0
}'
```
### 多视图生成可编辑部件(Tripo 3.1)
这是独立的新生成请求。`generate_parts` 必须同时关闭 `texture`、`pbr`、`quad`;只关闭其中一项不够。P1 不支持该功能。部件属于返回模型文件的内容,接口不会额外生成一个 `parts[]` 下载列表。
**完整请求:Tripo 3.1 可编辑部件**
```bash
BASE_URL="https://platform.sgt.site"
KEY="YOUR_VIRTUAL_KEY"
# 将 JSON 中 example.com 的素材 URL 分别替换为你自己的公网素材地址
curl -sS --request POST "$BASE_URL/media/v1/3d/generations" \
-H "Authorization: Bearer $KEY" \
-H 'Content-Type: application/json' \
-H "Idempotency-Key: tripo31-parts-001" \
-d '{
"model": "tripo-3d-3.1",
"references": [
{
"role": "multi_view_front",
"type": "image",
"url": "https://example.com/inputs/front.png"
},
{
"role": "multi_view_back",
"type": "image",
"url": "https://example.com/inputs/back.png"
},
{
"role": "multi_view_left",
"type": "image",
"url": "https://example.com/inputs/left.png"
},
{
"role": "multi_view_right",
"type": "image",
"url": "https://example.com/inputs/right.png"
}
],
"provider_options": {
"tencent": {
"texture": false,
"pbr": false,
"quad": false,
"generate_parts": true,
"geometry_quality": "standard",
"face_limit": 100000,
"export_uv": false
}
},
"wait": 0
}'
```
任务成功的结构示例如下。这里上游只返回模型和渲染预览图;若同时返回生成参考图,还会有 `kind: "image"` 项。ID、时间、签名和金额均为示意,金额不是当前报价,实际费用以本次任务的 `billing` 为准:
**成功响应示例(部件模型)**
```json
{
"id": "task_tripo_parts",
"object": "media.task",
"model": "tripo-3d-3.1",
"type": "3d",
"status": "succeeded",
"progress": 100,
"created_at": 1791763200,
"started_at": null,
"finished_at": 1791763380,
"artifacts": [
{
"index": 0,
"kind": "model3d",
"mime_type": "application/octet-stream",
"state": "available",
"url": "https://platform.sgt.site/media/v1/tasks/task_tripo_parts/artifacts/0?expires=1791849780&sig=EXAMPLE_SIGNATURE",
"url_type": "signed",
"expires_at": 1791849780
},
{
"index": 1,
"kind": "cover",
"mime_type": "image/png",
"state": "available",
"url": "https://platform.sgt.site/media/v1/tasks/task_tripo_parts/artifacts/1?expires=1791849780&sig=EXAMPLE_SIGNATURE",
"url_type": "signed",
"expires_at": 1791849780
}
],
"error": null,
"billing": {
"status": "settled",
"currency": "CNY",
"amount": "1.400000"
},
"metadata": {},
"request_id": "req_example"
}
```
多视图普通模型与部件模型都按相同方式读取 `artifacts`;下载 `model3d` 文件后,在支持该文件格式的 3D 软件中查看网格/部件。不要假设一个部件对应一个 HTTP 下载地址。查询、费用与下载流程见下文。
## 响应
### 提交成功(HTTP 202)
```json
{
"id": "task_example",
"object": "media.task",
"model": "hy-3d-express",
"type": "3d",
"status": "queued",
"progress": 0,
"created_at": 1791763200,
"started_at": null,
"finished_at": null,
"artifacts": [],
"error": null,
"billing": {"status": "reserved", "currency": "CNY", "amount": null},
"metadata": {"order_id": "M1001"},
"request_id": "req_example"
}
```
保存 `id`,用 `GET /media/v1/tasks/{id}` 查询。生成过程中 `status` 为 `running`;以 `status` 判断是否完成,不要只看 `progress`。
### 生成成功
下例为混元任务的完成结果,包含模型文件和预览图。ID、签名与金额均为示意:
**完整成功响应(混元,模型文件与预览图)**
```json
{
"id": "task_example",
"object": "media.task",
"model": "hy-3d-express",
"type": "3d",
"status": "succeeded",
"progress": 100,
"created_at": 1791763200,
"started_at": null,
"finished_at": 1791763380,
"artifacts": [
{
"index": 0,
"kind": "model3d",
"mime_type": "application/octet-stream",
"format": "glb",
"filename": "model-0.glb",
"state": "available",
"url": "https://platform.sgt.site/media/v1/tasks/task_example/artifacts/0?expires=1791849780&sig=example-signature",
"url_type": "signed",
"expires_at": 1791849780
},
{
"index": 1,
"kind": "cover",
"mime_type": "image/png",
"state": "available",
"url": "https://platform.sgt.site/media/v1/tasks/task_example/artifacts/1?expires=1791849780&sig=example-signature",
"url_type": "signed",
"expires_at": 1791849780
}
],
"error": null,
"billing": {"status": "settled", "currency": "CNY", "amount": "2.400000"},
"metadata": {"order_id": "M1001"},
"request_id": "req_example"
}
```
| 产物 `kind` | 内容 | 出现情况 |
| --- | --- | --- |
| `model3d` | 模型文件,可能是模型与贴图的 ZIP 包 | 仅结果包含模型时出现,可有多项;Express 仅视频结果没有此项 |
| `cover` | 渲染预览图 | 通常有 |
| `image` | 模型生成过程中的参考图 | Tripo |
| `video` | 展示视频 | 混元 Express 选 `output_format: "mp4"` 时 |
请按 `kind` 识别产物,并用 `format` 选择模型文件,不要按 `index` 写死。例如需要 FBX 时筛选 `kind=model3d && format=fbx`,按 `filename` 保存;OBJ 压缩包会标为 `format=obj, container=zip`,文件名以 `.zip` 结尾。同一任务可能返回多种模型格式,每种格式和封面分别占一个产物序号。`state` 为 `unavailable` 时该产物暂不可读,稍后重新查询原任务;无法恢复时保留 ID 核对,不要重新提交生成。
### 下载模型文件
使用[快速开始的完整 Python 示例](overview.md#overview-h-600de8a7),保存为 `media_client.py`;设置已有任务 ID 后只查询和下载:
```bash
export TASK_ID="替换为已有的 3D 任务 id"
python media_client.py
```
脚本遍历全部产物并按实际文件头命名:ZIP → `.zip`、GLB → `.glb`、可识别的二进制 FBX → `.fbx`,图片/视频按文件头或明确 MIME 保存。未知格式(例如通用 MIME 的文本 OBJ、STL 或无法辨明包装的 USDZ)保留 `.bin` 并提示。可再用文件识别工具或对应 3D 软件检查,不根据序号、签名 URL 或请求格式强改扩展名。
- OBJ ZIP + GLB + 封面应分别保存;使用已确认的 GLB 预览,或解包 OBJ 与贴图后导入支持它们的软件。单格式结果直接处理唯一模型项。
- Express 仅视频是有效的展示视频结果;下载 `video`,不能报告“模型文件必有”。Tripo 的模型、渲染预览和生成参考图用途不同。
- 产物可以乱序;序号只标识文件,没有首选格式或预览优先级。客户端不支持 FBX、材质或压缩时,使用相应软件查看/转换,改名不完成格式转换,也不应重新生成。
- 签名地址直接 GET,不带密钥,支持 HEAD/Range。重新查询可更新过期签名;上游文件过期/丢失不能靠重签恢复。尽快转存,下载失败只恢复原任务。
## 费用
- 提交时按模型价格预留费用(`billing.status: "reserved"`);有可信计费证据并完成结算后为 `settled`,同时给出 `amount`。只有确定未发送、明确拒绝且确认没有收费,或可信证据确认零消耗时,才释放预留为 `released`。不能仅凭生成失败就判定免费。
- 按腾讯积分计价的失败任务,如果积分缺失、异常或非零,账务保持 `reconciling` 并保留冻结等待核对;不自动退款,也不重新提交生成。以任务账务状态和权威账单为准。
- 混元按次或按参数定价,使用提交时冻结的价格,之后改价不影响在途任务。
- Tripo 由管理员配置按次价,或按腾讯回报的实际积分计价。按积分计价时,预留只是估算,完成后按实际积分多退少补。
- 生成成功但用量证据缺失或异常时,`status` 为 `succeeded`、`billing.status` 为 `reconciling`、`amount` 为 `null`,表示费用待核对,不代表免费。重复查询不会重复扣费。
各账务状态的完整含义见[任务查询与结算](media-tasks.md)。
## 常见错误
| 报错信息(`error.message`) | 原因 | 改法 |
| --- | --- | --- |
| Model type does not match the submission path | 把图片或视频模型提交到了 3D 地址 | 3D 模型使用 `/media/v1/3d/generations` |
| prompt and image are mutually exclusive outside Sketch mode | 混元同时写了 `prompt` 和图片 | 二选一;需要图文结合时使用 `generate_type: "Sketch"` |
| Sketch requires both prompt and image | Sketch 模式缺少提示词或主图 | 同时提供两者 |
| prompt, image_url or image_base64 is required | 混元既没写提示词也没传图片 | 提供 `prompt` 或一张 `reference` 图片 |
| prompt, input or inputs is required | Tripo 既没写提示词也没传图片 | 提供 `prompt`、单图或多视图 |
| input and inputs are mutually exclusive | Tripo 同时传了单图 `reference` 和多视图 | 二选一 |
| multi_view_images requires a main image | 混元多视图缺少主图 | 加一张 `multi_view_front` 或 `reference` |
| 3D generation accepts only one main image | 混元同时传了 `reference` 和 `multi_view_front` | 只保留一张主图 |
| Repeated 3D reference role | 同一视角传了两张图 | 每个 `role` 只传一张 |
| prompt exceeds 1024 characters | 提示词过长 | 缩短到 1024 字符以内 |
| hy-3d-3.1 does not support LowPoly | 3.1 选了 `LowPoly` | 改用 `hy-3d-3.0` 或其他模式 |
| Express geometry output does not support obj | Express 白模选了 `obj` | 改用 `glb`、`stl` 等格式 |
| face_limit must be between 500 and 20000 for this configuration | Tripo 面数超出当前组合的范围(数字随组合变化) | 按 Tripo 面数表调整 |
| generate_parts requires texture, pbr and quad to be false | 开启部件拆分时未关闭纹理、PBR 或四边面 | 把三者都设为 `false` |
| Parameter output_format is not supported by this model | 给 Tripo 传了 `output_format` | 删除该字段 |
| Parameter provider_options.tencent.face_count is not supported by this model | 选项与模型不匹配,例如给 Express 传 `face_count` | 按本页参数表删除不支持的选项 |
| Parameter references.asset_id is not supported by this model | 3D 模型使用了素材库 `asset_id` | 改用 `url` 或 `file_id` |
| This model does not support task cancellation | 对 3D 任务调用了取消 | 3D 任务不能取消,等待完成即可 |
完整错误码见[媒体错误处理](media-errors.md)。已有腾讯原生调用方式的,可以继续使用[腾讯混元与 Tripo 3D](native-tencent-3d.md);两种协议的任务互不相通,请用提交时的协议查询。