跳到主要内容

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_25image设置为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"
    }
    }