一张 40 岁的丰子恺:从《教师日记》到 AI 形象复原

写于 2026-11-09

语料:丰子恺《教师日记》,教育科学出版社 2008 年 3 月第 1 版(220 页扫描件),经 OCR 得 160 天、66,566 字。 产物:4 张 1568×2352 黑白肖像(即梦,2026-11-09)。 性质:方法说明 + 证据档案,不是"发现了一张照片"的新闻稿。

0. 一句话结论

这张"40 岁的丰子恺",不是被找到的,是被推出来的。

它的三条边分别来自三个不同性质的源头:日记文本给出"他 40 岁那年长什么样、穿什么、多重、胡须多长";互联网上已公开的影像给出"他的五官骨相"与"他晚年那套被全国读者记住的长须圆镜形象";生卒年与日记内证把年龄钉死在 40 岁。三者交叉,落在一个任何档案里都没有影像的空点上——1938 年 11 月至 1939 年 11 月的丰子恺。

所以严格的说法是:

AI 复原的 40 岁丰子恺形象

图:AI 复原的 40 岁形象(即梦,2026-11-09,1568×2352)。四张候选中的第 1 张,非史料照片。

据 1918 年青年照、晚年照与《教师日记》文字记载,AI 复原的 40 岁形象(示意)。

不能叫"丰子恺 40 岁照片"。这句话的差别,就是数字人文与"AI 造图"的差别。


1. 为什么要造一张不存在的照片

项目把《教师日记》做成纪录片与数字人,第一人称叙述。第一人称就得有"我"的一张脸。可史料在这个位置上是空的:

现有影像 拍摄时间 他的实岁 与本片需要的年龄差
浙江省立第一师范读书时留影 1918-03-18 19 岁 早 21 年
晚年半身像(持书) 约 1960 年代 约 65 岁 晚 25 年
晚年头像 约 1960 年代 约 65 岁 晚 25 年

19 岁 → 40 岁 → 65 岁。中间那段 21 年的空白,恰好就是这本日记发生的时间。

这不是素材没找齐,而是战时条件所限:1938—1939 年他在桂林两江圩与宜山之间流亡办学。日记里他确实请联华照相馆来家拍过合家欢,还打算专门拍一张"以白巾衬须"的单人照寄给各地报刊辟谣——但那张单人照是否拍成、是否存世,至今未见。该有的照片本来就没几张。

于是问题从"找图"变成"考据 + 推演":先证明 40 岁的他应该是什么样,再让模型把这个"应该"画出来,最后给这张画标明它是什么、不是什么。


2. 方法总览:三源合一

        ┌─────────────────────┐
        │ 《教师日记》160 天   │  外貌、体重、衣着、须发、视力、
        │ 66,566 字(OCR 0.98)│  以及"吾今四十有二"这句年龄自证
        └──────────┬──────────┘
                   │ 检索 → 回原文 → 参数化
                   ▼
        ┌─────────────────────┐
        │  形象证据表(12 项)  │──── 提示词的"要改什么"
        └──────────┬──────────┘
                   │
   ┌───────────────┼───────────────┐
   ▼               ▼               ▼
1918 青年照     晚年半身照      晚年头像
(骨相锚)      (须/镜/发际)   (细节锚)
   └───────────────┼───────────────┘
                   ▼
        ┌─────────────────────┐
        │ 年龄锚定:40 岁       │  1898-11-09 生 + 日记自述虚岁 42
        │ 时空:桂林两江→宜山   │  = 实岁 40(1938-11-09 起)
        └──────────┬──────────┘
                   ▼
        参考图预处理(3 张 1024px)
                   ▼
        提示词(身份锁定 + 参数 + 负向)
                   ▼
        人工复制粘贴 → 即梦平台 → 4 张候选
                   ▼
        三图对照验收 → 分级标注 → 存证

关键在最后两步:生成不是终点,标注才是。一张没有标注的 AI 复原图,在史料链里是有害的;标注清楚之后,它才成为"对空白的可视化假设"。


3. 第一源:从日记文本里"读出"一个人的长相

3.1 怎么读

不使用"通读 + 印象"的办法,而是把 66,566 字当成可检索的语料库,用外貌相关词表做全量扫描,再逐条回到原文与日期:

