让同一个人每次写出不一样的字:一个文献空白,和三种不同的失败形态

作者 · kailfrong

写作日期 :2026-10-18
面向读者 :做图像生成或手写生成的人,或者正在往中文书法生成上伸手的人。不需要读过本文引的那几篇原文,但需要对扩散模型和 LPIPS 有基本印象
核心问题 :「同一个人的多次采样要彼此不同,但仍要认得出是同一个人」这个要求,文献里被正面处理过吗?如果没有,各家分别是在哪一步漏掉的?
行文约定 :中文为主;英文术语保留(LPIPS、FID、CFG、Proxy-NCA 等),第一次出现的英文术语给全称;凡是论文原文的句子一律直接引,不改写


引子:一个看起来只要把噪声调大一点的要求

设想一个很朴素的场景。同一个人写同一个名字,写十次。

这十次不该一模一样——那不叫签名,叫打印件。但这十次又要看得出是同一个人写的,不是十个人写的,也不是电脑排的。

这两句话放在一起,就是一个生成模型必须同时满足的两条要求,而且它们的方向是相反的 :

  • 「认得出是同一个人」要求模型把属于这个人的特征收紧 ;
  • 「每次都不一样」要求模型在同一个人的内部留出自由度 。

分开看,两条都不难测,也都不难做到。难的是同时做到,而且要在同一个条件下同时做到——否则「不一样」只需要换个书写者就实现了,那是另一回事。

于是这一轮我把手写与书法生成方向上最强的四篇逐篇读了一遍,想找的就是「同一条件下的个体内变化」这件事。结论有两个:没有一篇正面处理它 ;而且三篇的失败方式互不相同——有的是设计上必然收敛,有的是损失方向恰好相反,有的是架构先把自由度给你了、又被训练目标拿走。

本文交付三件事:

  1. 这件事在通用图像生成里是有名字、有标准定义的,所以「找一个数来衡量它」不是我们发明的;
  2. 四篇里各自在哪一步漏掉了;
  3. 一个我们自己在这一轮里犯过的类别错误,以及为什么它是这一轮最值钱的一条收获。

读完之后你应该能回答:

  1. 「多样」这个数有标准定义吗?它漏掉了什么?
  2. 三种失败形态各是什么?哪一篇离这个要求最近?
  3. 「模型分不出风格」能不能推出「模型生成不出风格」?

1. 这件事有名字,有标准定义——只是那个名字不是「千人千面」

1.1 一个集合级指标的标准写法

在通用图像生成里,「一批生成结果彼此差多少」是一个被反复用的问题。DivCo(arXiv 2103.07893)把它的度量写得很干净:

“LPIPS is used to measure the diversity of an image set by computing the average feature distance of all pairs of images“

其中 LPIPS 是 Learned Perceptual Image Patch Similarity,一种在感知特征空间里度量两张图的距离的指标。

「一个图像集合内,所有图像两两之间的平均特征距离」——这个数有标准定义,不是我们发明的。 把同一个条件下采出的 次样本喂进去,这个数恰好就是本文要的那个量。

但这句话里的主语是「一个图像集合」,它没有规定这个集合是怎么采出来的 。同一批条件下的 次采样是一个集合, 个不同书写者的样本混在一起也是同一个集合,而这两个集合上的平均两两距离差了一个数量级的含义。「多样性」这个词挂在哪个轴上,取决于你往里喂了什么,而不是取决于这个数本身。

1.2 这个数自己承认失效的那半句

DivCo 紧接着把失效条件也写了出来:

“LPIPS only measure the diversity score of a set of images by their average feature distance while the realism is not taken into consideration“

平均距离变大,有两种成因完全不同的情形:每张都不同、且每张都像真的 ;以及每张都不同、且每张都是噪声 。这个数对这两种情形是同向的,它只看得见前半句。

于是有两层结论。第一层是显的:任何只靠这一个数报告「多样性」的实验,都必须补一个真实度的轴,否则它在「更真实」和「更像噪声」两个方向上同时变好。第二层更要紧——即便补上了真实度,你手里的仍然是集合级的数 。它能回答「这批样本彼此散不散」,回答不了「同一个条件下的 次采样彼此散不散」,更回答不了「这 张里,哪几张还认得出是同一个人」。

1.3 三种「不一样」,三个不同的量

graph TD S["同一个条件<br/>同一个人,同一段文字"] --> A1["问法一:整批样本彼此散不散"] S --> A2["问法二:同条件 N 次采样彼此散不散"] S --> A3["问法三:能不能归到同一个人名下"] A1 --> B1["集合级多样性<br/>两两平均特征距离<br/>FID 与 LPIPS"] A2 --> B2["个体内多样性<br/>本文要的那个<br/>文献里没有标准做法"] A3 --> B3["身份可辨性<br/>writer 分类准确率<br/>判别式"] style B1 fill:#d4edda,stroke:#28a745 style B2 fill:#fff3cd,stroke:#ffc107 style B3 fill:#f8d7da,stroke:#dc3545

三种问法彼此不可替代,而且论文报的多样性几乎全是第一种 。这一点在下一节会具体到每篇。

问法 典型度量 本文关心的 四篇里的报法
集合级多样性 两两平均特征距离、FID 否 UniCalli 的 Table 4 就是这一种
个体内多样性 本文要的,无标准做法 是 无
身份可辨性 作者分类准确率 是(作为约束) DiffInk 的 Style 分数

第三行要单独提一句:它是个判别式的量,问的是「一个分类器能不能把这张图归到这个人名下」。它和前两行的关系,我在第 3 节会专门讲一次。

2. 三种失败形态:一个比一个隐蔽

2.1 UniCalli:设计使然地收敛到一个吸引子

UniCalli(arXiv 2510.13745,ICLR 2026 Poster)是四篇里在中文列级书法生成上最强的一篇:8,000 多幅作品、93 位书法家、15 万多个字实例,一次训练样本是 5 个连续字,裁成 128×640。

它的风格条件是参考图加书法家名字——两个都是单值 。条件给死,采样的结果理应收敛到一个吸引子。这不是 bug,这是它的任务定义。

更硬的证据来自检索:对全文统计,seed、temperature、CFG、classifier-free 各出现 0 次(seed 唯一的命中是图像模型 Seedream)。它从来没有测量过同一个体条件下多次采样的方差。

唯一和「多样性」沾边的机制是 Conditional Dropout(式 3,p_drop 取 0.05):以小概率把内容条件打成纯噪声。论文把它的两难说得很清楚:

“excessive dropout yields generic, style-agnostic outputs, while insufficient dropout leads to style over-prioritization, resulting in abstract patterns with incoherent glyph structures.”

方向恰好相反。它是在削弱风格条件,防长尾书家的风格压倒字形结构;它不是「在同一风格内部腾出变化空间」。这是治「风格太强势」的方子,恰好不是治「同一个人每次都一样」的方子。

最能说明误会的是 Table 4 的最后一步:加上 Conditional Dropout 之后,L1 从 0.148 略微变差到 0.152、SSIM 从 0.613 变差到 0.602,而 LPIPS 从 0.352 降到 0.313、FID 从 41.78 降到 37.69。论文的表注写的是:

“Improved LPIPS and FID indicate enhanced diversity and realism, avoiding the mode collapse associated with pixel-wise averaging.”

这句话里的 diversity 是 1.1 节说的第一种问法。整批样本彼此分散,不是同一个人内部有变化。把它读成后者,是这一类文献里最常见的一次误读。

2.2 DiffBrush:损失的方向是反的

DiffBrush(ICCV 2025,arXiv 2508.03256)做行级手写文本生成,是四篇里把「内容监督会把风格压平成印刷体」这件事讲得最透的一篇。它的核心创新叫「内容解耦的风格学习」:按方向分别掩码,再用 Proxy-NCA 损失学风格。Proxy-NCA 的做法是——给每个书写者分配一个可学习的 proxy,把同一书写者的掩码特征拉向自己的 proxy,把不同书写者的推离(式 3、式 4,带 margin 和缩放 ,相似度用余弦)。

这个损失加强的是身份可辨性,它和「在身份内部制造变化」的方向完全相反。照抄它,「同一个词只能生成一个样子」只会更严重,不会更好。

有一处特别容易读反,必须点出来:论文附录 N 有一节 Style interpolation ,标题看起来像是做了多样性。原文是:

“we conduct linear style interpolation experiments between different writers … the generated text-line images smoothly transition from one style to another … while strictly preserving their original textual content.”

插值对象是两个不同的书写者 。它证明的是「风格潜空间是一个有意义的连续空间,而不是死记硬背」——这和「同一个人内部能不能变」是两个正交的问题。

至于多样性本身:diversity 全文出现 1 次,在 Table 4 的表注里解释 LPIPS 与 FID 的含义,不是任何一个实验 ;temperature、top-p、top-k 各 0 次。推理只报了一个 CFG scale = 0.2,全文没有一处分析同一参考加同一文本重复采样会怎么变。

