mcpField
C
comfyui-workflow-builder

comfyui-workflow-builder

github.com/mckruz创意与媒体922.1k 次安装32 周前更新
代码仓库

关于 comfyui-workflow-builder

comfyui-workflow-builder 可将自然语言需求转换为可执行的 ComfyUI 工作流 JSON。它先检查可用模型、节点和显存,再选择并验证流程,适合构建图像、视频或音频工作流。

主要功能

  1. 01根据自然语言生成工作流
  2. 02按清单检查模型和节点
  3. 03选择图像、视频和音频流程
  4. 04验证连接与显存需求
  5. 05在线排队或离线导出 JSON

适用场景

  1. 01构建文生图工作流
  2. 02创建身份保持或局部重绘流程
  3. 03使用 Wan 或 AnimateDiff 生成视频流程
  4. 04根据已安装模型和可用显存调整设置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mckruz/comfyui-expert --skill comfyui-workflow-builder

安装后在 Claude Code 中输入/comfyui-workflow-builder确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

eval/
benchmark.yaml
EVAL.md
run-eval.sh
test-cases.yaml
trigger-tests.yaml
eval/results/
.gitignore
.gitkeep

详细介绍

ComfyUI 工作流构建器

将自然语言请求转换为可执行的 ComfyUI 工作流 JSON。生成前始终根据库存进行验证。

工作流生成流程

步骤 1:理解请求

将用户的意图解析为:

  • 输出类型:图像、视频或音频
  • 源素材:纯文本、参考图像、现有视频
  • 身份识别方法:无、零样本(InstantID/PuLID)、LoRA、Kontext
  • 质量等级:草稿(快速迭代)或正式制作(最高质量)
  • 特殊要求:ControlNet、局部重绘、放大、口型同步
步骤 2:检查库存

读取 state/inventory.json,以确定:

  • 可用的检查点 → 选择最适合任务的检查点
  • 可用的身份模型 → 确定可使用的方法
  • 可用的 ControlNet 模型 → 如果可用,则启用姿势/深度控制
  • 已安装的自定义节点 → 确认所有必需节点均已存在
  • 可用的 VRAM → 据此优化设置
步骤 3:选择管线模式

根据请求和库存,从以下模式中选择:

模式适用场景关键节点
文本转图像简单生成检查点 → CLIP → KSampler → VAE
保持身份一致的图像角色一致性+ InstantID/PuLID/IP-Adapter
LoRA 角色经过训练的角色+ LoRA Loader
图像转视频(Wan)高质量视频Diffusion Model → Wan I2V → Video Combine
图像转视频(AnimateDiff)快速视频、运动控制+ AnimateDiff Loader + Motion LoRAs
会说话的头像角色说话图像 → 视频 → 语音 → 口型同步
放大提升分辨率图像 → UltimateSDUpscale → 保存
局部重绘编辑区域图像 + 遮罩 → Inpaint Model → KSampler
步骤 4:生成工作流 JSON

ComfyUI 工作流格式:

{
  "{node_id}": {
    "class_type": "{NodeClassName}",
    "inputs": {
      "{param_name}": "{value}",
      "{connected_param}": ["{source_node_id}", {output_index}]
    }
  }
}

规则:

  • 节点 ID 为字符串(通常为 "1"、"2"、"3"……)
  • 已连接的输入使用数组格式:["source_node_id", output_index]
  • 输出索引为从 0 开始的整数
  • 文件名必须与库存中的名称完全一致
  • Seed 值:使用随机的大整数,或使用固定值以确保可复现
步骤 5:验证

向用户展示前:

  1. 每个 class_type 都存在于库存的节点列表中
  2. 每个模型文件名都存在于库存的模型列表中
  3. 所有必需的连接均已设置(无悬空输入)
  4. VRAM 估算值未超过可用 VRAM
  5. 分辨率与所选模型兼容(SD1.5 使用 512,SDXL/FLUX 使用 1024)
步骤 6:输出

在线模式:通过 comfyui-api skill 排队 离线模式:将 JSON 保存到 projects/{project}/workflows/,并使用描述性名称

工作流模板

基础文本转图像(FLUX)
{
  "1": {
    "class_type": "LoadCheckpoint",
    "inputs": {"ckpt_name": "flux1-dev.safetensors"}
  },
  "2": {
    "class_type": "CLIPTextEncode",
    "inputs": {"text": "{positive_prompt}", "clip": ["1", 1]}
  },
  "3": {
    "class_type": "CLIPTextEncode",
    "inputs": {"text": "{negative_prompt}", "clip": ["1", 1]}
  },
  "4": {
    "class_type": "EmptyLatentImage",
    "inputs": {"width": 1024, "height": 1024, "batch_size": 1}
  },
  "5": {
    "class_type": "KSampler",
    "inputs": {
      "seed": 42,
      "steps": 25,
      "cfg": 3.5,
      "sampler_name": "euler",
      "scheduler": "normal",
      "denoise": 1.0,
      "model": ["1", 0],
      "positive": ["2", 0],
      "negative": ["3", 0],
      "latent_image": ["4", 0]
    }
  },
  "6": {
    "class_type": "VAEDecode",
    "inputs": {"samples": ["5", 0], "vae": ["1", 2]}
  },
  "7": {
    "class_type": "SaveImage",
    "inputs": {"filename_prefix": "output", "images": ["6", 0]}
  }
}
保持身份一致(InstantID + IP-Adapter)

在基础模板中添加以下内容:

  • 加载参考图像节点
  • InstantID Model Loader + Apply InstantID
  • IPAdapter Unified Loader + Apply IPAdapter
  • FaceDetailer 后处理

完整节点设置请参阅 references/workflows.md。

视频生成(Wan I2V)

使用不同的加载器链:

  • Load Diffusion Model(而非 LoadCheckpoint)
  • Wan I2V Conditioning
  • EmptySD3LatentImage(包含帧数)
  • Video Combine (VHS)

完整设置请参阅 references/workflows.md 中的工作流 4。

VRAM 估算

组件大致 VRAM 用量
FLUX FP1616GB
FLUX FP88GB
SDXL6GB
SD1.54GB
InstantID+4GB
IP-Adapter+2GB
ControlNet(每个)+1.5GB
Wan 14B20GB
Wan 1.3B5GB
AnimateDiff+3GB
FaceDetailer+2GB

常见错误

  1. 输出索引错误:CheckpointLoader 按索引 [0, 1, 2] 输出 [model, clip, vae]
  2. InstantID 的 CFG 过高:使用 4-5,而非默认的 7-8
  3. 模型分辨率错误:FLUX/SDXL=1024,SD1.5=512
  4. 缺少 VAE:FLUX 需要显式指定 VAE(ae.safetensors)
  5. 加载器与模型不匹配:Diffusion 模型需要使用 LoadDiffusionModel,而非 LoadCheckpoint

参考文件

  • references/workflows.md - 详细的逐节点模板
  • references/models.md - 模型文件和路径
  • references/prompt-templates.md - 特定于模型的提示词
  • state/inventory.json - 当前库存缓存

评论

支持 Markdown