用途:把只有图片的 PPT 页面(如幻灯片截图或 image2 生成的图片)转换为可编辑的 .pptx 文件,保留原有视觉素材并让文字可编辑。
主要能力:从场景图(scene graph)提取文字 bbox 与视觉对象;若有原始幻灯片图片,可对文字区域做修复生成无文字背景;按 bbox 从原图裁剪照片/图标作为 PPT 图片素材;将检测到的文字叠加为可编辑 PPT 文本;对结构化页面渲染原生可编辑形状、表格、KPI 卡片;运行 QA 检查可编辑文字数量、文字溢出与文字重叠。
使用方式:先执行 pip install -r requirements.txt。单页场景重建:python scripts/run_pipeline.py --scene examples/china_factor_vs_ipcc.scene.json --mode scene --out test/v15_user_image/china_factor_vs_ipcc_rebuilt.pptx --plan-out test/v15_user_image/china_factor_vs_ipcc.plan.json。带原图:python scripts/run_pipeline.py --image input.png --scene scene_graph.json --mode auto --out output/rebuilt_editable.pptx。多页可编辑场景:python scripts/run_deck.py --mode scene --scenes page1.scene.json page2.scene.json page3.scene.json page4.scene.json --images page1.png page2.png page3.png page4.png --out output/rebuilt_editable_deck.pptx --plans-out output/rebuilt_editable_deck.plan.json。
模式选择:--mode auto --image input.png 适合最重视视觉保真、同时让文字可编辑;--mode scene 适合页面结构足够规整、可重建为原生 PPT 形状/表格/卡片/箭头/文字;模板仅在返回真实 placements 时使用,空模板计划会被忽略。
素材策略:默认不重绘源照片、设备图、logo、图标或复杂装饰图形,优先按检测 bbox 从原图裁剪;无源图但场景含 asset_kind 或 asset_prompt 时生成 SVG 源文件加 PNG 回退;简单可编辑图标仅在视觉匹配可靠时可选转为 SVG/原生形状;裁剪质量低且用户允许时可重新生成;不得用虚构占位图静默替换真实源图。内置 asset_kind 包括 green_building、awareness_training、carbon_dashboard。
场景图要求:需包含 slide_size(通常 [1600, 900])与 objects(含 id、type、bbox 及可选 style);文字对象用 type: "text" 与 text;多色段落用 type: "rich_text" 与 segments;图片可用相对路径。支持渲染类型:text、rich_text、rect、rounded_rect、ellipse、triangle、arrow、line、image、photo、icon。
QA 与限制:运行会写出 <output>.qa.json,需满足 overflow.status == "pass"、overlap.status == "pass"、editable_char_count 足够高、placement_count 非零。已知失败模式为 QA 误报通过但渲染后文字重叠,缓解方法包括将源图像素字号按 pt = px * 0.72 换算、导出后渲染预览 PNG 并目视检查、密集表格单元格减小字号或加宽 bbox、富文本在需要精确换行时改用多个定位文本框。v15 默认 macOS 中文字体为 PingFang SC,CJK 行高与宽度测量更保守,并新增 paradigm_shift_1_vs_2 参考场景。即使 JSON QA 通过,交付前也必须目视检查渲染预览。