检索词:须 / 胡子 / 鬓 / 发苍苍 / 眼镜 / 花眼镜 / 视茫茫 /
        长衫 / 中山装 / 棉袍 / 白衬衣 / 斤 / 照相 / 摄影

命中后只保留两类:(a)他自己对自己的描述;(b)别人对他的反应。(b)往往比(a)更硬——别人怎么看他,是形象的社会效果。

3.2 形象证据表(这是全流程的地基)

项 日记原文(摘) 日期 推出的视觉参数
胡须存在 "不知这胡子是不是我将来的先生?"(学生投考时的猜想) 1938-10-24 40 岁前后,须已明显到成为陌生人的第一印象
须的形态 "我口上生须,人视我为老人。一老人与儿童踢球,见者大都好笑" 1938-10-29 上唇须阶段;且已影响他的社会自我认知
须的长度 "途中设想自己之姿态:蓄长须,穿中山装,肩长烟管,负大鲤鱼" 1938-12-09 自述已进入"长须"阶段
须的公共性 《无锡报》载"一长须,剃个干净";浙报标题"丰子恺割须抗战";他拟"请联华摄影,以白巾衬须,使之特别显明……以明前此各报之传讹" 1939-02-24 长须已是被全国读者惦记的身份符号,且他本人要拍照辟谣
须的可触性 "新枚在吾怀中,常以小手弄须,时或拔去数根" 1939-02-24 须长到 4 月龄婴儿可抓可拔,垂坠感明确
发色 "吾抗战前两鬓已霜,今则霜将成雪,鬓亦渐回黄转白" 1939-03-28 两鬓花白、头顶仍黑——不是晚年那种全白
视力 "看细字信甚吃力……雪山以老花眼镜相借……今晨已买一百五十度之花眼镜矣" 1939-03-28 戴镜是日常;1939 年 3 月起 +150 度老花
眼镜的识别度 "是日天热,吾穿白衬衣,且不戴眼镜,故婴儿不能识也。戴眼镜抱之,即不哭" 1939-05-08 眼镜是连婴儿都依赖的识别特征——身份符号级
日常服装 "久不穿短衣矣,今穿中山装赴校" 1938-12-09 平日长衫/长袍;中山装是宣传场合的例外
冬季服装 "会场上须穿制服,天奇冷……礼毕……即披棉袍返家" 1938-12-25 冬季棉袍
体型 "吾得九十九斤,比抗战前轻一斤" 1939-02-25 49.5 kg——极瘦,这是脸型之外必须靠体型校准的一条
身材 "华瞻年十六,穿吾之广西装,不须改小,已能称身" 1939-04-24 16 岁儿子穿他的衣服不用改小 → 身材瘦小

3.3 日记自己给出的年龄坐标

这一条最关键,因为它让"40 岁"不是我们的设定,而是文本自证:

1939-03-28:"韩文公年未四十,而发苍苍,而视茫茫。吾今四十有二视始茫茫。较之韩文公,尚不算早衰也。"

"四十有二"是虚岁。丰子恺生于 1898-11-09,1939 年虚岁 42,实岁 40。他在日记里借韩愈"年未四十,而发苍苍,而视茫茫"作比,等于亲手把"发苍苍、视茫茫"这两件事按在了自己 40 岁这一年;再往前推,1937 年之前"两鬓已霜",38—39 岁就已见白。

一句话,把年龄、发色、视力三件事同时锁死。这是整个形象复原里最有力的一条内证。


4. 第二源:公开影像——青年定骨,晚年定符号

三张公开照片各司其职,不能互相替代。

4.1 1918 年青年照:只给骨相,不给气质

  • 原件为椭圆相框装裱,右侧有自题:"戊午夏二月初六日摄 时年二十一岁 初级师范三年级 子恺自题",另有后人加注"在浙江省立第一师范学校读书时留影(摄于 1918 年 3 月 18 日)"。农历戊午年二月初六即公历 1918-03-18,"二十一岁"为虚岁,实岁 19。
  • 画面状态:无眼镜、无须、短发、低头约 10–15°、单侧硬光、印刷网点、相框外有题字压边。
  • 它能提供:脸型、眉形、眼型、鼻梁、唇形、耳位——骨相的唯一硬锚。
  • 它不能提供:40 岁的神气、须、镜、衣。这是三张里"最不像"的一张,只作五官基准,不作气质参考。

