什么是 KSampler (Advanced)?

KSampler (Advanced) 节点,是无印 KSampler 节点的上位互换。
参数 denoise 消失增加了以下的 4 个。
add_noisestart_at_stepend_at_stepreturn_with_leftsover_noise
在 ComfyUI 之中,也认为是原本最有趣的功能之一,慢慢看吧。
扩散模型和 Sampling 的复习

扩散模型 是,通过从完全的噪声,徐徐去除噪声从而生成图像的机制。
如果是上的图像,在第 0 步追加满量的噪声,在第 20 步所有的噪声被去除,图像完成。
参数
start_at_step 和 end_at_step
在 KSampler (Advanced),通过设定 start_at_step 和 end_at_step,可以控制从哪里开始采样,推进采样到哪里。

例如,设定 start_at_step 为 4 / end_at_step 为 11 时,对图像的白色部分只进行采样。
add_noise
虽然重复几次,扩散模型是制作噪声图像,徐徐去除噪声的机制。
那么,那个噪声从哪里来呢?
是的,追加噪声的也是 KSampler 进行的。
在 KSampler (Advanced),可以用 add_noise 参数选择追加还是不追加噪声。

🟫 假如设定 add_noise 为 disable 进行采样,因为从没有噪声的图像持续去除噪声所以什么都不生成。
分割采样
只采样中间的步数,或不追加噪声,到底在哪里有用呢?
正因为是这个 KSampler (Advanced) 才能做的事,有将一个采样分割为 2 个以上的 KSampler,这样的事。

如图,前半 0 ~ 10step 用 🟪Ksample (Advanced)、11~20step 用 🟨KSampler (Advanced) 进行试一下吧。

我想知道即使分割为 2 个生成的图像也完全一样。 因为参数稍微麻烦,仔细看。

🟪KSampler (Advanced)
add_noise:enablestart_at_step:0end_at_step:10return_with_leftover_noise:enable- 保持残留噪声的状态返回 latent。

🟨KSampler (Advanced)
add_noise:disable- 因为残留噪声的 latent 被渡过来,所以在这里不追加噪声。
start_at_step:10- 设为与 🟪 的
end_at_step相同。
- 设为与 🟪 的
end_at_step:20- 设定为比整体 step 数大的值的情况,内部变得与
steps相同。
- 设定为比整体 step 数大的值的情况,内部变得与
return_with_leftover_noise:disable
虽然分割似乎没有意义,但这很有趣。
正因为是 KSampler (Advanced) 能做的事
提示词的切换
最初使用 "A" 的提示词,从采样途中切换为 "B" 的提示词,能做这样的事。

在这个 workflow,最初的 10step 用 红苹果、剩下用 红兔子 这样的提示词生成。
为了更易懂,试着将切换步数每改变 1 时的生成图像做成了视频。
曾是 100% 苹果的东西,徐徐变成了兔子。
如果是 Stable Diffusion web UI 用户,也许会想起 Prompt Editing。实际上,是相似的东西。
在那之中有每 1steps 切换提示词的东西,但在 ComfyUI,很遗憾如果没有自定义节点就无法做。
如果排列 20 个 KSampler (Advanced) 的话能做,但,嘛…不做呢……
模型 (LoRA) 的切换
同样地,也可以从途中切换模型或 LoRA。

节点增加变得稍微麻烦了呢。
只是,仔细看的话 text2image 的 workflow 排列了 2 个,只是在途中切换而已。
以 无 LoRA 生成最初的 6step,以 有 LoRA 生成剩余。

这是变成像素画的 LoRA,但 LoRA 以外“变成像素画”的概念之外,也持有作为学习素材的画的记忆。
因此,并不是无 LoRA 生成时的图像原样变成像素画。
试着对比看不使用 LoRA 时和适用全 step 时,不仅变成了像素画风格,连苹果的形状都变了。
扩散模型,在序盘的步数制作形,在后盘描绘细部。
制作形的最初 step 不挂 LoRA,只在后半挂 LoRA,从而可以活用模型本来的能力并进行由 LoRA 带来的画风变换。
image2image
从途中追加噪声,这就原样连接 image2image 的机制。
那么,就这样看看 image2image 的机制吧。