1.零终端信噪比以及其在图像生成领域的作用

即如何理解“We uptrained SDXL from ϵ-prediction to 𝐯-prediction[26] parameterization. This was instrumental to our goal of supporting Zero Terminal SNR (see section 2.2). The ϵ-prediction objective (“where’s the noise?“) is trivial at SNR=0 (“everything is noise”), hence ϵ loss fails to teach the model how to predict an image from pure noise. By comparison, 𝐯-prediction transitions from ϵ-prediction to x0-prediction as appropriate, ensuring that neither high nor low SNR timesteps are trivially predicted.”

要理解这段话中的各类名词和基础概念,我们需要逐步解析其中的关键术语及其相互关系。

基础概念

  1. 信噪比 (SNR, Signal-to-Noise Ratio):

  2. SNR是一个用于衡量信号质量的指标,表示有效信号与背景噪声之间的比率。高SNR意味着信号清晰且易于识别,而低SNR则表明信号被噪声淹没,难以提取有效信息。在图像处理中,SNR越高,图像越清晰[1][2]。

  3. ϵ预测 (ϵ-prediction):

  4. 这是一个用于生成模型的训练目标,模型的任务是从给定的图像中预测噪声(ϵ)。在信噪比为零(即纯噪声)的情况下,这个任务变得简单,因为所有输入都是噪声,模型无法从中学习到有意义的信息。

  5. v预测 (v-prediction):

  6. v预测是一种新的训练目标,旨在改进模型在处理不同信噪比时的表现。它通过将模型的任务从预测噪声转变为预测图像本身,使得模型能够在各种情况下学习更有效的信息。

  7. x0预测:

  8. 这是指模型在某一时刻需要预测的真实图像(x0)。在v预测中,模型的目标是从纯噪声中恢复出这个真实图像。

各概念之间的联系

  • 在传统的ϵ预测中,当SNR为零时,模型无法有效学习,因为输入完全是噪声。相比之下,使用v预测可以让模型在这种情况下仍然进行有意义的学习,因为它将任务转变为从纯噪声中恢复出真实图像。

  • v预测通过确保在不同时间步长下模型都能进行有效学习,从而避免了在训练和推理过程中的数据分布不一致问题。这种一致性对于生成高质量图像至关重要。

综合解释

结合以上概念,可以全面理解这段话:

我们对SDXL模型进行了微调,将其训练目标从ϵ预测转换为v预测。这一转变对于支持Zero Terminal SNR(即最后一步的信噪比为零)至关重要。在SNR为零时,ϵ预测变得无意义,因为此时所有输入都是噪声,模型无法学习如何从这些输入中生成有意义的图像。因此,我们采用v预测,它允许模型根据输入的纯噪声来恢复出真实图像x0。这样的设计确保了无论是在高SNR还是低SNR的情况下,模型都能进行有效学习,而不是简单地进行无意义的去噪操作。

通过这种方式,我们可以确保模型在训练和推理时的一致性,从而提高生成图像的质量和细节表现。

Citations:
[1] https://en.wikipedia.org/wiki/Signal-to-noise_ratio_%28imaging%29
[2] https://en.wikipedia.org/wiki/Signal-to-noise_ratio
[3] https://blog.csdn.net/weixin_44966641/article/details/139337965
[4] https://info.support.huawei.com/info-finder/encyclopedia/zh/%E4%BF%A1%E5%99%AA%E6%AF%94.html
[5] https://openaccess.thecvf.com/content/WACV2024/papers/Lin_Common_Diffusion_Noise_Schedules_and_Sample_Steps_Are_Flawed_WACV_2024_paper.pdf
[6] https://wrong.wang/paper/common-diffusion-noise-schedules-and-sample-steps-are-flawed/
[7] https://github.com/huggingface/diffusers/issues/778

2.为什么会出现image-20240927101120062

图2:提示模型生成“完全黑色”。一个经过训练可以从无限噪声(ZTSNR)中预测图像的模型可以响应这一提示。然而,如果我们从具有有限噪声的时间步开始推断,模型将输出一张亮度适中的图像,试图匹配起始噪声中的平均颜色,从而生成与提示无关的样本。

