Skip to content

fix: 修复改色后导出与预览配方不一致 - #301

Open
MOVIBALE wants to merge 1 commit into
mainfrom
MOVIBALE/fix/raster-color-replay-scope
Open

MOVIBALE wants to merge 1 commit into
mainfrom
MOVIBALE/fix/raster-color-replay-scope

Conversation

@MOVIBALE

Copy link
Copy Markdown
Collaborator

Summary

用户在网页中确认的第一层颜色,导出到切片器后却变成大片粉色。工单原图复现表明:改色记录回放时,把原图某个色区中出现的所有匹配色提升成了全图替换对象;降噪混入的邻色因此被整图重染。正式生成还可能重复执行同一份改色记录,覆盖已经确认的预览配方。

  • 改色回放现在先确定像素选区:原匹配色仍对应源色区时保留全色替换;更换耗材后按源色区定位,邻色不会扩散成全图替换,两个源色也不会因为匹配成同色而互相覆盖。
  • 正式生成的改色统一由 S03 处理。S02 只重建原始分析;预览仍在 P03 应用改色。
  • 栅格耗材档案导出在参数与编辑记录均和缓存一致时,直接采用已确认的 RGB/配方,不重复回放改色。新增编辑仍正常执行。

Validation

  • 新增回归在修复前复现:3 项改色范围失败、2 项最终缓存重复回放失败,以及 1 项 S02/S03 双重应用失败。
  • 10 组相关测试:449 passed,覆盖 LUT/固定层/动态层回放、生成接口、缓存和流水线、日志与异常边界。
  • python scripts/run_smoke_tests.py:通过(后端 181、前端 185;lint 无 error)。
  • python scripts/log_quality_check.py --mode fast --workflow preview,generate,replace_bw:通过。
  • 使用工单原图、8 种耗材、150 mm 宽度、5×0.08 mm 配方和原有 7 条改色记录,走真实 /api/convert/generate 与生成 worker。8,302,500 个配方项、所有预览 RGB 与导出前结果完全一致;8 种材料×5 层的 40 组几何面积全部对应预览配方。
  • 重新导出约 25 秒;关闭源会话后最终 3MF 下载仍返回 200。
  • Bambu Studio 实际切片完成,退出码 0。提取并绘制第一层 G-code 的 159,710 段打印路径,8 种材料均存在,图案和预览对应,大片粉色覆盖消失。最终复跑与已切片模型的网格 XML 除随机 UUID 外逐字节一致。
  • git diff --check:通过。

AI assistance

Models and tools: GPT-6 family(具体变体不可用),via Codex。

What each model helped with: 关联工单原图、预览缓存和问题 3MF,复现重复回放与选区扩散,修复回放范围及生成阶段职责,补充回归测试,执行原始素材导出和 Bambu Studio 切片验证,整理本 PR。

How the output was checked: 执行上述测试、接口重放、逐项配方/几何比对和实际切片路径检查;原始用户素材、模型和日志未提交。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant