AdjustMaskSize 视频蒙版边界膨胀与腐蚀收缩节点
节点核心功能 (What is it?)
AdjustMaskSize 节点通过对视频的每一帧独立执行数学形态学运算(Morphological Operations),对蒙版视频(Mask Video)的白区轮廓执行亚像素级外扩膨胀(Dilation)或内缩腐蚀(Erosion)。它在精确保持原视频分辨率、帧率及时间长度的前提下,平滑修整或精细控制蒙版遮罩的覆盖范围。
典型适用场景 (When would I use it?)
在以下情况下使用 AdjustMaskSize 节点:
- 外扩蒙版边界以覆盖更多主体周围的边缘过渡区域(膨胀 Dilation);
- 收缩蒙版以剥离杂乱毛刺、抠像绿边或误识别的边缘噪点伪影(腐蚀 Erosion);
- 对来自 SAM(Segment Anything)或 YOLO 视频跟踪算法输出的初步分割蒙版进行精细化轮廓修整;
- 以绝对像素量精准控制遮罩覆盖半径。
使用指南 (How to use it)
基础配置流程 (Basic Setup)
- 在工作流画布中添加 AdjustMaskSize 节点。
- 将待修整的蒙版视频源连接至
mask_video输入插槽。 - 调节
adjustment滑块设置所需膨胀或收缩的像素量。 - 执行工作流,修整后的蒙版视频即刻生成。
参数输入插槽 (Parameters)
- mask_video:待调整尺寸的目标蒙版视频(支持
VideoArtifact与VideoUrlArtifact)。 - adjustment:蒙版尺寸的像素级调节量(取值范围:
-25至+25像素,默认值:0):- 正值(
1至25):外扩蒙版边界(膨胀 Dilation); - 负值(
-25至-1):向内收缩蒙版边界(腐蚀 Erosion); - 零(
0):透明直通穿透,跳过所有处理以节省算力。
- 正值(
输出引脚 (Outputs)
- output_mask:完成形态学尺寸调整后的全新蒙版视频工件。
底层运作原理解析 (How it works)
节点在底层逐帧(Frame-by-Frame)执行形态学滤波:
- 膨胀(正调节量,Dilation):应用最大值滤波(Maximum Filter)。蒙版中的每一个白色像素均使用圆形结构核(Circular Kernel)向外均匀扩张指定的像素半径;
- 腐蚀(负调节量,Erosion):应用最小值滤波(Minimum Filter)。蒙版中的每一个白色像素均向内收缩指定的像素半径;
- 零调节量(Zero Adjustment):当值为
0时,节点零开销直通返回输入视频,避免无谓的编解码开销; - 各向同性圆形结构核:采用圆形卷积核,杜绝十字或矩形核带来的斜角失真,保证在 360 度所有方向上均匀自然扩散。
典型示例 (Example)
1. 向外扩充 5 像素蒙版
- 将上游分割出的蒙版视频连入
mask_video。 - 将
adjustment设为5。 - 执行工作流,输出蒙版的边缘在各个方向上均向外平滑外扩了 5 个像素,确保完全包覆目标主体。
2. 向内收缩 3 像素剥离绿幕边缘
- 将抠像蒙版接入
mask_video。 - 将
adjustment设为-3。 - 执行工作流,彻底切除外层残留的 3 像素杂色边缘。
关键技术特性 (Important Notes)
- 底层结合 FFmpeg 帧管线与 PIL(Pillow)高效 MaxFilter / MinFilter 算法,处理迅速且显存占用极低;
- 输入蒙版会在内部自动安全规范化为纯单通道灰度图;
- 输出视频严格保持与输入完全一致的物理分辨率、帧率(FPS)与总帧数;
- 面板自带百分比实时进度条指示(0–90% 帧处理,90–100% 视频重组封装)。