这个现象出现的原因是训练过程中噪声调度的不同。

扩散模型通过学习一个噪声扩散过程的逆过程来生成图像。训练过程如下:

  1. 从干净的图像样本 $\mathbf{x}0$ 开始,通过逐步添加高斯噪声生成一系列噪声样本 ${\mathbf{x}1, \mathbf{x}2, …, \mathbf{x}T}$。
  2. 模型学习从噪声样本 $\mathbf{x}_t$ 预测添加的噪声 $\epsilon_t$。
  3. 在推理时,模型从纯噪声开始,逐步去噪来生成新图像。

噪声调度的影响

噪声调度决定了在训练过程中添加噪声的方式。不同的噪声调度会导致以下差异:

  1. ZTSNR (Zero Terminal SNR) 调度:在训练的最后阶段,模型会接触到纯噪声(信噪比为0)。这样模型学会如何从纯噪声中生成相关图像。

  2. 有限噪声调度:训练过程中,最后一个时间步添加的噪声不足以完全破坏图像的信号。模型学会在有限噪声下预测图像。

推理时的差异

  1. ZTSNR 模型:在推理时从纯噪声开始。模型知道如何从这种情况生成相关图像,因此可以直接生成纯黑色。

  2. 有限噪声模型:在推理时从有限噪声开始。模型会尝试从这个噪声中预测图像的平均亮度。由于噪声不足以破坏信号,模型会生成一个亮度中等的图像,而不是纯黑色。

因此,ZTSNR 调度使模型能够更好地从纯噪声生成相关图像,而有限噪声调度则限制了模型在推理时的性能。这就是为什么 ZTSNR 模型能够更好地遵循"生成纯黑色"的提示。

3.怎么理解“We trained NAIv3 on a noise schedule with Zero Terminal SNR, to expose SDXL to pure-noise during training. We train the model up to noise levels so high that it can no longer rely on mean-leakage, and learns to predict relevant mean colours and low frequencies from the text condition (fig. 3) instead. The introduction of a ramp up to infinite-noise aligns the training schedule with the inference schedule.”这段话?什么叫“mean-leakage”

要理解这段话,我们需要分解其中的几个关键概念,特别是“Zero Terminal SNR”和“mean-leakage”。

Zero Terminal SNR

Zero Terminal SNR(零终端信噪比)是一种噪声调度策略,旨在确保模型在训练过程中能够接触到纯噪声。这种策略的核心思想是,在训练的最后阶段,模型应该能够处理极高水平的噪声,以便从完全随机的输入中生成相关图像。

  • 为什么要使用ZTSNR? 传统的扩散模型在训练时通常不会让模型接触到纯噪声,而是会保持一定的信号。这导致模型在推理时可能会错误地依赖于残留的信号,从而生成与提示不相关的图像。例如,如果模型在有限噪声下训练,它可能会试图匹配输入噪声的平均颜色,而不是根据文本提示生成图像。

  • 如何实现ZTSNR? 通过引入一个逐步增加噪声水平的调度,使得模型在训练过程中接触到越来越高的噪声水平,最终达到纯噪声状态。这种方法使得模型能够学习如何从完全随机的输入中提取出有意义的信息,而不仅仅是依赖于输入中的平均值。

Mean-Leakage

Mean-leakage(均值泄漏)是指模型在处理带有噪声的输入时,错误地依赖于输入中的平均信号。具体来说,当模型在有限噪声下进行训练时,它可能会学习到一种策略,即总是试图将生成的图像拉回到某个“平均”颜色或亮度上。这种现象会导致生成结果偏向于中等亮度,而不是根据具体提示生成相关图像。

  • 为什么mean-leakage有害? 当模型在推理阶段从纯噪声开始生成图像时,如果它之前学习到了mean-leakage,它就会试图将输出调整为某个平均值,而不是根据文本提示生成特定内容。这就导致了生成结果与提示不一致,降低了图像质量和相关性。

段落解读

