上周帮闺蜜修她那只布偶猫的参赛图。本来想省事儿丢给AI一键生成“猫趴在南京老门东的青瓦上晒太阳”,结果出来的东西,猫的爪子是五根胡萝卜,瓦缝里长出来半串糖葫芦。
我盯着屏幕愣了三分钟。
突然反应过来——这破事儿,全是扩散模型在背后搞鬼。
你以为AI在“画画”?其实它在“擦橡皮擦到干净”
很多人第一次用AI画图的时候,对着出来的四不像骂街,觉得这玩意儿根本就是人工智障,却不知道它从一开始就没打算当什么会原创的画家。
扩散模型的核心逻辑根本不是“生成”,而是“去噪还原”。
说穿了特别简单。训练它的时候,工程师会先拿几千万张清晰的图,给每张图一步步加噪点——就像你把一张照片放在洗衣机里搅,第一次搅还能看出是猫,第二次搅猫的轮廓模糊了,第三次搅只剩点灰扑扑的色块,到最后,整张图全是雪花一样的噪点,跟没信号的电视屏幕似的。
这个从清晰到全是噪点的过程,就叫“扩散”。
然后模型要学的,就是反过来的过程:从全是噪点的雪花屏,一步步把噪点擦掉,最后还原出最开始那张清晰的猫图。

别慌。
我第一次听到这个原理的时候,整个人都傻了——合着这AI根本不会画画?它只会擦噪点?
真的,没有什么凭空想象。它脑子里没有“猫的耳朵应该长在脑袋两侧”这种概念,只有几亿次擦噪点练出来的肌肉记忆:哦,噪点里有这种尖乎乎的色块,大概率是耳朵;哦,这种圆滚滚的色块,大概率是猫脸。
为什么你写的prompt总出乱子?问题出在“擦的顺序”上
很多人用AI画图的时候,总觉得prompt写的越长越好,恨不得把猫有几根胡须,瓦缝里的草是什么颜色全写进去。结果出来的东西还是四不像,要么猫的胡须长在瓦上,要么草变成了猫的尾巴。
不是AI笨。是你给的优先级乱了。
你写的每一个prompt,本质都是给模型的去噪优先级列表。
比如你写“穿洛丽塔的柯基在梧桐道上跑”,后面加了“阳光很好”。模型在擦噪点的时候,就会把“阳光”这个关键词的权重拉满,先擦出阳光的光斑,再擦裙子的轮廓——结果阳光的光斑和裙子的蕾丝边混到一起,出来的裙子就像块反光的塑料布。
上次我自己试,写“冰美式放在南京1912的露天桌上,旁边有半块可颂”,出来的冰美式杯柄长了两个,可颂上的芝麻变成了小蚂蚁。
我当时差点把键盘扣了。
后来才知道,我把“半块可颂”的权重写太低了,模型在擦噪点的时候,先把“芝麻”的噪点当成了“小蚂蚁”的噪点,根本没来得及把“蚂蚁”的噪点消掉,就把“芝麻”留着了。

说真的,我之前为了画我家那只掉毛的橘猫,硬生生写了三百字的prompt,从它下巴的撮黑毛,到它睡觉的时候会把爪子搭在我拖鞋上,结果出来的猫,下巴的黑毛长在了屁股上。
后来我把“橘猫下巴有撮黑毛”这句话的权重调得比其他所有词都高,出来的图连黑毛的位置都刚好对。
别把扩散模型吹成万能神,它本质是个“见过几亿张图的模仿狂”
上次刷到有人说,扩散模型能画出人类从来没见过的全新生物,是真的有创造力。
我笑了。
什么全新生物?不过是把章鱼的触手,兔子的长耳朵,再加个鹰的尖嘴巴拼到一起而已。这些零件,它全在训练集里见过。
它从来没“创造”过任何东西。它只是把见过的所有图里的元素,按照你给的优先级,拼到同一张噪点图里而已。
你让它画“会骑电动车的大鹅”,出来的大鹅要么翅膀握不住车把,要么电动车的脚踏变成了鹅掌——不是它不想画好,是它从来没见过大鹅骑电动车的实拍图,只能瞎拼。
不过话说回来,上次我用调整过权重的prompt,画出来的我家橘猫趴在老门东的青瓦上,连它下巴那撮黑毛的位置都刚好对,我当时截了图发朋友圈,好多人问我是不是真的带猫去老门东拍了。
哪有什么魔法。
全是概率。
全是它见过几亿张图之后,攒出来的那点擦噪点的本事。