跳到主要内容

内容生成异步接口(预览)

1. 接口介绍

该接口用于提交 AIGC 异步生成任务(覆盖文生图、图生图、图生视频、视频生视频),支持通过回调或查询结果接口获取任务执行状态和结果。

使用场景包括:

  1. 内容创作与素材库的自动化生产
  2. 营销活动海报与短视频的快速生成

1.1 接入指南

  1. 联系客户经理开通账号
  2. 同客户经理沟通详细需求与并发。根据您的需求,客户经理将为您开通对应的应用(SID)
  3. 访问控制台 - 数字证书 获取用于接口鉴权的 API Key
  4. 查阅下方的接口参数文档,了解如何构建请求以及如何解析响应数据
  5. 调用接口进行调试和测试
  6. 添加异常处理逻辑,以处理可能出现的错误和异常情况,增强代码的健壮性和稳定性

如果在接入过程中遇到任何技术问题,请联系客户经理以获取帮助。

提示

当前接口处于预览状态,未来可能会有所调整,请以实际状态为准。

1.2 并发限制

图普采用 用户任务并发数 对内容生成接口进行并发控制,即任一时刻单个用户最多允许 N 个任务同时处理。用户任务并发数由三部分构成:

  • 基础并发数:系统为用户固定保障的并发额度,不受系统忙时 / 闲时的资源波动影响,可稳定持续使用;
  • 浮动并发数:基于系统实时资源情况动态调配的弹性并发额度,其可用性依赖于系统剩余资源量,在系统资源紧张时(忙时),该部分额度可能无法保障;
  • 增购并发数:用户根据实际需求增购的额外并发额度,不受忙时 / 闲时限制。

当前测试用户任务并发数为 2;正式用户的内容生成任务并发数为 10(基础并发数)+ 5(浮动并发数),即任一时刻单个用户最多允许 10~15 个任务同时处理。若需调整并发数,请联系客户经理办理增购或配置调整。

2. 请求

2.1 请求地址

区域请求地址
国内http://stage.api.open.tuputech.com/<version>/generation/async/<secretId>
提示

<secretId> 需替换为您的应用 SID,请联系客户经理为您开通及配置。关于 SID 详见 常见问题(FAQ)

2.2 请求方法

POST

2.3 请求头

请求头名称取值是否必需示例说明
Content-Typeapplication/jsonContent-Type: application/json请求数据类型为 JSON
X-API-Key<API Key>X-API-Key: <API Key>API Key 用于接口鉴权。请访问控制台 - 数字证书 获取 API Key

2.4 超时时间及异常处理

建议配置超时时间 1 秒,在 HTTP 响应状态码非 200 或业务状态码不为 0 时进行重试。

危险

由于模型基于请求流量动态伸缩,在空闲一定时间后会关闭(部分专用模型空闲一定时间后会关闭全部实例)。 由于模型冷启动耗时较长,部分请求可能无法处理,最终返回非 200 HTTP 状态码或业务状态码 101。该现象可能在以下情况下出现:

  • 初次请求
  • 长时间未调用后再次请求
  • 请求流量突增
  • 请求存在规律性的流量波动(例如每隔超过 5 分钟请求一批数据,或仅在工作日期间有大量请求)

针对以上情况,我们分别建议您:

  • 间隔 2~3 分钟后重试
  • 间隔 2~3 分钟后重试,并且后续保持至少每分钟 1 次调用
  • 提前进行预热,或及时联系我们扩容
  • 调整业务请求时间间隔到 5 分钟内,或联系我们调整实例保持策略。若您的业务仅在工作日期间有大量请求,节假日期间较少,请务必联系我们

2.5 请求参数说明 🔥

参数名称类型是否必需说明
typeString任务类型,可选值:

文生图text_to_image
图生图image_to_image
图生视频image_to_video
视频生视频video_to_video
modelString模型名称。
取值说明
图生视频
• 视频配音(唇形同步与表情姿态生成):infinitetalk
versionString模型版本或模型 ID。
取值说明(按模型)
图生视频
infinitetalkv1(最新版本)
configConfig任务配置,详见 Config 参数说明
inputInputParams输入内容参数,详见 InputParams 参数说明
outputOutputParams输出内容参数,详见 OutputParams 参数说明
callbackString回调地址,若为空则跳过结果回调
customInfoObject<String, Any>自定义信息,为任务添加业务信息(如房间 ID、文件 ID 等)或其他扩展参数

Config 参数说明

参数名称类型是否必需说明
modeString内容生成模式。
取值说明(按模型)
图生视频
infinitetalksingle(单人),multi(多人)
stepsNumber生成步数,取值范围:[1, 100],默认为 20
取值说明(按模型)
图生视频
infinitetalk:无需赋值
seedNumber随机种子,取值范围:[0, 4294967295],默认为 0
取值说明(按模型)
图生视频
infinitetalk:无需赋值
controlNetObject<String, Any>ControlNet 参数。
取值说明(按模型)
图生视频
infinitetalk:无需赋值
workflowObject<String, Any>ComfyUI 工作流参数,用于自定义生成流程。
取值说明(按模型)
图生视频
infinitetalk:无需赋值
watermarkWatermarkConfigAIGC 水印标识配置,详见 WatermarkConfig 参数说明

WatermarkConfig 参数说明

按照国家相关法规及政策文件规定,AIGC 内容制作者需要在生成内容中添加水印标识,以标识内容的来源,详见 相关政策文件

参数名称类型是否必需说明
enabledBoolean是否添加 AIGC 水印标识
typeStringAIGC 水印标识类型,可选值:

• 显式水印标识:explicit
• 隐式水印标识: implicit
• 显式与隐式水印标识:all
textStringAIGC 显式水印标识文本,默认为 Generated by AI
positionStringAIGC 显式水印标识位置,默认为 bottom_right。可选值:

• 左上角:top_left
• 左下角:bottom_left
• 右上角:top_right
• 右下角:bottom_right
contentProducerStringAIGC 隐式水印标识内容制作者编码
produceIdStringAIGC 隐式水印标识内容制作者分配的唯一 ID
contentPropagatorStringAIGC 隐式水印标识内容传播平台编码
propagateIdStringAIGC 隐式水印标识内容传播平台分配的唯一 ID

InputParams 参数说明

参数名称类型是否必需说明
promptString提示词
negativePromptString负提示词
fileTypeString输入文件类型,可选值:urlbase64,默认为 url
imagesArray<String>输入图片链接或 base64。
取值说明(按模型)
图生视频
infinitetalk:最多支持 1 张图片
videosArray<String>输入视频链接或 base64。
取值说明(按模型)
图生视频
infinitetalk:无需赋值
audiosArray<String>输入音频链接或 base64。
取值说明(按模型)
图生视频
infinitetalk:最多支持 2 段音频,分别对应单人与多人场景

OutputParams 参数说明

参数名称类型是否必需说明
aspectRatioString生成图片/视频时,输出的图片/视频宽高比,可选值:16:99:164:33:4,默认为 16:9
resolutionString生成图片/视频时,输出的图片/视频分辨率,可选值:480p720p,默认为 480p
maxImagesNumber生成图片时,输出的图片最大候选数,取值范围:[1, 10],默认为 4
qualityString生成图片时,输出的图片质量,可选值:standard(标准)、enhanced(增强),默认为 standard
durationNumber生成视频时,输出的视频最大时长,单位秒(该参数与 maxFrames 互斥),取值范围:[1, 10],默认为 10
frameRateNumber生成视频时,输出的视频帧率,取值范围:[25, 30],默认为 25
maxFramesNumber生成视频时,输出的视频最大帧数,取值范围:[25, 250],默认根据时长与帧率计算

2.6 请求示例

{
"type": "text_to_image",
"model": "<model>",
"version": "v1",
"config": {
"mode": "single"
},
"input": {
"prompt": "A beautiful sunset over the ocean, digital art",
"negativePrompt": "dark, blurry, low quality",
"fileType": "url"
},
"output": {
"maxImages": 4
},
"callback": "<callback>",
"customInfo": {
"<key>": "<value>"
}
}

3. 同步响应

3.1 响应参数说明 🔥🔥

v3.1 说明

由于历史原因,在 v3.1 版本接口中,同步响应与回调请求的核心内容会先经过转义处理,最终以 json 字段(字符串类型)返回。因此,在解析该接口的业务数据时,需对 json 字段的取值额外执行一次转义还原逻辑,才能获取到原始的业务数据。除此之外,v3.1 与 v4 版本接口出入参数完全一致,相比之下 v4 版本接口更为直观。详见下方字段说明。


参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0, \"message\":\"success\"}
  • 字段详见下述 JSON 参数说明
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

参数名称类型说明
codeInt状态码,详见 业务状态码
messageString状态信息
resultResult任务提交结果,详见 Result 参数说明
nonceFloat随机数(建议使用 Unix 时间戳或若干位随机整数)
timestampInt当前服务器的 Unix 时间戳

