触站AI开放平台API
  1. 示例&DEMO
触站AI开放平台API
  • 触站AI API接口使用说明
  • 返回结构
  • 更新历史
  • 基础
    • 获取当前客户详情以及积分情况
  • 工作流(AI小工具)
    • 1.获取工作流(小工具)字段详情
      POST
    • 2.提交工作流(小工具)任务执行
      POST
    • 3.获取工作流(小工具)任务进度或结果
      POST
  • 应用工具(电商工具)
    • 获取应用工具选项详情
    • 提交应用工具任务
  • 通用AI绘画(触站AI绘画)
    • 提交绘画任务积分计算说明
    • controlnet使用指南
    • 提交绘画任务
    • 获取绘画任务详情
    • 提交局部重绘绘画任务
  • 模型训练
    • 提交模型训练任务
    • 获取模型训练进度或者结果
  • MJ绘画
    • 提交Midjourney绘画任务
    • 使用Midjourney获取特定图片的画面描述
    • 提交Midjourney单图放大任务
    • 提交Midjourney单图扩写绘画任务
    • 提交Midjourney单图variation(变种)任务
    • 获取Midjourney任务详情(含进度)
  • 示例&DEMO
    • DEMO | 1分钟快速实现一个AI绘画页面
    • 高级模型 | 最能听懂人话的AI绘画模型-效果展示
    • 风格ID | 不同风格效果参考(内含ModelStyleID)
    • 示例 | 通过API实现图片中隐藏文字或者图案的效果
    • 示例 | 关于大尺寸图片参数的最佳实践(惊悚慎入)
    • 示例 | 使用回调获取任务结果的最佳实践
    • 示例 | 局部重绘处理
    • 示例 | 如何使用工作流接口进行绘图
    • 概念解析 | 工作流使用独立算力卡运行【独占模式】
    • 风格上新
      • 黏土风格
  1. 示例&DEMO

示例 | 如何使用工作流接口进行绘图

引言#

工作流的执行流程可以简化为三个步骤
1.
获取字段
2.
提交任务
3.
获取结果
本文档将举例如何根据一个小工具页面的形式来自动转化成工作流API调用的方式,来演示工作流API的调用

如下是一个工作流小工具的前端页面展示情况:
workflow.png
我们将通过接口去使用以上参数并且提交一个工作任务

步骤#