结合以上概念,我们可以更好地理解这段话:

“We trained NAIv3 on a noise schedule with Zero Terminal SNR, to expose SDXL to pure-noise during training. We train the model up to noise levels so high that it can no longer rely on mean-leakage, and learns to predict relevant mean colours and low frequencies from the text condition (fig. 3) instead. The introduction of a ramp up to infinite-noise aligns the training schedule with the inference schedule.”

  • 训练NAIv3使用ZTSNR调度:通过这种调度,模型在训练时能够接触到纯噪声,从而消除对残余信号(如mean-leakage)的依赖。

  • 训练至高噪声水平:这意味着模型在训练过程中经历了极高的噪声水平,使其无法再依赖于输入中的平均颜色或亮度。这促使模型学习如何从文本条件中提取相关信息,而不是简单地调整到某个均值。

  • 与推理调度的一致性:通过这种方式,训练过程与推理过程之间的一致性得以增强,因为两者都可以从纯噪声开始,确保生成结果更符合文本提示。

总结来说,这段话强调了通过使用Zero Terminal SNR策略来优化扩散模型,使其能够更有效地从纯噪声中生成高质量、与提示相关的图像,同时避免了mean-leakage带来的问题。

Citations:
[1] https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/7501334/2b26b581-3134-44b5-8c33-7163d6fb6002/2409.15997v1.pdf
[2] https://shelf.io/blog/preventing-data-leakage-in-machine-learning-models/
[3] https://blog.csdn.net/weixin_44966641/article/details/139337965
[4] https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
[5] https://github.com/Project-MONAI/GenerativeModels/issues/397
[6] https://www.cnblogs.com/pjishu/p/17776223.html

4.当模型在有限噪声下进行训练时,它可能会学习到一种策略,即总是试图将生成的图像拉回到某个“平均”颜色或亮度上。 这是为什么? 我可不可以理解为,因为是在有限噪声的前提下进行训练的,而训练的本质类似于梯度下降,无论如何都在尽力减少拟合偏差,所以最终会导致模型一直在尝试使用“平均”来减少有限噪声的偏差? 反之,在无限噪声的情况下,因为噪声完全随机且均匀的分布,所以在模型训练时,,,,(我推导不下去了,你又有什么头绪吗?)

要理解“当模型在有限噪声下进行训练时,它可能会学习到一种策略,即总是试图将生成的图像拉回到某个‘平均’颜色或亮度上”这一现象,我们需要从模型训练的基本原理出发,特别是梯度下降的机制。

有限噪声下的训练

在有限噪声的环境中,模型面临的输入信号并不是完全随机的,而是包含了一定程度的信号成分。由于训练过程本质上是通过梯度下降来最小化损失函数,模型会倾向于找到一种策略,使得生成的图像在某种程度上与输入信号相匹配。

为什么会出现“平均”效应?

  1. 信号残留:在有限噪声下,输入数据仍然包含可识别的信号(如图像的平均颜色)。模型在训练时会学习到这种信号,并试图将生成结果拉回到这个信号附近,以减少损失。

  2. 最小化损失:模型通过不断调整权重来最小化损失函数。在有限噪声情况下,模型可能会发现,如果生成的图像与输入噪声的平均值相近,损失就会较低。因此,它可能会倾向于生成中等亮度或颜色的图像,以达到更低的损失。

  3. 梯度下降:在训练过程中,梯度下降算法会引导模型朝着能够降低损失的方向更新参数。如果模型发现某种“平均”策略能够有效降低损失,它就会继续沿着这个方向进行调整。

无限噪声下的训练

相反,在无限噪声(Zero Terminal SNR)情况下,模型接触的是完全随机且均匀分布的噪声。在这种情况下:

  1. 无残留信号:由于噪声水平极高,模型无法依赖于任何残留信号(如平均颜色),因此它不能简单地将生成结果拉回到某个均值上。

  2. 学习新策略:在这种环境下,模型必须学习如何从纯噪声中提取出有意义的信息。这促使模型根据文本提示生成相关图像,而不是依赖于输入中的任何平均值。

  3. 增强文本条件:由于没有可用的信号,模型需要更加依赖文本条件来指导生成过程。这使得最终生成的图像更符合用户提示,而不是简单地趋向于某个“平均”颜色。

