custom_nodes/ComfyTV/workflows/<kind>/ 目录下的一个 JSON 文件。把文件放进去,重启 ComfyUI。无需改 Python 代码。
text, image, shot-images, video, audio, storyboard, panorama, timeline, upscale, outpaint, inpaint, erase, image-edit, multiangle, relight, cutout, multiview, sequence, audio-vocal, audio-bg。
文件放在哪个文件夹就属于哪个 类别。每个已上线 类别 在自己目录下有 README.md 说明运行时输入和工作流需要的节点。请先看相关的 per-kind README:
workflows/audio/README.zh.mdworkflows/image/README.zh.mdworkflows/image-edit/README.zh.mdworkflows/inpaint/README.zh.mdworkflows/outpaint/README.zh.mdworkflows/upscale/README.zh.mdworkflows/cutout/README.zh.mdworkflows/erase/README.zh.mdworkflows/relight/README.zh.mdworkflows/multiangle/README.zh.mdworkflows/multiview/README.zh.mdworkflows/sequence/README.zh.md
如何使用自定义工作流
- ComfyUI 里 Workflow → 导出(默认 GUI 格式,不要用 “Save (API Format)”)。
- 保存为
workflows/<kind>/<name>.json。 - 重启 ComfyUI。下拉框里就会出现这个新工作流。
my-workflow → “My Workflow”)、用文件夹名注册 kind、检测 SaveImage / SaveVideo / PreviewImage 节点作为结果出口。
配置 stage 输入怎么接
工作流接进来之后,大多数情况下你需要告诉 ComfyTV:stage 面板里输入的提示词接到哪个节点、上游的图接到哪个 LoadImage、seed 用什么。 通过侧边栏改:画布上点中 stage,左侧 ComfyTV 侧边栏里逐个 widget 设。改完即生效,不必重启。详细操作见 sidebar-config-editor.zh.md。 想分享给别人:侧边栏底部有 ⇩ 导出 preset.json 按钮,把当前绑定打包成<name>_preset.json。和工作流 JSON 一起发出去,对方第一次加载就会自动应用你的绑定。
一般情况下你不需要手写_preset.json,用侧边栏配,要分享就导出。如果你确实想知道_preset.json的 JSON 格式,参考内置的例子:workflows/inpaint/flux-fill-inpaint_preset.json、workflows/video/local-ltx-2.3-t2v_preset.json。
重新导出后更新
ComfyUI 里重新导出工作流(换模型版本、加一步),直接覆盖workflows/<kind>/<name>.json 就行。ComfyTV 检测到文件修改时间变了,下次该 stage 用这个工作流时会重新读一遍。
只要绑定引用的节点 ID 还存在,绑定继续工作。重命名或删除了节点,运行时会报:
inputs references missing workflow node "X",did the API workflow get re-exported with different node ids?
打开侧边栏,把指向旧 id 的绑定改到新 id 上。