高级ControlNet插件

[复制链接]
shofans 发表于 2024-10-3 18:01:15 | 显示全部楼层 |阅读模式
shofans
2024-10-3 18:01:15 665 0 看全部

微信扫码快速注册,学习AIGC更多知识

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用于跨时间步和批量潜空间调度 ControlNet 强度以及应用自定义权重和遮罩的节点。

此处的 ControlNet 节点完全支持滑动上下文采样,就像 ComfyUI-AnimateDiff-Evolved 节点中使用的一样。

插件地址:https://github.com/Kosinkadink/ComfyUI-Advanced-ControlNet

安装难易程度:
☆☆☆☆☆

库的安装难度:没有库的依赖

节点详解

1.高级ControlNet应用

1727946069092.jpg

与ComfyUI自带的 ControlNet (Advanced) 节点功能相同,但添加了高级功能。

输入

🟩positive(正面条件):正面提示词条件。
🟩negative(负面条件):负面提示词条件。
🟩ControlNet:已加载的控制网;如果是受支持的类型,将由此节点自动转换为 Advanced 版本。
🟩image(图像):用于引导controlnet的图像 - 如果加载的控制网需要它,则它们必须是预处理图像。如果提供了一张图像,将用于所有潜在图像。如果提供了更多图像,将为每个潜在图像分别使用每张图像。如果图像不足以满足潜在计数,将从头开始重复图像以匹配。
🟨mask_optional(遮罩):应用于controlnet的遮罩;基本上,决定controlnet应用于图像的哪一部分。与图像输入相同,如果您提供多个遮罩,则每个遮罩都可以应用于不同的 latent。
🟨timestep_kf(帧间隔):时间步长关键帧,用于在整个采样步骤中指导controlnet效果。帧间隔保存指导controlnet设置的值,并根据开始位置开始生效,开始位置对应于采样过程的百分比。它们可以包含每个潜在强度的遮罩、控制强度和 latent关键帧(每个潜在特定强度),所有这些都是可选的。
🟨latent_kf_override(覆盖 latent关键帧): latent关键帧的覆盖,如果不需要帧间隔中的其他特征,则很有用。注意:此 latent关键帧将应用于所有时间步长,无论是否有其他 latent关键帧附加到连接的帧间隔。
🟨weights_override(覆盖controlnet权重):如果不需要帧间隔中的其他特征,则很有用。注意:此权重将应用于所有时间步长,无论是否有其他权重附加到连接的时间步长关键帧。
🟦strength(强度):controlnet的强度;1.0 为全强度,0.0 为完全无效。
🟦start_percent(开始位置):开始应用controlnet的采样步长百分比 - 无论在时间步长关键帧上设置了多少 start_percent,它们在达到此 start_percent 之前都不会生效。
🟦stop_percent(结束位置):停止应用controlnet的采样步长百分比 - 无论在时间步长关键帧上设置了多少 start_percent,一旦达到此 end_percent,它们就不会生效。
🟨模型可选:可配合Animatediff 控制模型一起串联使用
🟨vae_optional(VAE可选):暂无说明

输出

🟪positive(正面条件):应用控制网的条件(正)
🟪negative(负面条件):应用控制网的条件(负)



2.ControlNet加载器(高级)

1727947336532.jpg

加载 ControlNet 模型并将其转换为所有功能的高级

输入

🟥timestep_keyframe:可选且可能不必要的输入,用于让 ControlNet 使用选定的帧间隔 - 除非需要,否则不应使用。如果此节点未连接到 Apply Advanced ControlNet 节点,但仍想使用 Timestep Keyframe,或者在相同场景中使用 控制权重 的 TK_SHORTCUT 输出,则很有用。如果提供了,将被 Apply Advanced ControlNet 节点上的 timestep_kf 输入覆盖。
🟨model:插入节点的 diff 版本的模型。一些ControlNet设计用于接收模型;如果您不知道这是什么,您可能不想使用节点的 diff 版本。

输出

🟪ControlNet:已加载的 Advanced ControlNet版本



3.帧间隔

1727947972316.jpg

Timestep Keyframe 节点用于创建时间步关键帧,这允许用户根据采样步骤的百分比来安排ControlNet控制。这个节点对于希望在其生成过程中精细控制图像输出的艺术家非常有用。下面是对您提到的各个输入和输出的解释:


输入