总结

因此,可以理解为,在有限噪声下进行训练时,模型由于依赖于输入中的残留信号(如平均颜色),导致其生成结果趋向于中等亮度或颜色。而在无限噪声下,由于缺乏这种信号,模型则必须学习如何从纯噪声中提取信息,从而更好地遵循文本提示。这种机制使得使用Zero Terminal SNR的方法能够显著提高生成图像的质量和相关性。

Citations:
[1] https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/7501334/2b26b581-3134-44b5-8c33-7163d6fb6002/2409.15997v1.pdf

5.图3和图4分别研究了什么现象?又为什么会出现如图中所示的那些现象image.jpg

图3和图4分别研究了Zero Terminal SNR(ZTSNR)在图像生成中的影响,特别是在生成图像的颜色和细节方面的表现。

图3分析

现象:图3展示了在没有ZTSNR的情况下,生成的图像会出现不必要的高对比度粗糙特征。这些特征试图将画布的平均颜色拉回到零,即高斯噪声的平均值。这可能导致背景中加入相反的颜色,或者头发颜色和服装细节不符合提示。

原因

  • 均值泄漏(Mean-Leakage):在没有ZTSNR的情况下,模型在训练时未能接触到纯噪声,导致其在生成时依赖于输入噪声中的残留信号。模型试图将生成结果调整到输入噪声的平均值,从而导致与提示不符的高对比度特征。

  • 信号残留:有限噪声调度使得模型在训练过程中学会依赖于输入中的信号残留,这种依赖在推理阶段会导致不准确的生成。

图4分析

现象:图4展示了在有和没有ZTSNR情况下的中间去噪预测。使用ZTSNR时,模型能够在无限噪声下提出相关的平均画布颜色,而没有ZTSNR时,模型错误地认为平均颜色应为零,从而添加白色以实现这一点。

原因

  • 纯噪声接触:ZTSNR使得模型在训练过程中接触到纯噪声,从而学习如何从完全随机的输入中提取有意义的信息。这使得模型能够更好地根据文本提示生成相关颜色和低频信息。

  • 去除均值泄漏影响:通过ZTSNR,模型不再依赖于有限噪声中的信号残留,而是根据文本条件进行预测。这使得生成结果更符合提示,并避免了不必要的颜色调整。

总结来说,ZTSNR通过让模型接触纯噪声,提高了其生成图像时对提示的依赖性和准确性,减少了均值泄漏带来的不准确性。

Citations:
[1] https://pplx-res.cloudinary.com/image/upload/v1727404237/user_uploads/walkzuywz/image.jpg
[2] https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/7501334/2b26b581-3134-44b5-8c33-7163d6fb6002/2409.15997v1.pdf

6.Curving the schedule to converge on σ = ∞ confers a ramp of higher sigmas along the way (fig. 5). This helps to resolve another problem with SDXL: its σmax is not high enough to destroy the low frequencies of signal in high-resolution images. In fact σmax was not increased since SD1[25], despite the increase in target resolution. As resolution increases (or rather as the amount of redundant signal increases — increasing latent channels could be another way to increase redundancy): more noise is required to achieve a comparable SNR (i.e. destroy an equivalent proportion of signal)[12]. 这段话是什么意思,请你从最基础的阶段开始详细解释

这段话讨论了在扩散模型中调整噪声调度以解决高分辨率图像生成问题的必要性,特别是如何通过增加噪声水平来破坏低频信号。

基础概念

  1. 信噪比(SNR):表示信号与噪声的比值。在图像生成中,高SNR意味着图像中保留了更多的原始信号,而低SNR则意味着噪声占主导地位。

  2. 噪声调度:指在训练和推理过程中如何添加噪声的策略。理想情况下,噪声调度应从纯信号到纯噪声进行过渡。

