让同一个人每次写出不一样的字:一个文献空白,和三种不同的失败形态
写作日期 :2026-10-18
面向读者 :做图像生成或手写生成的人,或者正在往中文书法生成上伸手的人。不需要读过本文引的那几篇原文,但需要对扩散模型和 LPIPS 有基本印象
核心问题 :「同一个人的多次采样要彼此不同,但仍要认得出是同一个人」这个要求,文献里被正面处理过吗?如果没有,各家分别是在哪一步漏掉的?
行文约定 :中文为主;英文术语保留(LPIPS、FID、CFG、Proxy-NCA 等),第一次出现的英文术语给全称;凡是论文原文的句子一律直接引,不改写
引子:一个看起来只要把噪声调大一点的要求
设想一个很朴素的场景。同一个人写同一个名字,写十次。
这十次不该一模一样——那不叫签名,叫打印件。但这十次又要看得出是同一个人写的,不是十个人写的,也不是电脑排的。
这两句话放在一起,就是一个生成模型必须同时满足的两条要求,而且它们的方向是相反的 :
- 「认得出是同一个人」要求模型把属于这个人的特征收紧 ;
- 「每次都不一样」要求模型在同一个人的内部留出自由度 。
分开看,两条都不难测,也都不难做到。难的是同时做到,而且要在同一个条件下同时做到——否则「不一样」只需要换个书写者就实现了,那是另一回事。
于是这一轮我把手写与书法生成方向上最强的四篇逐篇读了一遍,想找的就是「同一条件下的个体内变化」这件事。结论有两个:没有一篇正面处理它 ;而且三篇的失败方式互不相同——有的是设计上必然收敛,有的是损失方向恰好相反,有的是架构先把自由度给你了、又被训练目标拿走。
本文交付三件事:
- 这件事在通用图像生成里是有名字、有标准定义的,所以「找一个数来衡量它」不是我们发明的;
- 四篇里各自在哪一步漏掉了;
- 一个我们自己在这一轮里犯过的类别错误,以及为什么它是这一轮最值钱的一条收获。
读完之后你应该能回答:
- 「多样」这个数有标准定义吗?它漏掉了什么?
- 三种失败形态各是什么?哪一篇离这个要求最近?
- 「模型分不出风格」能不能推出「模型生成不出风格」?
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 三种「不一样」,三个不同的量
三种问法彼此不可替代,而且论文报的多样性几乎全是第一种 。这一点在下一节会具体到每篇。
| 问法 | 典型度量 | 本文关心的 | 四篇里的报法 |
|---|---|---|---|
| 集合级多样性 | 两两平均特征距离、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 个字体文件。拿它当书法生成的参照物是错的。
但它是四篇里结构上最接近这个要求的一个。理由如下——这一条是我的推断,不是论文的主张 :
给定同样的起始笔画,逐笔自回归采样天然会走出不同的后续笔画序列,而每一个采样序列又都对应一个结构自洽的整字。也就是说,这个自由度在架构层面是免费得到的,不需要额外设计。
两个必须点破的反面紧随其后:
- 它的训练目标是「给定前缀,预测下一笔」——学的是「最可能的下一笔」。而「最可能」恰恰是多样性的敌人。 要拿到多样变化必须靠采样,而
temperature、top-p、top-k在 LVGM 全文出现 0 次。架构给了通道,训练目标把旋钮焊死了,而作者没有讨论过任何一个旋钮。 - 它能给出的多样变化是「笔画级抖动」,不是「书写习惯级差异」。真实的同一个人的两次签名,差异在起收笔的习惯、字距、行笔节奏,不是随机的第七笔长什么样。光有逐笔随机化,不等于「像同一个人」。
还有一条更硬的:diversit 在全文出现 0 次 。作者谈创造性用的是 creativ,全文 3 次,全部在 5.5 节,而且全部是修辞(「expand the potential creativity」「demonstrates remarkable creativity」)。也就是说,作者一次都没有把它落到可测的东西上 ,而作者自认的两条局限里也没有「采样不可控」这一条。
2.4 三者放在一起
三种漏法对应三种不同的修法:一种要改条件的结构(把单值条件换成能张开自由度的因子),一种要改损失的方向(层内分散、层间紧致,和 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%。
这是一个判别式的量。它问的是「一个分类器能不能把这张图归到这个人名下」,而不是「这个人的 次采样彼此有多像」。而一个分类器能抓住的东西,比人眼认同的「像」要粗——分类器抓住的是统计上稳定、可线性分离的那部分特征,而人认同的「像」里有很大一块是习惯性的、有意的变化。
我们这一轮真的犯过这个错。调研字形风格识别的判别基准时,看到一批视觉语言模型的成绩接近随机,有的甚至低于随机基线,一度要把它写成「现有模型在字体上认不出风格,所以生成侧也别指望」。
这个推理不成立,错在两个地方:
- 判别基准只约束判别侧。「模型读不懂字形」完全可以是一个通路路由问题——模型把问题路由到语言通路上去了,于是它跟着文字内容走,而不是跟着字形走。这是一个关于读的结论,把它搬到写上,没有任何依据。
- 更根本的是,判别基准测不到生成侧真正要的东西。同一个人多次采样之间的一致性,是一个生成式的性质,判别式分类器对它无能为力。两个方向都不可逆推。
所以这一轮的结论应该这样写:「这个要求在已发表的工作里是空白」是成立的;「这个要求做不出来」是不成立的。前者是文献事实,后者没有证据。这两句话之间隔着的,就是这一类调研最容易出的错。
而空白的真正代价不在算法上,在指标上:没有现成的多样性定义、没有现成的采样一致性度量、没有现成的对照实验协议。这三样都得自己造,而且自己造出来的东西必须能变红——一个从不需要触发的判据和一个不存在的判据,在结果上长得一模一样。
同样形状的第二个例子,我在《重建得准不等于隐空间有结构》的第 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 的「逐笔自回归天然带有多样自由度」这一条是我的推断 ,论文没有提出这个论断;它自陈的两条局限里也没有这一条。
- 本文没有复现任何一篇的实验,所有数字都出自论文自报,且只用于说明方法的方向,不用于横向比较。