ai-chatbot/docs/画布比例调整验证记录-2026-07-11.md

15 KiB
Raw Blame History

画布比例调整验证记录(2026-07-11)

验收口径

  • 测试图来自近期真实生图日志,共 10 张,覆盖白底椅、室内柜体、带人物书架、衣架、桌子和推车。
  • 框选必须完整包住产品。接口返回成功不等于通过,必须人工检查最终整图。
  • 通过条件:产品尺寸明显按目标变化、产品身份不变、原位置无残影、背景无矩形接缝、未选人物和物体无明显改变。
  • 目标是同一最终流程人工视觉通过至少 9/10;未达到前不得作为完成证据。

已证伪方法

方法 模型/通道 视觉结果 失败原因
原图 + 红/青目标框操作图 Nano Banana 2(GRSAI) 1/3 柜体、桌子近似原图,模型经常忽略比例指令
原图 + 红/青目标框操作图 Nano Banana Pro(RUXA) 0/2 柜体实际略放大,桌子无变化;像素检测曾误判柜体成功
原图 + 红/青目标框操作图 Qwen Image Edit Max 0/2 把操作图当输出模板,生成白底拼贴并保留框线结构
原图 + 完整产品裁图 Nano Banana 2(GRSAI) 1/5 第二张图被当成重绘参考,白底椅被放大,衣架/桌子无变化
只编辑完整框选裁图,再贴回原图 Nano Banana 2(GRSAI) 1/5 局部重绘产生矩形接缝、重复桌椅或近似原图
只编辑完整框选裁图,再贴回原图 Qwen Image Edit Max 0/2 椅子款式被替换,柜体生成白色矩形背景块
只编辑完整框选裁图,再贴回原图 Nano Banana 2 Edit(FAL) 0/2 两次都未产生有效缩放,重试仍近似原图
只编辑完整框选裁图,再贴回原图 Nano Banana Pro(RUXA) 0/2 柜体无变化,竖图请求多次超过 180 秒
完整原图 + 83 字极简提示 Qwen Image Edit Max 0/4 改写整张构图、抽成白底商品图、桌椅重影,不能保真
完整原图 + 83 字极简提示 Agnes Image 2.0 Flash 0/4 白底被改成室内,柜体/书架/桌子尺寸基本未变
GPT Image 2 + 产品蒙版 FAL 0/3 通用编辑仍会改写整幅背景或留下灰色旧产品轮廓;早期测试还发现旧适配器错误发送 mask_url,修正为 mask_image_url 后仍未达到要求
产品蒙版 + 通用 Object Removal FAL 1/3 掩膜外保持良好,但办公椅旧脚轮/阴影残留,桌椅重叠被识别为同一目标
产品蒙版补洞后只贴回局部 FAL GPT Image 2 0/2 原背景虽保住,但旧产品区域出现明显灰色剪影
对生成背景做矩形羽化贴回 FAL GPT Image 2 0/2 出现水平矩形接缝、色差和旧物体边缘

以上方法均保留在本记录中,不再作为后续默认方案重复尝试。

最终方案

最终只保留一条简单流程:

  1. 对用户完整框选区域执行一次产品抠图,得到产品蒙版和原产品透明像素。
  2. Finegrain Eraser 只负责按蒙版移除旧产品并修复背景,不理解比例、不重画产品。
  3. 本地按 targetRect 精确缩放原产品透明像素并放回,产品身份和比例由代码锁定。
  4. 透明白底图直接使用透明空底板,不调用模型猜背景。
  5. 首遍检测到旧轮廓时,以上一遍完整结果做一次同掩膜顺序清理,再精确放回产品;第二遍接受有实际比例变化的最佳结果,避免误报门禁循环。
  6. 产品锁流程不执行旧的彩色标注清理,避免把衣架等棕色产品像素误当标记擦掉。

最终验收

证据图:10 张完整产品四联验收图

序号 样本 人工结果 说明
01 透明白底办公椅 通过 完整产品缩小,白底无旧轮廓
02 真实办公室办公椅 通过 旧椅和脚轮阴影清理干净,办公室保持
03 室内柜体 通过 柜体完整缩小,房间主体保持
04 人物旁旋转书架 通过 书架完整缩小,人物、沙发和灯保持
05 第二张室内柜体 通过 柜体完整缩小,无旧柜残影
06 沙发旁升降桌 通过 产品完整缩小,沙发与柜体保持
07 室内衣架 通过 衣架和衣物完整缩小,无标注清理破点
08 桌子与椅子严重重叠 失败 完整矩形框内两件产品像素相交,抠图把桌椅识别为同一目标并一起缩放
09 客厅推车 通过 推车完整缩小,地毯与沙发保持
10 窗边升降桌 通过 顺序清理移除旧底脚,产品完整缩小

人工视觉通过 9/10(90%)。接口返回状态不计入通过率;以上结论来自最终整图人工检查。

普通画布和“风格化(非 Pro)- 详情模式 - 生图结果区”均提交 operation: "scale-adjust" 到共享 /api/canvas/local-edit 路由,因此同步使用同一流程。