顺带记一条实现约定,因为抄的时候会踩:论文在 5.3 节明确说,风格特征是「extracted from the entire style reference before any masking 」——掩码只发生在训练时的损失计算里,推理时的风格特征来自完整参考图 。掩码是训练技巧,不是输入变换。

2.3 LVGM:架构先把自由度给你了,训练目标再拿走

LVGM(arXiv 2511.11119,同济大学)首先需要被正名:它不是书法论文 。它的语料只有楷和行两种印刷字体 ,没有草隶篆,没有任何书法家手迹;它那 60 个 style 是 60 个字体文件。拿它当书法生成的参照物是错的。

但它是四篇里结构上最接近这个要求的一个。理由如下——这一条是我的推断,不是论文的主张 :

给定同样的起始笔画,逐笔自回归采样天然会走出不同的后续笔画序列,而每一个采样序列又都对应一个结构自洽的整字。也就是说,这个自由度在架构层面是免费得到的,不需要额外设计。

两个必须点破的反面紧随其后:

  1. 它的训练目标是「给定前缀,预测下一笔」——学的是「最可能的下一笔」。而「最可能」恰恰是多样性的敌人。 要拿到多样变化必须靠采样,而 temperature、top-p、top-k 在 LVGM 全文出现 0 次。架构给了通道,训练目标把旋钮焊死了,而作者没有讨论过任何一个旋钮。
  2. 它能给出的多样变化是「笔画级抖动」,不是「书写习惯级差异」。真实的同一个人的两次签名,差异在起收笔的习惯、字距、行笔节奏,不是随机的第七笔长什么样。光有逐笔随机化,不等于「像同一个人」。

还有一条更硬的:diversit 在全文出现 0 次 。作者谈创造性用的是 creativ,全文 3 次,全部在 5.5 节,而且全部是修辞(「expand the potential creativity」「demonstrates remarkable creativity」)。也就是说,作者一次都没有把它落到可测的东西上 ,而作者自认的两条局限里也没有「采样不可控」这一条。

2.4 三者放在一起

graph LR Q["同一个要求<br/>同一个人,每次写出不一样的字"] --> U["UniCalli"] Q --> D["DiffBrush"] Q --> L["LVGM"] U --> U1["风格条件全是单值<br/>参考图加书法家名字"] U1 --> U2["采样必然收敛到一个吸引子<br/>seed 与 temperature 与 CFG 全文 0 次"] D --> D1["Proxy-NCA 把同一书写者拉近<br/>把不同书写者推远"] D1 --> D2["加强的是身份可辨性<br/>与多样变化方向相反"] L --> L1["逐笔自回归<br/>架构天然带着自由度"] L1 --> L2["训练目标是最可能的下一笔<br/>三个采样参数全文 0 次"] style U2 fill:#f8d7da,stroke:#dc3545 style D2 fill:#f8d7da,stroke:#dc3545 style L2 fill:#fff3cd,stroke:#ffc107 style L1 fill:#d4edda,stroke:#28a745

三种漏法对应三种不同的修法:一种要改条件的结构(把单值条件换成能张开自由度的因子),一种要改损失的方向(层内分散、层间紧致,和 Proxy-NCA 正好相反),一种要改目标(在「最可能」里塞进采样,而且要给采样的强度定标)。

顺带说清一件同样重要的事:这四篇里没有一篇把压感建模成一个输出通道 。检索全文的结果是:UniCalli 的 pressure 唯一一次命中是动词用法(说识别目标「pressures」了生成器),不是压感通道;DiffBrush 的 pressure 与 pen width 各 0 次;LVGM 的 pressure 与 width 也各 0 次。所以「同一个人的不同次书写,在提按的节律上不同」这件事,在已发表的在线手写工作里同样没有位置。这一条与本文的主题相邻,但它是另一个空白,本文不展开。

3. 一个我们犯过的类别错误:「分不出」推不出「生成不出」

先看一个具体的分数。DiffInk(arXiv 2509.23624v4,ICLR 2026 accepted)的 Style 分数是 77.38,是四篇里最高的一档。

但这个分数是怎么来的?用一个 100 类的作者识别模型去判生成的样本像不像目标作者,而这个识别模型在测试集上本身就有 99.9%。