4.2 两张晚年照:给"符号",不给"年龄"

  • 晚年半身像:全白长须垂至胸前、黑色圆框眼镜、深色外套、手持书册、笑容外露。
  • 晚年头像:面部细节最清楚——眼尾下垂角度、鼻头形状、须根分布、镜框鼻托与铰链处的折角镜腿(注意:框形并非标准正圆,外角略上挑,这一点被生成结果继承了)。
  • 它们能提供:长须的走向与垂坠感、圆框眼镜的形制、发际线与颅顶、面部沟壑的走向。
  • 它们不能提供:40 岁的须色与皮肤紧致度。晚年的须是"最终形态",40 岁是它生长的中段。

4.3 缺口必须写在明处

没有任何一张公开影像拍摄于 1938-11 至 1939-11 之间。

这就是本方法的核心处境:不是"用 AI 修一张老照片",而是"在两个已知年龄之间做一次有依据的插值"。插值的依据是第 3 节的文本参数,插值的不确定性来自模型先验——两者都要在成品说明里交代。


5. 年龄锚定与时空界定

5.1 40 岁到底是哪一段

事实 依据
生于 1898-11-09 生卒年
1938-11-09 — 1939-11-08 = 实岁 40 生日推算法
日记时段 1938-10-24 — 1939-06-24 原书起止
日记首两周(10-24 至 11-08)他仍是 39 岁 同上,须注意
1939-03-28 自述"四十有二"(虚岁)= 实岁 40 日记内证

所以"40 岁"覆盖的是:桂林两江圩的后半段 + 宜山的前半段。日记前 16 天严格说还差半个月才满 40。

5.2 空间:桂林,还是宜山

时段 地点 身份
1938-10-24 — 1939-04-05 桂林两江圩(今临桂两江镇) 桂林师范(桂师)教师
1939-02-25 雇舟 → 1939-04-05 下午二时"遂与两江告别" 等船约四十天(船只被军运征用) —
1939-04-08 一时半抵宜山 经柳州转校车 —
1939-04-08 — 1939-06-24 宜山(今河池宜州)龙岗园 浙江大学教师

(1939-03-28 那天他在桂林城内办事、住旅馆,并不是已经离开;日记里"此次离桂林"一语出现在 1939-03-03,说的是将要离开,真正的动身日是 1939-04-05。)

因此这张像的准确时空是:"桂林时期(含随后的宜山时期)的丰子恺",而不是"站在桂林山水前的一张照片"。生成时用的是素墙背景,没有放桂林山水——因为日记里的他不是在游山,是在土屋里写作:

1939-06-07:"乡中三方丈,住十一人,非有巧妙之布置不可。" 1939-06-08:"吾卧一帆布床,书桌设床前,晨起即以帆布床为椅而写作。"

背景留白,是刻意的:不虚构一个史料里没有的场景。


6. 把考据翻译成提示词

提示词不是"描述一张好看的肖像",而是把第 3 节的表格逐行写成可执行指令,并且遵守一条铁律:

先说"不许变",再说"要变"。

年龄编辑最容易失手的不是"老得不够",是换脸。所以每条提示词都以身份锁定句开头:

保持图1人物的五官(眼型、鼻梁、唇形、脸型、耳位)不变,只改变年龄并加须。

完整提示词存于 素材/丰子恺照片\prompts\p1a_master_zh.txt(中)与 p1a_master_en.txt(英)。中文版的结构是:

段 内容 对应证据
参考图声明 图1 五官基准 / 图2 长须+镜框+发际线 / 图3 眼型鼻头唇形 第 4 节
身体 清瘦、身高偏矮、长脸偏窄、颧骨略高、颞部微陷、面颊略凹 99 斤、儿子穿他衣服
头部 发际线略后移未秃、黑灰为主、两鬓花白、向后梳三七分 1939-03-28
五官 平直细眉、细长眼、内双、眼尾略下垂、浅眼袋、鼻梁直而窄、薄唇闭口 1918 照 + 晚年头像
须 两段式:上唇短髭不压唇线 + 颌下长须垂至胸前、须梢微散、黑灰夹白 1938-10-29 / 12-09 / 1939-02-24
配饰 黑色细边圆框、镜片透明、无高光无窗外反光、轻度近视厚度 1939-03-28 / 05-08 + 晚年照
服装 深灰粗布中式长衫、立领、布扣、洗得发白、袖口略短 1938-12-09"久不穿短衣矣"
光与质 左侧 45° 窗光、右侧补光 3:1、1930 年代银盐颗粒、轻微暗角 与 1918 照同质感,便于混剪
负向 美颜/磨皮/AI 感/西装/细条纹/全白胡须/全白头发/发福/镜片反光/须遮嘴 防"把 40 岁做成 60 岁"

负向词里最要紧的是那三项——"全白胡须""全白头发""发福"。因为模型对"长须中国文人"的先验极强,不写死,它一定给你一位老先生。


7. 执行:人工搬运到即梦

本机是 AMD RX 6500 XT 4GB,跑不了 SDXL/Flux 级扩散模型,生成全部在云端。方案里并列过百炼指令编辑、即梦、Flux Kontext、本地 SDXL 四条路线,最终采用的是即梦:中文界面、主体参考上手快、相似度可视调,适合"人肉试错"这一轮——这一轮要判断的核心问题不是"能不能生成",而是"像不像 40 岁的他",这必须靠人眼在几张候选里反复比,滑杆比 API 参数更直接。

流程是纯手工的,也正因如此,每一步都留下了可核对的痕迹:

步 动作 留下的痕迹
① 三张原始照片裁切到 1024px 长边:ref_1918_face_1024.png(810×1024)、ref_old_upper_1024.png(611×1024)、ref_old_head_1024.png(868×1024) 01_预处理/ + 三图并排对照图
② 处理链:灰度 → 3×3 中值滤网纹 → UnsharpMask(r1.2, 45%) → autocontrast → LANCZOS 缩放 脚本 scripts/30_prep_portrait_refs.py,可复跑
③ 不旋转抬正、不强制正方形、不磨皮 两条实测修正(见下)
④ 打开即梦,上传 3 张参考图(图1 必须第一张) 平台侧记录
⑤ 把 prompts/p1a_master_zh.txt 全文人工复制粘贴进输入框 输出文件名里内嵌了提示词开头
⑥ 生成,一次出 4 张候选 文件时间集中在 13:20–13:21

两条实测修正(原方案写法有误,已改):

  1. 不要旋转抬正。 1918 年照低头约 11°,旋转后下巴被裁、还带出白角;而参考图的作用是给模型看五官,姿态倾斜对身份嵌入影响很小。保留原姿态。
  2. 不要强制正方形。 强行裁方会切掉晚年照的头顶和须梢——而须的走向正是那张图最该提供的信息。改为保持原比例、长边缩到 1024。

一个意外的存证红利:即梦把提示词开头直接写进了导出文件名——

