> ## Documentation Index
> Fetch the complete documentation index at: https://comfyart.org/llms.txt
> Use this file to discover all available pages before exploring further.

# 自定义工作流

> 让 ComfyArt 的功能跑你自己的 ComfyUI 工作流。

画布上的每个操作背后都是一份 ComfyUI 工作流。大部分功能的内置工作流都可以换成你自己的，比如换一个生图模型或编辑模型。

ComfyArt 靠**节点标题**找到要填的节点：给接收图片、提示词、尺寸的节点改标题，导出 API 格式后上传。可以自己做，也可以交给 agent。

## 交给 agent

对 [ComfyArt 的 agent](/zh/guides/agent)（或任何通过 [MCP](/zh/guides/mcp) 接入的 agent）说「把这个工作流接到快捷编辑」，并给它 API 格式的文件。它会用 `custom_workflow` 工具读规则、改标题、检查并安装。这套规则也是一个内置 skill：**接入自定义工作流**。

没接入 ComfyArt 的 agent：打开项目菜单里的 **自定义工作流**，点 agent 提示旁边的按钮复制规则给它。

## 自己做

### 1. 给节点改标题

在 ComfyUI 里右键节点 → **Title（标题）**，加上标记：

| 标记 | 节点 | ComfyArt 填什么 |
| - | - | - |
| `@image` | Load Image | 选中的图片 |
| `@image2` | Load Image | 第二张图（风格迁移的参考图） |
| `@mask` | Load Image (as Mask) 或 Load Image | 要修改的区域，白色 = 修改 |
| `@last` | Load Image | 视频的尾帧 |
| `@prompt` | 文本直接写在节点上的节点：CLIP Text Encode、TextEncodeQwenImageEdit、String (Multiline) 等 | 提示词 |
| `@size` | 带 `width` 和 `height` 的节点，比如 Empty Latent Image | 宽和高（没有 `@count` 时还会填 `batch_size`） |
| `@width`、`@height` | Int | 宽和高分开时用 |
| `@count` | Int，或带 `batch_size` / `amount` 的节点 | 生成几个 |
| `@seconds` | Int / Float，或带 `seconds` / `duration` 的节点 | 视频时长，单位是**秒** |
| `@save` | Save Image、Save Video、Preview Image 等 | 结果节点。只有工作流有多个末端节点时才需要 |

标题不区分大小写，其他文字会被忽略，所以 `Positive @prompt` 也行。一个节点要接收多个值时可以写多个标记：`@prompt @size`。每个标记只能标一个节点。

CLIP Text Encode 的文本来自别的节点时，把 `@prompt` 标在那个节点上。视频工作流用帧数而不是秒数时，加一个标题为 `@seconds` 的 Int 节点，再用数学节点换算成帧数。

ComfyArt 每次运行都会随机所有 `seed` 和 `noise_seed`，也会自动找到放在子文件夹里的模型，这些都不用标。

ComfyArt 自带的工作流（`custom_nodes/ComfyArt/workflows/`）也是这样标的，可以直接拿来当模板改。里面其他的 `@` 名字（`@sampler`、`@decode` 等）是内部用的，对自定义工作流没有作用。内置的扩展工作流在图里自己扩边，不能当扩展的模板。

### 2. 导出 API 格式

在 ComfyUI 里选 **工作流 → 导出（API）**。普通保存的工作流（里面有 `nodes` 列表的那种）会被拒绝。

### 3. 上传并指定

打开项目菜单（左上角图标）→ **自定义工作流**。功能按图像生成、图像编辑、图像工具和视频分组。点某个功能旁边的上传按钮：ComfyArt 会检查标记、告诉你缺了什么，通过后就让这个功能用上它。每个功能的文件放在各自的文件夹里，即 ComfyUI 用户目录下的 `comfyart/workflows/<功能>/`（`edit`、`upscale`、`video` 等），下拉菜单里只列这个文件夹的文件。想换回来就选 **内置**。ComfyArt 不会删除你的工作流；不要的直接去那个文件夹里删文件；正在用的文件被删后，这个功能会自动回到内置。

## 各功能需要的标记

| 功能 | 必需 | 可选 | 说明 |
| - | - | - | - |
| 文生图 | `@prompt`、`@size`（或 `@width` + `@height`） | `@count` | 作为一个新模型出现在生成器里。参考图和底图不会传入。 |
| 快捷编辑 / 编辑文字 | `@image`、`@prompt` | | 合成和样机融合也会用它。 |
| 风格迁移 | `@image`、`@prompt` | `@image2` | 没有参考图时，`@image2` 填同一张图。 |
| 局部重绘 / 点选修改 | `@image`、`@prompt` | | ComfyArt 先裁出选区交给你的工作流，再把结果贴回原图。结果节点需要有 `images` 输入。 |
| 扩展 | `@image`、`@mask`、`@prompt` | | ComfyArt 先扩好边，你的工作流收到的是扩边后的图和新区域的遮罩。 |
| 放大 | `@image` | | ComfyArt 会把结果缩放到选定的倍数。结果节点需要有 `images` 输入。 |
| 去背景 | `@image` | | |
| 橡皮 | `@image`、`@mask` | | 编辑元素和图层拆分时补背景也用它。 |
| 多角度 | `@image`、`@prompt` | | 提示词是视角描述，比如 `<qma> front-right quarter view eye-level shot medium shot`。 |
| 图层拆分 | `@image` | `@prompt`、`@count` | `@count` 是层数。 |
| 视频生成 | `@prompt`、`@size` | `@image`、`@last`、`@seconds` | 用于首尾帧模式。参考生视频、动作控制、对口型和分镜仍用内置模型。 |
| 动态图片 | `@image`、`@prompt` | `@size`、`@seconds`、`@last` | 开启循环时，`@last` 会再收到一次原图。 |

ComfyArt 有图片要传（首帧、尾帧、风格参考图）而工作流没有对应标记时，会报错说明，而不是悄悄不用这张图。

分镜、视频延长、增强细节放大、移动对象和视频放大始终用内置工作流。

## 示例：换一个编辑模型

1. 在 ComfyUI 里打开你想用的编辑工作流。
2. 把 Load Image 节点标题改为 `@image`，把写修改指令的节点标题改为 `@prompt`。
3. 导出 API 格式，上传，然后给 **快捷编辑 / 编辑文字** 选上它。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.