runcomfy_run_workflow.json 3.2 KB

12345678
  1. {
  2. "description": "RunComfy ComfyUI 工作流运行工具:启动云端机器、上传文件、提交 workflow、监听进度、下载结果",
  3. "task_spec": "脚本位置:tests/run_comfy/run_workflow.py\n\n## 功能\n通过 RunComfy Server API + ComfyUI Backend API,在云端机器上运行 ComfyUI workflow,全流程自动化。\n\n## 环境变量(.env 文件)\n- RUNCOMFY_USER_ID:RunComfy 用户 ID\n- API_TOKEN:RunComfy API Token\n\n## 用法\n```bash\n# 启动新机器并运行\npython run_workflow.py workflow_api.json\n\n# 指定 version(含预装模型的版本)\npython run_workflow.py workflow_api.json --version-id <version_id>\n\n# 复用已有机器(跳过启动)\npython run_workflow.py workflow_api.json --server-id <server_id>\n\n# 跳过文件上传(文件已在机器上)\npython run_workflow.py workflow_api.json --server-id <server_id> --skip-upload\n\n# 完成后保持机器运行\npython run_workflow.py workflow_api.json --keep-alive\n```\n\n## 参数\n| 参数 | 默认值 | 说明 |\n|------|--------|------|\n| workflow | 必填 | workflow_api.json 文件路径 |\n| --input-dir | input/ | 本地输入文件目录 |\n| --output-dir | output/ | 结果下载目录 |\n| --version-id | 90f77137-... | RunComfy workflow version ID |\n| --server-type | medium | 机器规格:medium/large/extra-large/2x-large/2xl-turbo |\n| --duration | 3600 | 预估运行时长(秒) |\n| --server-id | 无 | 复用已有机器 ID,跳过启动步骤 |\n| --skip-upload | false | 跳过文件上传,直接提交 workflow |\n| --keep-alive | false | 完成后不自动关机 |\n\n## input 目录结构\n```\ninput/\n├── images/ → 上传到 ComfyUI input/(LoadImage 节点用)\n├── loras/ → 上传到 ComfyUI input/loras/\n├── checkpoints/ → 上传到 ComfyUI input/checkpoints/\n├── vae/ → 上传到 ComfyUI input/vae/\n├── controlnet/ → 上传到 ComfyUI input/controlnet/\n└── (根目录文件) → 上传到 ComfyUI input/\n```\n\n## 运行流程\n1. 检查 workflow 所需文件是否齐全(调用 check_workflow.py)\n2. 启动机器(或复用 --server-id 指定的机器)\n3. 等待机器状态变为 Ready,获取 main_service_url\n4. 上传 input 目录所有文件(除非 --skip-upload)\n5. 提交 workflow 到 ComfyUI /prompt 接口\n6. 通过 WebSocket 监听执行进度\n7. 从 /history/{prompt_id} 下载所有输出图片到 output 目录\n8. 关机(除非 --keep-alive)\n\n## 注意事项\n- 出错时机器不会自动关闭,需手动处理(避免意外扣费)\n- 出错时会打印 server_id,可用 --server-id 复用该机器重试\n- LoRA 等模型文件建议通过 RunComfy 控制台预装到 version 中,而非通过 API 上传\n- 依赖:requests、websocket-client、python-dotenv\n\n## API 端点\n- RunComfy Server API:https://beta-api.runcomfy.net/prod/api\n- 启动机器:POST /users/{user_id}/servers\n- 查询状态:GET /users/{user_id}/servers/{server_id}(字段 current_status)\n- 关闭机器:DELETE /users/{user_id}/servers/{server_id}",
  4. "reference_files": [
  5. "tests/run_comfy/run_workflow.py",
  6. "tests/run_comfy/check_workflow.py"
  7. ]
  8. }