InpaintRegionEditor Dev 89a44028b5 fix: 使用 VALIDATE_INPUTS 支持动态文件路径
- 添加 VALIDATE_INPUTS 方法使用文件存在性检查
- 支持 MaskEditor 保存后的 clipspace 子目录文件
- 递归获取 input 目录下所有文件(包括子目录)
2026-03-03 18:59:57 +08:00

ComfyUI Inpaint Region Editor

License: MIT ComfyUI

增强版遮罩编辑器:集成 Photopea 图像编辑 + 可拖动选区调整

⚠️ 开发中 | 本文档描述的是目标功能,当前版本功能有限

📋 完整技术文档:见 docs/HANDOFF.md


📚 文档索引

文档 说明 目标读者
docs/QUICKSTART.md ⚡ 5 分钟快速开始 新接手开发的工程师
docs/HANDOFF.md 📋 完整交接文档 开发团队
docs/implementation-plan.md 💻 详细实现方案 后端/前端开发
docs/technical-validation.md 🧪 技术验证清单 测试工程师
DEVLOG.md 📔 开发日志 了解历史问题

🎯 功能特性

  • 🎨 Photopea 集成 - 完整的 Photoshop 级编辑功能(液化、仿制图章等)
  • 📐 可拖动选区 - 手动调整参考区域位置(不再只是中心扩散)
  • 🔄 自动蒙版检测 - 从 Alpha 通道提取,无蒙版时友好报错
  • 🎭 选区自动计算 - 选区 = 遮罩边界 + 扩散像素数

📦 安装

方法 1:ComfyUI Manager(推荐)

在 ComfyUI Manager 中搜索 "Inpaint Region Editor"。

方法 2:手动安装

cd ComfyUI/custom_nodes
git clone https://github.com/YOUR_USERNAME/ComfyUI-InpaintRegionEditor.git

重启 ComfyUI。


🚀 使用方法

  1. 添加 Inpaint Region Editor 节点
  2. 上传图像(需要带 Alpha 通道的 PNG)
  3. 右键点击节点 → "打开 Photopea 编辑"
  4. 在 Photopea 中编辑图像和蒙版
  5. 保存返回节点
  6. 调整扩散像素数或拖动选区框
  7. 执行工作流

📤 节点输出

输出 类型 说明
image IMAGE 编辑后的图像
mask MASK 局部重绘蒙版
region_top INT 选区顶部坐标
region_left INT 选区左侧坐标
region_width INT 选区宽度
region_height INT 选区高度

📘 核心概念

概念 目的 说明
遮罩 (Mask) 定义重绘区域 AI 在这个区域内生成新内容
选区 (Region) 定义参考区域 AI 参考这个区域内的原图内容

约束:选区必须 >= 遮罩


⚠️ 当前状态

已完成

  • 基础节点逻辑(nodes.py)
  • Photopea iframe 集成
  • 右键菜单打开 Photopea
  • 图像预览(自己渲染,不依赖 ComfyUI)
  • 选区框绘制(橙色)+ 遮罩区域显示(红色)
  • Alpha 通道自动检测蒙版
  • 选区框拖动功能

待完善

  • 拖动体验优化(边界检测、视觉反馈)
  • 图像缩放/放大查看
  • Photopea 编辑后的图像刷新
  • 完整工作流测试

🔧 技术细节

  • 使用 Photopea postMessage API
  • 所有消息 origin 都经过验证(只接受 https://www.photopea.com)
  • 图像处理在浏览器本地完成

⚡ 限制

  • 需要网络连接(Photopea 从 CDN 加载)
  • 首次加载约 10MB,之后缓存
  • Photopea 无法通过脚本直接访问图层蒙版(官方 API 限制)

🙏 致谢


📄 许可证

MIT License - 详见 LICENSE 文件。

Photopea 使用条款

  • API 完全免费,可用于任何目的(包括商业用途)
  • 你的作品完全归你所有
  • 无需标注使用了 Photopea(但建议标注)

📝 更新日志

详见 CHANGELOG.md。


最后更新:2026-03-02

S
Description
No description provided
Readme MIT
897 KiB
Languages
JavaScript 90.5%
Python 9.5%