ComfyUI 是 OpenMontage 提供的技能,用于在调用 comfyui_image、comfyui_video、comfyui_music 之前做准备,也用于将社区 ComfyUI 工作流转换为 OpenMontage 工具调用。
用途与前提:该技能面向图像、视频、音乐三类生成任务。ComfyUI 服务必须先在本地运行,工具才能生成;默认服务器为 http://localhost:8188,可通过 COMFYUI_SERVER_URL 覆盖。若需为不同能力使用不同 GPU 或不同模型集的独立 ComfyUI 实例,可用 COMFYUI_IMAGE_SERVER_URL、COMFYUI_VIDEO_SERVER_URL、COMFYUI_MUSIC_SERVER_URL 分别覆盖对应工具;单服务器部署无需设置这些变量。健康与硬件状态来自 GET /system_stats。
主要能力:任务通过 POST /prompt 提交,完成结果从 GET /history/{prompt_id} 读取,产物字节通过 GET /view 下载。视频、音乐等长等待任务优先使用 ComfyUI 的 websocket 推送以及时发现完成或错误;若未安装 websocket-client,则自动回退到 REST 轮询。超时可恢复:将错误中的 prompt_id 作为 resume_prompt_id 传入,即可继续等待同一任务,无需重新提交。
工作流选择:当请求操作与捆绑工作流匹配,且本机具备所需模型和显存时,使用捆绑工作流。当用户需要社区方案、更低显存模型、不同风格系列或自定义节点时,使用自定义 workflow_json 或 workflow_path。工作流必须从 ComfyUI 以 API 格式 JSON 导出,而非 UI 布局格式;若下载的工作流无法提交,应重新以 API 格式导出。8GB-12GB GPU 可优先考虑 Wan 2.1 1.3B、LTXV FP8 或量化工作流、Wan 2.2 GGUF/量化社区工作流等低占用方案;捆绑的 Wan 2.2 14B FP8 视频工作流属于 16GB 级别路径,并非所有提供方的下限。不能承诺任意自定义工作流都能在特定机器上运行,实际资源需求由工作流、量化、分辨率、帧数和卸载设置决定。
输出节点约定:自定义工作流必须传 output_node,选择写出最终产物的节点,通常是 SaveImage、SaveVideo、VHS_VideoCombine 或其他终端保存节点。节点 ID 以字符串传入,例如 "108",不要传类名。若工作流有多个保存节点,应选择最终交付节点,而非预览或中间产物。
模板节点与固定节点:执行前应识别模板节点,包括提示词文本、种子、尺寸、帧数、源图像、采样器设置和输出文件名前缀。固定节点包括模型加载器、VAE、文本编码器、LoRA 加载器、调度器和图连接,除非工作流作者有意支持定制,否则不应修改。对社区工作流,应检查每个加载器节点并记录所需模型或自定义节点;缺失模型可通过工具的结构化 missing_models 载荷处理。
视频工作流要求:视频工作流的空 latent 节点必须是视频 latent,例如 Wan 2.2 t2v 使用 EmptyHunyuanLatentVideo,图像条件变体使用 Wan22ImageToVideoLatent 或 WanImageToVideo。帧数放在 length,batch_size 表示生成多少个独立片段并保持为 1。将 EmptyLatentImage 的 batch_size 设为帧数是陷阱:它会请求 N 张不相关图像,生成的 MP4 虽帧数、时长和编码正确且能通过 ffprobe,但画面会频闪。运行不熟悉的视频工作流前应检查 latent 节点。
模型与 LoRA:可使用 ComfyUI Manager 或工作流作者提供的模型链接,并遵守模型许可。模型应放入加载器节点预期的目录:扩散模型在 ComfyUI/models/diffusion_models/,文本编码器在 ComfyUI/models/text_encoders/,VAE 在 ComfyUI/models/vae/,LoRA 在 ComfyUI/models/loras/。LoRA 堆叠应使用 LoraLoader 或 LoraLoaderModelOnly 链,并记录每个 LoRA 名称及 strength_model、strength_clip。当前 ComfyUI 工具不会向任意图注入 LoRA;如需 LoRA,应提供已包含 LoRA 加载器链的工作流并传递模型栈来源信息。
来源记录:自定义工作流应尽量提供 workflow_name 和 workflow_model。非捆绑工作流还应提供 workflow_model_stack 以复现,包括基础检查点或扩散模型、量化、文本编码器、VAE、LoRA 及强度、采样器或调度器、步数和引导系数(若工作流暴露)。工具会记录最终工作流哈希;该哈希连同模型栈、种子、尺寸和提示词构成可复现契约。
失败处理:服务器不可用时,应提示结构化设置建议,首选启动 ComfyUI 或设置 COMFYUI_SERVER_URL。模型缺失时读取 data.missing_models[],每项通常包含文件名、角色、目标位置提示和下载 URL(若 OpenMontage 已知)。自定义节点缺失时,请用户通过 ComfyUI Manager 或作者文档安装并重启 ComfyUI。本地长渲染超时,应先检查 ComfyUI 历史再从头重试,服务器可能已完成;也可用超时错误中的 prompt_id 作为 resume_prompt_id 继续等待。
音乐生成:捆绑默认使用 ACE-Step v1(3.5B)文生音频,基于 ComfyUI 原生 TextEncodeAceStepAudio/EmptyAceStepLatentAudio 节点(核心节点,非第三方包)。prompt 映射到捆绑工作流的 tags 字段,描述风格、流派、情绪,例如 "upbeat electronic pop, female vocals",与 suno_music 的“prompt = 音乐描述”约定一致。lyrics 是独立可选字段,纯音乐留空,非英语歌词可使用 [verse]/[chorus]/[bridge] 结构标签和 [zh]/[ja]/[ko] 等语言代码前缀。duration_seconds、steps、cfg、lyrics_strength 和 seed 可在捆绑工作流上调整。缺失 ace_step_v1_3.5b.safetensors 时通过 data.missing_models[] 契约暴露。若需 ACE-Step 1.5、其他节点包或非 ACE-Step 音频模型,可回退到 workflow_json/workflow_path + output_node,此时 prompt 仅用于来源记录和日志,且必须已内置到图中。output_node(捆绑或自定义)应写出最终音频,捆绑工作流为 SaveAudioMP3;客户端从该节点的 "audio" 输出键读取产物,与图像/视频保存节点的 "images" 相对应。自定义工作流同样应提供 workflow_name/workflow_model/workflow_model_stack 用于来源记录。
限制:Partner Nodes 为托管服务,gemini_omni_flash、seedance_2.5 和 minimax_h3_api 在 comfyui_video 中是官方 ComfyUI Partner Nodes,调用托管 API,需要网络访问、已登录 Comfy 账户和预付额度;不能因为图在本地 ComfyUI 进程中运行就将其描述为本地、离线或免费。minimax_h3_local 是独立开放权重路径,需要官方 MiniMax H3 工作流以 API 格式导出、其 output_node 以及工具报告的模型栈。