时政
财经
科技
虚拟货币
其他
登录
#去噪
关注
向阳乔木
4小时前
Stable Diffusion背后的秘密:原来一直在去噪,不是在画图! --- 你可能用过 Stable Diffusion。 当输入"一只猫坐在沙发上"。 然后,你看着进度条,一点一点往前走。 10%... 20%... 30%... 图像慢慢从模糊变清晰。 一开始,全是噪点。 然后,隐约能看到一些形状。 再然后,能看到猫的轮廓。 最后,一张清晰的图出现了。 你有没有想过,它到底在干什么? 答案是:去噪。 它不是在"画"图。 它是在"去噪"。 一开始,给它一张纯噪声图。 就是那种电视没信号时的雪花屏。 然后,它一步一步把噪声去掉。 每去掉一点,图就清晰一点。 去了 50 步,图就清晰了。 这就是 DDPM:Denoising Diffusion Probabilistic Model。 (去噪扩散概率模型) 听起来很复杂,但核心就是两个字:去噪。 但这里有个神奇的地方: 它怎么知道该去成什么样? 我是说,同样是一堆噪声, 你可以去成猫,可以去成狗,可以去成车。 它怎么知道你要的是猫? 答案是:你告诉它的。 你输入"一只猫坐在沙发上"。 这段文字,会被变成一个向量。 然后,在每一步去噪的时候, 模型都会看这个向量, 知道:哦,你要的是猫,不是狗。 所以,它去噪的方向,是朝着"猫"去的。 这就是为什么,你输入不同的文字, 会生成不同的图。 因为去噪的方向不一样。 而这一切,都建立在一个简单的想法上: 生成,就是反向去噪。 你先学会怎么加噪声。 然后,反过来,学会怎么去噪声。 去噪的终点,就是生成的结果。 注意,这是 2020 年的论文突破。 从那之后,所有最好的图像生成模型, Stable Diffusion、Midjourney、DALL-E 2, 全都用这个思路。 不是 GAN,是 Diffusion。 因为 Diffusion 更稳定,更可控,生成的图更真实。 另外,你玩Stable Diffusion时,可能调过下面参数: Steps: 50 CFG Scale: 7.5 Sampler: DPM++ 2M Karras 代码跑通了,图生成了。 但你可能不知道这些参数是什么意思。 Steps 是去噪的次数。 Stable Diffusion 不是一次性生成图。 它是一步一步去噪。 Steps = 50,就是去 50 次噪。 每去一次,图就清晰一点。 Steps 越多,图越清晰,但也越慢。 Steps 越少,图越模糊,但也越快。 一般来说,50 步够了。 CFG Scale 是文字引导的强度。 CFG 是 Classifier-Free Guidance。 意思是:你输入的文字,对生成的影响有多大。 CFG Scale = 1,文字几乎没影响,模型随便生成。 CFG Scale = 20,文字影响很大,模型严格按照文字生成。 CFG Scale = 7.5,是一个平衡。 既听文字的,又有一点创造性。 太低,生成的图和文字不匹配。 太高,生成的图太死板,没有惊喜。 Sampler 是去噪的方法。 DDPM 说的是"去 1000 次噪"。 但 1000 次太慢了。 所以,后来有人发明了更快的方法。 DPM++、Euler、DDIM... 这些都是"怎么更快地去噪"。 有的方法,20 步就能达到 1000 步的效果。 有的方法,更稳定。 有的方法,更有创造性。 你选哪个 Sampler,就是在选"怎么去噪"。 这就是这些参数的意思。 Steps:去几次噪。 CFG Scale:文字影响有多大。 Sampler:用什么方法去噪。 ---- AI生成好读的科普文,很适合学习复杂的概念。
#Stable Diffusion
#去噪
#AI 图像生成
#DDPM
#深度学习
分享
评论 0
0
个人主页
通知
我的投稿
我的关注
我的拉黑
我的评论
我的点赞