位置移动与模型光影扩展(2026-07-13)

稳定版本备份

  • 在增加位置移动前,已把上面的比例调整稳定流程保存为提交 15b2d71a。
  • 本地备份标签为 backup/canvas-scale-adjust-stable-20260713,对应原始稳定提交 5349fece。
  • 位置移动沿用同一个 scale-adjust 操作,只在 targetRect 中心发生变化时启用新流程;纯比例调整继续走已经验证的旧流程。

最终位置移动流程

  1. 用完整产品蒙版提取原产品透明像素,同时用人物 AOS 分割判断产品是否与人物实质遮挡。
  2. 产品与人物发生遮挡时拒绝移动,避免手臂、衣服或身体被一起搬走,也避免产品留下人物形状的透明洞;人物与产品不相交时人物区域保持锁定。
  3. 由 GPT Image 2 Edit 根据旧产品精确蒙版移除原产品、脚轮和原投影,并补全被遮挡的背景;模型结果只在修复蒙版内合成,其他区域继续使用原图。
  4. 本地把原产品透明像素精确放入 targetRect,因此产品款式、大小和最终坐标不依赖模型猜测。
  5. 把移动后的完整图和“地面可编辑区域”再次交给 GPT Image 2 Edit,只要求它依据场景主光方向生成新的接触阴影和投影。
  6. 不直接采用第二次模型输出整图,而是提取模型在地面蒙版内生成的中性暗化场;产品像素和蒙版外像素完全锁定,避免模型复制产品、改尺寸或改变画幅。
  7. 模型光影接口超时或失败时,返回已验证的本地接触阴影版本作为兜底,并记录错误;本地阴影不是正常成功路径的最终光影来源。

已测试方法与结论

方法 结果 结论
原位置清理后直接精确移动 办公椅、推车可保持几何位置,但新位置光影偏弱 只适合作为第一阶段,不能作为最终结果
人物场景直接移动相交产品 书架连同人物手部一起移动,手臂破损 已禁止人物与产品实质遮挡的移动
人物 AOS 蒙版保护 人物蒙版正确;最初单通道处理错误产生扫描线和黑块 Sharp 模糊、缩放后统一显式 extractChannel(0),修复通过
对被人物遮挡的产品做邻近像素补洞 出现三角形重复木纹 失败,已删除
四方向加权补洞 出现黑色楔形和空洞 失败,已删除
原图和目标框操作图整体交给模型 人物姿态和自然光影较好,但模型忽略精确目标框和尺寸,单次约 263 秒 不能承担几何移动,仅证明模型适合语义补全和光影
直接转移旧阴影 首版因通道错误出现黑色矩形;修正后仍无法适配新位置光源关系 只保留为接口失败兜底的一部分
宽区域模型重打光 模型在目标位置复制第二把椅子 失败,不采用模型整图
地面白色蒙版 + 固定 3:4 输出 仍出现重复椅子,且输出画幅变化 失败,改为 auto 并锁定原图坐标
直接替换模型地面蒙版像素 重复问题消失,但出现矩形色差接缝 失败,改为只提取暗化场
提取模型中值归一化暗化场 新接触阴影和投影可见,无重复产品、无矩形接缝、产品像素不变 通过,作为最终模型光影流程
模型清理旧产品后直接采用其画幅 模型返回 1536x2048,原图为 1760x2221,导致目标坐标偏移 修复为始终按原图画幅和坐标合成
模糊后阈值生成旧位置蒙版 Sharp 阈值后仍存在灰度,办公椅底座和脚轮未被完全清理 改为逐像素二值化,只保留 0/255,验证通过
移动后旧轮廓门禁使用扩张修复蒙版 把未变化背景算入残留,产生误报 移动场景改为只检查精确原产品蒙版
移动后用暗色像素判断残影 自然深色地板和阴影触发误报 移动场景只使用产品相似度,暗色规则仅留给未移动的缩小场景
目标框悬空摆放 产品与沙发/地面关系不自然 拒绝作为验收样本,正式测试改为目标底边落地

本地视觉验收

证据图:位置移动、旧位置清理、模型光影和人物保持对比

  • 真实办公室办公椅:旧椅、底座和脚轮已清理,产品按正式坐标移动;模型生成的新位置接触阴影和地面投影已通过暗化场合成,无重复产品和矩形接缝。
  • 真实人物室内图:人物不与产品相交时,边桌可移动且人物保持不变;相交产品会在生成前明确拒绝。
  • 最终正式光影合成统计:appliedShadowStrength: 4741328、medianLumaDelta: -18、sampleCount: 719617。
  • 真实模型阶段回放的最终本地结果为 /private/tmp/scale-adjust-office-chair-final-staged-replay.jpg。该回放使用同一套正式清理、坐标锁定和模型暗化场合成代码,人工视觉通过。