jimeng-2026-11-09-1085-【参考图】 图1 = ref_1918_face_1024.png(五官与骨相基....png

也就是说,文件名本身就是"这三张图 + 这段提示词"的绑定凭证。将来任何一张图流出去,都能追回它的生成条件。这在数字人文里叫 provenance(来源链),平时要靠手写元数据,这次被平台顺手做了。


8. 结果:四张候选的技术档案

同一提示词、同一组三张参考图,一次生成四张候选,四张右下角都带"即梦 AI"平台水印——它同时也是不可当作史料的直观提醒。本文只发布最终选用的第 1 张,其余三张留档不发布。

归档:四张候选已重命名为 1.png–4.png,顺序同下表;1.png(生成号 1085)为对外配图。

8.1 共同规格

项 实测
数量 4 张
尺寸 1568×2352(2:3 竖构图)
文件 4.1–4.5 MB / 张,PNG
色彩 黑白(银盐倾向)
平台水印 右下角"即梦 AI"水印
人物 单人、正脸或近正脸、闭口、目光平视
配饰 黑色圆框眼镜(含折角镜腿)、上唇短髭 + 颌下长须
服装 深色粗布长衫、立领、布扣,布纹清晰
背景 素色墙面(偏影棚布/土墙之间),左侧纹理重、右侧提亮

8.2 四张的差异

候选 姿态 须 面部 备注
#1(生成号 1085) 3/4 侧,视线略偏轴 最白、最密、最长 颧骨与颊部结构最清 布纹颗粒感最强,本文采用
#2(1726) 3/4 侧,侧光重 白、层次最丰富 面部明暗对比最强,神态最沉 领口露出白色内衬
#3(6636) 最正面 白、较稀较软 面部最饱满、皮肤最平滑 领口白色内衬,年龄感最轻
#4(7886) 近正面 白、中长 结构偏"硬",镜腿折角最明显 最接近"档案照"气质

8.3 达标项与偏差项(这一节必须诚实)

达标:

  • 单人、闭口、唇部完整可见——数字人驱动的前置条件成立;
  • 眼镜为细边圆框,无强反光、无窗外倒影——闪烁源被排除;
  • 长衫、立领、布扣、粗布纹理,无现代面料反光;
  • 银盐颗粒与暗角成立,与 1918 年照、晚年照混剪时不会"跳出来";
  • 五官与 1918 年照的连贯性可辨(脸型、鼻梁、眼型),与晚年照的须/镜形制连贯。

偏差(必须写进说明,不能藏):

偏差 表现 原因 处置
年龄感偏大 四张普遍读作 45–55 岁,不是 40 须色接近全白,模型对"长须文人"的先验压过了"黑灰夹白"的指令 若严格 40 岁:下一轮只调须色与皮肤松弛度,锁死五官;否则口径改为"40 岁前后"
须色偏白 负向里写死的"全白胡须"仍被部分突破 参考图 2/3 的须全白,权重高 降低图2/图3 权重,或先做一张"黑须化"中间图再生成
背景偏影棚 更接近布景墙,不是日记里的"三方丈"土屋 提示词给了"灰褐色土墙",模型倾向干净背景 若要场景版,须另做 P3,不与母版混用
镜框形制 折角镜腿来自晚年头像,未必是 1939 年的镜 参考图继承 可接受:属"符号延续",但注释中应说明

这张图最诚实的一句话是:它把晚年的符号,提前了二十五年。 这不是失败,而是"生成式复原"的固有偏差——模型只会往它见过的方向补,而它见过的"丰子恺"几乎都是白须老者。把这一点写出来,比修掉它更重要。


9. 数字人文的三条纪律

9.1 证据分级

级别 内容 能否当史料用
A 级 · 文本实证 日记原文(须、发、镜、衣、体重、年龄自述),可回查日期与原书 能,且必须给日期
B 级 · 影像实证 1918 年照、两张晚年照——确为他本人,但不是这十年 能,但须注明拍摄年份
C 级 · 模型推演 本次生成的 40 岁形象 不能。只能作为"可视化的假设"

三级不能混。混了,就是拿 C 级当 A 级用。

9.2 缺口显式化

不掩饰"这个年龄没有照片"。反而把缺口当成叙事资源:正因为 40 岁这一格是空的,才需要文本上场;也正因为文本足够密(须多长、几斤、戴几度镜),这次插值才不是瞎猜。

9.3 标注规范

场景 写法
画面 角落或片尾固定标注"AI 复原示意"(依《人工智能生成合成内容标识办法》,2025-09-01 施行)
文案 "据 1918 年照、晚年照与《教师日记》记载 AI 复原的 40 岁形象(示意)"
禁用 "丰子恺 40 岁照片""1939 年丰子恺留影""史料照片"
制片笔记 写明"须的形态据日记,长度与颜色深浅按 1938-10 至 1939-11 约 13 个月生长推演"
权利 死者肖像受法律保护,近亲属可主张;对外发布前取得丰氏后人授权;馆藏照片另需纪念馆授权
边界 不得用于商品代言、不得暗示本人背书、不生成"历史现场合影"

10. 可复现性与存证清单

素材/丰子恺照片/
├─ 丰子恺1918年3月18日照片.jpg      600×984   青年骨相锚(互联网公开,带 Artron 水印)
├─ 丰子恺照片.jpg                  1080×1516  晚年半身(长须走向 / 镜框 / 发际线)
├─ 丰子恺照片2.jpg                  670×651   晚年头像(眼型 / 鼻头 / 镜腿细节)
├─ 01_预处理/
│   ├─ ref_1918_face_1024.png       810×1024
│   ├─ ref_old_upper_1024.png       611×1024
│   ├─ ref_old_head_1024.png        868×1024
│   ├─ _对照_1918_晚年半身_晚年头像.png   三图并排,供逐项打分
│   └─ _box_*.png                   裁切坐标目检图
├─ prompts/
│   ├─ p1a_master_zh.txt            中文主提示词(含负向)
│   └─ p1a_master_en.txt            英文版(Flux / MJ 备用)
└─ 20261109 即梦/
    └─ 1.png / 2.png / 3.png / 4.png   4 张候选,1568×2352
  • 预处理脚本:scripts/30_prep_portrait_refs.py(--dry 先出红框目检)。
  • 方案与依据:方案/20261109 丰子恺41岁纪录片形象照生成方案.md(按 1939-11 之后的 41 岁立项,最终锁定在日记主体时段的 40 岁)。
  • 不可完全复现的部分:即梦为闭源服务,seed 不公开、版本会迭代。因此存证的重点不是"重现同一张图",而是记录生成条件(平台、日期、参考图、提示词全文)+ 保留全部候选。同一提示词今日重跑,结果不会相同——这一点必须如实写在档案里。

11. 这张图能做什么、不能做什么

能:

  • 纪录片第一人称的"我";片头定帧、海报、封面;
  • 数字人口播的形象底图(当前 4 张均满足闭口、正脸、唇部可见的前置条件);
  • 与 1918 年照、晚年照混剪时的"中间一帧",让观众感到时间连续;
  • 作为方法演示:向公众解释"史料如何变成一张脸"。

不能:

  • 不能当史料照片,不能进图录,不能作"1939 年留影";
  • 不能单独承担"他长这样"的断言——它只能承担"据这些证据,他大约这样";
  • 不能替代继续找真照片。日记里"拟请联华摄影,以白巾衬须"这条线索仍在,真照片若存世,优先级永远高于这张推演图(可查:丰氏后人、桐乡丰子恺纪念馆、《丰子恺影集》类出版物 1939—1941 年章节、《教师日记》1944 年初版插页)。

附录 A:日记引文索引(按日期可回查原书)

日期 引文(摘) 用途
1938-10-24 "不知这胡子是不是我将来的先生?" 须已成形
1938-10-29 "我口上生须,人视我为老人" 须的形态与社会效果
1938-12-09 "久不穿短衣矣,今穿中山装赴校" 日常为长衫
1938-12-09 "蓄长须,穿中山装,肩长烟管,负大鲤鱼" 自述长须阶段
1938-12-25 "礼毕……即披棉袍返家" 冬装
1939-02-02 "请圩上新开之联华照相馆来家摄合家欢" 真实照片线索
1939-02-24 "以白巾衬须……以明前此各报之传讹" 须是公共符号
1939-02-24 "新枚……常以小手弄须,时或拔去数根" 须长可抓
1939-02-25 "吾得九十九斤" 体重 49.5 kg
1939-03-28 "抗战前两鬓已霜,今则霜将成雪" 发色花白
1939-03-28 "吾今四十有二视始茫茫" 年龄内证(虚岁 42 = 实岁 40)
1939-04-08 "一时半抵宜山" 空间转移
1939-04-24 "华瞻年十六,穿吾之广西装,不须改小" 身材瘦小
1939-05-08 "不戴眼镜,故婴儿不能识也。戴眼镜抱之,即不哭" 眼镜是身份符号
1939-06-07/08 "三方丈,住十一人""书桌设床前" 栖居实况

引文取自本项目 OCR 整理稿(均置信度 0.98,低置信行另列 校勘待查.tsv)。正式引用请以原书为准,OCR 稿只作检索与定位。

附录 B:一句话版本(给观众/读者)

他 40 岁那年没有留下照片。我们从他自己的日记里读出了他该有的样子——两鬓开始发白、一百五十度的老花镜、九十九斤的身体、一部长到能被婴儿抓住的胡须;再用他 19 岁的脸和他 65 岁的须,把 40 岁补上。这不是一张老照片,这是一次有出处的想象。

相关课程

这篇笔记涉及的主题,我录过对应的视频课程: