Workflow Template
工作流模版相关接口允许用户使用预定义的一系列模版进行生图,只需要修改模版中几个简单的参数即可。
获取工作流模版
请求参数示例,将以下参数替换到
url
路径:template_id: 676018193025756628
返回结果(包括所有需要修改的字段):
{
"templateId": "676018193025756628",
"name": "二次元转真实",
"fields": {
"fieldAttrs": [
{
"nodeId": "25",
"fieldName": "image",
"fieldValue": ""
},
{
"nodeId": "27",
"fieldName": "text",
"fieldValue": "1 girl"
}
]
}
}
检查工作流模版参数
该接口会先获取工作流模版,然后将请求参数field中对应的字段替换到获取到的template
当中(具体的说,是将field
对应的node_id
中按field_name
替换其field_value
)。替换完成后检查参数是否合法,如果合法返回根据参数预估的算力。
错误请求示例1(参数中丢失某些field)
{
"template_id": "676018193025756628",
"fields": {
"field_attrs": [
{
"node_id": "27",
"field_name": "text",
"field_value": "1 girl, amber_eyes"
}
]
}
}返回结果:
{
"code": 2,
"message": "can't find [nodeId:fieldName] 25:image in fields parameter"
}错误请求示例2(该请求处理时,会将获取到的模版中
node_25
的image
设置为null
。由于这样做不合法,所以会返回false
以及错误原因):{
"templateId": "676018193025756628",
"fields": {
"fieldAttrs": [
{
"nodeId": "25",
"fieldName": "image",
"fieldValue": null
},
{
"nodeId": "27",
"fieldName": "text",
"fieldValue": "1 girl"
}
]
}
}返回结果:
{
"code": 3,
"message": "Params Valid",
"details": [
{
"@type": "type.googleapis.com/tams_api.ArgumentError",
"field": "workflow",
"message": "node id: 25\nclass type: LoadImage\nimage: 字段必填\n"
}
]
}正确请求示例:
{
"templateId": "676018193025756628",
"fields": {
"fieldAttrs": [
{
"nodeId": "25",
"fieldName": "image",
"fieldValue": "f29036b4-ff7b-4394-8c26-aabc1bdae008"
},
{
"nodeId": "27",
"fieldName": "text",
"fieldValue": "1 girl"
}
]
}
}返回结果(预估算力为1):
{
"valid": true,
"credits": 1
}
使用工作流模版进行生图
该接口同样会获取工作流模版,然后替换field
并检查参数。检查完成后会新建job
进行生图(fieldValue为上传图片完成后的media_resource_id)
请求示例:
{
"request_id": "cc05d4e1a98f8a1438ea6ebcce77a8d5",
"templateId": "676018193025756628",
"fields": {
"fieldAttrs": [
{
"nodeId": "25",
"fieldName": "image",
"fieldValue": "f29036b4-ff7b-4394-8c26-aabc1bdae008"
},
{
"nodeId": "27",
"fieldName": "text",
"fieldValue": "1 girl"
}
]
}
}request_id
为根据当前时间戳生成的一个md5
字符串,可以使用以下JavaScript
脚本或其他语言脚本生成:const crypto = require('crypto')
const request_id = crypto
.createHash('md5')
.update('' + Date.now())
.digest('hex')
console.log(request_id)返回结果(可以通过返回的
jobId
查询生图状态,新建立的job
状态为CREATED
):{
"job": {
"id": "709385162603889157",
"status": "CREATED"
}
}