AI 生成的食品摄影:为什么 AI 画的食物有时候看起来很假——质感和光泽的挑战

两个月前,我在 Midjourney 里试着生成一碗拉面。汤底像琥珀色的树脂,溏心蛋的蛋黄亮得浑然一体,边缘利落得像机器切割。我盯着它看了很久,说不出哪里不对,但心里有个声音:这不是照片。

AI technology illustration

可同一周,我生成了一张人像,却几乎骗过了自己。为什么一个模型能画好一张脸,却画不好一碗面?这个反差困扰了我很久。

你可能会说:脸本来就难画,手指、牙齿、镜像反射,AI 翻车的地方多了去了。但食物恰恰相反——它没有五根手指,没有复杂的关节结构,表面看起来简单极了。可 AI 就是会在食物上露出马脚。问题不在形状,在两个字:质感。

它是在「画照片」,不是在「渲染场景」

先看生成原理。今天的文生图模型,底层几乎都是扩散模型:把图像生成建模成「从纯噪声里逐步去噪」的过程。训练时模型看的是「清晰图逐渐加噪变成纯噪声」的正向过程;生成时,它从噪声出发一步步反着走,每一步都在文字提示的约束下,把图像往自然图片的方向推一点。

  1. 正向加噪:把训练图片逐渐破坏成噪声,让模型学会辨认每一步添加的噪声。
  2. 反向去噪:从纯噪声开始,模型反复预测并移除噪声,逐步还原出画面。
  3. 条件控制:每一步的预测都受文字提示影响,保证结果与描述相关。

注意:整个过程没有任何一步涉及物理。模型不计算光的传播,不建立三维几何,不模拟材质。它的一切知识,都是「什么样的像素排列更像训练数据里的图片」。本质上,它是统计模仿者,不是渲染引擎。

第一个翻车点:光泽不是算出来的,是猜出来的

真实世界里,高光是反射定律的产物。光源打在物体表面,表面由无数微观小面组成,每个小面按自己的朝向反射光。所有小面的朝向分布,决定了高光长什么样:粗糙表面(橘子皮、烤面包)小面朝向杂乱,高光弥散;光滑表面(刷过油的烤鸭、糖衣)小面朝向一致,高光锐利。图形学里的微面元模型说的就是这件事——Cook-Torrance 反射模型把高光的形状和表面粗糙度直接挂钩。而物理规律只有一个:高光的位置,由光源方向、视线方向和表面法线共同决定。

扩散模型没有法线,没有光源,它只能从训练数据里统计「高光通常出现在哪」。大多数时候猜得不错,因为大多数照片的光源来自上方或左上方。可一旦形状、角度、材质的组合在数据里不常见,高光就会落在物理上不可能的位置。更常见也更隐蔽的,是高光的形状不对。

你看到的「塑料感」,本质是高光被平均化的结果。真实高光有锐利的尖峰——最亮处很亮,往外迅速衰减。塑料表面没有微观起伏,所以它的高光干净、均匀、缺乏变化。扩散模型在画「烤鸭皮」时,把不同油脂厚度、不同表面起伏的统计混合在一起,最后得到一种「中等锐利、处处均匀」的高光。它不属于任何真实材料——它更像塑料。

更糟的是,食物摄影行业有个公开秘密:造型师会给食物刷油、喷甘油,甚至用发胶固定造型,让它们在镜头前显得多汁、鲜亮。沙拉叶子上的水珠、牛排表面的油光,很多是「做」出来的。训练数据里的食物,本身就带着这种人造高光。模型把它内化成了默认值——所以 AI 食物总像刚被刷过一层油。

第二个翻车点:食物真正难的地方是「半透明」

第二件事藏得更深:食物大多是半透明的。光线不会停在表面,它会钻进西红柿的果肉,在细胞组织之间反复散射,再换一个地方冒出来。所以薄薄的黄瓜片边缘会透出绿光,逆光下的葡萄像小灯笼。图形学里叫次表面散射,2001 年那篇奠定实用模型的论文说得明白:大理石、牛奶、皮肤、水果,全都靠这个效果获得真实感。

扩散模型要模拟它,只能靠像素统计的近似。于是你看到两个极端:要么过度光滑——所有散射被简化成一层均匀柔光,整碗面像注了硅胶;要么过度琐碎——表面布满不自然的颗粒感,像被砂纸打磨过。真实食物的质感在两者之间,而且在同一物体上连续变化:西红柿顶部和底部、胡萝卜皮层和芯部,散射程度都不一样。这种「同一种材质内部的连续差异」,是模型最难学的东西。

