欢迎回来

登录 EAKE AI,继续您的智能之旅

忘记密码?
还没有账号?立即注册

ComfyUI 图像生成

ComfyUI 图像生成

通过 ComfyUI 生成图像、视频和音频——交互式工作流

ComfyUI

通过 ComfyUI 生成图像、视频、音频和 3D 内容,使用

官方 comfy-cli 进行安装/生命周期管理,并通过 REST/WebSocket API

执行工作流。

技能内容

参考文档(references/):

  • official-cli.md — 所有 comfy ... 命令及其标志
  • rest-api.md — REST + WebSocket 端点(本地 + 云端)、请求负载 schema
  • workflow-format.md — API 格式 JSON、常见节点类型、参数映射
  • 脚本(scripts/):

    脚本用途
    `_common.py`共享的 HTTP、云路由、节点目录(不要直接运行)
    `hardware_check.py`探测 GPU/VRAM/磁盘 → 推荐本地或 Comfy Cloud
    `comfyui_setup.sh`硬件检查 + comfy-cli + ComfyUI 安装 + 启动 + 验证
    `extract_schema.py`读取工作流 → 列出可控参数 + 模型依赖
    `check_deps.py`对照运行中的服务器检查工作流 → 列出缺失的节点/模型
    `auto_fix_deps.py`运行 check_deps 然后执行 `comfy node install` / `comfy model download`
    `run_workflow.py`注入参数、提交、监控、下载输出(HTTP 或 WS)
    `run_batch.py`以参数扫描方式提交工作流 N 次,按套餐等级并行
    `ws_monitor.py`执行中任务的实时 WebSocket 查看器(实时进度)
    `health_check.py`验证清单运行器 — comfy-cli + 服务器 + 模型 + 冒烟测试

    示例工作流(workflows/): SD 1.5、SDXL、Flux Dev、SDXL img2img、

    SDXL inpaint、ESRGAN 放大、AnimateDiff 视频、Wan T2V。参见

    workflows/README.md

    使用场景

  • 用户要求使用 Stable Diffusion、SDXL、Flux、SD3 等生成图像
  • 用户想运行特定的 ComfyUI 工作流文件
  • 用户想串联生成步骤(txt2img → 放大 → 面部修复)
  • 用户需要 ControlNet、inpainting、img2img 或其他高级流水线
  • 用户要求管理 ComfyUI 队列、检查模型或安装自定义节点
  • 用户想通过 AnimateDiff、Hunyuan、Wan、AudioCraft 等生成视频/音频/3D
  • 架构说明:双层(Two Layers)

    
    ┌─────────────────────────────────────────────────────┐
    │ Layer 1: comfy-cli (official lifecycle tool)        │
    │   Setup, server lifecycle, custom nodes, models     │
    │   → comfy install / launch / stop / node / model    │
    └─────────────────────────┬───────────────────────────┘
                              │
    ┌─────────────────────────▼───────────────────────────┐
    │ Layer 2: REST/WebSocket API + skill scripts         │
    │   Workflow execution, param injection, monitoring   │
    │   POST /api/prompt, GET /api/view, WS /ws           │
    │   → run_workflow.py, run_batch.py, ws_monitor.py    │
    └─────────────────────────────────────────────────────┘
    

    为什么分两层?官方 CLI 非常适合安装和服务器

    管理,但对工作流执行的支持很少。REST/WS API 填补了

    这一空白——脚本负责 CLI 不做的参数注入、执行监控和

    输出下载。

    快速入门

    检测环境

    
    # What's available?
    command -v comfy >/dev/null 2>&1 && echo "comfy-cli: installed"
    curl -s http://127.0.0.1:8188/system_stats 2>/dev/null && echo "server: running"
    
    # Can this machine run ComfyUI locally? (GPU/VRAM/disk check)
    python3 scripts/hardware_check.py
    

    如果什么都没有安装,请参阅下文的安装配置与入门——但务必先运行

    硬件检查。

    一行命令健康检查

    
    python3 scripts/health_check.py
    # → JSON: comfy_cli on PATH? server reachable? at least one checkpoint? smoke-test passes?
    

    核心工作流

    第 1 步:获取 API 格式的工作流 JSON

    工作流必须为 API 格式(每个节点都有 class_type)。它们来自:

  • ComfyUI Web UI → Workflow → Export (API)(较新 UI)或
  • 旧版的"Save (API Format)"按钮(较旧 UI)

  • 本技能的 workflows/ 目录(可直接运行的示例)
  • 社区下载(civitai、Reddit、Discord)——通常是编辑器格式,
  • 必须先加载到 ComfyUI 再重新导出

    编辑器格式(顶层含 nodeslinks 数组)**不能直接

    执行**。脚本会检测到这一点并提示你重新导出。

    第 2 步:查看哪些可控

    
    python3 scripts/extract_schema.py workflow_api.json --summary-only
    # → {"parameter_count": 12, "has_negative_prompt": true, "has_seed": true, ...}
    
    python3 scripts/extract_schema.py workflow_api.json
    # → full schema with parameters, model deps, embedding refs
    

    第 3 步:带参数运行

    
    # Local (defaults to http://127.0.0.1:8188)
    python3 scripts/run_workflow.py 
      --workflow workflow_api.json 
      --args '{"prompt": "a beautiful sunset over mountains", "seed": -1, "steps": 30}' 
      --output-dir ./outputs
    
    # Cloud (export API key once; uses correct /api routing automatically)
    export COMFY_CLOUD_API_KEY="comfyui-..."
    python3 scripts/run_workflow.py 
      --workflow workflow_api.json 
      --args '{"prompt": "..."}' 
      --host https://cloud.comfy.org 
      --output-dir ./outputs
    
    # Real-time progress via WebSocket (requires `pip install websocket-client`)
    python3 scripts/run_workflow.py 
      --workflow flux_dev.json 
      --args '{"prompt": "..."}' 
      --ws
    
    # img2img / inpaint: pass --input-image to upload + reference automatically
    python3 scripts/run_workflow.py 
      --workflow sdxl_img2img.json 
      --input-image image=./photo.png 
      --args '{"prompt": "make it watercolor", "denoise": 0.6}'
    
    # Batch / sweep: 8 random seeds, parallel up to cloud tier limit
    python3 scripts/run_batch.py 
      --workflow sdxl.json 
      --args '{"prompt": "abstract"}' 
      --count 8 --randomize-seed --parallel 3 
      --output-dir ./outputs/batch
    

    seed 设为 -1(或使用 --randomize-seed 并省略 seed)会为每次

    运行生成新的随机种子。

    第 4 步:展示结果

    脚本会向 stdout 输出 JSON,描述每个输出文件:

    
    {
      "status": "success",
      "prompt_id": "abc-123",
      "outputs": [
        {"file": "./outputs/sdxl_00001_.png", "node_id": "9",
         "type": "image", "filename": "sdxl_00001_.png"}
      ]
    }
    

    决策树

    `fetch_logs.py`提取给定 prompt_id 的回溯/状态消息
    用户说工具命令
    **生命周期管理(使用 comfy-cli)**
    "安装 ComfyUI"comfy-cli`bash scripts/comfyui_setup.sh`
    "启动 ComfyUI"comfy-cli`comfy launch --background`
    "停止 ComfyUI"comfy-cli`comfy stop`
    "安装 X 节点"comfy-cli`comfy node install `
    "下载 X 模型"comfy-cli`comfy model download --url --relative-path models/checkpoints`
    "列出已安装模型"comfy-cli`comfy model list`
    "列出已安装节点"comfy-cli`comfy node show installed`
    **执行(使用脚本)**
    "一切就绪了吗?"script`health_check.py` (optionally with `--workflow X --smoke-test`)
    "这个工作流里可以改什么?"script`extract_schema.py W.json`
    "检查 W 的依赖是否满足"script`check_deps.py W.json`
    "修复缺失依赖"script`auto_fix_deps.py W.json`
    "生成一张图片"script`run_workflow.py --workflow W --args '{...}'`
    "使用这张图片"(img2img)script`run_workflow.py --input-image image=./x.png ...`
    "8 个随机种子变体"script`run_batch.py --count 8 --randomize-seed ...`
    "显示实时进度"script`ws_monitor.py --prompt-id `
    "获取任务 X 的错误"script`fetch_logs.py `
    **直接 REST**
    "队列里有什么?"REST`curl http://HOST:8188/queue` (local) or `--host https://cloud.comfy.org`
    "取消那个"REST`curl -X POST http://HOST:8188/interrupt`

    安装配置 & Onboarding

    当用户要求安装 ComfyUI 时,**第一件事是询问他们想要

    Comfy Cloud(托管、零安装、API 密钥)还是本地(在

    他们的机器上安装 ComfyUI)**。在他们回答之前,不要开始运行安装命令或硬件

    检查。

    官方文档: https://docs.comfy.org/installation

    CLI 文档: https://docs.comfy.org/comfy-cli/getting-started

    云端文档: https://docs.comfy.org/get_started/cloud

    云端 API: https://docs.comfy.org/development/cloud/overview

    第 0 步:询问本地还是云端(永远最先做)

    建议话术:

    > "你想在本机运行 ComfyUI,还是使用 Comfy Cloud?

    >

    > - Comfy Cloud —— 托管于 RTX 6000 Pro GPU 上,所有常见模型已预装,

    > 零配置。需要 API 密钥(实际运行工作流需付费订阅;

    > 免费层为只读)。如果你没有合适的 GPU,这是最佳选择。

    > - 本地(Local) —— 免费,但你的机器必须满足硬件要求:

    > - NVIDIA GPU 且 ≥6 GB 显存(SDXL 需 ≥8 GB,Flux/视频需 ≥12 GB),或

    > - 支持 ROCm 的 AMD GPU(Linux),或

    > - Apple Silicon Mac(M1+)且 ≥16 GB 统一内存(推荐 ≥32 GB)。

    > - Intel Mac 和无 GPU 的机器将无法使用——请改用云端。

    >

    > 你想选哪种?"

    路由:

  • Cloud → 直接跳到路径 A
  • Local → 先运行硬件检查,然后根据结论从路径 B–E 中选择。
  • 不确定 → 运行硬件检查,由结论决定。
  • 第 1 步:验证硬件(仅当用户选择本地时)

    
    python3 scripts/hardware_check.py --json
    # Optional: also probe `torch` for actual CUDA/MPS:
    python3 scripts/hardware_check.py --json --check-pytorch
    
    "释放 GPU 内存"REST`curl -X POST http://HOST:8188/free`
    结论含义操作
    `ok`≥8 GB VRAM(独立显卡)或 ≥32 GB 统一内存(Apple Silicon)本地安装——使用报告中的 `comfy_cli_flag`
    `marginal`SD1.5 可运行;SDXL 勉强;Flux/视频不太可能轻量工作流可本地,否则**路径 A(Cloud)**

    脚本还会显示 wsl: true(带 NVIDIA 直通的 WSL2)和

    rosetta: true(Apple Silicon 上的 x86_64 Python——必须重新安装 ARM64 版本)。

    如果结论是 cloud 但用户想要本地安装,不要静默继续。

    原样显示 notes 数组,并询问他们想要 (a) 切换到

    Cloud 还是 (b) 强制本地安装(在现代模型上会内存溢出或慢到无法使用)。

    选择安装路径

    先使用硬件检查。下表是用户

    已告知其硬件时的后备方案:

    `cloud`无可用 GPU、<6 GB VRAM、<16 GB Apple 统一内存、Intel Mac、Rosetta Python**切换到 Cloud**,除非用户明确强制本地
    情况推荐路径
    硬件检查结果为 `verdict: cloud`**路径 A:Comfy Cloud**
    无 GPU / 想先试用不承诺**路径 A:Comfy Cloud**
    Windows + NVIDIA + 非技术用户**路径 B:ComfyUI Desktop**
    Windows + NVIDIA + 技术用户**路径 C:Portable** 或 **路径 D:comfy-cli**
    Linux + 任意 GPU**路径 D:comfy-cli**(最简单)
    macOS + Apple Silicon**路径 B:Desktop** 或 **路径 D:comfy-cli**

    全自动路径(硬件检查 → 安装 → 启动 → 验证):

    
    bash scripts/comfyui_setup.sh
    # Or with overrides:
    bash scripts/comfyui_setup.sh --m-series --port=8190 --workspace=/data/comfy
    

    它内部运行 hardware_check.py,当结论为 cloud 时拒绝本地安装

    (除非指定 --force-cloud-override),选择正确的

    comfy-cli 标志,并优先使用 pipx/uvx 而非全局 pip,以避免污染

    系统 Python。

    ---

    路径 A:Comfy Cloud(无需本地安装)

    适合没有强力 GPU 或想要零配置的用户。托管在 RTX 6000 Pro 上。

    文档: https://docs.comfy.org/get_started/cloud

  • 在 https://comfy.org/cloud 注册
  • 在 https://platform.comfy.org/login 生成 API 密钥
  • 设置密钥:
  • 
       export COMFY_CLOUD_API_KEY="comfyui-xxxxxxxxxxxx"
    
  • 运行工作流:
  • 
       python3 scripts/run_workflow.py 
         --workflow workflows/flux_dev_txt2img.json 
         --args '{"prompt": "..."}' 
         --host https://cloud.comfy.org 
         --output-dir ./outputs
    

    价格: https://www.comfy.org/cloud/pricing

    并发任务: Free/Standard 为 1,Creator 为 3,Pro 为 5。免费套餐

    无法通过 API 运行工作流——只能浏览模型。使用 /api/prompt

    /api/upload/*/api/view 等需要付费订阅。

    ---

    路径 B:ComfyUI Desktop(Windows / macOS)

    面向非技术用户的一键安装器。目前为 Beta 版。

    文档: https://docs.comfy.org/installation/desktop

  • Windows(NVIDIA): https://download.comfy.org/windows/nsis/x64
  • macOS(Apple Silicon): https://comfy.org
  • Linux 不支持 Desktop——请使用路径 D。

    ---

    路径 C:ComfyUI Portable(仅限 Windows)

    文档: https://docs.comfy.org/installation/comfyui_portable_windows

    从 https://github.com/comfyanonymous/ComfyUI/releases 下载、解压、

    运行 run_nvidia_gpu.bat。通过 update/update_comfyui_stable.bat 更新。

    ---

    路径 D:comfy-cli(全平台——推荐智能体使用)

    官方 CLI 是无头/自动化安装的最佳路径。

    文档: https://docs.comfy.org/comfy-cli/getting-started

    安装 comfy-cli

    
    # Recommended:
    pipx install comfy-cli
    # Or use uvx without installing:
    uvx --from comfy-cli comfy --help
    # Or (if pipx/uvx unavailable):
    pip install --user comfy-cli
    

    以非交互方式禁用数据收集:

    
    comfy --skip-prompt tracking disable
    

    安装 ComfyUI

    
    comfy --skip-prompt install --nvidia              # NVIDIA (CUDA)
    comfy --skip-prompt install --amd                 # AMD (ROCm, Linux)
    comfy --skip-prompt install --m-series            # Apple Silicon (MPS)
    comfy --skip-prompt install --cpu                 # CPU only (slow)
    comfy --skip-prompt install --nvidia --fast-deps  # uv-based dep resolution
    

    默认位置:~/comfy/ComfyUI(Linux)、~/Documents/comfy/ComfyUI

    (macOS/Windows)。通过 comfy --workspace /custom/path install 覆盖。

    启动 / 验证

    
    comfy launch --background                       # background daemon on :8188
    comfy launch -- --listen 0.0.0.0 --port 8190    # LAN-accessible custom port
    curl -s http://127.0.0.1:8188/system_stats      # health check
    

    ---

    路径 E:手动安装(高级 / 不支持的硬件)

    适用于 Ascend NPU、Cambricon MLU、Intel Arc 或其他不受支持的硬件。

    文档: https://docs.comfy.org/installation/manual_install

    
    git clone https://github.com/comfyanonymous/ComfyUI.git
    cd ComfyUI
    pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu130
    pip install -r requirements.txt
    python main.py
    

    ---

    安装后:下载模型

    
    # SDXL (general purpose, ~6.5 GB)
    comfy model download 
      --url "https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/resolve/main/sd_xl_base_1.0.safetensors" 
      --relative-path models/checkpoints
    
    # SD 1.5 (lighter, ~4 GB, good for 6 GB cards)
    comfy model download 
      --url "https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors" 
      --relative-path models/checkpoints
    
    # Flux Dev fp8 (smaller variant, ~12 GB)
    comfy model download 
      --url "https://huggingface.co/Comfy-Org/flux1-dev/resolve/main/flux1-dev-fp8.safetensors" 
      --relative-path models/checkpoints
    
    # CivitAI (set token first):
    comfy model download 
      --url "https://civitai.com/api/download/models/128713" 
      --relative-path models/checkpoints 
      --set-civitai-api-token "YOUR_TOKEN"
    

    列出已安装模型:comfy model list

    安装后:安装自定义节点

    
    comfy node install comfyui-impact-pack             # popular utility pack
    comfy node install comfyui-animatediff-evolved     # video generation
    comfy node install comfyui-controlnet-aux          # ControlNet preprocessors
    comfy node install comfyui-essentials              # common helpers
    comfy node update all
    comfy node install-deps --workflow=workflow.json   # install everything a workflow needs
    

    安装后:验证

    
    python3 scripts/health_check.py
    # → comfy_cli on PATH? server reachable? checkpoints? smoke test?
    
    python3 scripts/check_deps.py my_workflow.json
    # → are this workflow's nodes/models/embeddings installed?
    
    python3 scripts/run_workflow.py 
      --workflow workflows/sd15_txt2img.json 
      --args '{"prompt": "test", "steps": 4}' 
      --output-dir ./test-outputs
    

    图像上传(img2img / Inpainting)

    最简单的方式是在 run_workflow.py 中使用 --input-image

    
    python3 scripts/run_workflow.py 
      --workflow workflows/sdxl_img2img.json 
      --input-image image=./photo.png 
      --args '{"prompt": "make it cyberpunk", "denoise": 0.6}'
    

    该标志会上传 photo.png,然后将其服务器端文件名注入

    schema 中名为 image 的参数。对于 inpainting,请同时传入:

    
    python3 scripts/run_workflow.py 
      --workflow workflows/sdxl_inpaint.json 
      --input-image image=./photo.png 
      --input-image mask_image=./mask.png 
      --args '{"prompt": "fill with flowers"}'
    

    通过 REST 手动上传:

    
    curl -X POST "http://127.0.0.1:8188/upload/image" 
      -F "image=@photo.png" -F "type=input" -F "overwrite=true"
    # Returns: {"name": "photo.png", "subfolder": "", "type": "input"}
    
    # Cloud equivalent:
    curl -X POST "https://cloud.comfy.org/api/upload/image" 
      -H "X-API-Key: $COMFY_CLOUD_API_KEY" 
      -F "image=@photo.png" -F "type=input" -F "overwrite=true"
    

    云端特性

  • Base URL:https://cloud.comfy.org
  • 认证:X-API-Key 请求头(WebSocket 用 ?token=KEY
  • API 密钥:设置一次 $COMFY_CLOUD_API_KEY,脚本会自动识别
  • 输出下载:/api/view 返回 302 重定向到签名 URL;脚本
  • 会跟随重定向,并在从存储后端获取前剥离 X-API-Key

    (不要将 API 密钥泄露给 S3/CloudFront)。

  • 与本地 ComfyUI 的端点差异:
  • /api/object_info/api/queue/api/userdata — 免费套餐返回 403
  • 仅付费可用。

  • 云端将 /history 重命名为 /history_v2(脚本会自动
  • 路由)。

  • 云端将 /models/ 重命名为 /experiment/models/
  • (脚本会自动路由)。

  • WebSocket 中的 clientId 目前被忽略——一个用户的所有连接
  • 收到相同的广播。请在客户端按 prompt_id 过滤。

  • 上传时接受 subfolder 但会被忽略——云端使用扁平命名空间。
  • 并发任务:Free/Standard:1,Creator:3,Pro:5。额外任务自动排队。
  • 使用 run_batch.py --parallel N 充分利用你的套餐等级。

    队列与系统管理

    
    # Local
    curl -s http://127.0.0.1:8188/queue | python3 -m json.tool
    curl -X POST http://127.0.0.1:8188/queue -d '{"clear": true}'    # cancel pending
    curl -X POST http://127.0.0.1:8188/interrupt                      # cancel running
    curl -X POST http://127.0.0.1:8188/free 
      -H "Content-Type: application/json" 
      -d '{"unload_models": true, "free_memory": true}'
    
    # Cloud — same paths under /api/, plus:
    python3 scripts/fetch_logs.py --tail-queue --host https://cloud.comfy.org
    

    注意事项

  • 必须使用 API 格式——所有脚本和 /api/prompt 端点都期望
  • API 格式的工作流 JSON。脚本会检测编辑器格式(顶层

    nodeslinks 数组)并提示你通过

    "Workflow → Export (API)"(较新 UI)或"Save (API Format)"(较旧 UI)重新导出。

  • 服务器必须在运行——所有执行都需要存活的服务器。
  • comfy launch --background 会启动一个。用

    curl http://127.0.0.1:8188/system_stats 验证。

  • 模型名称必须精确——区分大小写,包含文件扩展名。
  • check_deps.py 会做模糊匹配(带/不带扩展名和文件夹

    前缀),但工作流本身必须使用规范名称。使用

    comfy model list 查看已安装内容。

  • 缺少自定义节点——"class_type not found" 表示所需的节点
  • 未安装。check_deps.py 会报告需要安装哪个包;

    auto_fix_deps.py 会为你执行安装。

  • 工作目录——comfy-cli 会自动检测 ComfyUI 工作区。
  • 如果命令报错"no workspace found",请使用

    comfy --workspace /path/to/ComfyUI

    comfy set-default /path/to/ComfyUI

  • 云端免费套餐 API 限制——/api/prompt/api/view/api/upload/*
  • /api/object_info 在免费账户上都返回 403。health_check.py

    check_deps.py 会优雅处理这种情况并给出清晰的提示。

  • 视频/音频工作流的超时——当输出节点为
  • VHS_VideoCombineSaveVideo 等时会自动检测;默认值从 300 秒

    提升到 900 秒。可用 --timeout 1800 显式覆盖。

  • 输出文件名的路径穿越——服务器提供的文件名会
  • 经过 safe_path_join 处理,拒绝任何逃逸 --output-dir 的路径。

    请保持此保护开启——带自定义保存节点的工作流可能产生

    任意路径。

  • 工作流 JSON 即任意代码——自定义节点会运行 Python,因此
  • 提交未知工作流的信任等级与 eval 相同。

    运行前请检查来自不可信来源的工作流。

  • 自动随机种子——在 --args 中传入 seed: -1(或使用
  • --randomize-seed 并省略 seed)即可让每次运行获得新种子。

    实际使用的种子会记录到 stderr。

  • tracking 提示——首次运行 comfy 可能会提示是否开启数据收集。
  • 使用 comfy --skip-prompt tracking disable 以非交互方式跳过。

    comfyui_setup.sh 已为你处理此事。

    验证清单

    使用 python3 scripts/health_check.py 一次性运行整个清单。手动检查:

  • [ ] hardware_check.py 结论为 ok,或用户明确选择了 Comfy Cloud
  • [ ] comfy --version 可用(或 uvx --from comfy-cli comfy --help
  • [ ] curl http://HOST:PORT/system_stats 返回 JSON
  • [ ] comfy model list 显示至少一个 checkpoint(本地),或
  • /api/experiment/models/checkpoints 返回模型(云端)

  • [ ] 工作流 JSON 为 API 格式
  • [ ] check_deps.py 报告 is_ready: true(或仅 node_check_skipped
  • ——云端免费套餐时)

  • [ ] 用小型工作流完成测试运行;输出落在 --output-dir
  • 无头 / 服务器 / CI / 智能体**路径 D:comfy-cli**

    安装指南

    复制下方命令,在终端运行即可安装:

    # 安装到当前项目
    npx skills add comfyui
    # 全局安装 — 所有项目可用
    npx skills add comfyui -g
    ⚡ 一键安装到 GenHub

    需已安装 GenHub 桌面端

    使用指南

    安装完成后,在对话框中直接使用此技能。

    基本信息
    作者 Community 分类 agent 难度 Intermediate 时长 1 hour
    🛠️ 安装命令
    # 安装到当前项目
    npx skills add comfyui
    # 全局安装
    npx skills add comfyui -g

    发表评论