Result 参数说明

参数名称类型说明
requestIdString任务 ID,长度为 20~64 的字符串(可能随着服务迭代发生变化)
callbackString生成结果回调接口地址

3.2 响应示例

{
"code": 0,
"message": "success",
"result": {
"requestId": "<requestId>",
"callback": "<callback>"
},
"nonce": 1685000000,
"timestamp": 1685000000
}

4. 回调请求

4.1 请求地址

callback 参数指定的地址。

4.2 请求方法

POST

4.3 请求头

Content-Type: application/json

4.4 超时时间及异常处理

回调超时时间 5 秒,在 HTTP 响应状态码非 200 时进行重试,最多重试 3 次。

建议客户在处理回调时进行异步处理,响应回调时可以返回字符串或 JSON,示例如下:

// JSON
{
"message": "ok"
}

// 字符串
success

4.5 请求参数说明 🔥🔥🔥

v3.1 说明

由于历史原因,在 v3.1 版本接口中,同步响应与回调请求的核心内容会先经过转义处理,最终以 json 字段(字符串类型)返回。因此,在解析该接口的业务数据时,需对 json 字段的取值额外执行一次转义还原逻辑,才能获取到原始的业务数据。除此之外,v3.1 与 v4 版本接口出入参数完全一致,相比之下 v4 版本接口更为直观。详见下方字段说明。


参数名称类型说明
signatureString

同步响应或回调请求签名,由图普使用私钥签名,在需要时,您可以通过 图普公钥 进行验签以确保此响应内容来自图普(与您调用接口时使用的公私钥不同)。验签步骤:

  1. json 字段内容为 SignString
  2. signature 字段内容进行 Base64 解码,得到 RawSignature
  3. 使用图普公钥以 SHA256 算法验证 RawSignatureSignString
jsonString

同步响应或回调请求经过 JSON 转义后的字符串,需进一步解析得到业务数据。

  • 字段内容示例:{\"code\":0, \"message\":\"success\"}
  • 字段详见下述 JSON 参数说明
  • 为方便展示,同步响应及回调请求的示例中,均为解析后的 JSON

参数名称类型是否必有说明
codeInt状态码,详见 业务状态码
messageString状态信息
requestIdString任务 ID
imagesArray<GenerationOutput>生成的图片列表,详见 GenerationOutput 参数说明
videosArray<GenerationOutput>生成的视频列表,详见 GenerationOutput 参数说明
customInfoObject<String, Any>透传的自定义信息,请求参数中的 customInfo

GenerationOutput 参数说明

参数名称类型是否必有说明
urlString生成图片/视频时,生成的图片或视频内容 URL(有效期为 7 天)
durationNumber生成视频时,生成的视频内容时长(单位:秒)

4.6 回调请求解析伪代码

下述为不同使用场景下,解析回调请求的伪代码示例。

4.6.1 生成图片时获取图片 URL

// 1. 解析回调请求
result = parseJSON(CallbackRequest)

// 2. 校验任务是否处理成功,否的话进入错误处理流程
if (result.code != 0) {
handleError(result)
return
}

// 3. 遍历图片列表,获取每个图片的 URL
for (image of result.images) {
processImage(image.url)
}

4.6.2 生成视频时获取视频 URL

// 1. 解析回调请求
result = parseJSON(CallbackRequest)

// 2. 校验任务是否处理成功,否的话进入错误处理流程
if (result.code != 0) {
handleError(result)
return
}

// 3. 遍历视频列表,获取每个视频的 URL
for (video of result.videos) {
processVideo(video.url)
}

4.7 请求示例

{
"code": 0,
"requestId": "<requestId>",
"riskType": 1,
"suggestion": 1,
"customInfo": {
"roomId": "<roomId>"
},
"images": [
{
"url": "<url>"
}
],
"videos": [
{
"url": "<url>"
}
],
"nonce": 1685000000,
"timestamp": 1685000000
}

5. 任务耗时

内容生成任务耗时较长,具体耗时根据模型和任务类型而异,下述是部分任务的典型耗时情况。

任务类型模型耗时
图生视频infinitetalk每生成一秒视频,耗时约一分钟

6. 更新日志

日期说明
2025-12-10调整 v4 与 v3.1 版本接口说明
2025-12-09新增内容生成任务耗时说明
2025-11-25新增内容生成接口,支持多种内容生成模型