内容
# 舒适起草员
**让 ComfyUI 工作流程起草更加舒适,让人类更容易阅读。**
一个本地优先的 [模型上下文协议](https://modelcontextprotocol.io) 服务器,允许编码代理(Claude Code、Claude Desktop、Cursor 等)构建、修复、移植、验证和运行 ComfyUI 工作流程**针对您自己的 ComfyUI 实例** — 并以干净、有序、完全标记的工作流程交付:计算布局、彩色阶段组、标题节点、绿色高亮的“您可以调整的旋钮”,以及降价指导注释,解释哪些调整后的设置应保持不变以及原因。

每个 ComfyUI 的代理工具都可以发出原始 API 格式的 JSON — 一个可用的但难以阅读的未定位节点的堆积。起草员存在的原因是完成后的绘图:

* 上方的注释是自动生成的:起草员检测到检查点是一个 DMD 蒸馏的 SDXL 合并,并将 CFG 调整为 1.0,4 步,lcm/sgm_uniform — 然后写下原因,以便打开工作流程的人员不会“修复”回 CFG 7。*
## 它做什么
- **起草** — 从 ComfyUI 的捆绑模板(始终与最新模型保持一致)或从头开始构建语义图操作(`add_node`、`connect`、`set_widget` — 针对实时实例的模式进行验证)。
- **组织** — 区分因素:管道阶段自动布局、彩色组、人类标题(`✅ Positive Prompt`、`Base Pass`)、绿色高亮用户可编辑的旋钮和生成的注释,分为两个寄存器: *"👇 在此处输入您的提示"* vs *"⚙️ turbo 模型 — CFG 保持在 1.0"*。
- **诊断和现代化** — 给予一个旧的损坏工作流程:它报告针对您的实时实例的每个不兼容性(节点名称更改、部件布局更改、缺少模型文件,并建议最接近的安装文件)并解析缺少的自定义节点到可安装的软件包,通过官方 Comfy 注册表。
- **移植** — 跨模型家族重新定位(`sdxl` → `flux`,...):交换加载器拓扑结构(检查点 ⇄ 单独的 UNET/CLIP/VAE 加载器)并重新连接消费者,重新调整 CFG/步骤/采样器 * 和技术节点(FaceDetailer 设置是特定于家族的 — 没有通用的细节配置),交换潜在节点类,选择安装的模型文件,并标记所有需要人工判断的内容。
- **验证和证明** — 结构 + 实时验证,然后在工作流程交付前进行实际渲染并返回预览图像。
- **学习** — 一个两层知识系统:一个策划的每个家族的底层(SD1.5/SDXL/SD3.5/FLUX/Krea-2/Chroma/Qwen-Image/Wan/LTX,变体感知 turbo/lightning/DMD/distills)加上一个**持久的学习覆盖层**:当代理研究新模型的更好设置时,`record_learning` 保存它们,以便每个未来的会话都变得更智能。学习条目可以携带其自己的 `detect` 块,以便全新研究一次的模型在下一次会话中变为**自我检测**,而不是被误认为是一个类似的家族。
- **保持当前** — 真相基础是您运行的 ComfyUI(`/object_info`、实时模板、实时模型列表),而不是一个捆绑的快照。
## 要求
- Python ≥ 3.11 搭配 [uv](https://docs.astral.sh/uv/) (或 pip)
- 一个正在运行的 ComfyUI 实例(默认 `http://127.0.0.1:8188`)
## 安装
**克劳德代码:**
```bash
claude mcp add comfy-draftsman -e COMFYUI_URL=http://127.0.0.1:8188 -- uvx --from git+https://github.com/EnragedAntelope/comfy-draftsman comfy-draftsman
```
**克劳德桌面 / 其他 MCP 客户端** (`mcpServers` 配置):
```json
{
"mcpServers": {
"comfy-draftsman": {
"command": "uvx",
"args": ["--from", "git+https://github.com/EnragedAntelope/comfy-draftsman", "comfy-draftsman"],
"env": { "COMFYUI_URL": "http://127.0.0.1:8188" }
}
}
}
```
然后只需向您的代理提出以下请求:
> *"为我创建一个带有 LoRA 支持和面部细节器的 Krea 工作流程,并标记出来,以便我的朋友可以使用它。*"
>
> *"这是一个旧的 SD1.5 工作流程 JSON,已经无法加载 — 请修复并移植到 SDXL。*"
>
> *"请将我下载的工作流程进行整理和组织。*"
### 配置
| 环境变量 | 默认值 | 用途 |
|---|---|---|
| `COMFYUI_URL` | `http://127.0.0.1:8188` | 要驱动的 ComfyUI 实例 |
| `DRAFTSMAN_SESSION_DIR` | `./.draftsman-sessions` | 正在进行的工作流程的持久化位置 |
| `DRAFTSMAN_LEARNED_DIR` | `~/.comfy-draftsman/learned` | 持久化的学习模型知识 |
| `DRAFTSMAN_TIMEOUT` | `30` | HTTP 超时(秒) |
### 减少权限提示
构建工作流程会产生许多工具调用(模式查找、验证、布局),因此您的代理可能会要求批准每个调用。起草员使用 MCP `readOnlyHint` 注释标记其只读工具,并批量处理模式查找(`get_node_info` 接受列表),但实际提示是您的**客户端**的策略。要“一次性批准”,请将只读工具添加到您的客户端的允许列表中 — 请参阅 **[docs/PERMISSIONS.md](docs/PERMISSIONS.md)** 以获取复制粘贴的克劳德代码 `permissions.allow` 块(以及允许 `run_workflow` / `save_workflow` 等变异工具的取舍)。
## 工具
**发现** — `get_instance_info`、`search_nodes`、`get_node_info`、`list_models`、`list_templates`
**创作** — `create_workflow`(空白或模板种子)、`import_workflow`(UI 或 API 格式)、`inspect_workflow`、`edit_workflow`(批量操作)、`organize_workflow`、`lint_workflow`
**正确性** — `validate_workflow`(实时检查 + 最接近的匹配建议)、`diagnose_workflow`(验证 + 注册表解析缺少的节点)、`port_workflow`
**执行和交付** — `run_workflow`(渲染 + 预览图像)、`save_workflow`(位于 ComfyUI 的工作流程浏览器中)、`export_workflow_json`
**生态系统和知识** — `resolve_missing_nodes`、`search_node_packs`、`get_model_guidance`、`record_learning`
**提示** — `build_workflow`、`modernize_workflow`(引导流程) · **资源** — `draftsman://workflow-format`、`draftsman://knowledge/{family}`
## 它如何保持正确
- 图形模型忠实地循环遍历 ComfyUI 的 UI 工作流程格式(模式 0.4),并序列化为 API 格式,同时处理一些细节:位置部件数组(包括 `control_after_generate` 槽)、转换部件连接、原始节点烘焙、Reroute 跟踪、静音/绕过语义。
- 所有操作都针对实时 `/object_info` 进行验证 — 组合检查同时作为“此模型是否实际安装”的检查。
- 测试套件包括协议级别的端到端测试,构建、验证、组织、**渲染**和在真实的 ComfyUI 实例上保存真实的工作流程。
## 安全说明
- 仅在标准输入/输出上运行;服务器不打开任何监听端口。
- 只与您配置的 ComfyUI URL 和(只读)官方 Comfy 注册表 `api.comfy.org` 进行通信。
- 它从不安装自定义节点。`resolve_missing_nodes` 告诉您**哪个**软件包提供缺少的节点以及如何自行安装 — 自定义节点软件包执行任意代码,因此该决定权交给您。
## 开发
```bash
git clone https://github.com/EnragedAntelope/comfy-draftsman
cd comfy-draftsman
uv sync --group dev
uv run pytest # 单元测试(不需要 ComfyUI)
uv run pytest -m integration # 需要一个实时实例:COMFYUI_TEST_URL=http://127.0.0.1:8288
uv run ruff check .
```
存储库的 `.comfyui-test/` 约定(gitignored)保留了一个用于集成测试的 disposable ComfyUI 克隆 — 请参阅 `tests/test_integration_live.py`。
## 相关项目
- [artokun/comfyui-mcp](https://github.com/artokun/comfyui-mcp) — 一个用于 ComfyUI 的广泛本地控制平面(108 种工具:模型管理、节点管理、过程控制)。起草员故意设计得狭隘且互补:其输出工件是有组织且注释良好的工作流程。如果您想要广度 + 完成度,请同时运行两者。
- [Comfy Cloud MCP](https://docs.comfy.org/development/cloud/mcp-server) — 官方服务器;仅限云使用。
## 许可证
MIT