具体解释

  • 问题背景:SDXL模型的最大噪声水平($\sigma_{\max}$)不够高,无法有效破坏高分辨率图像中的低频信号。这是因为随着分辨率的增加,图像中冗余信号也增加,需要更多的噪声来达到相同的SNR,从而破坏等比例的信号。

  • 解决方案:通过将噪声调度曲线调整为收敛于无限大($\sigma = \infty$),可以在训练过程中引入更高的噪声水平。这种方法有助于解决SDXL模型中的一个问题,即其最大噪声水平不足以破坏高分辨率图像中的低频信号。

  • 实际效果:通过增加$\sigma_{\max}$,例如将其翻倍,可以恢复图像中的一致性和细节。这种方法确保在推理时模型能够处理更高水平的噪声,从而生成更符合提示且细节丰富的图像。

总结来说,这段话强调了在高分辨率图像生成中,调整噪声调度以引入更高水平的噪声是必要的,以便有效破坏冗余信号,并提高生成图像的质量和准确性。

Citations:
[1] https://pplx-res.cloudinary.com/image/upload/v1727404237/user_uploads/walkzuywz/image.jpg
[2] https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/7501334/2b26b581-3134-44b5-8c33-7163d6fb6002/2409.15997v1.pdf
[3] https://ar5iv.labs.arxiv.org/html/2301.10972
[4] https://openreview.net/forum?id=ylHLVq0psd
[5] https://openaccess.thecvf.com/content/WACV2024/papers/Lin_Common_Diffusion_Noise_Schedules_and_Sample_Steps_Are_Flawed_WACV_2024_paper.pdf
[6] https://arxiv.org/html/2409.15997v1
[7] https://blog.csdn.net/weixin_44966641/article/details/139337965
[8] https://lilianweng.github.io/posts/2021-07-11-diffusion-models

7.NAI3模型的训练数据预处理方法(纵横比分桶)

这段内容详细讨论了图像生成模型中使用的长宽比分桶(aspect-ratio bucketing)技术,以提高生成图像的质量和效率。以下是该段内容的结构化解释:

1. 问题背景

  • 不自然的裁剪:传统图像生成模型倾向于产生不自然的裁剪效果,例如人物缺少脚或头部,或物品部分超出画面。
  • 中心裁剪的局限:通常采用中心裁剪来处理方形数据,但这不符合大多数照片和艺术作品的分布,导致文本和图像之间的不匹配。

2. 解决方案:长宽比分桶

2.1 原因

  • 随机裁剪的不足:虽然随机裁剪比中心裁剪稍有改善,但仍然存在问题。
  • 可变图像尺寸:使用可变图像尺寸进行训练可以避免重复元素和模糊图像的问题。

2.2 自定义批量生成

  • 自定义代码实现:没有现成的解决方案,因此实现了自定义批量生成代码。
  • 分桶方法
  • 定义最大图像尺寸为512×768,最大维度为1024。
  • 根据算法生成不同分辨率的桶。
  • 将每张图像分配到最接近其长宽比的桶中。

2.3 图像加载

  • 调整图像以适应桶分辨率
  • 保持长宽比进行缩放。
  • 如果不完全匹配,则进行随机裁剪。

3. 技术细节

  • 多GPU训练:在每个epoch之前对数据集进行分片,以确保每个GPU处理相同大小的子集。
  • 权重分配:从加权分布中随机选择一个桶,以确保训练过程中没有偏差。

总结

通过长宽比分桶技术,能够更好地处理不同尺寸和比例的图像,提高生成质量,并减少不自然裁剪带来的问题。这种方法在保持批量处理效率的同时,确保了更好的图像框架和标记效率。

Citations:
[1] https://pplx-res.cloudinary.com/image/upload/v1727404237/user_uploads/walkzuywz/image.jpg
[2] https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/7501334/2b26b581-3134-44b5-8c33-7163d6fb6002/2409.15997v1.pdf

1. 背景和推理

  • 传统方法的问题:传统图像生成模型通常使用统一批次和中心裁剪,这会导致不自然的图像裁剪。这是有问题的,因为许多图像不是正方形,导致诸如缺少物体或角色部分的问题。

  • 对图像质量的影响:中心裁剪会导致重要元素被切断,例如头部或脚部,并可能导致文本提示与生成的图像不匹配。

