扩散模型:画面怎么从噪声里洗出来
先学会去掉噪声,再从一片噪声里把画面洗出来。
关于这个演示
画面是用代码画的 96×60 示意图,不调用真实模型。加噪和每一步去噪的更新公式是真的(余弦噪声表、DDIM 采样);“去噪网络”是假的:它对终稿的猜测直接用目标画面的模糊版本代替,噪声越少越清晰,用来模拟扩散模型先定构图、后补细节的特点。真实模型在几亿张带文字说明的图片上训练,用神经网络(早期多是 U-Net,现在多是 Transformer)真正去猜噪声;很多模型还先把图片压缩到“潜空间”里去噪,最后再解码成像素。这里一共 50 步,生成时每次跨 2 步、去噪 25 次。文字引导的做法叫无分类器引导(classifier-free guidance,Ho 和 Salimans,2022),“不看提示词的猜测”在这里用所有画面的平均代替;引导强度的刻度、相似度和溢出比例都是示意,常用工具的默认值多在 7 左右,调得太高会过饱和、失真。视频部分只演示一点:逐帧单独生成会闪,整段一起去噪才连贯。
相关文章:Sora 发布那天,全网都在逐帧找穿帮(按 OpenAI 的技术报告,Sora 把视频切成“时空小块”,用扩散 Transformer 整段一起去噪)、Opus 5.5 不会做视频,但它改写了“视频”的定义(另一条路:不去噪像素,而是写出能渲染画面的代码)。