diff --git a/.gitignore b/.gitignore index 9ec499d..dc9660a 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,6 @@ data/dxf-study/ .tmp_token .tmp_*/ *.drawing-bundle.mjs + +# AI 生成图(运行时产物) +runtime/ diff --git a/CHANGELOG b/CHANGELOG index 443d5f2..3f9e619 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ # CHANGELOG +- [2026-10-07 12:07] FEAT: v2.51 AI 生成图持久化记录(用户需求: 生成图要有记录而非一次性缓存)。新模型 AiRenderRecord(ai_render_records: 公司/用户/模式/窗型/场景/提示词/文件路径/尺寸); 三模式(quick/photo/blueprint)统一持久化: generate 成功后图片落盘 runtime/ai_renders/{company}/{id}.png(gitignore)+元数据入库, 响应新增 record_id; 新端点: GET /records(公司隔离分页+mode 筛选)/GET /records/{id}/image(FileResponse PNG, 公司隔离)/DELETE /records/{id}(文件+记录清理); 前端 AI 炫图页头部「生成记录」按钮+抽屉(缩略图 blob 拉取绕过 img 无法带 token+模式标签+窗型+时间+操作人+下载/删除+分页), 生成成功自动刷新; 安全校验: 匿名 code=401 不泄露图片/公司隔离与列表同模式; runtime/ 加入 gitignore; 回归: 冒烟 60/60+24 页巡检 0 异常; UI 抽屉截图验证 (Files: src/huamenchuang/models/extend.py, src/huamenchuang/models/__init__.py, src/huamenchuang/api/ai_render.py, frontend/src/views/AIRenderView.vue, doc/API.md, .gitignore) - [2026-10-07 11:20] FEAT: v2.50 大样图斜角识别(用户需求: 斜角窗也要识别)。提示词新增「斜角铁律」——手稿中的斜边/切角/梯形轮廓必须原样保留(斜线方向与两端点位置与原图一致), 严禁把斜角窗/梯形窗拉直画成矩形; 斜边尺寸照常誊写/未标注按原图比例; 圆弧边同样保留; PIL 构造斜角手绘测试稿(右上切角窗 1500x1200+左下梯形窗 900x800)实测 47s: 两窗斜边完整保留(切角方向与位置与手稿一致/梯形轮廓未被拉直), 分格/开扇对角线/尺寸线(1500/700/900/800/1200)全对, 标题栏完整; 回归: 冒烟 60/60 (Files: src/huamenchuang/api/ai_render.py) - [2026-10-07 11:30] FIX: v2.49 大样图窗方向识别修复(用户报告: 窗被旋转竖放)。对照第39页登记表: 修复前左上 2380宽横向窗被生成为 1400x2380 竖版, 多窗宽高对调; 根因: 提示词无方向约束, gpt-image 重绘时自由旋转窗体; 修复: 提示词新增「方向铁律(最重要)」——每个窗横竖方向必须与原图完全一致(横向窗输出宽>高/竖向窗高>宽, 严禁旋转竖立横放)+工程制图标注约定(宽度标窗下水平线/高度标右侧竖直线, 登记表宽/mm 栏对应水平方向 高/mm 栏对应竖直方向)+Avoid 追加被旋转方向的窗; 复测第39页: 全部窗方向与原稿一致(横向窗保持横向/磨砂竖条窗保持竖向 125x1185), 窗5 3530 完全精确, 内左右开文字标注/内开内倒对扇/磨砂玻璃标注等细节保留 (Files: src/huamenchuang/api/ai_render.py) - [2026-10-07 10:30] FEAT: v2.48 大样图全链路优化(草图预处理工具链+结果对比)。蓝图 Tab 重构: ①旋转转正(↺/↻ 90°, 治理横拍旋转图方向塌陷——离屏 canvas 旋转绘制, ≤1536px) ②框选裁剪拆窗(拖拽框选窗区域, 裁剪后仅转换选中部分——根治一页多窗的窗数幻觉与高密度页塌陷, 窗数天然1:1) ③结果并排对比(原始草图|AI大样图 左右对照, 人工核对尺寸效率提升) ④「再生成一张」快捷按钮(应对轮间方差挑最佳) ⑤大样图模式独立结果区(不再与照片/速览共用); 端到端实测: 上传→旋转90°→框选→生成→并排对比全链路通(34s), 裁剪含两窗局部时 AI 仍正确生成两窗规范大样图(分格/开扇/尺寸全对); 移除测试依赖 pillow; 回归: 冒烟 60/60+24 页巡检 0 异常 (Files: frontend/src/views/AIRenderView.vue) diff --git a/doc/API.md b/doc/API.md index 464605b..d5c337f 100644 --- a/doc/API.md +++ b/doc/API.md @@ -459,6 +459,10 @@ uv run uvicorn huamenchuang.main:app --reload # 启动,http://localhost:8000 ### 12.22 照片式 AI 炫图(v2.20 升级,P0-照片炫图) +| 生成记录列表 | GET | `/api/ai-render/records?page=&mode=` | query | 本公司生成历史(时间倒序,含 mode/窗型/尺寸/操作人);v2.51 三模式统一持久化 | +| 记录原图 | GET | `/api/ai-render/records/{id}/image` | — | FileResponse PNG(公司隔离,匿名 code=401 不泄露) | +| 删除记录 | DELETE | `/api/ai-render/records/{id}` | — | 删除记录+图片文件 | + > **v2.44 新增 `blueprint` 模式(工程大样图,整合自 autocad 项目草图标准化资产);v2.45 支持手绘草图**:`{mode:"blueprint", sketch_b64(手绘量尺登记表照片或 2D 图纸截图), template_id|drawing_data?(可选, 仅作窗型特征参考; 纯草图模式可不传)}` → AI 重绘为黑白 CAD 工程大样图(正投影立面/细黑线框/玻璃淡灰填充/尺寸线/中文工程标注/标题栏;一页多窗逐窗转换,保留分格/开启扇/手写尺寸并规范誊写,不编造尺寸),可作报价与合同附件。提示词预览 `/api/ai-render/prompt` 同样支持 `mode:"blueprint"`。 对齐目标站 `renderV2` 炫图 7 分类:**渲图 / 安装合成 / 门窗擦除 / 室内装修 / 别墅 / 去围栏 / 变毛坯**。 diff --git a/frontend/src/views/AIRenderView.vue b/frontend/src/views/AIRenderView.vue index d8a9531..3b15775 100644 --- a/frontend/src/views/AIRenderView.vue +++ b/frontend/src/views/AIRenderView.vue @@ -8,6 +8,8 @@ 风格速览 工程大样图 +
+ 生成记录
@@ -164,13 +166,40 @@ + + + +
+
+ +
+
+ {{ modeLabel(r.mode) }} + {{ r.template_name }} +
+
{{ r.created_at }} · {{ r.user_name || '—' }} + · {{ r.width_mm }}×{{ r.height_mm }}mm
+
+ 下载 + 删除 +
+
+
+ + +
+