Sanbao OpenAPI

视频与图片生成 API

https://sanbaobeauty.com

鉴权

API 调用消耗账号积分。请先在三宝影像工坊注册账号、充值积分,再创建 API Key。

Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx

也可以使用请求头:

X-API-Key: sk_sanbao_xxxxxxxxxxxxx

模型与价格

平台积分换算为 1 元 = 10 积分。创建任务时先扣费;任务失败会自动退回本次扣除的积分。下表会自动同步当前可用模型;已下架或暂不可用模型不会出现在可用列表中。

正在读取模型...
正在加载当前可用模型...
model 名称 说明 类型 画质/比例 时长 计费 素材限制
正在加载当前可用模型...

素材可以传公网 http/https URL、data URL,或 base64 对象。图片单个最大 20MB;视频和音频限制以模型表返回为准。

查询账号

curl https://sanbaobeauty.com/openapi/v1/me \
  -H "Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx"

查询模型

curl https://sanbaobeauty.com/openapi/v1/models \
  -H "Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx"

响应中的 data 只包含当前可用模型。文档页模型表也使用同一份公开模型数据渲染。

上传素材

文档入口仍为 /docs.html。如果你不想直接提供自己的公网素材链接,推荐先把图片、视频、音频上传到三宝影像工坊,再把返回的地址用于创建任务。

POST /openapi/v1/uploads/raw?kind=image&fileName=ref1.jpg
Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx
Content-Type: image/jpeg

请求体为原始二进制文件,不是 JSON,也不是 multipart/form-data。请根据文件类型设置正确的 Content-Type,例如 image/jpeg、image/png、video/mp4、audio/mpeg。

kind

支持 image、video、audio。它会决定服务端校验规则和后续创建任务时应放入的字段。

fileName

建议传原始文件名,便于识别扩展名。示例:ref1.jpg、clip.mp4、voice.mp3。

返回字段

成功后重点读取 file.url。创建视频或图片任务时,把它放进 images、videos、audios 对应数组即可。

推荐方式

如果客户已有自己的 OSS/CDN 链接,也可以直接传 URL;但更推荐先上传到我们的接口,再创建任务,兼容性更稳。

{
  "file": {
    "url": "https://sanbaobeauty.com/uploads/xxx",
    "kind": "image",
    "contentType": "image/jpeg",
    "size": 123456
  }
}

curl 示例

curl -X POST "https://sanbaobeauty.com/openapi/v1/uploads/raw?kind=image&fileName=ref1.jpg" \
  -H "Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx" \
  -H "Content-Type: image/jpeg" \
  --data-binary "@ref1.jpg"
curl -X POST "https://sanbaobeauty.com/openapi/v1/uploads/raw?kind=video&fileName=clip.mp4" \
  -H "Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx" \
  -H "Content-Type: video/mp4" \
  --data-binary "@clip.mp4"
curl -X POST "https://sanbaobeauty.com/openapi/v1/uploads/raw?kind=audio&fileName=voice.mp3" \
  -H "Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx" \
  -H "Content-Type: audio/mpeg" \
  --data-binary "@voice.mp3"

如果你使用自己的 OSS 链接,仍需要保证三宝影像工坊服务器可以直接公网访问该文件,且不能有防盗链、私有权限、临时签名过期、不支持 Range 读取等限制;否则任务创建后可能无法拉取素材。生产接入时,更推荐先上传到我们的接口,再把返回的 file.url 用于创建任务。

创建视频任务

视频生成是异步任务。创建成功后返回任务 ID,再调用查询接口轮询结果。

POST /openapi/v1/videos
Content-Type: application/json
Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx
{
  "model": "sd2_9img_full",
  "prompt": "高端护肤品商业广告,深夜都市办公室场景,女性对着电脑屏幕加班,镜头缓慢推进,电影级灯光,高级质感",
  "ratio": "9:16",
  "resolution": "720p",
  "duration": 5,
  "concurrency": 1,
  "reference": "all",
  "images": [
    "https://example.com/reference-1.jpg",
    {
      "tag": "图片1",
      "url": "https://example.com/reference-2.jpg"
    }
  ],
  "videos": [
    {
      "tag": "视频1",
      "url": "https://example.com/reference-video.mp4"
    }
  ],
  "audios": [
    {
      "tag": "音频1",
      "url": "https://example.com/reference-audio.mp3"
    }
  ]
}

model

请以模型表或 GET /openapi/v1/models 返回为准。

resolution

不同模型支持的画质不同,请使用模型表中列出的 resolutions 值。

ratio

视频比例请使用模型表中列出的 ratios 值。也可以用等价字段 aspectRatio 或 aspect_ratio 传入比例。

duration

按次计费模型按任务扣费;按秒计费模型按实际传入时长计算。可选时长以模型表为准。

reference

all 全能参考,startEnd 首尾帧,face 人物一致。

images / videos / audios

素材数组既支持字符串 URL,例如 ["https://example.com/reference.jpg"],也支持对象写法,例如 [{"tag":"图片1","url":"https://example.com/reference.jpg"}]。使用对象写法时,提示词里可以写 @图片1、@视频1 或 @音频1 指向对应素材。

concurrency

并发生成数量可选 1、2、4,默认 1。多任务会按任务数分别扣费。

创建图片任务

图片生成是异步任务。创建成功后返回任务 ID,再调用查询接口轮询结果。

POST /openapi/v1/images
Content-Type: application/json
Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx
{
  "model": "gpt-image2",
  "prompt": "高端护肤品商业海报,玻璃瓶身,柔和棚拍灯光,高级质感",
  "aspect_ratio": "16:9",
  "images": [
    "https://example.com/reference-1.jpg"
  ],
  "quality": "high",
  "concurrency": 1
}

model

请以模型表或 GET /openapi/v1/models 返回为准。

aspect_ratio

图片接口使用 aspect_ratio。可传比例名,例如 16:9、9:16、1:1,也可传模型支持的具体尺寸值。

images

参考图数量以模型表为准;图片接口不支持视频或音频参考。

quality

可选 high、medium、low,默认 high。

查询任务

GET /openapi/v1/videos/{taskId}
GET /openapi/v1/images/{taskId}
curl https://sanbaobeauty.com/openapi/v1/videos/task_xxx \
  -H "Authorization: Bearer sk_sanbao_xxxxxxxxxxxxx"
{
  "data": {
    "id": "task_xxx",
    "status": "succeeded",
    "progress": 100,
    "model": "sd2_9img_full",
    "ratio": "9:16",
    "resolution": "720p",
    "duration": 5,
    "image_url": "",
    "images": [],
    "video_url": "https://...",
    "download_url": "https://...",
    "link_expires_in": 86400,
    "cost": 57,
    "error": "",
    "created_at": "2026-06-13T00:00:00.000Z",
    "updated_at": "2026-06-13T00:02:00.000Z"
  }
}

status 可能为 queued、processing、succeeded、failed。失败时请读取 error 字段展示给客户。

任务完成后,每次查询都会返回新的 video_url / download_url,链接为当前有效的签名媒体直链,默认约 24 小时有效;请以 link_expires_in 为准。

错误码

状态码说明
400参数错误,例如提示词过短、比例不支持、素材数量超限。
401API Key 缺失、无效或已停用。
402积分余额不足。
403账号被限制。
413素材文件过大。
429请求过于频繁。
502模型服务异常,请稍后重试。