2. 纵横比分桶

2.1 概念

  • 目的:创建每个图像具有相同纵横比的小批次,与中心裁剪方法相比改进取景,并获得比填充更好的标记效率。

2.2 自定义批次生成

  • 实施:开发自定义代码以生成批次,每个批次内的图像大小一致,但允许批次间大小不同。

  • 存储桶创建

  • 定义最大图像大小为 512×768,最大尺寸为 1024。

  • 使用算法通过改变宽度和高度组合来创建存储桶,以符合最大尺寸限制。

  • 修剪重复的存储桶并添加 512×512 的标准存储桶大小。

  • 图像分配

  • 计算每个图像和存储桶的纵横比。

  • 根据纵横比差异将每个图像分配到最接近的匹配存储桶。

  • 修剪纵横比极端且不适合任何存储桶的图像。

2.3 图像加载

  • 处理图像
  • 缩放图像,同时保留其纵横比。
  • 如果无法精确匹配,则应用随机裁剪以确保失真最小。

3. 优点

  • 提高图像质量:确保图像构图更好,减少不自然的裁剪并改善与提示的对齐。

  • 效率:通过避免填充不必要的计算来保持批处理效率。

整理后的笔记

1. 零终端信噪比及其在图像生成领域的作用

基础概念

  1. 信噪比 (SNR, Signal-to-Noise Ratio)

  2. 定义:SNR 是一个衡量信号质量的指标,表示有效信号与背景噪声之间的比率。

  3. 作用:高 SNR 表示信号清晰,低 SNR 表示信号被噪声淹没,难以提取有效信息。

  4. 参考:[1][2]

  5. ϵ预测 (ϵ-prediction)

  6. 定义:模型的任务是从给定的图像中预测噪声(ϵ)。

  7. 问题:在 SNR 为零时,所有输入都是噪声,模型无法从中学习到有意义的信息。

  8. v预测 (v-prediction)

  9. 定义:v预测是一种新的训练目标,旨在改进模型在处理不同信噪比时的表现。

  10. 优势:它通过将模型的任务从预测噪声转变为预测图像本身,确保在高或低 SNR 下都能进行有效学习。

  11. x0预测

  12. 定义:模型在某一时刻需要预测的真实图像(x0)。

  13. 作用:在 v预测中,模型的目标是从纯噪声中恢复出真实图像。

各概念之间的联系

  • 传统 ϵ 预测:在 SNR 为零时,模型无法有效学习,因为输入完全是噪声。
  • v 预测:通过将任务转变为从纯噪声中恢复出真实图像,确保模型在各种情况下都能进行有效学习。

综合解释

  • 微调 SDXL:我们对 SDXL 模型进行了微调,将其训练目标从 ϵ 预测转换为 v 预测。这一转变对于支持 Zero Terminal SNR 至关重要。
  • SNR 为零时:ϵ 预测变得无意义,因为所有输入都是噪声,模型无法学习如何从这些输入中生成有意义的图像。因此,我们采用 v 预测,它允许模型根据输入的纯噪声来恢复出真实图像 x0。
  • 一致性:通过这种方式,确保模型在训练和推理时的一致性,从而提高生成图像的质量和细节表现。

2. 为什么会出现生成“完全黑色”的现象

image-20240927101120062

  • 现象:提示模型生成“完全黑色”的图像。一个经过训练可以从无限噪声(ZTSNR)中预测图像的模型可以响应这一提示。然而,如果我们从具有有限噪声的时间步开始推断,模型将输出一张亮度适中的图像,试图匹配起始噪声中的平均颜色,从而生成与提示无关的样本。
  • 图示:图2展示了一个模型在不同噪声调度下的生成结果。

