陆晨曦的电话在凌晨两点十七分打进来。
林瀚的手机在床头柜上震动了两下,屏幕亮起来,白光把天花板照出一片模糊的方形。他接起来,陆晨曦的声音从听筒里传出来,比平时快了半拍,每个字之间的间隔被压缩了,像是把一段代码里的空格全部删掉了。
“孙建明上线了。第二次。这次输入的是刘仙仙在纽约林肯中心演唱会的观众席抓拍。输出文件被分割成三个小文件,存在不同的云盘账号里。三个账号用了同一个手机号注册,手机号属于孙建明妻子名下的副卡。”
林瀚坐起来,掀开被子。初冬凌晨的冷空气从窗缝里渗进来,贴在他手臂的皮肤上。他把手机夹在耳朵和肩膀之间,伸手从椅背上抓起昨晚搭在那里的毛衣,套头穿进去。
“文件内容是什么。”
“三张静态图片。每张都是刘仙仙在观众席上的侧面照,但脸被换成了另外三个人。我比对了一下,换上去的脸是三个不同的女性,年龄在二十到三十岁之间,都不是公众人物。孙建明没有上传任何动态视频,只做了静态图的换脸测试。三张图的融合参数完全一致,边缘透明度都是百分之七十四。”
“和上次一样。”
“对。他在确认同一个数值在不同光源条件下的稳定性。林肯中心的观众席光线比《盛装》发布会现场暗很多,大部分是舞台反光和环境光的混合光。他在测试百分之七十四这个数值在低照度环境下的表现。”
林瀚把毛衣的下摆拉平,走到书房。书房的灯亮起来,白光打在桌面上,那排文件的边缘在光里显得格外整齐。他坐下来,打开电脑。
“三个云盘账号的注册时间是什么时候。”
“都是昨天晚上十点到十一点之间注册的。注册Ip在杭州城西,和孙建明家里的宽带Ip一致。他注册了三个账号,每个账号存一个文件,然后关闭了模型。没有后续操作。”
“他把文件存到不同的云盘,说明他在做备份。他在测试什么情况下需要保留文件。如果三张图的效果都稳定,他下一步可能会尝试动态视频。”
“我也是这么想的。”陆晨曦那边传来键盘敲击的声音,“另外,我追了三个云盘账号的登录记录。孙建明注册之后没有立刻上传文件,他等了大约四十分钟才把文件传上去。中间那四十分钟,他在模型界面里停留。操作日志显示他反复打开和关闭了模型的文件导入窗口,一共十七次。他在犹豫。”
“犹豫什么。”
“我不知道。但他在四十分钟之后决定上传,说明他想清楚了某件事。”
林瀚把手机放在桌面上,按下免提键。他打开加密文件夹里的时间线图,把孙建明第二次上线的时间节点加进去。时间线图上现在有三个节点——第一次上线在三天前凌晨一点十七分,处理叶诗涵的采访截图;第二次上线在今天凌晨两点零三分,处理刘仙仙的演唱会抓拍。两次上线的间隔是三天,两次的操作时长都在四十分钟以上,两次的融合透明度都定在百分之七十四。
“他在建立样本库。”林瀚说。
“什么样本库。”
“不同光源、不同角度、不同人物的人脸数据样本。叶诗涵的采访截图是高照度正面光,刘仙仙的演唱会抓拍是低照度侧面光。他在用这两个样本测试百分之七十四这个参数在不同条件下的通用性。如果这两个样本都能达到满意的融合效果,他就会开始处理其他光源条件下的样本——室内光、逆光、侧光、混合光。他要把所有可能出现的光源条件都测一遍。”
“然后呢。”
“然后他就可以在任何条件下处理任何人的脸。到那时候,他输入一张照片,输出一段视频,融合效果和真人拍摄几乎没有区别。他把百分之七十四这个参数调准了,就等于拿到了一个万能钥匙。”
陆晨曦沉默了几秒。键盘敲击声停下来,只剩下机房里服务器散热的低频嗡鸣。
“那他的妻子陈雅知道吗。”陆晨曦问。
“苏小暖在查。陈雅的手机副卡被孙建明用来注册云盘账号,有两种可能——一种是陈雅不知道,孙建明偷用了她的身份信息;另一种是陈雅知道,并且配合他做了这件事。”
“你觉得是哪种。”
“如果是陈雅配合,孙建明不需要注册三个账号分开存。他可以直接用陈雅的主账号存所有文件。但他用了三个副卡账号,说明他在规避——他不想让陈雅的主账号里留下痕迹。他在防着陈雅。”
陆晨曦那边传来一声极轻的猫叫。代码跳到键盘上,尾巴扫过一排按键,屏幕上多出一串乱码。陆晨曦伸手把猫从键盘上抱下来,放在肩膀上。
“我继续监控。如果孙建明第三次上线,我就启动后门追踪。”
“好。”
林瀚挂了电话,坐在书房的椅子上。窗外的天色还是暗的,路灯的光从窗帘缝隙里漏进来,在桌面上投下一道窄长的橘色光带。他把时间线图存盘,关掉加密文件夹,然后打开苏小暖的对话框。
他打字:“查一下孙建明妻子陈雅的手机副卡开通时间和使用记录。另外,查陈雅工作的广告公司最近半年的客户名单,重点找和深圳、远洋、星辉有关的。”
苏小暖的回复在三分钟后过来,只有一个字:“好。”
他放下手机,靠在椅背上。书房里很安静,只有墙上挂钟的秒针走动声,一下一下,像有人在用指尖轻轻叩着桌面。他闭上眼睛,把孙建明的操作日志在脑子里过了一遍。四十分钟的犹豫,十七次打开和关闭文件导入窗口,最后决定上传。这个决定是在他看完模型输出的三张图之后做的。三张图的效果应该达到了他的预期,或者至少达到了他认可的某种标准。他把文件上传到云盘,然后关闭模型。下一步,他会做什么。
林瀚睁开眼睛,在便签纸上写了一个词——“样本库”。他把便签贴在时间线图的右上角,和之前那张写着“74%”的便签并排。
---
苏小暖的调查结果在第二天下午送到办公室。她推门进来的时候,手里拿着一个牛皮纸文件夹,文件夹的厚度比昨天那份薄一些,只有五六页。她今天穿了一件浅灰色的高领羊绒衫,领口翻折一层,裹住脖颈,只露出一截下巴到喉结之间的弧度。下面是深灰色的阔腿裤,裤脚盖住鞋面,走动的时候露出一小截脚踝,皮肤在走廊的冷光里泛着干净的白。头发扎成低马尾,用一根黑色的发圈缠了三圈,发尾垂在肩胛骨中间的位置,几缕碎发从发圈里逃出来,贴在耳后的皮肤上。
她把文件夹放在办公桌上,翻开到第一页。“陈雅的手机副卡是去年三月开通的,开通时用的是她本人的身份证,登记地址是杭州城西那个小区。副卡的使用记录里,除了孙建明注册的三个云盘账号之外,还有一条异常记录——去年六月到八月,这张副卡在深夜时段频繁登录一个加密邮箱,登录Ip在杭州和深圳之间来回切换。”
“深圳的Ip具体在哪个区。”
“南山区。和远洋咨询的注册地址在同一个写字楼。”
林瀚把文件夹翻到第二页。陈雅在杭州一家叫“蓝点广告”的公司做文案,入职三年,主要负责地产类的广告文案撰写。公司客户名单里有七八家企业,其中一家叫“星辉文化”的企业,法人代表是周远洋。星辉文化和蓝点广告的合作始于去年四月,比陈雅手机副卡的开通时间晚一个月。
“星辉文化给蓝点广告介绍了一个项目,是一个地产项目的宣传文案。项目金额不大,但合同条款里有一条——‘乙方需指派专人对接甲方指定的素材库’。这个‘专人’在项目执行表里写的是陈雅的名字。”
“周远洋通过星辉文化接触了陈雅,然后通过陈雅接触了孙建明。孙建明在深镜科技做标注员的时候,周远洋可能已经盯上他了。等孙建明离职、结婚、进入星影影视,周远洋才通过陈雅这条线把孙建明拉回来。”
苏小暖把文件夹翻到最后一页。那是一张星辉文化的股权结构图,周远洋持股百分之六十,另一个自然人股东叫周远舟,持股百分之十。周远舟的户籍地址在杭州城西,和陈雅婚前房产的地址一致。
“周远舟是孙建明妻子的舅舅。陈雅的母亲姓周,周远舟是她母亲的弟弟。周远洋是周远舟的堂兄。所以周远洋和陈雅之间有间接的亲戚关系,但不算直系。周远洋通过周远舟认识了陈雅,通过陈雅认识了孙建明,然后通过星辉文化和蓝点广告的合作关系,把陈雅安排成了项目对接人。”
林瀚把股权结构图和之前远山资本的股东名单并排放着。两张图的纸张大小不同,但他在文件夹里找到了两张透明纸,把股权结构图拓印了一份,然后和远山资本的名单叠在一起。两张图在“周远洋”这个节点上交叉,重合的线条形成一条从远山资本到星辉文化再到蓝点广告再到孙建明的完整路径。
他把叠好的图放在桌面上,用镇纸压住边角。然后他拿起手机给赵晓月发了一条消息:“晚上送饺子的时候,来我办公室一趟。有东西给你看。”
赵晓月的回复在五分钟后过来:“好。今天包的猪肉白菜,多放了你喜欢的虾皮。”
---
晚上七点,赵晓月端着饺子推门进来。
她今天穿了一件深灰色的高领毛衣,外面套着一件奶白色的羽绒马甲,马甲的拉链拉到胸口的位置,领口敞开,露出毛衣的高领和一截颈线。下面是修身的深蓝色牛仔裤,裤脚塞进一双浅棕色的短靴里,靴筒到脚踝上方一寸,鞋带系得很紧。头发扎成低马尾,用一根黑色的发圈缠了三圈,发尾垂在肩胛骨中间的位置。她的脸颊被外面的冷风吹得微微泛红,鼻尖也是,像是刚从外面跑进来。
她把饺子盘放在桌面右上角,和那排文件的边缘对齐。然后她看见桌面上那张叠好的透明图,脚步停了一下。
“这是什么。”
“远山资本的股权结构图和星辉文化的股权结构图。两张图叠在一起,交叉点在周远洋。”
赵晓月走到桌前,低头看那张图。她的目光从远山资本的名字移到星辉文化,再从星辉文化移到蓝点广告,最后停在孙建明的名字上。她的手指在“周远洋”三个字旁边点了一下。
“这个人我见过。”
林瀚抬起头。
“拍《土地》的时候,他来片场送过花篮。说是剧组合作方的代表。我当时没在意,以为是哪个投资方的人。”
“花篮卡片上写的什么。”
赵晓月想了很久。她走到窗前,看着院子里的银杏树,手指在窗台边缘轻轻敲了两下。窗外的路灯把枝丫的影子投在窗帘上,光秃秃的枝条在风里微微晃动。
“写的是‘星辉文化预祝《土地》拍摄顺利’。落款是星辉文化,没有个人名字。我当时看了一眼就放在片场的道具桌上了。第二天花篮被场务收走,卡片不知道扔到哪里去了。”
“你确定是星辉文化。”
“确定。因为花篮是白色的,卡片是蓝色的,上面印着金色的字。星辉文化的logo是一颗星星,我多看了一眼。”
林瀚把花篮卡片的信息录进时间线图。他在“周远洋”和“孙建明”之间连了一条实线,在实线旁边标注了“花篮事件,2024年9月,土地片场”。然后他在“周远洋”和“赵晓月”之间连了一条虚线,标注是“片场接触,未经确认”。
赵晓月从窗前走回来,站在办公桌对面。她低头看着时间线图,手指从“周远洋”的节点沿着实线滑到“孙建明”的节点,然后停在“样本库”的便签上。
“他在收集样本。周远洋让他收集不同人物的样本,他选了叶诗涵和我。”
“叶诗涵的采访截图,刘仙仙的演唱会抓拍。名单上还有你的名字。但他还没有处理过你的数据。”
“因为我的站姿数据他还没有采集到足够的样本。他需要我在不同场合、不同光线、不同角度下的站姿照片。但他拍不到,因为我最近的活动都在室内,而且我改了公开活动的行程安排。”
赵晓月把手指从便签上收回来,放在膝盖上。她穿着深灰色高领毛衣的样子在灯光下显得很安静,毛衣的料子贴着肩线的弧度,从锁骨到肩头的轮廓被布料温和地勾勒出来。她走到办公桌旁边,弯腰把饺子盘里最上面那只的边角按平,指尖沾了一点干面粉。
“你打算怎么处理周远洋。”
“他在新加坡。我们暂时动不了他。但孙建明在国内,周远洋要通过孙建明做事。我们盯着孙建明,就等于盯着周远洋的手。”
赵晓月直起身,把沾了面粉的手指在牛仔裤上蹭了两下。她走到门口,手放在门把上,侧过头。
“那个花篮,我后来在片场又见过一次。杀青那天,场务收拾道具的时候,从桌子底下扫出来一张蓝色的卡片。我捡起来看了一眼,背面有一行手写的字。”
“什么字。”
“写的是——‘站得稳的人,走得远。’”
她推开门走了。脚步声沿着走廊往电梯方向去,节奏均匀,鞋跟敲在地砖上的声音“嗒、嗒、嗒”三拍,第四拍还是拖长了一点。
林瀚坐在椅子里,把时间线图从桌面上拿起来。透明纸上的线条在灯光下清晰而交错,从远山资本到星辉文化到蓝点广告到孙建明,再从周远洋到赵晓月到叶诗涵到刘仙仙。两条路径在“周远洋”这个节点上交叉,像是一道横向断裂的瓷片,断口从中间向两端延伸,一头深一头浅。
他把时间线图折好,放进抽屉最底层,和碎砖、照片、证物袋、调查报告文件夹、观镜业务清单、模型调用记录、牛皮纸信封、叶诗涵的瓷片并排放着。抽屉里现在有九样东西了。
他锁好抽屉,钥匙从锁孔里拔出来,放回西装内袋。然后他拿起筷子,夹了一只饺子,蘸了醋,咬了一口。猪肉白菜的馅,虾皮的鲜味在舌根化开,和醋的酸味混在一起。
窗外非遗基地方向传来夏丽蝶的拍手声,节奏比昨天快了一些,可能是新舞蹈的排练进入了高潮段落。拍手声间隙里混着刘仙仙工作室里传来的钢琴声,林悦在练一段新的旋律,音符断断续续,但每一遍都在同一个地方停一下,像是在等什么。
林瀚把饺子吃完,把盘子端到回收窗口。回来的时候路过技术部门口,代码蹲在门框底座上,尾巴盘在爪子上,末端的黑毛尖安静地搭在尾巴尖上。它看见林瀚走过来,耳朵竖了一下,瞳孔在走廊灯光里缩成一条细线,然后跳下底座,跑进技术部里去了。
福利回放:赵晓月(深夜送饺子)
她推门进来的时候,奶白色羽绒马甲的拉链拉到胸口的位置,领口敞开,露出深灰色高领毛衣的领子和一截颈线。马甲的面料在灯光下泛着一层柔润的光,从肩到腰的剪裁收得紧实,腰线的轮廓被马甲的下摆勾勒出来,弧度柔和而清晰。毛衣的高领贴着脖颈,从下颌到锁骨之间的皮肤被布料裹得严严实实,只在喉结下方露出一小片三角形的空隙。她的脸颊被外面的冷风吹得微微泛红,鼻尖也是,皮肤在灯光下泛着温暖的白里透红。
她低头看时间线图的时候,马尾辫从肩后滑到肩前,发尾扫过马甲的前襟,几缕碎发贴在耳后的皮肤上。她的手指在透明纸上移动的时候,指腹按在纸面上,力度很轻,指甲修剪得很短,甲床是淡淡的粉色。深蓝色牛仔裤包裹下的腿部线条被灯光照出流畅的曲线,从腰到膝的弧度饱满而利落,膝盖以下的线条收得更窄,脚踝在短靴的靴筒边缘露出一小段,骨节分明。
她弯腰按饺子边角的时候,羽绒马甲的下摆垂在膝盖上方,露出一截后腰的皮肤,被牛仔裤的腰线和毛衣的下摆夹在中间。皮肤带着刚从外面回来的微凉,在灯光下泛着干净的暖白。她直起身的时候,重心从左脚换到右脚,短靴的鞋底在地砖上发出一声轻响,鞋带系得很紧,靴筒的皮面在脚踝处微微鼓起。
她转身走的时候,羽绒马甲的后背被肩胛骨的动作撑出两道浅浅的棱线,从领口向下延伸,消失在腰线以下。走到门边侧头的时候,马尾辫的发尾扫过马甲的后领边缘,留下一道转瞬即逝的静电痕迹,几根碎发贴在耳垂后方,被走廊的光照出一层极淡的绒光。
福利回放:苏小暖(递交文件夹)
她站在办公桌对面的时候,浅灰色高领羊绒衫的领口翻折一层,裹住脖颈,只露出一截下巴到喉结之间的弧度。羊绒的料子很薄,贴着身体的曲线,从锁骨到肩头的轮廓被布料温和地勾勒出来,肩头的弧度饱满而流畅。下面是深灰色的阔腿裤,裤脚盖住鞋面,只在走动的时候露出一小截脚踝,皮肤在走廊的冷光里泛着干净的白,骨节分明。
她翻开文件夹的时候,手指在纸页边缘移动,指节不突出,指甲修剪得很短,没有涂任何颜色,甲床是淡淡的粉色。她把文件夹翻到最后一页的时候,手腕从袖口里滑出来,露出一截小臂,线条细而直,皮肤是常年在室内工作养出来的冷白,肘关节内侧那块颜色略深的茧在灯光下看得很清楚。
她解释股权结构图的时候,站姿很直,重心落在左脚,右脚微微外撇,肩膀打开的角度很自然,背部挺直,脊背的弧度从后颈到尾骨形成一条温和的曲线。低马尾垂在肩胛骨中间的位置,发尾被发圈缠得很紧,几缕碎发从发圈里逃出来,贴在耳后的皮肤上,被灯光照出一层极淡的绒光。耳垂上没有耳洞,耳廓的线条被发丝遮住了大半,只露出最外侧的一小段弧线。
她转身走的时候,阔腿裤的裤脚在脚踝处堆叠又展开,鞋跟和地面之间的摩擦声很轻。走到门边的时候停下来,侧过头,高领羊绒衫的领口在侧头的动作中微微移动,露出一截颈侧的皮肤,被走廊的光照得近乎透明,能看到皮肤下面淡青色的血管走向。