还有一个更隐蔽的问题:细节平均化。面包皮的裂纹、牛排的焦化纹路、冰激凌的融痕,每次出现都不一样。当训练数据里同类细节的形态高度分散时,模型会倾向生成一个保守的「典型版本」:有裂纹的样子,但没有具体哪一道裂纹。这种平均化让表面「合理但陌生」——而不确定性,恰恰是真实质感的灵魂。

一张表看穿 AI 食物

维度 真实食物 AI 食物的典型破绽
高光 随表面起伏变化,有明确尖峰 处处均匀,像统一刷了一层油
半透明质感 薄边透光,颜色从内部渗出 要么塑料柔光,要么砂纸颗粒
蒸汽与水汽 湍流、飘散、半透明、随气流变形 像棉花糖或浓烟,边缘黏糊
融化与流动 受重力、温度和表面张力控制 像油漆拖拽,边界过于干净
微观纹理 多尺度随机但连续,处处不同 细节平均化,像贴图反复出现

数据量早就够了,缺的是物理

我最早以为,AI 画不好食物是因为食物照片太少。后来发现这个猜测错得离谱——互联网上食物图片多到惊人,LAION-5BStable Diffusion 的训练集之一)有 58 亿张图,食物相关照片以百万计,ImageNet 里食物类别也占了相当比重。数据根本不是瓶颈。瓶颈在于:模型只保证统计相似,不保证物理一致。

过去两年进步确实是有的。ControlNet能约束构图,LoRA 微调能把生成分布收窄到某一种食物,负面提示词加 plastic 和 glossy 也能减少塑料感。但这些手段都是「约束」,不是「理解」。模型依然不知道光往哪走,不知道水蒸气和烟有什么区别。它只是被更多数据和更强的结构按住了。

提示词写得更好,能解决塑料感吗?

能缓解,不能根治。你加一百个 photorealistic,模型只会更努力地模仿照片风格,而不是更懂光学。真正有效的是收窄训练分布——比如用特定食物的 LoRA,或用负面提示词压掉塑料材质特征。

为什么人脸没那么容易翻车?

因为人脸在训练数据里数量极其庞大,而且结构高度一致——所有人脸的眼睛都在差不多的位置。食物没有这种一致性:烤面包和煮面包的质感天差地别,同样一盘菜,每次烹饪的纹理都不同。数据多,但每一种具体形态的数据很稀疏。

后期修图能救吗?

能救一部分。高光错了可以抹掉重画,纹理过度平均可以叠加噪点和细节层。但这是在替模型补物理课,成本很高。一张 AI 图如果需要修图师花两小时重做材质,它已经不比实拍便宜了。

它会越来越像,但还差一个物理引擎

我的判断:AI 食品摄影会在两三年内跨过「一眼假」的门槛。但跨过去的路径,大概率不是模型突然学会了光学,而是三种手段的组合:训练数据里加入更多物理正确的高光样本、模型架构显式编码材质属性、生成后接一个物理校验环节。在那之前,你在广告里看到的「完美汉堡」,只要用了 AI,背后必然有人类修图师的介入。因为一个真正的质感工程师知道:高光不跟着主光源走,消费者嘴上说不出,但眼睛会报警。

如果你需要商用食品摄影,我的建议是分工:让 AI 出创意——构图、配色、机位、器皿搭配,它已经做得很好;最终交付,交给相机和真实的食物。真实摄影里那种「光钻进西红柿、再从另一侧透出来」的微妙过渡,是物理在替自己画画。物理从不糊弄你——这正是它和 AI 最大的区别。

进阶阅读:为什么材质问题绕不开法线信息

微面元模型把表面想象成无数微小镜子——粗糙表面镜子朝向杂乱,反射分布宽;光滑表面镜子朝向一致,反射分布窄。扩散模型对材质的一切理解都在像素分布里,没有独立的「表面」层。要让 AI 真正学会材质,要么给它显式的表面信息(像 ControlNet 那样喂法线图、深度图),要么在训练时同时学习物理约束。这也是为什么「法线图引导生成」是当前改善材质质感最有希望的方向之一。

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/615.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