扩散模型训练过程

  1. 从干净图像开始:从干净的图像样本 $\mathbf{x}0$ 开始,逐步添加高斯噪声生成一系列噪声样本 ${\mathbf{x}1, \mathbf{x}2, …, \mathbf{x}T}$。
  2. 预测噪声:模型学习从噪声样本 $\mathbf{x}_t$ 预测添加的噪声 $\epsilon_t$。
  3. 去噪生成:在推理时,模型从纯噪声开始,逐步去噪来生成新图像。

噪声调度的影响

  1. ZTSNR 调度:在训练的最后阶段,模型会接触到纯噪声(SNR 为 0)。模型学会如何从纯噪声中生成相关图像。
  2. 有限噪声调度:训练过程中,最后一个时间步添加的噪声不足以完全破坏图像的信号。模型学会在有限噪声下预测图像。

推理时的差异

  1. ZTSNR 模型:从纯噪声开始,模型知道如何从这种情况生成相关图像,直接生成纯黑色。
  2. 有限噪声模型:从有限噪声开始,模型会尝试从这个噪声中预测图像的平均亮度,生成亮度中等的图像。

3. 理解 Zero Terminal SNR 和 Mean-Leakage

Zero Terminal SNR

  • 定义:一种噪声调度策略,确保模型在训练过程中能够接触到纯噪声。
  • 目的:消除对残余信号的依赖,从完全随机的输入中生成相关图像。

Mean-Leakage

  • 定义:模型在处理带有噪声的输入时,错误地依赖于输入中的平均信号。
  • 问题:导致生成结果偏向于中等亮度,而不是根据具体提示生成相关图像。

段落解读

  • 训练 NAIv3:使用 ZTSNR 调度,模型在训练时接触到纯噪声,消除对残余信号的依赖。
  • 训练至高噪声水平:模型学会了从文本条件中提取相关信息,而不是依赖于输入中的平均值。
  • 一致性:训练过程与推理过程之间的一致性得以增强,确保生成结果更符合文本提示。

4. 有限噪声 vs 无限噪声训练

有限噪声下的训练

  • 信号残留:输入数据仍包含可识别的信号,模型试图将生成结果拉回到这个信号附近。
  • 最小化损失:模型通过调整生成结果的平均值来降低损失。
  • 梯度下降:梯度下降算法引导模型朝着降低损失的方向更新参数。

无限噪声下的训练

  • 无残留信号:模型无法依赖于任何残留信号,必须从纯噪声中提取有意义的信息。
  • 学习新策略:模型根据文本提示生成相关图像,而不是依赖于输入中的任何平均值。
  • 增强文本条件:模型更加依赖文本条件,避免不必要的颜色调整。

5. 有关纯噪声和有限噪声的平均色问题

image.jpg

no ZTSNR分析

  • 现象:生成的图像出现不必要的高对比度粗糙特征,试图将画布的平均颜色拉回到零。
  • 图示:图3展示了在没有 ZTSNR 的情况下,生成的图像会出现不必要的高对比度粗糙特征。
  • 原因
  • 均值泄漏(Mean-Leakage):在没有 ZTSNR 的情况下,模型在训练时未能接触到纯噪声,导致其在生成时依赖于输入噪声中的残留信号。模型试图将生成结果调整到输入噪声的平均值,从而导致与提示不符的高对比度特征。
  • 信号残留:有限噪声调度使得模型在训练过程中学会依赖于输入中的信号残留,这种依赖在推理阶段会导致不准确的生成。

ZTSNR分析

  • 现象:使用 ZTSNR 时,模型能够在无限噪声下提出相关的平均画布颜色,而没有 ZTSNR 时,模型错误地认为平均颜色应为零,从而添加白色以实现这一点。
  • 图示:图4展示了在有和没有 ZTSNR 情况下的中间去噪预测。
  • 原因
  • 纯噪声接触:ZTSNR 使得模型在训练过程中接触到纯噪声,从而学习如何从完全随机的输入中提取有意义的信息。这使得模型能够更好地根据文本提示生成相关颜色和低频信息。
  • 去除均值泄漏影响:通过 ZTSNR,模型不再依赖于有限噪声中的信号残留,而是根据文本条件进行预测。这使得生成结果更符合提示,并避免了不必要的颜色调整。

