在工作流界面中,每个节点右上角都有一个数字,那就是 nodeId:
在调用 API 发起 ComfyUI 任务之前,首先要熟悉工作流的 api_format 文件。可以点击 RunningHub 界面上方的下载图标并选择“导出工作流 API”,下载后打开的就是一个标准的 JSON 文件:
每个 nodeId 都会对应有一个 inputs,inputs 中的 key 名称就是 fieldName。当我们在工作流中修改节点的值,本质上就是修改 fieldName 后面的值,也就是 fieldValue。
例如,想修改“文生图”例子中的文本以及 KSampler 中的随机种子值,对应的就是 nodeId 为 "6" 和 "3"。在工作流文件中搜索 "6" 和 "3":
fieldName 就是 "text"fieldName 是 "seed"因此,构造 nodeInfoList 如下:
"nodeInfoList": [
{
"nodeId": "6",
"fieldName": "text",
"fieldValue": "1 girl in classroom"
},
{
"nodeId": "3",
"fieldName": "seed",
"fieldValue": "1231231"
}
]
目前有两种方案:
自己维护图床,使用 LoadImageFromUrl 节点。
工作流执行到该节点时会去下载该图片:
构造 nodeInfoList 如下:
"nodeInfoList": [
{
"nodeId": "13",
"fieldName": "image",
"fieldValue": "https://rh-images.xiaoyaoyou.com/de0db6f2564c8697b07df55a77f07be9/output/ComfyUI_00038_sffft_1742964027.png?imageMogr2/format/jpeg/ignore-error/1"
}
]
使用上传资源接口,上传图片后把返回的 fileName 传到 LoadImage 节点中:
{
"code": 0,
"msg": "success",
"data": {
"fileName": "api/9d77b8530f8b3591edc5c4e8f3f55b2cf0960bb2ca35c04e32c1677687866576.png",
"fileType": "image"
}
}
"nodeInfoList": [
{
"nodeId": "14",
"fieldName": "image",
"fieldValue": "api/9d77b8530f8b3591edc5c4e8f3f55b2cf0960bb2ca35c04e32c1677687866576.png"
}
]
目前只有一种解决方案,分为三个步骤:
RHLoraLoader 节点中使用该 Lora。seed 值,如果需要保持seed参数不变,请将seed值放入到 nodeInfoList 中。fieldName,就说明该 fieldName 是纯前端逻辑,在浏览器中才能生效。比如,KSampler 中的 control_after_generate,另外 group 相关的逻辑也无法在 API 中使用。fieldValue 是 [] 包裹的一般代表连线,不建议进行修改。