From 73c5ba7a1fa0b59c1fd153b1b9b8e9ecc030918e Mon Sep 17 00:00:00 2001 From: InpaintRegionEditor Dev Date: Fri, 27 Feb 2026 19:56:03 +0800 Subject: [PATCH] Add development changelog --- CHANGELOG.md | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..bc9c852 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,70 @@ +# 开发日志 + +## 2026-02-27 + +### 会话概述 +ULW 头脑风暴会话,实现 ComfyUI InpaintRegionEditor 自定义节点。 + +### 完成的工作 + +1. **需求分析** + - 理解遮罩 vs 选区的概念 + - 遮罩:定义重绘区域 + - 选区:定义参考区域(大模型重绘时参考) + - 约束:选区必须 >= 遮罩 + +2. **后端实现** (`nodes.py`) + - 图像输入 + 选区预设(512x512, 1024x1024等) + - 输出:图像、遮罩、选区坐标 + - 自动计算选区位置(居中于遮罩) + +3. **前端实现** (`web/extension.js`) + - 右键菜单 "Open in Photopea" + - Photopea iframe 全屏编辑器 + - 图像 + 蒙版双向同步 + - postMessage 通信(带 origin 验证) + +### 技术决策 + +| 决策 | 选择 | 原因 | +|------|------|------| +| 节点模式 | Classic | 更多样例,更稳定 | +| 编辑器 | Photopea iframe | 免费、功能完整、PS兼容 | +| 通信 | postMessage API | Photopea 官方支持 | + +### 关键代码片段 + +**Photopea 通信:** +```javascript +// 安全验证 origin +if (event.origin !== "https://www.photopea.com") return; + +// 打开图像 +await postMessage('app.open("' + base64 + '", null, false);'); + +// 导出图像 +await postMessage('app.activeDocument.saveToOE("png");'); +``` + +**蒙版作为图层蒙版加载:** +```javascript +// 打开蒙版作为新图层,然后转换为图层蒙版 +await postMessage('app.open("' + maskBase64 + '", null, true);'); +// 复制到图层蒙版... +``` + +### 待解决问题 + +1. 图层蒙版导出脚本需要实际测试 +2. 大图像可能有性能问题 +3. Photopea 首次加载需要网络 + +### Git 提交 + +- `cf0f8e4`: Initial commit + +### 下一步 + +1. 测试完整工作流 +2. 修复可能的 bug +3. 优化用户体验