为什么AI生成的中文字总是错?
让 AI 画一块带中文的招牌、一张带文案的海报,十有八九得到一幅”鬼画符”——笔画看着像汉字,仔细一读全是乱码。英文好歹还能拼对几个常见词,中文几乎必错。这不是某个工具的 bug,而是扩散模型的工作方式与文字的本质属性之间的冲突。拆开看,问题出在四层。
第一步:模型看到的不是”字”,是笔画的纹理
扩散模型在像素空间里工作,学到的是纹理和形状的统计规律。对模型来说,一个汉字不是”字”,而是一组复杂笔画构成的图形。
对比一下难度:英文字母只有 26 个,笔画简单,互联网图片里出现频率极高;中文常用字有 3500 个,每个都是独立的复杂图形,还要乘上字体、字重、排版组合,组合空间是天文数字。模型要”记住”的不是 26 个形状,而是几万个形状的精确笔画结构——每多一横少一竖就是另一个字。
第二步:训练数据里的文字本来就是糊的
生成模型从互联网图片学习,而图片里的文字大多是低分辨率、被水印遮挡、艺术化变形的。要模型看清一个字的精确笔画,需要大量清晰、位置规整的文字样本,这种数据天然稀缺。
数据少加上目标复杂,结果就是模型输出”形似汉字的随机笔画”:整体轮廓对,间架结构像,笔画细节全靠编。它不是不想写对,是从没”看清”过。
第三步:生成过程没有”拼写检查”
扩散模型逐步去噪,每一步都在做局部修复,全程没有一个”这个字必须等于某个字”的全局约束。少一笔多一划在视觉误差上微不足道,模型不会因此收到任何纠错信号。
英文还有一层先验兜底:模型从海量文本中学过词形,”hello”拼错了概率上不占优。汉字的字符级先验更弱,错误笔画不会被排除,于是错字可以一路存活到出图。
第四步:解法一——把”画图”和”写字”分开
业界的成熟思路是不让生成模型碰文字:AI 负责画面和留白,文字交给渲染引擎用真字体排上去,这是模板化设计的路子,可控性最高。
近期主打”文字生成”的模型走的是另一条路:先用文本编码器把字符序列编码成向量,生成时加一条”文字控制分支”,等于给笔画铺了轨道,让模型照着结构描。效果明显改善,但对笔画多的生僻字和复杂排版依然不稳。
第五步:解法二——用控制条件兜底
另一条实用路线是控制条件:先用真实排版引擎做出一张带正确文字的版式图,作为条件图(ControlNet 类控制)喂给扩散模型,让模型照着描。文字部分是”描红”出来的,准确率大幅提升。
顺便说一句,识别和生成是一体两面:OCR 模型读 AI 生成图里的字也经常错,说明”看不清”和”写不对”是同一个问题的两端。
结论
中文字写不对,根子在三点:文字在模型眼里只是复杂纹理、清晰文字训练数据稀缺、生成过程没有全局拼写约束。给三条可操作建议:正式物料一律 AI 出底图、后期压字(设计软件或脚本即可),这是最稳的路线;画面内必须有文字时,用最新支持文字的模型,只写两三个常用字,出图后逐字校对;带文字的版式需求优先走”控制条件描红”路线。做 AI广告制作 时,把”文字一律后期压字”写进生产流程,能省掉大量返工;正规 AIGC制作公司 的交付清单里,AI 直出的画面文字默认视为不可信,必须人工复核。