API文档
为了方便用户灵活调用 ComfyUI 工作流,平台提供了云端托管与 API 调用能力。
API概览
平台对外提供的API如下:
| API | 说明 |
|---|---|
| 获取文件上传链接 | 获取临时文件上传链接,如需文件上传需要提前调用获取并上传目标文件 |
| 上传文件信息 | 如果工作流中存在非文件存储地址,请提前上传至平台进行管理。 |
| prompt请求接口 | 提供推理功能 |
| 取消任务 | 取消请求任务 |
| 获取任务详情 | 获取任务执行进度 |
如何调用API
1. 创建API KEY
API调用需要先创建API KEY,可以在 创建 页面创建KEY 请妥善保管,切勿泄露。
2. 终端节点
终端节点即调用API的请求地址目前平台提供的服务器调用地址如下:
| 请求地址 | 协议类型 |
|---|---|
https://comfyapi.gpugeek.com | HTTPS |
3. 认证鉴权
所有API接口须要通过在header中携带平台的 API KEY来进行身份认证。 在 Header 中携带 API KEY的消息头域格式如下:
{
"Authorization": "Bearer API_KEY"
}
其中 API_KEY 第一步创建的KEY。
4. 返回结果
API 请求返回统一使用 JSON (对应请求/响 应header为Content-Type: application/json) 格式,通用结构如下:
{
"code": 0,
"message": "success",
"traceid": "",
"data": {}
}
返回结果参数说明:
| 消息元素名 | 描述 |
|---|---|
| code | 请求响应码,请求成功时为 0,失败时为相应的错误码,具体错误码请参考附录错误码说明。 |
| message | 请求成功为 success, 请求失败为具体的业务错误信息 |
| data | 返回的业务数据 |
API详情
1. 获取文件上传链接
接口说明
- 请求URI:/api/v1/file/upload/pre-signed-url
- 请求方法:GET
- 描述:获取文件上传链接, 本平台提供文件上传服务,请先调用此接口获取文件上传链接,然后进行文件上传。 本平台工作流中支持使用外部对象存储地址,如果工作流中文件为存储地址,可以不用执行此操作
请求参数 Query
| 参数名称 | 类型 | 描述 |
|---|---|---|
| file_name | string | 文件名称 |
返回结果
| 参数名称 | 类型 | 描述 |
|---|---|---|
| signed_url | string | 访问地址 |
| expired_at | dateTime | 过期时间 |
返回值示例
{
"code": 0,
"message": "success",
"traceid": "",
"data": {
"signed_url": "https://xxxxxxxxx/comfy/input/xxx.png",
"expired_at": "2023-01-01T00:00:00Z"
}
}
python代码样例
import requests
# 设置API KEY
API_KEY = "your_api_key"
# 源文件路径
src_name = "./ebAEgmhJGHN1Un7H.png"
# 目标文件名称
dest_name = "test_upload.png"
url = f'https://comfyapi.gpugeek.com/api/v1/file/upload/pre-signed-url?fileName={dest_name}'
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
response = requests.post(url, headers=headers)
if response.status_code == 200:
res = response.json()
if res.get("code") == 0:
pre_signed_url = res.get("data").get("signedUrl")
with open(src_name, 'rb') as file:
response = requests.put(
pre_signed_url,
data=file,
headers={'Content-Type': 'application/octet-stream'}
)
response.raise_for_status()
print("上传成功")
else:
print(res.get("message"))
2. 上传文件信息
接口说明
- 请求URI:/api/v1/file/upload/commit
- 请求方法:POST
- 描述:工作流中存在非文件存储地址,请提前上传至平台进行管理。
请求参数 Body
| 参数名称 | 类型 | 描述 |
|---|---|---|
| oss_url | string | 文件存储地址 |
返回值示例
{
"code": 0,
"message": "success",
"traceid": "57cbd46995d11318814a78746318bc32",
"data": {
"oss_url": "https://xxxxxxxxx/comfy/input/xxx.png"
}
}
3. prompt请求接口
接口说明
- 请求URI:/api/v1/prompt
- 请求方法:POST
请求参数 Body
| 参数名称 | 类型 | 描述 |
|---|---|---|
| workflow_id | integer | 工作流ID |
| prompt | object | 工作流API |
| task_type | integer | 任务类型: 目前仅支持1 |
请求示例
{
"workflow_id": 763311996779461,
"task_type": 1,
"prompt": {
"1": {
"inputs": {
"image": "https://xxxxxxxxx/comfy/input/xxx.png"
},
"class_type": "LoadImage",
"_meta": {
"title": "加载图像"
}
},
"2": {
"inputs": {
"images": [
"1",
0
]
},
"class_type": "PreviewImage",
"_meta": {
"title": "预览图像"
}
}
}
}
返回参数 Body
| 参数名称 | 类型 | 描述 |
|---|---|---|
| prompt_id | integer | 推理ID |
返回值示例
{
"code": 0,
"message": "success",
"traceid": "66ba96cf011c8c18f04f0a2c4f56f979",
"data": {
"prompt_id": "763289064770885"
}
}
4. 取消任务
接口说明
- 请求URI:/api/v1/task/cancel
- 请求方法:POST
请求参数 Body
| 参数名称 | 类型 | 描述 |
|---|---|---|
| task_id | integer | 推理id |
返回值示例
{
"code": 0,
"message": "success",
"traceid": "57cbd46995d11318814a78746318bc32",
"data": null
}
5. 获取任务详情
接口说明
- 请求URI:/api/v1/task/{prompt_id}
- 请求方法:GET
请求参数 Body
| 参数名称 | 类型 | 描述 |
|---|---|---|
| prompt_id | integer | 推理ID |
返回结果
| 参数名称 | 类型 | 描述 |
|---|---|---|
| prompt_id | integer | 推理ID |
| workflow_id | integer | 工作流ID |
| env_id | integer | 关联环境ID |
| status | integer | 任务状态: 1-排队中, 2-生成中, 3-执行成功, 4-执行失败, 5-已取消 |
| queue_duration | integer | 排队时长,单位:毫秒 |
| run_duration | integer | 运行时长,单位:毫秒 |
| result_url | ResultUrl | 生成结果 |
| queue_size | integer | 当前队列长度 |
| current_position | integer | 当前任务在队列中的位置 |
| origin_price | number | 任务价格 |
| created_at | datetime | 创建时间 |
ResultUrl
| 参数名称 | 类型 | 描述 |
|---|---|---|
| property<num> | string | 节点ID , 值为结果存储地址 |
返回值示例
{
"code": 0,
"message": "success",
"traceid": "57cbd46995d11318814a78746318bc32",
"data": {
"prompt_id": 763289064770885,
"workflow_id": 763311996779461,
"env_id": 763311996779461,
"status": 2,
"queue_duration": 10,
"run_duration": 150,
"result_url": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"error_msg": "",
"queue_size": 0,
"current_position": 0,
"origin_price": 0.11,
"created_at": "2026-01-19 14:46:54"
}
}