1
获取工作流字段列表和详情
接口地址
不同的工作流(以及工作流不同的版本)所需的参数是不同的,所以首先调用 https://ai.huashi6.com/aiapi/workflow/detail 获取该工作流所需的参数要求,请求参数如下:
{
  "workflowId": 884499364086,
  "versionId": 197, //不传版本号则使用最新版本
  // 预设可以减少字段的传入量,减少对接成本,选填
  "presetId": 1
}
返回结果:
{
    "data": {
        "consume": 10,
        "name": "普通LoRA文生图",
        "currentVersionId": 197,
        "fields": [
            {
                "nodeId": 1,
                "paramName": "ckpt_name",
                "inputName": "选择大模型",
                "required": true,
                "type": 5,
                "tips": "",
                "rule": {
                    "type": 1
                }
            },
            {
                "nodeId": 17,
                "paramName": "lora_name",
                "inputName": "选择LoRA",
                "required": true,
                "type": 5,
                "tips": "",
                "rule": {
                    "type": 2
                }
            },
            {
                "nodeId": 17,
                "paramName": "strength_model",
                "inputName": "LoRA权重",
                "required": true,
                "type": 2,
                "tips": "",
                "rule": {
                    "isDecimal": true
                }
            },
            {
                "nodeId": 5,
                "paramName": "width",
                "inputName": "宽度",
                "required": true,
                "type": 2,
                "tips": "",
                "rule": {
                    "isDecimal": false
                }
            },
            {
                "nodeId": 5,
                "paramName": "height",
                "inputName": "高度",
                "required": true,
                "type": 2,
                "tips": "",
                "rule": {
                    "isDecimal": false
                }
            },
            {
                "nodeId": 5,
                "paramName": "batch_size",
                "inputName": "批次",
                "required": true,
                "type": 2,
                "tips": "",
                "rule": {
                    "minValue": 1,
                    "maxValue": 9,
                    "isDecimal": false
                }
            },
            {
                "nodeId": 3,
                "paramName": "text",
                "inputName": "正向提示词",
                "required": true,
                "type": 1,
                "tips": "",
                "rule": {
                    "multiline": false,
                    "selectOptions": [
                        {
                            "label": "girl",
                            "value": "girl"
                        },
                        {
                            "label": "boy",
                            "value": "boy"
                        }
                    ]
                }
            },
            {
                "nodeId": 4,
                "paramName": "text",
                "inputName": "负面提示词",
                "required": true,
                "type": 1,
                "tips": "",
                "rule": {
                    "multiline": false
                }
            }
        ]
    },
    "code": 0,
    "success": true
}
返回的参数对应了上述页面上的参数,例如:"nodeId": 5, "paramName": "width" 对应页面上的宽度选项,其它参数可通过接口文档查看详细说明
2
提交工作流任务
调用 https://ai.huashi6.com/aiapi/workflow/run 使用参数提交一个工作流任务
(该接口为异步提交任务接口,并不直接返回最终的结果,可通过下一步获取结果)
请求参数:
{
    "workflowId":"884499364086",
    "inputs":[
        {
            "nodeId":1,
            "paramName": "ckpt_name",
            "value": "908442097055"
        },
        {
            "nodeId":17,
            "paramName": "lora_name",
            "value": "908448356515"
        },
        {
            "nodeId":17,
            "paramName": "strength_model",
            "value": "0.8"
        },
        {
            "nodeId":5,
            "paramName": "width",
            "value": "512"
        },
        {
            "nodeId":5,
            "paramName": "height",
            "value": "512"
        },
        {
            "nodeId":5,
            "paramName": "batch_size",
            "value": "2"
        },
        {
            "nodeId":3,
            "paramName": "text",
            "value": "1girl"
        },
        {
            "nodeId":4,
            "paramName": "text",
            "value": "((NSFW)), embedding:EasyNegative, embedding:badhandv4, embedding:bad-picture-chill-75v"
        }
    ],
    "nonce": "test"
}
通过 nodeId 和 paramName 可以指定一个参数,value 是参数值
返回结果如下:
{
    "data": {
        "taskId": "4ae212ae24d94a7aa6fe8091c3f4472c",
        "used": 10,
        "balance": 1345,
        "taskLimit": 6
    },
    "code": 0,
    "success": true
}
taskId 用于工作流任务详情接口查询进度或者获取结果
请妥善记录保管此值,如果遇到问题需要进行调试排查请提供具体任务的此字段给我们
3
获取工作流任务详情
工作流任务提交后返回的 taskId 将用于调用 https://ai.huashi6.com/aiapi/workflow/task/detail 获取工作流任务进度(需要进行轮询获取)或最终结果
请求参数:
{
    "taskId": "4ae212ae24d94a7aa6fe8091c3f4472c"
}
返回结果:
{
    "data": {
        "taskId": "4ae212ae24d94a7aa6fe8091c3f4472c",
        "state": "success",
        "progress": 1,
        "coverImageUrl": "https://imgsource.huashi6.com/images/ai/flow/2024/6/18/14_10_32_3912888.png?e=1718691915&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:SToDZvaIoeVgMWbtt8B8b82LXqM=",
        "files": [
            {
                "audit": 1,
                "url": "https://imgsource.huashi6.com/images/ai/flow/2024/6/18/14_9_30_7004540.png?e=1718691915&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:m7Hjc1GZDJNuFKz5hljFOsIW1Uo="
            },
            {
                "audit": 1,
                "url": "https://imgsource.huashi6.com/images/ai/flow/2024/6/18/14_9_31_6677923.png?e=1718691915&token=qFZErZx7WS1v5B4rgQE2KLMHlYHVNaCuXeaA9OLD:lmN2jth0aaUZzRoC_Gz_rusDGfE="
            }
        ]
    },
    "code": 0,
    "success": true
}
files 字段就是工作流任务执行完成后的输出结果
如果不想使用轮询获取结果或者您对实时获取结果有更高的要求,可以使用回调功能获取结果,请参考回调的使用文档
上一页
示例 | 局部重绘处理
下一页
概念解析 | 工作流使用独立算力卡运行【独占模式】
Built with