中间表示,而不是像素
模型输出的是节点、连线、锚点与坐标 —— 一份有 schema 的结构。 换一次渲染器,图的语义不变。
让模型直接吐 SVG,得到的是一张看起来像图的图片:线条位置每次都变、 基因名大小写被悄悄改掉、图标是模型捏的形状、字号没有单位。 我们把「画图」拆成「描述结构」与「编译结构」两步,前一步交给模型,后一步交给确定性代码。
模型输出的是节点、连线、锚点与坐标 —— 一份有 schema 的结构。 换一次渲染器,图的语义不变。
IR 里禁止出现任何矢量路径,每个图形都是 assetId。
这同时挡住了模型捏造图形,也守住了版权链。
几何一律毫米、字号与线宽一律磅,换算只在渲染器一处发生。 屏幕上看不出差别,投稿时编辑部的仪器会看出来。
人类 TP53、小鼠 Trp53、蛋白
p53 是三样东西。任何统一小写的「清洗」都会让它们混淆,而且看起来完全正常。
领域知识走检索、不走 prompt;检索不到参考图时显式标注「无参考」,而不是编一张出来。
判定图类型、学科域与目标期刊,拆出必须出现在图上的实体与关系。
在学科域素材库里找候选图标,按语义与版式打分后返回 assetId 集合。
决定分几组、谁在哪、连线走哪条;查不到参考图时写明「无参考」,不虚构。
产出 Scientific Figure IR:节点、连接线、文字、语义标签,几何全部落在 layout 块里。
能自动修的先修,修不了的才拦;规则宁少勿滥,一条普遍误报的规则等于没有规则。
只解决重叠与越界两类硬错误,不碰美学 —— 好不好看交给下一阶段的质检。
IR 编译为 SVG / PPTX / PDF,每个元素带 elementId,文字保持真实 <text>。
画布上的每个元素都绑定在 IR 节点上,拖动、改字、换图标都会走同一条命令总线,撤销重做是它的副产品。
连线端点绑定 nodeRef + anchor 锚点(top / right / bottom / left / center 五向),不存绝对坐标。拖走节点,线自己跟上。
选中即改字号、线宽、颜色与文字内容,改动实时回写 IR 并触发重新校验。
画布尺寸、字号下限、线宽范围随目标期刊切换,导出前先跑一次合规检查。
产物带生成者与版本号;整条链路的阶段、token 与成本都留痕,可回放。
单图成本从第一天起逐笔计量,模型路由分层 + 两级缓存,不让账单在月底 surprises。
质检未通过时仍给出图并标记降级,而不是把整次生成判死。
可编辑率不是宣传语:PPTX 里的图标是图形不是图片,文字是文本框不是轮廓,DPI 只对栅格格式开放。
PDF 的矢量 / 栅格在导出前会如实告知原因:带箭头的抑制关系走栅格,以免端头丢失把「抑制」读成「激活」。