简介
欢迎使用 RunningHub API,轻松调用 RunningHub 云端的 ComfyUI 功能。通过 API,能够批量运行各类复杂工作流并连续发起运行任务。只要工作流能在 RunningHub 平台上正常运行,您就能将其无缝集成到您的产品中,或在任何需要 AI 工作流的场景中灵活应用。
开始使用
在使用 RunningHub API之前,请做好如下准备:
第一,先注册成为RunningHub网站的用户,并完成会员权益的开通。免费用户暂不能使用RunningHub API。
第二,打开一个工作流,记录该流在地址栏中的workflow ID, 因为我们的API调用都是基于workflow ID的。
比如下图这个地址(https://www.runninghub.cn/#/workflow/1850925505116598274)的workflow ID就是1850925505116598274。注意这个流一定要手动运行成功过,否则API调用时会报错。
1. 获取API KEY
RunningHub 为每位用户自动生成一个独特的 32 位 API KEY,作为身份的唯一标识。
打开https://runninghub.cn的首页,登录账号后,打开页面右上角的头像悬浮窗,就能看到您的API KEY。请妥善保存您的 API KEY,不要外泄,后续步骤将依赖此密钥进行操作。
2. 简易运行 workflow
该方式运行 workflow,相当于在不改变原有workflow的任何参数的情况下,直接点了一下"运行"按钮。适合随机种子抽卡。
接口:POST /task/openapi/create
headers:
请求data-raw:
返回值:
代码实例:
该方式运行 workflow,相当于在不改变原有workflow的任何参数的情况下,直接点了一下"运行"按钮。非常简单,如果懒得看接口说明,直接复制下面的代码并修改成您自己的workflowId和apiKey,即可立即开始
Bash
拷贝
#创建任务
curl --location --request POST 'https://www.runninghub.cn/task/openapi/create' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: www.runninghub.cn' \
--header 'Connection: keep-alive' \
--data-raw '{
"workflowId": 1831308605400317953,
"apiKey": "0bbb4a982e74469381d1c101e1d8673a"
}'
#响应:
{
"code": 0,
"msg": "success",
"data": {
"taskId": "1850847421957988354",
"clientId": "17db3f54f9c6bcdfc85e630560cead6e",
"taskStatus": "RUNNING",
"promptTips": "{\"node_errors\": {}}"
}
}
3. 高级运行 workflow
该方式适合改变workflow中的节点的参数,如更改图生图中的采样方法或步数等,节点中的参数均可更改。相当于在原有workflow的基础上,做到自定义各种参数运行该workflow。
接口:POST /task/openapi/create
headers:
请求data-raw:
返回值:
代码实例:
Bash
拷贝
请求:
curl --location --request POST 'https://www.runninghub.cn/task/openapi/create' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: www.runninghub.cn' \
--header 'Connection: keep-alive' \
--data-raw '{
"workflowId": 1831308605400317953,
"apiKey": "0bbb4a982e74469381d1c101e1d8673a",
#与简易版不同的就是多了下面的定义修改节点的参数
"nodeInfoList": [
{
"nodeId": "6",
"fieldName": "text",
"fieldValue": "1 girl in classroom"
},
{
"nodeId": "3",
"fieldName": "seed",
"fieldValue": 5
},
{
"nodeId": "20",
"fieldName": "image",
"fieldValue": "https://rh-images.xiaoyaoyou.com/60d4973d7f9c2f13144f0bf9c64598d6/output/tensorart_00183__fybyv.png"
}
]
}'
#响应:
{
"code": 0,
"msg": "success",
"data": {
"taskId": "1850847421957988354",
"clientId": "17db3f54f9c6bcdfc85e630560cead6e",
"taskStatus": "RUNNING",
"promptTips": "{\"node_errors\": {}}"
}
}
4. 查询workflow运行结果
接口:POST /task/openapi/outputs
headers:
请求data-raw:
返回值:
代码实例:
Bash
拷贝
#请求:
curl --location --request POST 'https://www.runninghub.cn/task/openapi/outputs' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: www.runninghub.cn' \
--header 'Connection: keep-alive' \
--data-raw '{
"taskId": "1850847421957988354",
"apiKey": "0bbb4a982e74469381d1c101e1d8673a"
}'
#响应:
{
"code": 0,
"msg": "success",
"data": [
{
"fileUrl": "https://www.runninghub.cn/rh-resource-models/10bc565c082353833f12480cd994d8a0/output/comfyui_00029__yxpht.png",
"fileType": "png"
}
]
}
5. 查询账号当前状态
接口:POST /uc/openapi/accountStatus
headers:
请求data-raw:
返回值:
Bash
拷贝
#请求:
curl --location --request POST 'https://www.runninghub.cn/uc/openapi/accountStatus' \
--header 'User-Agent: Apifox/1.0.0 (https://apifox.com)' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--header 'Host: http://www.runninghub.cn' \
--header 'Connection: keep-alive' \
--data-raw '{
"apikey": "2679cfa89047436796b6830a74064dc0"
}'
#响应:
{
"code": 0,
"msg": "success",
"data": {
"remainCoins": "105100",
"currentTaskCounts": "1"
}
}
6. FAQ 常见问题
在高级运行workflow的接口参数中,什么是nodeId,fieldName:
在workflow中,每个node都有独立且唯一的nodeId,每个node中每个字段又有独立的fieldName,所以理论上我们可以通过API,可以改变workflow中的每一个参数。
怎么计费:
API并没有单独的计费体系,API运行一个流与在网页上运行同一个流价格是一致的。API只是启动执行流的方式不同,仅此而已。
我想并发使用API,同时发起多个任务:
目前API的并发数是跟着会员权益走的,如果想实现多个并发有个非常简单的方法,就是使用多个帐号多个API KEY,就可以实现并发了。
如果一个流有多个save节点,API会怎么返回:
会返回多个,放在data字段里以数组的形式返回。
返回 APIKEY_INVALID_NODE_INFO:
被API调用的workflow ID必须成功运行过至少一次,没有手动成功运行过的workflow是不能被API调用的
图生图里的图片如何上传和定义:
在高级workflow API调用中,使用到fieldValue来自定义图片的URL,但请注意该例中用到的节点是load image from url,然后通过fieldValue定义自己的图片URL。所以要使用该功能,请把图片先上传到一个公网能访问到的地方,再把该图的URL 设置到fieldValue