ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【老计带你懂AI算法】18:扩散模型,从一片噪声里雕出图像,AI绘画的真正主力

【老计带你懂AI算法】18:扩散模型,从一片噪声里雕出图像,AI绘画的真正主力 【老计带你懂AI算法】18扩散模型从一片噪声里雕出图像AI绘画的真正主力开头AI绘画背后的真正功臣这两年AI绘画彻底出圈了。你输入一句话夕阳下的赛博朋克城市霓虹灯下着雨几秒钟后就得到一张精美得能当壁纸的图。Midjourney、Stable Diffusion、DALL-E这些工具让人人都能当画家。这些惊艳能力背后的真正主力不是上一篇的GAN而是扩散模型Diffusion Model。它后来居上凭借更稳定的训练和更高的生成质量抢下了图像生成的王座。这一篇讲清它那个反直觉、却异常优雅的核心思路。核心思路先学会毁掉再学会创造扩散模型的想法第一次听会觉得很奇怪但想通了会觉得妙不可言。它的灵感来自物理学里的扩散现象比如一滴墨水滴进清水慢慢扩散开最终均匀混浊。它的核心思路分两个方向第一个方向加噪学会怎么把图毁掉。拿一张清晰的图片往上一点点地添加随机噪声加一点、图糊一点再加一点、更糊如此几百步最终整张图变成一片纯粹的、毫无信息的随机噪声就像电视没信号时的雪花屏。这个清晰图逐步变噪声的过程是固定的、简单的不用学。第二个方向去噪学会怎么把图恢复出来这才是模型真正要学的。模型要学会把上面那个过程反过来从一片纯噪声出发一步步地去掉噪声每一步都让图像清晰一点点几百步之后从雪花屏里雕刻出一张清晰、全新的图片。说白了扩散模型就是训练一个超级厉害的去噪高手。训练时它看了海量某种程度的噪声图对应的更清晰一点的图这样的样本对学会了在任何噪声程度下都能预测出该去掉哪些噪声、让图更清晰一步。学成之后你随便给它一片纯噪声它就能一步步去噪凭空雕出一张逼真的图。一个绝妙的比喻从大理石里雕出雕像理解扩散模型有个特别贴切的比喻米开朗基罗雕大卫像。有人问米开朗基罗怎么雕出这么完美的大卫他说“大卫本来就在这块大理石里我只是把多余的部分去掉而已。”扩散模型干的就是这件事。那片纯噪声就是一块混沌的大理石模型这个雕刻家一凿子一凿子一步步去噪地把多余的噪声去掉最终图像就从噪声里显现出来。它不是凭空画一张图而是从一片混沌里把本就蕴含其中的图像雕刻出来。这个视角特别美也特别准确。为什么要分成几百个小步、而不是一步到位因为一步从纯噪声直接生成完美图片太难了把它拆成几百个只需去掉一点点噪声的小步每一步都简单可控累积起来就完成了从混沌到清晰的惊人跨越。这种把一个极难的任务拆成许多个简单小步慢慢逼近的智慧和第4篇梯度提升的一棵棵树接力纠错异曲同工都是化整为零的思想。再多说一句这个思路带来的启发因为它其实道出了一个很深的道理。直接凭空创造一个完美的东西极其困难但改进一个已有的东西却相对容易把创造拆解成无数次微小的改进难题就被化解了。这不只是算法的智慧也很像现实里做成大事的方式你很难一步到位写出一篇完美的文章、做出一个完美的产品但你可以先弄个粗糙的草稿哪怕是一团糟再一遍遍地修改打磨每次只改进一点点改上几十上百遍最终就打磨出精品。扩散模型从一团噪声出发反复去噪、逼近清晰图像本质就是把从无到有的创造转化成了从粗到精的迭代改进。理解了这一层你不仅懂了这个模型也get到了一种解决复杂问题的通用方法论别怕起点烂怕的是不肯一步步迭代。为什么扩散模型比GAN更强对比上一篇的GAN扩散模型的优势就清楚了这也是它能抢下王座的原因训练稳定。GAN是两个网络对抗稍不平衡就崩难伺候。扩散模型没有对抗就是老老实实训练一个去噪网络目标明确、训练稳定得多。生成质量高、多样性好。它不容易像GAN那样模式崩溃翻来覆去生成雷同的东西生成的图既逼真又丰富多样。可控性强。它天然适合融入各种条件引导比如文字做文生图特别顺手。代价是慢。因为要一步步去噪几十上百步生成一张图比GAN的一步到位慢不少。不过后来有很多加速技术把步数大大减少了现在也能做到很快。文生图它怎么听懂你的话你最关心的可能是输入一句话它怎么就生成对应的图这用到了前面的两个关键思想。第一条件引导还记得上一篇的条件生成吗。去噪的每一步不只看当前的噪声图还参考你输入的那句话让去噪朝着符合这句话描述的方向进行。这样雕出来的图就和你的描述对得上。第二把文字变成模型能懂的向量。你那句话先被一个语言模型往往和后面要讲的Transformer相关转成一串数字向量浓缩了这句话的语义再作为条件喂给去噪过程。这又回到了那条贯穿全系列的主线把万物文字、图像都变成向量来处理。正是因为文字和图像被映射到了可以互通的表示空间模型才能理解赛博朋克城市这几个字该对应什么样的画面。输入和输出长什么样输入一片随机噪声作为起点。如果是文生图再加上一段文字描述作为引导条件。输出一张生成的图片。改变起始噪声或文字描述就得到不同的图。训练时的输入海量图片文生图还需要图片配对的文字描述模型从中学习去噪的本领。上代码调用扩散模型生成图片自己从头训练扩散模型要海量数据和算力实际中我们直接调用训练好的模型Hugging Face上有很多。输入一句文字。输出一张图。# 依赖pip install diffusers transformers torch acceleratefromdiffusersimportStableDiffusionPipelineimporttorch# 加载预训练好的Stable Diffusion模型(首次会自动下载模型权重,较大)pipeStableDiffusionPipeline.from_pretrained(runwayml/stable-diffusion-v1-5,torch_dtypetorch.float16,# 半精度省显存(有GPU时))pipepipe.to(cuda)# 放到GPU上,扩散模型很吃显存# 输入一句话描述(prompt),生成图片prompt一只戴着宇航头盔的柴犬,漂浮在太空中,背景是地球,高清,数字艺术imagepipe(prompt,num_inference_steps30).images[0]# num_inference_steps是去噪步数image.save(output.png)# 保存生成的图片print(图片已生成并保存为 output.png)运行输出示例程序会在当前目录生成一张图片文件图片已生成并保存为 output.pngoutput.png里会是一张按你的描述生成的图比如一只戴宇航头盔、漂在地球上空的柴犬。具体画面每次生成都不同。这段代码展示了实际用扩散模型的标准方式不用自己训练直接加载Hugging Face上的预训练模型输入一句prompt设定去噪步数就能生成图片。num_inference_steps就是前面说的去噪要走多少步步数多质量高但慢步数少快但可能糙。这也是普通人用AI绘画的技术本质。需要说明这段代码需要GPU和较大的模型下载作者没有实机运行环境读者按环境和库版本可能要微调。关键概念去噪步数num_inference_steps一步步去噪走多少步质量和速度的权衡。引导强度guidance scale生成的图多大程度上严格贴合你的文字描述太高会僵硬、太低会跑题。Latent Diffusion潜空间扩散Stable Diffusion的关键优化不在庞大的像素空间里做扩散而是先用第8篇讲的那种压缩思想把图压到一个小的潜空间里做大大提速这是扩散模型能普及到消费级显卡的关键。U-Net扩散模型里那个去噪网络常用的结构本质是一种特殊的CNN。优缺点与适用场景优点生成质量高、多样性好、训练稳定、可控性强、特别适合文生图。缺点生成速度相对慢要多步去噪、训练和推理都很吃算力和显存。适合场景AI绘画和文生图这是它的主战场、图像编辑局部重绘、扩图、图像超分辨率、以及正在兴起的文生视频、文生3D、甚至AI生成音频等扩散思想正被推广到越来越多的生成任务上。它今天的地位扩散模型是当前图像生成领域当之无愧的主力你能想到的主流AI绘画产品底层几乎都是它。它和上一篇的GAN代表了生成式AI在图像上的两代主流技术。作为一个技术人我想借这一篇多说一句对生成式AI的看法。扩散模型让创作这件事的门槛大大降低了不会画画的人也能生成惊艳的图这确实令人兴奋。但它也带来了实实在在的冲击画师、设计师、插画师这些职业感受到了压力还有版权模型训练用了谁的画、真假难辨和上一篇说的深度伪造一脉相承等一系列问题。技术本身是中性的它既是普通人表达创意的强大工具也可能冲击一些人的饭碗、被滥用。我的态度是与其焦虑或排斥不如去理解它、驾驭它把它当成放大自己创造力的工具。这也是我写这个系列的初心之一看懂了原理你才不会盲目恐慌也才能想清楚怎么和这些技术共处、借它做成自己想做的事。小结与承上启下扩散模型核心先学会给图加噪毁掉固定过程再学会反向一步步去噪、从纯噪声雕出图像这才是要学的。绝妙比喻像从大理石里雕出雕像把本就蕴含其中的图像通过一步步去掉多余噪声显现出来。强于GAN训练稳定、质量高、多样性好、可控性强代价是慢。文生图靠条件引导加把文字变向量让去噪朝符合描述的方向进行这就是AI绘画听懂你话的原理。到这里让AI创造的两大生成模型GAN和扩散就讲完了。前面讲的模型无论判断还是生成大多是给定输入、产出结果的一锤子买卖。可还有一类问题需要AI在一个环境里连续做决策、不断试错、追求长期回报比如下棋、打游戏、机器人控制。下一篇我们讲强化学习以及它如何被用来训练ChatGPTRLHF。我们下一篇见。延伸阅读Hugging Face Diffusers 官方文档本篇代码用的库https://huggingface.co/docs/diffusers扩散模型DDPM原始论文《Denoising Diffusion Probabilistic Models》Ho等2020https://arxiv.org/abs/2006.11239说明以上为官方与经典公开资料地址可能随版本调整如打不开可用标题搜索。
返回列表