6. 调整噪声调度以解决高分辨率图像生成问题

问题背景

  • 问题:SDXL 模型的最大噪声水平($\sigma_{\max}$)不足以破坏高分辨率图像中的低频信号。
  • 解决:通过调整噪声调度,引入更高的噪声水平。
  • 参考:[1][2][3][4][5][6][7][8]

具体解释

  • 调整噪声调度:将噪声调度曲线调整为收敛于无限大($\sigma = \infty$),在训练过程中引入更高的噪声水平。
  • 实际效果
  • 增加 $\sigma_{\max}$:例如将其翻倍,可以恢复图像中的一致性和细节。
  • 处理高分辨率图像:随着分辨率的增加,图像中冗余信号也增加,需要更多的噪声来达到相同的 SNR,从而破坏等比例的信号。

7. NAI3模型的训练数据预处理方法(纵横比分桶)

问题背景

  • 不自然的裁剪:传统图像生成模型倾向于产生不自然的裁剪效果,例如人物缺少脚或头部,或物品部分超出画面。
  • 中心裁剪的局限:通常采用中心裁剪来处理方形数据,但这不符合大多数照片和艺术作品的分布,导致文本和图像之间的不匹配。

解决方案:长宽比分桶

  • 随机裁剪的不足:虽然随机裁剪比中心裁剪稍有改善,但仍然存在问题。
  • 可变图像尺寸:使用可变图像尺寸进行训练可以避免重复元素和模糊图像的问题。

自定义批量生成

  • 自定义代码实现:实现自定义批量生成代码。
  • 分桶方法
  • 最大图像尺寸:512×768,最大维度为 1024。
  • 生成不同分辨率的桶:通过改变宽度和高度组合来创建存储桶,以符合最大尺寸限制。
  • 修剪重复的存储桶:并添加 512×512 的标准存储桶大小。

图像加载

  • 调整图像以适应桶分辨率
  • 保持长宽比进行缩放
  • 随机裁剪:如果无法精确匹配,则进行随机裁剪以确保失真最小。

技术细节

  • 多GPU训练:在每个 epoch 前对数据集进行分片,以确保每个 GPU 处理相同大小的子集。
  • 权重分配:从加权分布中随机选择一个桶,确保训练过程中没有偏差。

总结

通过上述方法,能够更好地处理不同尺寸和比例的图像,提高生成质量,并减少不自然裁剪带来的问题。这种方法在保持批量处理效率的同时,确保了更好的图像构图和标记效率。

参考文献

  1. https://en.wikipedia.org/wiki/Signal-to-noise_ratio_%28imaging%29
  2. https://en.wikipedia.org/wiki/Signal-to-noise_ratio
  3. https://blog.csdn.net/weixin_44966641/article/details/139337965
  4. https://info.support.huawei.com/info-finder/encyclopedia/zh/%E4%BF%A1%E5%99%AA%E6%AF%94.html
  5. https://openaccess.thecvf.com/content/WACV2024/papers/Lin_Common_Diffusion_Noise_Schedules_and_Sample_Steps_Are_Flawed_WACV_2024_paper.pdf
  6. https://wrong.wang/paper/common-diffusion-noise-schedules-and-sample-steps-are-flawed/
  7. https://github.com/huggingface/diffusers/issues/778
  8. https://ppl-ai-file-upload.s3.amazonaws.com/web/direct-files/7501334/2b26b581-3134-44b5-8c33-7163d6fb6002/2409.15997v1.pdf
  9. https://shelf.io/blog/preventing-data-leakage-in-machine-learning-models/
  10. https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
  11. https://github.com/Project-MONAI/GenerativeModels/issues/397
  12. https://www.cnblogs.com/pjishu/p/17776223.html
  13. https://pplx-res.cloudinary.com/image/upload/v1727404237/user_uploads/walkzuywz/image.jpg
  14. https://ar5iv.labs.arxiv.org/html/2301.10972
  15. https://openreview.net/forum?id=ylHLVq0psd
  16. https://arxiv.org/html/2409.15997v1