Spline Editor(SplineEditor)
从技术实现上看,此节点支持多种采样方法(如按路径长度或时间)和插值算法(如 Cardinal、Basis 等),以计算控制点之间的平滑过渡。
Spline Editor
⚠️ 进行中
请勿将其作为工作流的一部分依赖,
可能存在大量错误,稳定性
无法保证!!
用于创建各种调度和/或遮罩批处理数值的图形编辑器
从技术实现上看,Spline Editor 节点支持多种采样方法(如按路径长度或时间)和插值算法(如 Cardinal、Basis 等),以计算控制点之间的平滑过渡。
Spline Editor 是一个用于创建和编辑样条曲线的节点。它允许用户通过定义一系列控制点来生成平滑路径或数值序列。此节点的核心功能是将这些点转换为可用于图像处理的遮罩(Mask)或一系列浮点值,为后续的动画或权重控制提供基础数据。
编辑控件
- Shift + 点击 在末尾添加一个控制点。
- Ctrl + 点击 在两个点之间添加一个控制点(细分)。
- 右键点击一个点 删除它(注意:不能删除第一个/最后一个点)。
- 右键点击画布可打开上下文菜单:
- 添加新曲线 – 在同一画布上创建一条新曲线;这些路径目前仅以坐标形式输出。
- 添加单点 – 创建一个单点,返回其当前位置坐标。
- 删除曲线 – 删除当前已选择的曲线(通过点击其路径选择曲线,或通过“下一条曲线”选项切换曲线)。
- 纯视觉选项(不影响输出):
- 切换控制柄可见性
- 显示采样点 – 显示将返回的点。
points_to_sample 值设置从绘制的曲线本身返回的采样数;这与实际控制点无关,因此插值类型很重要。
sampling_method:
time– 沿时间轴采样(适用于调度)path– 沿路径本身采样(适用于坐标)controlpoints– 仅采样控制点本身speed– 基于沿路径的速度采样
output types:
- 遮罩批处理 – 与接受遮罩的节点兼容
- 浮点组列表 – 与 IPAdapter 权重等兼容
- pandas 序列 – 与 Fizz 的 Batch Value Schedule 节点兼容
- torch 张量 – 与未知节点兼容
节点功能
从技术实现上看,此节点支持多种采样方法(如按路径长度或时间)和插值算法(如 Cardinal、Basis 等),以计算控制点之间的平滑过渡。它接收字符串格式的坐标点数据,并能在用户定义的画布尺寸(mask_width 和 mask_height)上生成对应的灰度遮罩图像或数值列表。它还支持将输出结果重复指定次数。
节点参数说明 – Spline Editor
连接输入 (Inputs)
| 参数名称 | 数据类型 | 必填 | 描述 |
|---|---|---|---|
points_store | STRING | 是 | points_store:用于存储和传递控制点坐标数据的字符串,通常由节点界面交互生成,格式为内部定义。 |
coordinates | STRING | 是 | coordinates:以字符串形式直接输入控制点的坐标序列,格式需符合“x1,y1,x2,y2...”要求。 |
bg_image | IMAGE | 否 | bg_image:可选输入一张背景图像,节点将依据此图像的尺寸来生成遮罩,覆盖手动设置的宽高参数。 |
控件参数 (Parameters)
| 参数名称 | 数据类型 | 必填 | 默认值 | 范围/选项 | 描述 |
|---|---|---|---|---|---|
sampling_method | COMBO | 是 | time | "path", "time", "controlpoints", "speed" | 确定数值生成的逻辑。选项包括 time、controlpoints、speed 和 path。 |
interpolation | COMBO | 是 | cardinal | "cardinal", "monotone", "basis", "linear", "step-before", "step-after", "polar", "polar-reverse", "bezier" | 直接影响生成曲线的平滑程度与形状。选项包括 cardinal、monotone、basis、linear、step-before、step-after、polar、polar-reverse 和 bezier。 |
float_output_type | COMBO | 是 | list | "list", "pandas series", "tensor" | 指定浮点输出的格式,如 list、pandas series 或 tensor,以适配不同的下游处理节点。 |
mask_width | INT | 是 | 512 | 8 – 4096 (步长: 8) | mask_width:设置输出遮罩图像的宽度,范围 8 至 4096,步长 8。应与使用场景的图像宽度一致。 |
mask_height | INT | 是 | 512 | 8 – 4096 (步长: 8) | mask_height:设置输出遮罩图像的高度,范围 8 至 4096,步长 8。应与使用场景的图像高度一致。 |
points_to_sample | INT | 是 | 16 | 2 – 1000 (步长: 1) | points_to_sample:设定从样条曲线采样的点数,范围 2 至 1000。点数越多曲线描述越精细。 |
tension | FLOAT | 是 | 0.5 | 0.0 – 1.0 (步长: 0.01) | tension:调整 Cardinal 插值算法的张力,范围 0.0 至 1.0,步长 0.01。影响曲线穿过控制点的紧绷程度。 |
repeat_output | INT | 是 | 1 | 1 – 4096 (步长: 1) | repeat_output:控制输出序列(如遮罩列表)的重复次数,范围 1 至 4096。用于快速生成循环或延长序列。 |
min_value | FLOAT | 否 | 0.0 | -10000.0 – 10000.0 (步长: 0.01) | 可选,用于重新映射输出浮点值的下限。 |
max_value | FLOAT | 否 | 1.0 | -10000.0 – 10000.0 (步长: 0.01) | 可选,用于重新映射输出浮点值的上限。 |
输出 (Outputs)
| 参数名称 | 数据类型 | 描述 |
|---|---|---|
| mask | MASK | mask(输出参数):输出的灰度遮罩图像,白色区域代表样条路径。 |
| coord_str | STRING | coord_str(输出参数):输出的字符串,包含所有采样点的坐标信息。 |
| float | FLOAT | float(输出参数):输出的浮点数值序列,代表沿样条曲线采样得到的值。 |
| count | INT | count(输出参数):输出的整数,表示实际采样点的数量。 |
| normalized_str | STRING | normalized_str(输出参数):输出的字符串,包含归一化后的采样点坐标信息。 |
使用场景
在实际应用中,此节点常用于构建动态遮罩或控制参数曲线。例如,在视频帧处理工作流中,用户可以绘制一条运动路径。Spline Editor 会生成沿该路径的遮罩序列,用于在后续节点中引导图像内容(如粒子或光线)的移动轨迹,从而创建出复杂的动画效果。
注意事项
需要注意的是,输入坐标点的字符串格式必须正确,且定义的画布尺寸需与最终使用的图像尺寸匹配,否则生成的遮罩可能出现错位。此外,采样点数量不宜设置过低,以确保曲线的平滑度。
Spline Editor 节点来源链接
Spline Editor 节点来自 ComfyUI-KJNodes 节点包。
评论
使用 GitHub 登录后即可参与讨论。