Photoshop ComfyUI MCP 桥接(或:Photoshop ComfyUI MCP 桥接工具)
一个全面的集成系统,能够将Adobe Photoshop与ComfyUI和MCP(模型上下文协议)连接起来,实现支持全遮罩的AI图像处理工作流。
🌟 特点
核心功能
- 获取活动文档 - 将当前Photoshop文档导出为图像
- 创建图层 - 生成带有可选图像内容的新图层
- 创建文档 - 通过编程创建新的Photoshop文档
- 文档信息 - 获取详细的文档信息
口罩支持
- 通道提取 - 提取RGB/Alpha通道作为遮罩
- 图层蒙版 - 获取并应用图层蒙版
- 掩码操作 - 反转和操作遮罩
- 通道到遮罩 - 将任意通道本地转换为掩码
🏗️ 建筑学
┌─────────────────┐ ┌──────────────────┐
│ ComfyUI │◄────────┤ Node.js Bridge │
│ Custom Nodes │ HTTP │ Server │
└─────────────────┘ └──────────────────┘
│
│ WebSocket
▼
┌─────────────────┐ ┌──────────────────┐
│ MCP Server │◄────────┤ Photoshop UXP │
│ (Chatbots) │ HTTP │ Plugin │
└─────────────────┘ └──────────────────┘📦 组件
- UXP 插件 (
uxp-plugin/) - 搭载API接口的Photoshop扩展程序 - ComfyUI 节点 (
comfyui-nodes/- 用于ComfyUI工作流的自定义节点 - MCP 服务器 (
mcp-server/) - 用于AI助手的MCP工具 - 桥接服务器 (
bridge-server/- Node.js HTTP/WebSocket 桥接器
🚀 快速入门
先决条件
- Adobe Photoshop 2023版或更高版本
- ComfyUI 已安装
- Node.js 18+(用于桥接服务器)
- Python 3.10+(用于MCP服务器)
安装
1. 安装桥接服务器
cd bridge-server
npm install
npm start桥接服务器运行在 http://localhost:3000 (HTTP) 和 ws://localhost:3001 (WebSocket)(中文可译为“(网络套接字)”,但通常直接使用“WebSocket”这一术语,因其已成为行业标准)
2. 安装UXP插件
- 打开Adobe UXP开发者工具
- 添加插件 → 选择
uxp-plugin/manifest.json - 加载插件
- 该插件将自动连接到桥接服务器
3. 安装ComfyUI节点
cd ComfyUI/custom_nodes/
git clone https://github.com/TheWhykiki/photoshop-comfyui-mcp-bridge.git
cd photoshop-comfyui-mcp-bridge/comfyui-nodes
pip install -r requirements.txt重启ComfyUI。节点将出现在 Photoshop 类别。
4. 安装MCP服务器
cd mcp-server
pip install -r requirements.txt
python server.py在您的MCP客户端配置(例如,Claude Desktop)中添加:
{
"mcpServers": {
"photoshop": {
"command": "python",
"args": ["/path/to/mcp-server/server.py"]
}
}
}📚 使用示例
ComfyUI 工作流示例
[PS Get Active Image] → [Image Processing] → [PS Create Layer]
↓
[PS Get Channel Mask (Red)] → [Mask Processing] → [PS Apply Mask]MCP 示例(与 Claude 一起)
User: "Extract the red channel from my Photoshop document as a mask"
Claude: *uses get_channel_as_mask tool with channel="red"*直接API示例
// Get active document
const response = await fetch('http://localhost:3000/api/getActiveDocImage');
const data = await response.json();
console.log(`Image: ${data.width}x${data.height}px`);🎨 可用节点
ComfyUI 节点
| 节点 | 输入 | 输出 | 描述 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 中文翻译 | ------ | -------- | --------- | ------------- | 中文对应 | ------ | -------- | --------- | ------------- | (此处为格式说明,实际翻译不包含此句) PS Get Active Image |
| - | 图像,宽度,高度 | 导出活动文档 | PS Create Layer | |||||||
| 宽度,高度,图像 | - | 创建带有可选图像的新图层 | PS Create Document | |||||||
| 名称, 宽度, 高度, 分辨率 | - | 创建新文档 | PS Get Document Info | |||||||
| - | info(字符串) | 获取文档详情 | PS Get Channel Mask | |||||||
| 通道 | MASK(掩码),宽度,高度 | 提取RGB/Alpha通道作为掩码 | PS Get Layer Mask | |||||||
| - | MASK, 宽度, 高度, 图层名称 | 获取活动图层的蒙版 | PS Apply Mask | |||||||
| mask | - | 对活动图层应用蒙版 | PS Channel to Mask | |||||||
| 图像, 通道 | MASK | 将通道转换为掩膜(局部) | PS Invert Mask |
| mask | MASK | 反转遮罩值 |
create_documentMCP 工具get_document_info- 创建新的Photoshop文档export_active_image- 获取活动文档信息create_layer- 将文档导出为图像get_channel_as_mask- 创建带有可选图像的图层get_layer_mask- 提取通道作为掩码apply_mask_to_layer- 获取图层蒙版
- 对图层应用蒙版
🔧 配置bridge-server/config.json桥接服务器(
{
"http_port": 3000,
"websocket_port": 3001,
"allowed_origins": ["*"]
})
ComfyUI 节点 PS_API_URL 编辑 comfyui-nodes/nodes.py在
PS_API_URL = "http://localhost:3000":
MCP服务器 PS_API_URL 编辑 mcp-server/server.py在
PS_API_URL = "http://localhost:3000":
🐛 故障排除
- “Photoshop未连接”
- 确保桥接服务器正在运行
- 重新加载UXP插件
在浏览器控制台中检查 WebSocket 连接
“没有活动文档”
在使用节点/工具之前,请先在Photoshop中打开一个文档。
- ComfyUI 节点未显示
ComfyUI/custom_nodes/ - 验证安装在
- 检查控制台以查看导入错误
重启ComfyUI
🤝 贡献
- 欢迎投稿!请:
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支
- 做出你的更改
提交拉取请求
📄 许可证
MIT 许可证 - 详见 LICENSE 文件
- 🙏 致谢 基于
- Photoshop-Python-API-MCP服务器 由ComfyUI提供
- comfy 匿名 由MCP提供的
Anthropic(公司名,可译为“安萨里克”或根据官方中文译名使用)
- 📞 支持
- 问题:https://github.com/TheWhykiki/photoshop-comfyui-mcp-bridge/issues
讨论链接:https://github.com/TheWhykiki/photoshop-comfyui-mcp-bridge/discussions
- 🗺️ 路线图/发展路线图
- \[ \] 选择到遮罩转换
- \[ \] 支持多文档
- \[ \] 批处理
- \[ \] 图层效果支持
- \[ \] 智能对象集成
- \[ \] 创建调整图层
- \[ \] 文本图层操作
