FigEdit
SkillMediaReconstructs bitmap graphics into high-fidelity editable SVG and native PowerPoint, supporting text-only editing, text/structure/formula editing, fidelity-preserving hybrid source-image assets, selective or full foreground splitting, and AI clean-background reconstruction for complex continuous back
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the FigEdit skill
What this skill tells your AI
The instructions your AI receives, as published by giszzt/figedit in SKILL.md and read by ahel’s review.
把不可编辑的位图图形重建为高保真、可维护、可继续编辑的 SVG 与原生 PPTX 包。
**主流程:勘察 → 备料 → 组装 → 验收。**先判断,后执行。判断阶段不碰坐标也不跑脚本,只回答“每一部分从哪来”;执行阶段才按已定路线调工具。
核心原则
输出画面上的每一块像素只可能有四个来源:
- SVG 画的 —— 结构、文字、公式
- 从源图切的 ——
crop - AI 生成的 —— 区域清版底(背景)、色键版再生(前景对象)
- 整块原样保留的 ——
preserve-raster
路由就是给每一部分指派来源,每部分有且只有一个。指派完成即可开工;指派不全就是漏了东西。
重绘门槛
只有“用三五笔基础图元能画得像”的图形才允许 redraw:朴素箭头、方框、分隔线、圆点、加减号、对勾、简单节点圆。有定制轮廓、渐变、阴影、多色细节、品牌或角色身份的对象一律按素材处理(切、再生或压平),哪怕它看起来简单。拿不准时按素材处理,不重画。重画产物必须与源图形状可对照,画不像就是路由错误,不是绘画技术问题。
工作位置
所有命令在用户项目目录运行,每张图建任务目录(figure-task/work 证据、figure-task/out 交付),绝不写回 skill 目录。Windows 路径用正斜杠,非 ASCII 路径先经文件系统验证。
1 勘察
看一次足够清晰的源图,产出一份重建路径概要。这是本阶段唯一的交付物,纯文字,零坐标,二十行以内,写给人看。槽位固定,缺项写“无”:
图型与分区 每个区域一行:这是什么、底子从哪来
需要生成的 清版底张数 + 色键版张数 = 计费调用总数,或“无”
不可重画的对象 可直接裁的一堆、需再生的一堆,按名字和位置点出来,或“无”
公式 有无、大致数量 → 验证档位
工作量重心 这张图的时间主要花在哪
需要用户定 具体问题,或“无”
对象用名字和空间关系指认(“标题右边那个地球仪,骑在面板边框上”),不写 bbox。坐标属于备料阶段。
概要写完路线即锁定,后续不翻案。写不出“工作量重心”说明没看懂图;“不可重画的对象”分不出两堆说明污染扫描没做。
图型速查表(按区域查,不是按整图)
| 看到的 | 底子从哪来 | 里面的对象从哪来 |
|---|---|---|
| 白底或平色底的流程图、架构图、论文插图 | SVG 画 | 通用图元画;专有图标按窗口干净与否切或再生 |
| 多面板拼接的复合图 | 每个面板分别查 | 同上,按面板成批扫 |
| 截图、图表主体、缩略图网格,内部不需要改 | 整块保留 | 不拆 |
| 地图、照片、插画上压着要改的标注 | 区域 AI 清版 | 要能单独动的再生;不用动的压平进底板 |
| 海报、封面、场景图,文字压在连续画面上 | AI 清版 | 同上 |
| 公式密集的论文图 | 按上面几行查底子 | 公式一律 math,验证档锁 pptx-triggered |
一张图的不同区域各查各的,不要用一个标签盖住整幅。判不准时回到四来源指派。
素材两堆
过不了重绘门槛的对象只分两堆,一次扫完,不逐个走流程:
- 窗口干净的 → 切。轮廓完整、四周无异物、外接矩形不含别人的像素。
- 被压盖的 → 边框、文字、箭头、连接线、邻居穿过或遮住它。需要单独动就再生;不需要单独动且落在清版区就压平进底板。确定性 SVG 区没有底板可压,那里的污染对象只能再生。
判据细则见 references/routing.md,元素语义见 references/element_decision_matrix.md。
编辑深度与提问
用户原话优先:说“仅文字可编辑”锁 text-only(连续场直接压平);点名对象锁 selective-assets;要求全部可动锁 full-extract;检出公式且用户未表态时默认 text+structure 并锁 pptx-triggered。
**提问一次问完。**概要写完后若有待决项,把前景深度选项、生成预算和 PPTX 附着预授权(含公式时)合并成一次提问。只有不同选择会显著改变费用或交付能力时才问;能自己定的不问。拿到附着预授权后验收阶段直接用 --allow-attach,不再二次提问。
**用户确认前不得发起任何计费生成调用,也不得裁剪或合成。**OCR 不在此列,见下。
2 备料
按概要指派的来源把素材做出来。开头无条件先跑一次取证——不计费、输出无论走哪条路都要用,可以和提问并行。新任务用 --init 一并建目录:
python scripts/prepare_measurements.py input.png --init figure-task
一次跑出 OCR、风格采样和结构证据(work/geometry.json:面板 bbox 与颜色、每行文字的槽位与字号色值)。画布尺寸、OCR 条数、面板与文字槽数量、低置信文字清单直接打印在屏幕上,不要再写代码去读这些 JSON。看一次 work/diagnostics/geometry_overlay.png 做整体校验,别逐框打开。
**此后任何像素问题都走 measure.py,一次问完。**紧边界、区域颜色、四边净空、透明图边界、反算字号、两图对齐残差,还有"我想看看这块长什么样",都是它的查询类型。一次问十个和问一个花的时间一样,问完拿到一张数字表加一张放大拼图。不要手写 python -c 数像素,也不要自己裁图存盘再打开看。
python scripts/measure.py input.png --exclude-text figure-task/work/ocr_results.json --q "logo:bbox@1850,1600,300,240" "hdr:color@0,0,2400,180" "t1:fontfit@340,881,275,31" "card:zoom@1290,1550,360,300" --sheet figure-task/work/measure_sheet.png
量图标一律带 --exclude-text。粗窗口几乎总会把旁边的标题文字圈进来,不排除就会量成"图标加标题"的外接矩形。量得结果会用红框画在拼图上,一眼能看出量对没量对。
**结构证据是候选不是结论,也不改路由。**勘察锁定的路线不因为看到 overlay 就翻案。照片、插画、海报这类非平面设计图会标 abstained: true 并只给极少候选,这是设计行为:那里本就没有面板可找,该由人工量或走清版。各项候选的可信程度见 references/scripts.md。
以下分支按概要执行,互不依赖,能并行就并行。概要没指派到的分支直接跳过——纯 SVG 图不跑任何生成,纯清版压平图不跑任何裁剪。
确定性 SVG 图(白底流程图、架构图、论文插图,无 crop 无生成)三个分支一个都不进:备料就是上面那条取证命令加若干 measure.py 查询,跑完直接进组装。这类图的时间应当以分钟计。
有 crop 素材
此时才为这些对象点粗框(一眼精度,允许 10–20px 偏差),写进 work/inventory.json,只含走切或再生的对象;文字框来自 OCR,结构框在组装时确定,都不进来。路线已锁,点框是执行动作。
python scripts/snap_boxes.py input.png --inventory figure-task/work/inventory.json --exclude-text figure-task/work/ocr_results.json --out figure-task/work/snap_report.json --sheet figure-task/work/snap_sheet.png
看一次 snap_sheet.png 总览。判定写进各资产的 crop_window,人工只复看脚本点名项:contaminated 的改路由(改走再生或压平),snap-failed、带 warning 的和概要点名看不清的用 inspect_regions.py 局部放大。三值语义——clean 窗口余量是画布底色;clean-on-fill 余量是单一均匀实色且四边有净空,manifest 用同色重画承载面;contaminated 不得继续切。quality_audit.py 的事后核验是兜底。切图由 crop_assets.py 在组装时执行。
有清版区
prepare_clean_plate_mask.py 准备掩膜,生成区域底板,check_plate_registration.py 验配准(scale ≈ 1.00 / offset ≈ 0)。底板必须是对源区域的编辑——移除待重建前景并补全其后像素,其余保持对齐和身份一致,不是新场景。细则见 references/background_reconstruction.md 与 references/image_generation.md。
有再生对象
probe_palette.py --boxes 定键色与 sheet 数,生成色键版,chroma_key.py 抠出,slice_grid.py 切分。全部候选合并到尽量少的 sheet 上,重复元素只生成一次、按共享 id 多处放置。细则见 references/chroma_regeneration.md。禁止 rembg、GrabCut、阈值抠图等即兴替代。
无可用图像后端或底板不合格时停止并报告,不静默降级。
**生成是长杆,不要干等。**调用发出后立即并行推进文字清单、连接线和 manifest 草稿。
3 组装
必读 references/manifest_spec.md、references/svg_authoring.md、references/quality_checklist.md,脚本接口查 references/scripts.md,其余按路线加载(各文件开头有适用说明)。公式密集图必读 references/formula-reconstruction.md。把勘察结论记进 manifest 顶层 reconstruction_plan,写文字 retype、公式拆 math、结构 redraw、素材按备料结果落 decision 与 crop_window。
首版允许用一次性生成器写出来,元素多时这是正当做法。生成器写完 manifest 落盘后立即改名 *.py.retired 退场,后续修改一律走 manifest_edit.py——生成器留着会覆盖手工修复。
文字和面板可以先采纳草稿再改,比从零写快:
python scripts/draft_elements.py figure-task/work/geometry.json --out figure-task/work/draft_elements.json
python scripts/manifest_edit.py manifest.json --adopt figure-task/work/draft_elements.json
python scripts/compose_svg_package.py manifest.json --out figure-task/out --stage svg
**采纳即担责,采纳后必须立即 compose 一次并看差异热力图。**这是唯一的审阅路径:逐条读草稿 JSON 比手写还慢,看一张合成图错的地方自己会浮出来。草稿的 font_size 和 fill 是估计值,靠 fit_text.py 和视觉比对收敛,和手写值一样要改。审阅完清掉 provenance 或置 review_status,否则质量门会拦。
修复走批量通道,不手编大 JSON、不写临时 patch 脚本:
python scripts/manifest_edit.py manifest.json --apply-snap figure-task/work/snap_report.json
python scripts/manifest_edit.py manifest.json --set "label-3,label-4:y+=4" --apply-fit figure-task/work/fit_report.json
python scripts/manifest_edit.py manifest.json --patch figure-task/work/patch.json
告警收齐一批改完再 compose。SVG 冻结后 --stage pptx 导出,仅补元数据用 --stage package。
4 验收
compose 每次都会打印差异工单——按误差排序、点名到元素 id、附带毛病类型(位置偏了、字号偏大、颜色不符、整个没画出来),外加一张 diagnostics/fix_sheet.png 把误差最大的十二个元素做成源图/成品上下对照。
照工单改,不要自己再去逐块比对找差异。一轮就是「看工单和对照图 → 改 manifest → 重跑 compose」三步。
每轮看 preview.png 与各报告;报告点名后只复查受影响区。最终至少看一次 SVG 总览。
- 档 0 /
svg-primary:无math且pptx_text_fit.py无换行、溢出、缺字、错位报告。SVG 即验收,不打开 PowerPoint。 - 档 1 /
pptx-triggered:含math或静态审计报结构风险。交付前原生渲染一次,只查公式越槽、意外换行、内容截断、元素错位。 - 档 2:档 1 发现结构缺陷,批量修完最多再渲染一次;仍有问题写入交付说明,不无限循环。
不算缺陷:抗锯齿、笔画粗细、标点亚像素差、基线 ±1px、字距 ±0.5px、整体色彩管理差异。算缺陷:内容缺失、换行变化、溢出、公式越槽、元素错位超 3px。
交付说明附上重建路径概要,并说明实际执行与概要是否一致、不一致的原因。
PowerPoint 安全规则
PPTX 原生渲染只能调 python scripts/render_pptx.py figure-task/out/editable.pptx --out figure-task/out/pptx_render。
- 禁止手写
PowerPoint.Application自动化;禁止附着态调用Quit();禁止taskkill /IM POWERPNT.EXE、Stop-Process POWERPNT。 - 检测到用户正在使用 PowerPoint 时脚本默认拒绝;只有用户同意(含勘察时的预授权)才加
--allow-attach。 - 附着态只关自己只读打开的 Presentation。未完成要求中的原生渲染时交付说明写“原生渲染暂缓”,不得伪称完成。
输出包
editable.svg、editable_embedded.svg、editable.pptx、preview.png、manifest.json、contact_sheet.png(有素材时)、quality_report.md、editability_report.md、assets/、diagnostics/、timings.json。PPTX 语义级顶层解组:文字、形状、连接线、素材可直接选中;公式、蒙版、旋转等按保真需要保持成组。
权威与职责
| 关注点 | 唯一权威 |
|---|---|
| 四阶段、四来源、重绘门槛、验证分档、PowerPoint 安全 | 本 SKILL.md |
勘察协议、路径概要槽位、reconstruction_plan | references/routing.md |
manifest 字段、reconstruction_mode 词汇 | references/manifest_spec.md |
| 背景、前景深度、文字层策略 | references/background_reconstruction.md |
| 元素语义、重画还是保素材 | references/element_decision_matrix.md |
| crop 执行语义、污染素材恢复 | references/asset_extraction.md |
| chroma 再生 | references/chroma_regeneration.md |
| 生成简报与图像后端 | references/image_generation.md |
| 公式重建与可编辑性 | references/formula-reconstruction.md |
| 脚本接口与候选可信度 | references/scripts.md |
| 最终放行条件、修复优先级 | references/quality_checklist.md |
入口脚本
| 阶段 | 脚本 |
|---|---|
| 全程 | measure.py —— 一切像素问题的唯一入口,批量提问 |
| 备料·取证 | prepare_measurements.py(含 --init 脚手架)、probe_geometry.py |
| 备料·裁剪 | snap_boxes.py、inspect_regions.py、crop_assets.py |
| 备料·生成 | prepare_clean_plate_mask.py、generate_clean_plate.py、check_plate_registration.py、probe_palette.py、chroma_key.py、slice_grid.py |
| 组装 | draft_elements.py、manifest_edit.py、compose_svg_package.py |
| 验收 | fit_text.py、pptx_text_fit.py、render_pptx.py;差异工单 fix_worklist.py 由 compose 自动运行 |
| 审计 | validate_manifest.py、quality_audit.py、audit_editability.py |
命令行、输入输出格式与注意事项见 references/scripts.md。表外脚本由 compose_svg_package.py 内部调用,不直接运行。
质量底线
保留源图全部重要信息、阅读关系和专有视觉;普通文字和每个检出公式保持可编辑;无检测噪声、公式文字泄漏、脏裁剪、源图补丁拼贴或静默路线降级。完整放行条件见 references/quality_checklist.md。
Signals
- GitHub stars
- 179
- Forks
- 15
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
figedit-v2- Source
- github.com/giszzt/figedit