
风蚀砂岩拱门
hunyuan-3d/v3.1/pro/text-to-3dHunyuan 3D v3.1 Pro Text to 3D 将文字描述转化为三维模型,提供目标面数控制与 PBR 材质。通过生成模式与网格复杂度设置,分别检查物体轮廓和表面材质。
Hunyuan 3D v3.1 Pro Text to 3D API
提交输入,保存 task_id,并查询生成完成后的模型文件。
通过 Bearer 认证传入 Vidgo API Key。
https://api.vidgo.ai/api/generate/submit将 model 放在请求根级,将生成设置放入 input。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "hunyuan-3d/v3.1/pro/text-to-3d",
"input": {
"generate_type": "Normal",
"face_count": 500000,
"enable_pbr": true,
"prompt": "A freestanding ancient bronze incense censer, squat rounded vessel on three stout feet, two thick upright loop handles and a fitted domed lid. Deep symmetrical guardian-beast relief around the body, raised spiral bands, aged green patina in recesses and worn golden bronze on edges. One complete museum artifact, no smoke, no text, no pedestal."
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"使用返回的 task_id 查询,直至状态变为 finished 或 failed。
GET https://api.vidgo.ai/api/generate/status/{task_id}查询任务,在状态为 finished 时读取 files。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "UYBWGJ3Q31BAHM9Y",
"status": "running",
"created_time": "2026-09-27T21:57:02"
}
}{
"code": 200,
"data": {
"task_id": "UYBWGJ3Q31BAHM9Y",
"status": "finished",
"files": [
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/pro/text-to-3d/v1/01/CG8M1YEW2X5OSI70_1.glb",
"file_type": "3d"
},
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/pro/text-to-3d/v1/01/CG8M1YEW2X5OSI70_2.png",
"file_type": "image"
},
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/pro/text-to-3d/v1/01/material.mtl",
"file_type": "3d"
},
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/pro/text-to-3d/v1/01/CG8M1YEW2X5OSI70_4.obj",
"file_type": "3d"
},
{
"file_url": "https://cdn.vidgo.ai/apis/models/hunyuan-3d/v3.1/pro/text-to-3d/v1/01/texture_pbr_20250901_normal.png",
"file_type": "image"
}
],
"created_time": "2026-09-27T21:57:02",
"error_message": null,
"progress": 100
}
}逐项读取 files 中的 file_url、file_type、label 与 format。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "hunyuan-3d/v3.1/pro/text-to-3d",
"input": {
"generate_type": "Normal",
"face_count": 500000,
"enable_pbr": true,
"prompt": "A freestanding ancient bronze incense censer, squat rounded vessel on three stout feet, two thick upright loop handles and a fitted domed lid. Deep symmetrical guardian-beast relief around the body, raised spiral bands, aged green patina in recesses and worn golden bronze on edges. One complete museum artifact, no smoke, no text, no pedestal."
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done将生成参数放入 input,model 和 callback_url 保留在请求根级。
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| model | string | 是 | — | hunyuan-3d/v3.1/pro/text-to-3d |
| input | object | 是 | — | 本次生成的输入与控制参数。 |
| input.prompt | string | 是 | — | 用 1–1024 字符描述物体、形状与材质。 |
| input.generate_type | string | 否 | — | 选择 Normal 生成纹理模型,或选择 Geometry 生成几何白模。 |
| input.face_count | integer | 否 | 500000 | 输入 40000–1500000 的整数目标面数,默认 500000。 |
| input.enable_pbr | boolean | 否 | — | 在纹理模式中设为 true 生成 PBR 材质,几何模式优先于此设置。 |
| callback_url | string | 否 | — | 任务完成通知的公开 HTTP(S) URL。 |
任务响应包含状态、进度和生成文件。
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | 响应代码。 |
| data.task_id | string | 任务标识。 |
| data.status | string | not_started、running、finished、failed |
| data.progress | integer | 生成进度,范围为 0–100。 |
| data.files | array | 生成的模型、图片与配套文件。 |
| data.files[].file_url | string | 文件下载地址。 |
| data.files[].file_type | string | 3d、image 或 other。 |
| data.files[].label | string | 文件用途,例如 model_glb 或 thumbnail。 |
| data.files[].format | string | 文件格式,例如 glb 或 png。 |
| data.files[].file_name | string | 返回的文件名称。 |
| data.files[].file_size | integer | 返回的文件大小,单位为字节。 |
| data.error_message | string | null | 任务错误详情。 |
根据任务状态决定继续查询或读取结果。
not_started任务已接收,等待开始。
running正在生成三维模型,继续查询当前任务。
finished生成完成,从 files 获取三维资产。
failed生成失败,查看 error_message 后决定是否重新提交。
| 项目 | 规格 | 说明 |
|---|---|---|
| 输入 | prompt | 用 1–1024 字符描述物体、形状与材质。 |
| 生成模式 | Normal / Geometry | 选择 Normal 生成纹理模型,或选择 Geometry 生成几何白模。 |
| 材质 | enable_pbr | 在纹理模式中设为 true 生成 PBR 材质,几何模式优先于此设置。 |
Hunyuan 3D v3.1 Pro Text to 3D 是腾讯用于根据文字描述生成三维物体的模型。在最多 1024 字符的描述中写出主体、主要形状、比例和表面材质,为生成提供具体指引。目标面数与生成模式共同控制几何,PBR 设置用于纹理模式的材质生成。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
在 1024 字符内描述一个物体的轮廓、主要部件和材质。例如,写出圆润的陶瓷茶壶、短壶嘴、环形把手与蓝色釉面,让各项细节共同指向同一个主体。
将 face_count 设置为 40000–1500000 的整数,默认目标为 500000。根据需要评审的网格复杂度选择目标;该参数表示生成目标,实际面数可在下载后通过三维软件检查。
将 generate_type 设置为 Geometry,生成用于形体检查的几何白模。保留同一份提示词并调整 face_count,可以比较不同目标网格规模下的物体表现。
选择 generate_type: Normal,并设置 enable_pbr: true。在 prompt 中写清材质方向,生成完成后取回模型附带的材质与纹理文件。
需要最多 1024 字符的描述和目标面数控制时,选择 Pro Text to 3D。Rapid Text to 3D 提供 200 字符的提示词流程,以及几何模式和 PBR 控制项。
保持主体与主要比例一致,每次调整一个设计要素,例如把手形状或表面材质。生成后从多个角度检查模型,比较轮廓与部件之间的关系。
返回 GLB 文件后,可先在三维预览中检查模型,再下载模型和配套文件。将返回的格式导入三维软件,在目标场景中检查比例、摆放与材质效果。