Files
hunyuan3dweb/doc/api_complete.md
2026-05-24 21:47:44 +08:00

600 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 腾讯混元3D API 完整文档
> 基础地址: `https://3d.hunyuan.tencent.com`
> 签名算法: HMAC-SHA256已破解见 `hunyuan3d_sign.py`
---
## 目录
1. [认证方式](#认证方式)
2. [通用响应格式](#通用响应格式)
3. [用户相关接口](#用户相关接口)
4. [作品管理接口](#作品管理接口)
5. [图生3D接口](#图生3d接口)
6. [文生3D接口](#文生3d接口)
7. [草图生3D接口](#草图生3d接口)
8. [3D动画生成接口](#3d动画生成接口)
9. [3D纹理生成接口](#3d纹理生成接口)
10. [3D智能拓扑接口](#3d智能拓扑接口)
11. [资源上传接口](#资源上传接口)
12. [分享接口](#分享接口)
13. [配置接口](#配置接口)
14. [生成模式参数总表](#生成模式参数总表)
---
## 认证方式
Cookie 会话认证。需要携带 `hunyuan_user``hunyuan_token` Cookie。
所有 API 请求需要在 URL 查询参数中附带签名:
- `timestamp`: 秒级时间戳
- `nonce`: 16位随机字符串
- `sign`: HMAC-SHA256签名
---
## 通用响应格式
```json
{
"code": 0,
"message": "success",
"data": {}
}
```
- `code`: 业务状态码,`0` 表示成功
- `message`: 提示信息
- `data`: 实际返回数据
---
## 用户相关接口
### 1. 获取用户信息
- **URL**: `/api/3d/getuserinfo`
- **Method**: `GET`
- **描述**: 获取当前登录用户的基本信息
**响应示例**:
```json
{
"code": 0,
"message": "success",
"data": {
"userId": "abb5e2f51b08416fb5459a5082504ea0",
"userType": "external",
"loginType": "email",
"registered": true,
"status": 2
}
}
```
### 2. 获取用户配额
- **URL**: `/api/3d/quotainfo`
- **Method**: `POST`
- **描述**: 获取当前用户的生成配额
**请求体**:
```json
{"sceneType": "3dCreations"}
```
**响应示例**:
```json
{
"date": "20260524",
"totalQuota": 20,
"remainQuota": 0,
"consumeQuota": 20,
"alarmQuota": 1,
"userInviteQuota": 0,
"perUserInviteQuotaCount": 30,
"maxUserInviteQuota": 6
}
```
---
## 作品管理接口
### 3. 获取作品列表
- **URL**: `/api/3d/creations/list`
- **Method**: `POST`
- **描述**: 获取当前用户的3D作品列表
**请求体**:
```json
{
"page": 1,
"pageSize": 20
}
```
### 4. 获取作品数量
- **URL**: `/api/3d/creations/count`
- **Method**: `POST`
- **描述**: 获取作品数量
**请求体**:
```json
{"statusList": ["wait", "processing"]}
```
### 5. 查询作品详情/生成状态
- **URL**: `/api/3d/creations/detail`
- **Method**: `GET`
- **描述**: 查询3D生成任务的进度和结果
**查询参数**:
```
?creationsId={id}
```
**状态说明**:
- `wait`: 排队中
- `processing`: 生成中
- `success`: 生成完成
- `fail`: 生成失败
### 6. 取消任务
- **URL**: `/api/3d/creations/cancel`
- **Method**: `POST`
- **描述**: 取消进行中的生成任务
---
## 图生3D接口
### 7. 触发图生3D
- **URL**: `/api/3d/creations/generations`
- **Method**: `POST`
- **描述**: 提交图片触发3D模型生成
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"count": 1,
"modelType": "image2ModelV3.1",
"title": "",
"style": "",
"imageList": [
"https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
],
"enable_pbr": true,
"enableLowPoly": false,
"faceCount": 1500000
}
```
**参数说明**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `sceneType` | string | 是 | 场景类型,固定 `playGround3D-2.0` |
| `count` | int | 是 | 生成数量,固定 `1` |
| `modelType` | string | 是 | 模型类型,`image2ModelV3.1` |
| `title` | string | 否 | 作品标题 |
| `style` | string | 否 | 风格,见下方风格表 |
| `imageList` | array | 是 | 图片URL列表需先上传获取resourceId |
| `enable_pbr` | bool | 否 | 是否启用PBR材质默认 `true` |
| `enableLowPoly` | bool | 否 | 是否低多边形,默认 `false` |
| `faceCount` | int | 否 | 面数,`1500000` |
**风格(style)选项**:
- `""` - 默认
- `"sculpture"` - 石雕
- `"qinghuaci"` - 青花瓷
- `"china_style"` - 中国风
- `"cartoon"` - 卡通
- `"cyberpunk"` - 赛博朋克
**几何风格(geo_type)选项**:
- `"default"` - 默认
- `"voxel"` - 体素
- `"low_poly"` - 低多边形
---
## 文生3D接口
### 8. 触发文生3D
- **URL**: `/api/3d/creations/generations`
- **Method**: `POST`
- **描述**: 输入文本描述生成3D模型
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"count": 1,
"modelType": "text2ModelV3.1",
"title": "银色的长剑",
"style": "",
"text": "银色的长剑",
"enable_pbr": true,
"enableLowPoly": false,
"faceCount": 1500000
}
```
**参数说明**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `modelType` | string | 是 | `text2ModelV3.1` |
| `text` | string | 是 | 文本描述/提示词 |
| `title` | string | 否 | 作品标题 |
| `style` | string | 否 | 风格 |
| 其他 | - | - | 同图生3D |
**提示词示例**(来自配置):
- "银色的长剑"
- "猫头鹰,大眼睛,深棕色"
- "粉色蝴蝶结"
- "橙色颈挂式耳机"
- "歼-20威龙"
- "装甲机械风格逼真4K"
- "汉堡里面有酸黄瓜 生菜 牛肉饼和芝士"
---
## 草图生3D接口
### 9. 触发草图生3D
- **URL**: `/api/3d/creations/generations`
- **Method**: `POST`
- **描述**: 上传草图+提示词生成3D模型
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"count": 1,
"modelType": "sketch2ModelV3.1",
"title": "",
"style": "",
"text": "一个穿着蓝色衣服的小男孩",
"imageList": [
"https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
],
"enable_pbr": true,
"enableLowPoly": false,
"faceCount": 1500000
}
```
**参数说明**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `modelType` | string | 是 | `sketch2ModelV3.1` |
| `text` | string | 是 | 草图描述提示词 |
| `imageList` | array | 是 | 草图图片URL |
---
## 3D动画生成接口
### 10. 获取动画动作模板
- **URL**: `/api/3d/workflow/action/templates`
- **Method**: `GET`
- **描述**: 获取可用的动作模板列表
**动作类型(motionType)**:
| ID | 名称 | 说明 |
|----|------|------|
| 9 | 跨步 | Capoeira |
| 10 | 摔倒 | FallingBackDeath |
| 11 | 跳跃 | Jumping |
| 12 | 踢腿 | Kicking |
| 13 | 挥击 | OneHandSwordCombo |
| 15 | 跑步 | TreadmillRunning |
| 16 | 跳舞 | TwistDance |
### 11. 触发3D动画生成
- **URL**: `/api/3d/creations/generations`
- **Method**: `POST`
- **描述**: 为3D模型绑定骨骼并生成动画
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"count": 1,
"modelType": "animation3dV2",
"title": "",
"style": "",
"imageList": [
"https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
],
"motionType": 11,
"enable_pbr": true,
"enableLowPoly": false,
"faceCount": 1500000
}
```
**参数说明**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `modelType` | string | 是 | `animation3dV2` |
| `motionType` | int | 是 | 动作类型ID |
| `imageList` | array | 是 | 要绑定的3D模型图片 |
---
## 3D纹理生成接口
### 12. 触发3D纹理生成
- **URL**: `/api/3d/creations/generations`
- **Method**: `POST`
- **描述**: 为白模生成纹理贴图
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"count": 1,
"modelType": "textureTo3DV2",
"title": "",
"style": "",
"text": "木质纹理,棕色",
"imageList": [
"https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
],
"enable_pbr": true,
"enableLowPoly": false,
"faceCount": 1500000
}
```
**参数说明**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `modelType` | string | 是 | `textureTo3DV2` |
| `text` | string | 是 | 纹理描述 |
| `imageList` | array | 是 | 白模图片URL |
---
## 3D智能拓扑接口
### 13. 触发3D智能拓扑减面
- **URL**: `/api/3d/creations/generations`
- **Method**: `POST`
- **描述**: 输入文本/图片/白模,生成布线规整的低面数模型
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"count": 1,
"modelType": "lowpolyV2",
"title": "",
"style": "",
"text": "",
"imageList": [
"https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
],
"enable_pbr": true,
"enableLowPoly": true,
"faceCount": 5000,
"topology_format": "glb"
}
```
**参数说明**:
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `modelType` | string | 是 | `lowpolyV2` |
| `faceCount` | int | 否 | 目标面数:`5000`(低), `18000`(中), `30000`(高) |
| `topology_format` | string | 否 | 输出格式:`glb``obj` |
| `enableLowPoly` | bool | 否 | 必须设为 `true` |
---
## 资源上传接口
### 14. 获取上传凭证
- **URL**: `/api/3d/resource/genUploadInfo`
- **Method**: `POST`
- **描述**: 获取腾讯云COS临时上传凭证
**请求体**:
```json
{"fileName": "your_image.png"}
```
**响应示例**:
```json
{
"bucketName": "hunyuan-base-prod-1258344703",
"region": "ap-guangzhou",
"location": "hunyuan3d/default/...",
"encryptTmpSecretId": "...",
"encryptTmpSecretKey": "...",
"encryptToken": "...",
"startTime": 1779562912,
"expiredTime": 1811098912,
"resourceUrl": "https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
}
```
### 15. 图片内容审核
- **URL**: `/api/3d/resource/review`
- **Method**: `POST`
- **描述**: 上传前对图片进行安全审核
**请求体**:
```json
{
"sceneType": "playGround3D-2.0",
"text": "",
"resourceType": "image",
"resourceUrl": "https://3d.hunyuan.tencent.com/api/3d/resource/download?resourceId=..."
}
```
### 16. 下载资源
- **URL**: `/api/3d/resource/download`
- **Method**: `GET`
- **描述**: 下载图片或模型文件
**查询参数**:
```
?resourceId={id}
```
---
## 分享接口
### 17. 创建分享
- **URL**: `/api/3d/share`
- **Method**: `POST`
- **描述**: 创建分享链接
**请求体**:
```json
{
"contentType": "creation",
"contentId": "creationsId",
"sharedContent": "",
"platform": "3dPlayground"
}
```
---
## 配置接口
### 18. 获取全局配置
- **URL**: `/api/3d/config`
- **Method**: `GET`
- **描述**: 获取前端配置,包含提示词示例、风格配置、模板等
**包含内容**:
- `promptExamples` - 文生3D提示词示例
- `styleConfig` - 风格配置(几何风格+纹理风格)
- `animation3dConfig` - 动画模板配置
- `sketchImageConfig` - 草图示例配置
- `gameTemplate` - 游戏角色模板
- `retopologize` - 拓扑减面配置
---
## 生成模式参数总表
| 生成模式 | modelType | sceneType | 特有参数 | 说明 |
|----------|-----------|-----------|----------|------|
| **图生3D** | `image2ModelV3.1` | `playGround3D-2.0` | `imageList` | 图片生成3D模型 |
| **文生3D** | `text2ModelV3.1` | `playGround3D-2.0` | `text` | 文本描述生成3D |
| **草图生3D** | `sketch2ModelV3.1` | `playGround3D-2.0` | `text`, `imageList` | 草图+提示词生成3D |
| **3D动画** | `animation3dV2` | `playGround3D-2.0` | `motionType` | 为模型绑定骨骼动画 |
| **3D纹理** | `textureTo3DV2` | `playGround3D-2.0` | `text`, `imageList` | 为白模生成纹理 |
| **智能拓扑** | `lowpolyV2` | `playGround3D-2.0` | `faceCount`(5000/18000/30000) | 减面优化 |
### 通用参数(所有模式)
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| `count` | int | 1 | 生成数量固定1 |
| `title` | string | "" | 作品标题 |
| `style` | string | "" | 纹理风格 |
| `enable_pbr` | bool | true | PBR材质 |
| `enableLowPoly` | bool | false | 低多边形 |
| `faceCount` | int | 1500000 | 面数 |
### 风格参数
**纹理风格(style)**:
- `""` - 通用
- `"sculpture"` - 石雕
- `"qinghuaci"` - 青花瓷
- `"china_style"` - 中国风
- `"cartoon"` - 卡通
- `"cyberpunk"` - 赛博朋克
**几何风格(geo_type)**:
- `"default"` - 默认
- `"voxel"` - 体素
- `"low_poly"` - 低多边形
### 动作类型(motionType)
| ID | 动作 |
|----|------|
| 9 | 跨步(Capoeira) |
| 10 | 摔倒(FallingBackDeath) |
| 11 | 跳跃(Jumping) |
| 12 | 踢腿(Kicking) |
| 13 | 挥击(OneHandSwordCombo) |
| 15 | 跑步(TreadmillRunning) |
| 16 | 跳舞(TwistDance) |
---
## 完整调用流程
### 图生3D流程
```
1. POST /resource/genUploadInfo → 获取COS凭证
2. 上传图片到COS → 获取resourceUrl
3. POST /resource/review → 图片审核
4. POST /creations/generations → 触发生成
5. GET /creations/detail → 轮询状态
6. 下载模型文件(glb/obj)
```
### 文生3D流程
```
1. POST /creations/generations (带text参数) → 触发生成
2. GET /creations/detail → 轮询状态
3. 下载模型文件
```
### 动画生成流程
```
1. 先生成/上传3D模型
2. POST /creations/generations (modelType=animation3dV2, motionType=X)
3. GET /creations/detail → 轮询状态
4. 下载带动画的模型
```
---
## 限制与注意事项
1. **配额限制**: 每日20次生成配额
2. **频率限制**: 频繁调用会触发"今天操作频繁,请明天再试"
3. **count参数**: 必须固定为1其他值会报错
4. **faceCount**: 图生3D固定1500000拓扑减面用5000/18000/30000
5. **图片格式**: 必须通过腾讯COS上传获取resourceId