这是用户在 2024-12-18 20:34 为 https://gold-spleen-bf1.notion.site/RunningHub-API-1432ece0cf5f8026aaa8e4b9190f6f8e 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?
RunningHub API 使用说明
搭建于

RunningHub API 使用说明

简介

欢迎使用 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调用时会报错。
ALT

1. 获取API KEY

RunningHub 为每位用户自动生成一个独特的 32 位 API KEY,作为身份的唯一标识。
ALT
打开https://runninghub.cn的首页,登录账号后,打开页面右上角的头像悬浮窗,就能看到您的API KEY。请妥善保存您的 API KEY,不要外泄,后续步骤将依赖此密钥进行操作。
ALT

2. 简易运行 workflow

该方式运行 workflow,相当于在不改变原有workflow的任何参数的情况下,直接点了一下"运行"按钮。
适合随机种子抽卡。
接口:POST /task/openapi/create
headers:
header
value
备注
Content-Type
application/json
请求data-raw:
参数
类型
是否必需
备注
workflowId
string
apiKey
string
返回值:
参数
类型
备注
msg
string
正常为:success
data: taskId
string
本次运行的taskid,与网站上工作台里的任何列表里的里taskid是一一对应的
data:clientId
string
本次运行的clientId,排错用,一般忽略即可
data:promptTips
string
如果出错,具体的错误信息
data:taskStatus
string
QUEUED(排队中),RUNNING(运行中),SUCCEDD(运行完成,运行成功),FAILED(运行完成,运行失败)
代码实例:
该方式运行 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:
header
value
备注
Content-Type
application/json
请求data-raw:
参数
类型
是否必需
备注
workflowId
string
apiKey
string
nodeInfoList:nodeId
int
要修改参数的nodeID
nodeInfoList:fieldName
string
要修改后的key
nodeInfoList:fieldValue
string
要修改后的值
nodeId,fieldName,fieldValue三个为一组,可以同时存在多组,也就是说可以一次修改多个节点的多个值
返回值:
参数
类型
备注
msg
string
正常为:success
data: taskId
string
本次运行的taskid,与网站上任务列表中的taskid是一一对应的
data:clientId
string
本次运行的clientId,排错用,一般忽略即可
data:promptTips
string
如果出错,具体的错误信息
data:taskStatus
string
QUEUED(排队中),RUNNING(运行中),SUCCEED(运行完成,运行成功),FAILED(运行完成,运行失败)
代码实例:
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:
header
value
备注
Content-Type
application/json
请求data-raw:
参数
类型
是否必需
备注
taskId
string
create接口返回的taskId
apiKey
string
返回值:
参数
类型
备注
msg
string
正常为:success
data: fileUrl
string
该流save节点输出的图片url,也就是最终生图生成的图片
data:fileType
string
图片格式,一般为png,其它还包含音频和视频,文本txt暂时不支持
代码实例:
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:
header
value
备注
Content-Type
application/json
请求data-raw:
参数
类型
是否必需
备注
apiKey
string
返回值:
参数
类型
备注
msg
string
正常为:success
data: remainCoins
string
当前币的余额
data:currentTaskCounts
string
任务状态 1 表示正在跑一个任务,0表示空闲
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:
ALT
在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
ALT
嵌入任何内容(PDF、 Google 文档、 Google 地图、Spotify 等)