Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

U-net

Answer

U-net 是一种常用于图像处理,尤其是图像分割的特别神经网络结构。

其工作方式主要包括:

  1. 编码部分:逐步缩小图像,从中提取重要特征,类似于提取图片的精华。
  2. 解码部分:逐步放大图像,把提取的特征重新组合成高分辨率的图像。
  3. 跳跃连接:在缩小和放大的过程中,保留一些细节信息,使最终生成的图像更清晰。

在一些应用中,如 ComfyUi 中,U-net 发挥着重要作用:

  • ComfyUi 的底层依赖 Stable Diffusion,去噪过程由 U-net 网络完成。去噪的每个步骤通过模型推理模块实现,这个模块会调用训练好的 U-net 模型,逐步将噪声图像还原成有意义的图像。
  • 在图像生成过程中,如潜在空间放大,先生成潜在表示,再放大潜在表示,然后将其反馈到稳定扩散 U-net 中进行低噪声扩散处理以生成高分辨率图像。

在 Stable Diffusion 中:

  • 点击 Generate 按钮后的图片生成过程,就是 U-net 不断去除噪声的过程。
  • Stable Diffusion 中的 U-net,在传统深度学习时代的 Encoder-Decoder 结构基础上,增加了 ResNetBlock(包含 Time Embedding)模块、Spatial Transformer(SelfAttention+CrossAttention+FeedForward)模块以及 CrossAttnDownBlock,CrossAttnUpBlock 和 CrossAttnMidBlock 模块。
Content generated by AI large model, please carefully verify (powered by aily)

References

ComfyUi NNLatentUpscale潜空间放大

通过使用神经网络对潜在空间进行放大,而无需使用VAE进行解码和编码。此方法比传统的VAE解码和编码快很多,并且质量损失很小。插件项目地址:https://github.com/Ttl/ComfyUi_NNLatentUpscale?tab=readme-ov-file潜在表示(latent representation)是神经网络处理图像时生成的压缩版本,它包含了图像的主要特征信息。相比于直接处理高分辨率图像,处理潜在表示更快且资源消耗更少。1.生成潜在表示:图像被模型压缩成潜在表示。生成一个低分辨率的图像2.放大潜在表示:利用神经网络对潜在表示进行放大。3.生成高分辨率图像:将放大的潜在图像反馈到稳定扩散U-Net中,进行低噪声扩散处理,从而修复成高分辨率图像。此节点旨在用于一种工作流程中,其中初始图像以较低分辨率生成,潜在图像被放大,然后将放大的潜在图像反馈到稳定扩散u-net中进行低噪声扩散处理(高分辨率修复)。U-Net是一种特别的神经网络结构,通常用于图像处理,尤其是图像分割。它的工作方式可以简单理解为:1.编码部分:逐步缩小图像,从中提取重要特征(类似于提取图片的精华)。2.解码部分:逐步放大图像,把提取的特征重新组合成高分辨率的图像。3.跳跃连接:在缩小和放大的过程中,保留一些细节信息,使最终生成的图像更清晰。这种结构使得U-Net能够在放大图像的同时,保持细节和准确性。

ComfyUI的生图原理 副本

U-Net模型:ComfyUI的底层依赖Stable Diffusion,而去噪过程是由U-Net网络来完成的。U-Net是一种编码器-解码器结构,能够处理多尺度的特征表示。在ComfyUI中,去噪的每个步骤通过模型推理模块实现,这个模块会调用训练好的U-Net模型,逐步将噪声图像还原成有意义的图像。Cross Attention(交叉注意力):交叉注意力机制在Stable Diffusion中尤为重要,它允许模型在生成过程中融入文本提示、图像、语义信息等条件。在ComfyUI中,这部分通过“文本提示”和“条件输入”节点实现。ComfyUI的可视化界面允许你调整和修改这些交叉注意力机制中的参数,例如文本提示的权重,这直接影响生成图像的内容。Skip Connection(跳跃连接):跳跃连接是U-Net的核心部分,能够在不同尺度之间共享特征。这在ComfyUI的节点网络中表示为中间过程数据的流转。例如,你可以在不同的推理步骤中查看中间生成结果,并通过跳跃连接调整特定尺度上的生成效果。Switch(切换器):在图中,切换器代表在去噪过程中的不同阶段对特征流的控制。在ComfyUI中,你可以通过修改模型的参数节点或自定义网络结构节点,对不同阶段的噪声去除策略进行微调。

教程:深入浅出完整解析Stable Diffusion(SD)核心基础知识 - 知乎

Rocky再从AI绘画应用视角解释一下SD中U-Net的原理与作用。其实大家在使用Stable Diffusion WebUI时,点击Generate按钮后,页面右下角图片生成框中展示的从噪声到图片的生成过程,其中就是U-Net在不断的为大家去除噪声的过程。到这里大家应该都能比较清楚的理解U-Net的作用了。【2】Stable Diffusion中U-Net模型的完整结构图(全网最详细)好了,我们再回到AIGC算法工程师视角。Stable Diffusion中的U-Net,在传统深度学习时代的Encoder-Decoder结构的基础上,增加了ResNetBlock(包含Time Embedding)模块,Spatial Transformer(SelfAttention+CrossAttention+FeedForward)模块以及CrossAttnDownBlock,CrossAttnUpBlock和CrossAttnMidBlock模块。那么各个模块都有什么作用呢?不着急,咱们先看看SD U-Net的整体架构(AIGC算法工程师面试核心考点)。下图是Rocky梳理的Stable Diffusion U-Net的完整结构图,大家可以感受一下其魅力,看着这个完整结构图学习Stable Diffusion U-Net部分,相信大家脑海中的思路也会更加清晰:Stable Diffusion U-Net完整结构图上图中包含Stable Diffusion U-Net的十四个基本模块: