自动化与脚本
用自然语言生成可执行的 ComfyUI 工作流…
当需要把文字描述转成能直接跑的 ComfyUI 工作流 JSON 时,按库存校验后生成节点图。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
用自然语言生成可执行的 ComfyUI 特定
解决思路
- 解析用户意图,拆分为:输出类型(图像/视频/音频)、素材来源(纯文本/参考图/已有视频)、身份保持方式(无/zero-shot InstantID 或 PuLID/LoRA/Kontext)、质量档位(草稿快速迭代 vs 生产最高质量)、特殊需求(ControlNet、inpainting、放大、lip-sync)。
- 读取 state/inventory.json 检查库存:可用 checkpoints 以选出最匹配任务的模型;可用身份模型以判断哪些身份保持方法可行;可用 ControlNet 模型以决定是否启用姿态/深度控制;已安装的自定义节点以确认所需节点都存在;可用 VRAM 以据此优化设置。
- 根据请求与库存选择流水线模式:Text-to-Image(简单生成,Checkpoint → CLIP → KSampler → VAE);Identity-Preserved Image(角色一致性,加 InstantID/PuLID/IP-Adapter);LoRA Character(已训练角色,加 LoRA Loader);Image-to-Video (Wan)(高质量视频,Diffusion Model → Wan I2V → Video Combine);Image-to-Video (AnimateDiff)(快速视频与运动控制,加 AnimateDiff Loader + Motion LoRAs);Talking Head(角色说话,Image → Video → Voice → Lip-Sync);Upscale(提升分辨率,Image → UltimateSDUpscale → Save);Inpainting(局部编辑,Image + Mask → Inpaint Model → KSampler)。
- 按 ComfyUI 工作流格式生成 JSON:每个节点为 {"{node_id}": {"class_type": "{NodeClassName}", "inputs": {...}}};节点 ID 用字符串(通常 "1"、"2"、"3"…);被连接的输入用数组格式 ["source_node_id", output_index];output_index 为从 0 开始的整数;文件名必须与库存中完全一致;seed 用随机大整数或固定值以便复现。
- 生成后校验:每个 class_type 都存在于库存节点列表中;每个模型文件名都存在于库存模型列表中;所有必需连接齐全(无悬空输入);VRAM 估算不超过可用 VRAM;分辨率与所选模型兼容(SD1.5 用 512,SDXL/FLUX 用 1024)。
- 输出:在线模式通过 comfyui-api 技能排队执行;离线模式把 JSON 保存到 projects/{project}/workflows/ 并起描述性文件名。
- 参考模板:基础 Text-to-Image (FLUX) 使用 LoadCheckpoint → 两个 CLIPTextEncode(正/负提示词)→ EmptyLatentImage → KSampler → VAEDecode → SaveImage;身份保持(InstantID + IP-Adapter)在基础模板上增加加载参考图节点、InstantID Model Loader + Apply InstantID、IPAdapter Unified Loader + Apply IPAdapter、FaceDetailer 后处理;视频生成 (Wan I2V) 使用不同加载链:Load Diffusion Model(不是 LoadCheckpoint)、Wan I2V Conditioning、EmptySD3LatentImage(带帧数)、Video Combine (VHS)。
- 按显存估算表控制规模:FLUX FP16 约 16GB、FLUX FP8 约 8GB、SDXL 约 6GB、SD1.5 约 4GB、InstantID +4GB、IP-Adapter +2GB、每个 ControlNet +1.5GB、Wan 14B 约 20GB、Wan 1.3B 约 5GB、AnimateDiff +3GB、FaceDetailer +2GB。
- 避免常见错误:输出索引写错(CheckpointLoader 输出 [model, clip, vae] 对应索引 [0, 1, 2]);InstantID 的 CFG 过高(应用 4-5,而非默认 7-8);分辨率与模型不匹配(FLUX/SDXL=1024,SD1.5=512);缺少 VAE(FLUX 需要显式 VAE,如 ae.safetensors);模型放错加载器(diffusion 模型要用 LoadDiffusionModel,而不是 LoadCheckpoint)。
- 查阅参考文件:references/workflows.md(逐节点详细模板)、references/models.md(模型文件与路径)、references/prompt-templates.md(各模型专用提示词)、state/inventory.json(当前库存缓存)。
适用边界 · 注意事项
- 不涉及 ComfyUI 安装、自定义节点开发、Python 脚本编写、模型训练、硬件建议或架构讲解。
- 没有可读取的库存(state/inventory.json)时无法校验节点与模型,不应直接生成。
- 请求超出已安装节点或可用模型/显存能力时,不应强行生成不可执行的工作流。