Hyper3DHyper3D Docs
API 规范

生成纹理

为上传的 3D 模型生成纹理。

POST
/api/v2/rodin_texture_only

上传模型和参考图片,为现有 3D 模型生成纹理。

AuthorizationBearer <token>

In: header

Request Body

multipart/form-data

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

curl -X POST "https://example.com/api/v2/rodin_texture_only" \  -F image="[    \"string\"  ]" \  -F model="[    \"string\"  ]"
{  "error": "NO_SUCH_TASK",  "message": "Submitted.",  "uuid": "123e4567-e89b-12d3-a456-426614174000",  "submit_time": "2019-08-24T14:15:22Z",  "jobs": {    "uuids": [      "52faea01-729e-4195-85e8-6050a65315e3"    ],    "subscription_key": "string"  },  "consumed": 0.5}

输入

通过 multipart 上传恰好一张参考图片和恰好一个 3D 模型,两者都是必填项。

图片支持 JPEG、PNG、WebP、TIFF、GIF、AVIF、HEIC、HEIF、BMP 和 JPEG 2000;模型支持 OBJ、STL、glTF/GLB、FBX 和 USDZ。

material 可取 PBRShadedAll,默认为 PBRAll 会同时交付 PBR 和 Shaded 输出。resolution 可取 Basic(2K)或 High(4K),默认为 Basic

示例

curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/rodin_texture_only' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'image=@./reference.png' \
  --form 'model=@./model.glb' \
  --form 'material=PBR' \
  --form 'resolution=Basic'
import os
from pathlib import Path

import requests

with Path("reference.png").open("rb") as image_file, Path("model.glb").open("rb") as model_file:
    response = requests.post(
        "https://api.hyper3d.com/api/v2/rodin_texture_only",
        headers={"Authorization": f"Bearer {os.environ['RODIN_API_KEY']}"},
        files={
            "image": ("reference.png", image_file, "image/png"),
            "model": ("model.glb", model_file, "model/gltf-binary"),
        },
        data={"material": "PBR", "resolution": "Basic"},
        timeout=60,
    )
response.raise_for_status()
print(response.json())

计费

每个生成纹理请求均扣除 0.5 credits,不受上传模型、参考图片、材质、分辨率或其他输入值影响。

响应与错误

提交成功后的标识规则与 Rodin 生成一致:用 jobs.subscription_key 查询状态,用顶层 uuid 下载结果。

{
  "message": "Submitted.",
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "jobs": {
    "uuids": ["223e4567-e89b-12d3-a456-426614174000"],
    "subscription_key": "subscription-key-from-generation-response"
  },
  "consumed": 0.5
}

HTTP 201 仅表示 endpoint 已处理请求;只有在 error 缺失或为空且顶层 uuid 非空时,任务才算已受理。HTTP 400 表示字段或文件无效,401 表示鉴权无效,429 表示触发限流。