ComfyUI InfoComfyUI Info

ComfyUI_Noise

ComfyUI Noise为ComfyUI提供6个节点,能对噪声进行更多控制和灵活操作。包含生成噪声、复制批次样本、混合潜在图像、计算噪声强度、注入噪声和反向采样等节点。例如,可通过混合不同噪声生成图像变体,用反向采样节点找出给定图像的噪声。还配有示例工作流展示使用方法。

BlenderNeko

298 stars
GitHub

Description

ComfyUI 噪声

这个自定义节点包含 6 个适用于 ComfyUI 的节点,它们能让你对噪声进行更精细的控制和更灵活的操作。这使得在生成图像时可以产生细微变化,或者帮助你找到与输入图像和提示词相对应的噪声。

节点

噪声潜在图像:

这个节点可以让你生成噪声。你可以在 latent>noise 下找到该节点,它有以下设置:

  • :指定噪声的生成位置。目前支持 GPU 和 CPU。
  • 种子:噪声的种子值。
  • 宽度:图像的宽度。
  • 高度:图像的高度。
  • 批次大小:批次的大小。

复制批次索引:

此节点的功能已移至核心部分。请使用 Latent>Batch>Repeat Latent BatchLatent>Batch>Latent From Batch 来替代。

这个节点可以让你复制批次中的特定样本。例如,它可用于复制编码后的图像或上述节点生成的噪声。你可以在 latent 下找到该节点,它有以下设置:

  • 潜在数据:潜在数据。
  • 批次索引:要复制的潜在数据中样本的索引。
  • 新批次大小:表示样本要复制的次数。

球面线性插值潜在数据:

这个节点允许你混合两组潜在数据。两个输入的潜在数据必须具有相同的维度;否则,该节点将忽略混合因子,而输出顶部插槽的数据。对于附加到潜在数据的其他元素,如掩码,只有顶部插槽的元素会被传递。你可以在 latent 下找到该节点,它有以下输入:

  • 潜在数据 1:第一批潜在数据。
  • 潜在数据 2:第二批潜在数据。此输入可选。
  • 掩码:确定在潜在数据的哪些位置执行球面线性插值操作。此输入可选。
  • 因子:指定第二批潜在数据要球面线性插值到第一批中的比例。

获取西格玛:

这个节点可用于计算采样器在去噪过程开始时预期的噪声量。你可以在 latent>noise 下找到该节点,它有以下输入和设置:

  • 模型:要为其计算西格玛的模型。
  • 采样器名称:要为其计算西格玛的采样器名称。
  • 调度器:采样器中使用的调度类型。
  • 步数:调度中的总步数。
  • 起始步数:采样器的起始步数,指示输入图像中预期的噪声量。
  • 结束步数:上一个采样器当前的结束步数,指示图像中现有的噪声量。

大多数情况下,你只需将 起始步数 设为零,将 结束步数 设为 步数。但是,如果你想在两个采样器之间重新注入一些噪声,例如,一个采样器从 0 到 15 去噪,另一个从 10 到 20 去噪,你可以将 起始步数 设为 10,将 结束步数 设为 15。这样,第 15 步的图像可以被重新添加噪声回到第 10 步,以便第二个采样器将其处理到第 20 步。请注意,高级 K 采样器有 添加噪声返回剩余噪声 设置,在使用这些节点时,这两个设置都应禁用。

注入噪声:

这个节点允许你将噪声注入到图像潜在数据中。你可以在 latent>noise 下找到该节点,它有以下输入:

  • 潜在数据:要注入噪声的潜在数据。
  • 噪声:噪声。此输入可选。
  • 掩码:确定在哪些位置注入噪声。此输入可选。
  • 强度:噪声的强度。请注意,你可以使用上述节点来计算合适的强度值。

反采样器:

这个节点执行采样器的反向操作。它根据模型和提示词计算生成图像所需的噪声。你可以在 sampling 下找到该节点,它有以下输入和设置:

  • 模型:目标模型。
  • 步数:添加噪声的步数。
  • 结束步数:要回溯到的步数。
  • 分类器无引导尺度:分类器无引导尺度。
  • 采样器名称:要使用的采样技术名称。
  • 调度器:要使用的调度类型。
  • 归一化:是否在输出前对噪声进行归一化。在将其传递给注入噪声节点时,这很有用,因为该节点需要归一化的噪声。
  • 正提示词:正提示词。
  • 负提示词:负提示词。
  • 潜在图像:要重新添加噪声的图像。

当试图尽可能准确地重建目标图像时,如果反采样器和采样器都使用接近 1.0 的分类器无引导尺度和相似的步数,效果最佳。不过,尝试这些设置以更好地理解结果是很有趣且值得的。这个节点可以实现与 A1111 img2img 替代 脚本类似的效果。

示例

以下是一些展示如何使用上述节点的示例。这些示例的工作流程可以在 example_workflow 文件夹中找到。

生成变体

展示对给定种子生成微小变体的工作流程截图

要在给定的生成结果中创建细微变化,你可以按照以下步骤操作:首先,使用 噪声潜在图像 节点为你感兴趣的种子生成噪声。然后,使用 复制批次索引 节点创建这批噪声的完整副本。请注意,如果你是在进行 img2img 操作,可以使用相同的节点复制图像潜在数据。接下来,生成更多噪声,但这次创建一批噪声而不是单个样本。然后,使用 球面线性插值潜在数据 节点将新创建的噪声球面线性插值到之前的噪声中。要确定注入此噪声所需的强度,可以使用 获取西格玛 节点。最后,使用 注入噪声 节点将球面线性插值后的噪声注入到一批空的潜在数据中。请注意,你应该使用高级 K 采样器,并禁用 添加噪声 设置。

“反采样”

展示对给定种子生成微小变体的工作流程截图

要获取能重现特定图像的噪声,首先加载图像。然后,使用低分类器无引导尺度值的 反采样器 节点。要验证这是否有效,将得到的噪声反馈到高级 K 采样器中,禁用 添加噪声 设置,并将分类器无引导尺度设为 1.0。