外部模型接口记录

  • FAL 在连续回归期间出现过 HTTP 408、HTTP 400、fetch failed、300 秒超时,以及 v3b.fal.media 下载连接超时。
  • GPT Image 2 Edit 的真实旧位置清理和真实光影输出都分别成功过;最终视觉回放由这两份真实模型输出通过当前正式合成代码得到。
  • 因上述外部接口波动,最后一轮未得到“同一次在线请求从清理到重打光全部成功”的证据;这属于供应商请求故障,不记为算法视觉失败。生产流程已在任一模型阶段失败时回退到本地验证结果,避免用户任务直接报错。
  • 后续复测优先重复完整在线链路,不再重复表中已经证伪的补洞、整图替换和宽区域重绘方法。

复杂衣帽架语义回退(2026-07-14)

真实问题样本

  • 原图尺寸为 1664x2496,目标是带两顶帽子、两件衣物、两个包、多个挂钩、立柱和圆底座的完整衣帽架。
  • 完整源框为 { x: 0.295, y: 0.225, width: 0.215, height: 0.515 };本轮回归缩小 25%,中心保持不变,目标框为 { x: 0.321875, y: 0.289375, width: 0.16125, height: 0.38625 }。
  • 早期使用的窄框漏掉蓝色衣物右侧、包和圆底座,属于输入几何错误,不再使用。

已测试方法与结论

方法 结果 结论
AOS 在窄框或重叠裁图中直接提取完整产品 只提取帽子和部分白衣,遗漏包、蓝衣或底座 失败;空间分割低置信度时必须切换语义回退
PhotoRoom/RMBG 直接抠取复杂产品组 分别遗漏挂件或直接失败 不用于该类多部件产品的最终提取
方向扩散、调和等本地像素补背景 墙面和木饰面出现涂抹纹理 失败,不再尝试
Finegrain Eraser 使用完整矩形或产品蒙版 仍保留旧立柱、衣物或底座残影 失败,不作为复杂样本清理通道
GPT Image 2 对整图直接清理 产品能移除,但构图被重排、尺寸变化且水印丢失 失败,不能直接采用整图结果
GPT Image 2 只清理局部补丁 木饰面边界偏移;差分贴回又产生透明旧影和接缝 失败,不再使用补丁差分合成
Nano Banana 2 使用原图和完整局部裁图重建背景 旧衣帽架完整移除,构图、窗户、床、床头柜和水印保持 通过,作为复杂产品背景清理模型
GPT Image 2 在纯品红背景上提取完整产品组 两份候选均包含帽子、衣物、包、挂钩、立柱和圆底座 通过;本地按源图颜色覆盖率和几何完整度选优
纯品红色键初版阈值 44-112 产品边缘出现紫色溢色 失败;改为 28-190、反混色恢复和轻度 alpha 内收后通过
用宽矩形清理蒙版检查旧影 清洁背景被当作旧产品残留 误判;改为只按真实产品蒙版检查
接缝检测扫描新目标框内部 新立柱及其长阴影被当作竖向拼接缝 误判;目标框内部停止累计,框外背景继续严格检查
真实产品蒙版内使用宽松颜色相似度 56 和暗像素规则 深棕衣帽架与深色木饰面相近,清洁结果仍误报 误判;显式产品蒙版改用近原样阈值 20,暗像素规则只用于无显式蒙版回退
Nano Banana 2 单次清理请求 一轮在 180 秒超时,下一轮约 52 秒成功 增加一次同模型清理重试;产品提取 Promise 复用,不重复提取
GPT Image 2 环境光影模型 + 本地暗化场 窗边主光对应的墙面阴影可见,产品本体和框外构图保持 通过,作为最终光影步骤

最终流程

  1. AOS 仍先生成产品蒙版;蒙版触边、覆盖不足或高瘦复杂裁图自动标记为语义低置信度。
  2. Nano Banana 2 根据原图和完整产品裁图只重建产品背后的背景;清理与产品提取并行执行,清理超时只重试清理。
  3. GPT Image 2 把整套产品提取到纯品红背景,生成两份完整候选;代码完成色键、反混色去紫边、完整度与颜色保真评分。
  4. 选中产品透明像素严格按 targetRect 缩放并合成,模型不负责猜测产品尺寸和坐标。
  5. 质量守卫使用真实产品蒙版检查旧影,接缝检测排除新产品占据区,但继续检查目标框外背景。
  6. 守卫通过后,GPT Image 2 只生成产品周围的环境光与阴影;代码提取暗化场并叠回锁定的产品和原背景。

最终验收

  • 无缓存端到端测试批次:coat-rack-production-flow-complete-v11。
  • 最终原尺寸结果文件:15-user-coat-rack-result.png。
  • 自动守卫:oldFootprintGhostDetected: false、rectangularSeamDetected: false、outsideChanged: false,候选 passed: true。
  • 光影统计:appliedShadowStrength: 1146766、medianLumaDelta: 11、sampleCount: 374490。
  • 完整链路耗时约 241799ms,结果 SCALE_VERIFY_SUMMARY { failed: 0, passed: 1, total: 1 }。
  • 人工原尺寸检查通过:两个帽子、两件衣物、两个包、全部挂钩、立柱和圆底座完整;旧尺寸产品、紫边和矩形接缝均不可见,窗边来光对应的墙面投影已生成。