prev_timestep_kf (前帧间隔): 用来链接多个时步关键帧以形成一个调度表。这些关键帧会按照它们的 start_percent 自动排序。如果新的关键帧与链中的已有关键帧具有相同的 start_percent,那么新的关键帧将覆盖旧的关键帧。
cn_weights (ControlNet权重): 当此关键帧生效时应用于控制网络的权重。这些权重必须与加载的控制网络兼容,否则会抛出错误提示兼容的权重类型。如果设置了 inherit_missing 并且没有提供 control_net_weight,系统会尝试重用上一个关键帧中的权重。
latent_keyframe (latent关键帧): 当此关键帧生效时应用于控制网络的潜在关键帧。同样地,如果设置了 inherit_missing 并且没有提供 latent_keyframe,系统会尝试重用上一个关键帧中的潜在关键帧。
mask_optional (遮罩): 应用于控制网络的关注掩码,决定图像的哪些部分受到控制网络的影响(以及相对强度)。如果设置了 inherit_missing 并且没有提供 mask_optional,系统会尝试重用上一个关键帧中的掩码。
start_percent (开始位置): 指定当采样步骤达到某个百分比时该关键帧开始生效。
strength (强度): 控制网络的强度;它会乘以控制网络的值。如果设置为0.0,则在此关键帧的有效期内不会有任何效果,并且可以加快采样速度。
null_latent_kf_strength (空lantent关键帧强度): 对于未在提供的潜在关键帧中指定的潜在变量赋予的强度。如果没有提供潜在关键帧或在采样期间所有批处理索引都被考虑到了,则此参数无效。
inherit_missing (缺失值自动继承): 决定是否从先前的关键帧中继承未包含在此关键帧中的可选值(如 control_net_weights, latent_keyframe, 和 mask_optional)。
guarantee_steps (最小采样步数): 当值大于等于1时,即使另一个更早的关键帧的 start_percent 更接近当前采样百分比,此关键帧也会被使用指定数量的步骤后才切换到下一个关键帧。

输出

TIMESTEP_KF (帧间隔): 创建的时间步关键帧,可以连接到另一个关键帧或者作为其他需要时步关键帧输入的节点的输入。

通过使用 Timestep Keyframe 节点,您可以创建一系列关键帧,每个关键帧都有其特定的配置,在不同的采样阶段激活,从而实现对最终生成图像的动态控制。



4.帧间隔关键帧插值

1727948215941.jpg

这个节点的功能是创建具有在给定百分比范围内插值强度值的时间步关键帧(Timestep Keyframe)。它允许用户定义动画或模拟中的关键点,其中每个关键点都有一个开始和结束的百分比位置以及对应的强度值。这些关键点之间的值将通过指定的插值方法进行计算。

输入

prev_timestep_kf(帧间隔):用于链接多个时间步关键帧以创建一个调度表。这些关键帧会自动根据它们的start_percent属性排序。如果新的关键帧与链中已有的关键帧有相同的start_percent,则会覆盖原有的关键帧。
cn_weights(ControlNet权重):当此时间步关键帧生效时应用于控制网络的权重。必须与加载的控制网络兼容。如果设置了inherit_missing为True,并且没有提供control_net_weight,系统会尝试复用上一次使用的关键帧中的权重。
latent_keyframe(latent关键帧):当此时间步关键帧生效时应用的潜在关键帧。继承规则同cn_weights。
mask_optional(遮罩可选):用于决定控制网络应用到图像的哪些部分。同样支持继承机制。
start_percent(开始位置):第一个生成的关键帧适用的采样步骤百分比。
end_percent(结束位置):最后一个生成的关键帧适用的采样步骤百分比。
strength_start(起始强度):范围起始处关键帧的强度。
strength_end(结束强度):范围终止处关键帧的强度。
interpolation:插值的方法。
intervals(迭代次数):要生成的关键帧总数。第一个关键帧的start_percent等于start_percent参数,最后一个关键帧的start_percent等于end_percent参数。
null_latent_kf_strength(空Latent关键帧强度):对于未在传递的latent_keyframes中说明的潜变量,赋予的强度。
inherit_missing(缺失值自动继承):确定是否应该从之前的时间步关键帧继承遗漏的可选值(如control_net_weights、latent_keyframe和mask_optional)。
print_keyframes(输出关键帧到控制台):如果设置为True,将打印由该节点生成的时间步关键帧以便调试。

输出

TIMESTEP_KF(帧间隔):创建的时间步关键帧,可以被链接到另一个关键帧或作为输入传递给需要时间步关键帧的其他节点。

这个节点主要用于创建一系列关键帧,这些关键帧可以用来定义某个效果随时间变化的过程,例如动画中的运动或者渲染过程中的某些属性的变化。通过设置不同的开始和结束百分比,以及相应的强度值,用户能够灵活地控制这些变化的具体方式。



5.帧间隔从强度列表到关键帧

1727948742554.jpg

这个节点允许通过提供一个浮点数列表来创建时间步关键帧(Timestep Keyframe),通常与ComfyUI_FizzNodes插件中的Batch Value Schedule节点一起使用。

该节点的功能是基于提供的浮点数值生成一系列的时间步关键帧,其中每个关键帧都有一个特定的强度值。第一个生成的关键帧将设置guarantee_steps=1,而后续的所有关键帧将设置guarantee_steps=0。

float_strengths:一个浮点数列表,对应于每个时间步关键帧的强度;列表的第一个元素被分配给start_percent,最后一个元素被分配给end_percent,其余的值在线性地分布在这两个百分比之间。

其他参数说明参看上面节点


待更新


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 返回列表

shofans当前离线
管理员

查看:665 | 回复:0

欢迎
快速回复 返回顶部 返回列表