这是一个判别式的量。它问的是「一个分类器能不能把这张图归到这个人名下」,而不是「这个人的 次采样彼此有多像」。而一个分类器能抓住的东西,比人眼认同的「像」要粗——分类器抓住的是统计上稳定、可线性分离的那部分特征,而人认同的「像」里有很大一块是习惯性的、有意的变化。

我们这一轮真的犯过这个错。调研字形风格识别的判别基准时,看到一批视觉语言模型的成绩接近随机,有的甚至低于随机基线,一度要把它写成「现有模型在字体上认不出风格,所以生成侧也别指望」。

这个推理不成立,错在两个地方:

  1. 判别基准只约束判别侧。「模型读不懂字形」完全可以是一个通路路由问题——模型把问题路由到语言通路上去了,于是它跟着文字内容走,而不是跟着字形走。这是一个关于读的结论,把它搬到写上,没有任何依据。
  2. 更根本的是,判别基准测不到生成侧真正要的东西。同一个人多次采样之间的一致性,是一个生成式的性质,判别式分类器对它无能为力。两个方向都不可逆推。
graph TD A1["判别式基准<br/>这个模型能不能认出风格"] -->|不能这样推| B1["生成侧<br/>这个模型能不能写出有风格的字"] B1 -->|同样不能这样推| A1 style A1 fill:#fff3cd,stroke:#ffc107 style B1 fill:#d4edda,stroke:#28a745

所以这一轮的结论应该这样写:「这个要求在已发表的工作里是空白」是成立的;「这个要求做不出来」是不成立的。前者是文献事实,后者没有证据。这两句话之间隔着的,就是这一类调研最容易出的错。

而空白的真正代价不在算法上,在指标上:没有现成的多样性定义、没有现成的采样一致性度量、没有现成的对照实验协议。这三样都得自己造,而且自己造出来的东西必须能变红——一个从不需要触发的判据和一个不存在的判据,在结果上长得一模一样。

同样形状的第二个例子,我在《重建得准不等于隐空间有结构》的第 3 节写了:一条看起来极其自然的主信号——重建误差——为什么可能测不出你要的东西。

结语:这个空白不是结论,是一份必须自己签收的工程量

「文献里没人做过」的正确读法不是「难」,而是「验收指标也得自己造」 。你得先定义清楚什么叫做得够不一样、又还是同一个人,而这件事没有任何一篇替你做过。

三篇的失败形态各自贡献了一件可借的东西:UniCalli 证明了「在条件通路上加一个随机开关」这个位置是对的,方向要反过来用;DiffBrush 的损失方向必须整体翻转,变成层内分散加层间紧致的双重约束,而这一条公开文献里查不到现成方案;LVGM 说明逐笔分解是天然的多样性载体,但它需要一个 LVGM 完全没有的部件——一个把书写者身份显式编码进笔画生成过程的通道。

身份收紧与个体内变化之间的那个刻度,不是一句需求,是一个必须标定的参数。

附录:参考资源

论文

  • DivCo,arXiv 2103.07893。本文只用它关于 LPIPS 多样性定义与该定义失效条件的两句原文。
  • UniCalli: A Unified Diffusion Framework for Column-Level Generation and Recognition of Chinese Calligraphy,arXiv 2510.13745,ICLR 2026 Poster。
  • Beyond Isolated Words: Diffusion Brush for Handwritten Text-Line Generation,arXiv 2508.03256,ICCV 2025。
  • Stroke Modeling Enables Vectorized Character Generation with Large Vectorized Glyph Model(LVGM),arXiv 2511.11119。
  • DiffInk: Glyph- and Style-Aware Latent Diffusion Transformer for Text to Online Handwriting Generation,arXiv 2509.23624,ICLR 2026 accepted。
  • Bridging Online and Offline Handwriting via Differentiable Physical Rendering,arXiv 2608.03198,ECCV 2026。

取材与边界

本文只用到上面六篇里的少数几处,引用一律来自原文。

  • UniCalli 的 ICLR 2026 Poster 出处经 OpenReview 独立确认;本文引用的是它的正式会议记录,而不是仓库标签。
  • LVGM 截至取材时在 arXiv 上没有正式出处(条目里没有 journal_ref、没有 doi、没有 comment),引用时按预印本对待。
  • LVGM 的「逐笔自回归天然带有多样自由度」这一条是我的推断 ,论文没有提出这个论断;它自陈的两条局限里也没有这一条。
  • 本文没有复现任何一篇的实验,所有数字都出自论文自报,且只用于说明方法的方向,不用于横向比较。