Hyper3DHyper3D Docs
API 规范

Bang

使用 Rodin asset 或上传的模型提交 Bang 任务。

POST
/api/v2/bang

Authorization

bearer
headerAuthorizationBearer <token>

Request Body

multipart/form-data
  1. body
asset_id?string

asset_id与model互斥,仅能使用其中一个。

Rodin 生成任务的 uuid。

Formatuuid
prompt?string

可选,Prompt作为额外的参考,仅能搭配model使用。

image?file
Formatbinary
model?file

asset_id与model互斥,仅能使用其中一个。将此模型进行bang生成。支持格式有: 'obj', 'glb', 'stl', 'fbx', 'usd'等。

Formatbinary
strength?integer

可选。控制模型分割的强度。数值越大,分割出的部分越多。

Range1 <= value <= 12
Default5
escore?number

在asset_id 和自定义模型模式下均可控制纹理的复杂度/丰富度。数值越高,纹理越精细;数值越低,纹理越简洁、平滑。

Range0 <= value <= 10
Default3.5
reference_scale?number

可选。控制纹理生成在资产ID和自定义模型模式下对参考图像的遵循程度。

Range0 <= value <= 1
Default0.5
seed?integer

可选。用于指导生成的模型的随机种子。

Range0 <= value <= 65535
geometry_file_format?string

可选。用于指导生成的模型的几何文件格式。

Default"glb"
Value in"glb""usdz""fbx""obj""stl"
material?string
Default"PBR"
Value in"PBR""Shaded""All""Hybrid""None"
resolution?string
Default"Basic"
Value in"Basic""High"
instruction?string

可选。用于指导bang任务的指令。

非空值时会启用bang任务的指令模式,将依据指令对模型进行定向的分件处理。

quality_override?integer
Range500 <= value <= 2000000
mesh_mode?string
Default"Raw"
Value in"Quad""Raw"

Response Body

application/json
  1. response
error?string
Value in"NO_SUCH_TASK""ASSET_NOT_AVAILABLE""IMAGE_LABEL_LENGTH_TOO_LONG""INVALID_REQUEST""API_NO_ACTIVE_SUBSCRIPTION""API_SUBSCRIPTION_PLAN_TOO_LOW""API_PARALLELISM_LIMIT_REACHED""API_INSUFFICIENT_FUNDS""API_OBJECT_NOT_FOUND_ON_IMAGE""IMAGE_CONTENT_VIOLATION""PERMISSION_DENIED""API_UNKNOWN"
message?string

成功消息或详细错误信息。

uuid?string

提交的生成任务的唯一标识符。

Formatuuid
submit_time?string

提交任务的服务器时间。

Formatdate-time
jobs?

一个包含生成过程中执行的各个任务详细信息的工作对象。

consumed?number

本次请求消耗的 credits。

Example Request
curl -X POST 'https://api.hyper3d.com/api/v2/bang'
Example Response
{  "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}

Bang 只接受以下两种输入方式之一。同时提交 asset_id 和 model,或两者都不提交,都会被拒绝。

Rodin asset 输入

把已完成的 Rodin 生成响应中的顶层 uuid 作为 asset_id。

  • 必填:asset_id。
  • 可选:geometry_file_format、strength、material、resolution、seed、escore 和 reference_scale。
  • 互斥:必须省略 model、image 和 prompt。

启用材质生成时,escore 和 reference_scale 对两种输入模式都生效。与 asset_id 一起传入的值会覆盖该 asset 中保存的对应设置;省略时 endpoint 使用请求默认值。

curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/bang' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'asset_id=123e4567-e89b-12d3-a456-426614174000' \
  --form 'strength=5' \
  --form 'geometry_file_format=glb'

自定义模型输入

上传一个模型。除非 material 为 None,否则参考 image 为必填,因为材质生成需要采样来源;缺少时会返回 INVALID_REQUEST,并在 message 中说明原因。

  • 必填:model;除非 material=None,否则还需要 image。
  • 可选:geometry_file_format、prompt、strength、material、resolution、reference_scale、escore、seed。
  • 互斥:必须省略 asset_id。
  • 支持的模型格式:obj、glb、stl、fbx、usd、usda、usdz 和 usdc。
  • strength 取值范围为 1 到 12,默认为 5。值越大,模型被拆分出的部件越多。
curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/bang' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'model=@./model.glb' \
  --form 'image=@./reference.png' \
  --form 'prompt=Separate the main structural parts' \
  --form 'strength=5' \
  --form 'geometry_file_format=glb'

计费

每个 Bang 请求均扣除 0.5 credits,不受 Rodin asset、自定义上传模型或其他输入选项影响。

响应与错误

{
  "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
}

Bang 使用与其他生成 endpoint 相同的应用错误码。HTTP 201 仅表示 endpoint 已处理请求;只有在 error 缺失或为空且顶层 uuid 非空时,任务才算已受理。HTTP 400 表示字段无效、文件不受支持或输入方式冲突;401 表示鉴权无效;429 表示触发限流。状态查询和下载遵循与其他生成接口相同的标识规则。