描述
编码视频组件节点从视频中提取帧,将其调整到指定分辨率,并直接通过VAE编码为Latent表示。它逐帧处理,避免了同时存储整个视频的所有图像张量的内存开销。该节点还会传递输入视频的音频轨道,并输出帧率和总帧数等元数据。
输入
- video (
VIDEO, 必填) — 要处理的视频文件或序列。必须是 ComfyUI-KJNodes 接受的有效视频输入。 - vae (
VAE, 必填) — 用于将调整大小后的帧编码到Latent空间的VAE模型。 - width (
INT, 默认:768, 范围:0–16384, 步长:2) — 每个帧在编码前的目标宽度。设为0则保留原始视频宽度。 - height (
INT, 默认:512, 范围:0–16384, 步长:2) — 每个帧在编码前的目标高度。设为0则保留原始视频高度。 - max_frames (
INT, 默认:0, 范围:0–999999, 步长:1) — 要处理的最大帧数。0表示无限制,处理整个视频。 - upscale_method (
COMBO, 默认:"lanczos") — 调整帧大小时使用的插值算法。选项:nearest-exact— 快速,最近邻插值;可能产生块状结果。bilinear— 平滑,适用于常规缩放。area— 基于区域的调整大小;在缩小图像时效果良好。bicubic— 比 bilinear 质量更高,稍慢。lanczos— 锐利重采样,常用于高质量缩小。
- keep_proportion (
DYNAMICCOMBO, 必填) — 控制当目标宽高比与帧的原始宽高比不匹配时的处理方式。这是一个根据其他输入动态调整选项的下拉菜单;常见模式包括"crop"、"pad"、"stretch"或"fit"。详情请参阅使用说明。
输出
- LATENT — 所有已处理帧经过VAE编码的Latent表示,以批处理形式堆叠。形状与VAE预期的Latent维度一致。
- AUDIO — 从输入视频中提取的音频轨道(如果有)。如果视频没有音频,此输出可能为空或
None。 - FLOAT — 原始视频的帧率(FPS),以浮点数形式输出。
- INT — 实际处理的帧总数(受
max_frames限制)。
使用说明
- 该节点按顺序处理帧,并将每帧调整大小后立即送入VAE,与先将整个视频加载为图像批处理相比,显著降低了峰值内存使用量。
- 将
width和/或height设为0可保留原始尺寸。如果两者都非零,则定义目标分辨率。keep_proportion设置决定如何解决宽高比不匹配问题。 keep_proportion组合框的工具提示显示为“调整大小时如何处理宽高比不匹配”。其具体选项取决于节点实现(例如"crop to fit"、"pad"、"ignore"或"fit")。请在工作流中测试节点以查看可用选项。upscale_method仅影响实际需要调整大小的帧(即当宽度或高度与原始值不同时)。如果两个维度都与原始值相同,则不会进行缩放,此参数会被忽略。- 使用
max_frames限制处理长视频,或仅处理部分帧以进行调试。设置为0(默认值)则处理整个视频。 - 输出
LATENT可以直接送入接受Latent批处理的采样节点(例如 KSampler)。Latent批处理的大小等于帧数。 - 如果输入视频没有音频轨道,
AUDIO输出将为一个空占位符;期望接收音频的下游节点应妥善处理此情况。 FLOAT输出(帧率)和INT输出(帧数)可用于同步后续依赖于时序的步骤,或用于报告目的。
评论
使用 GitHub 登录后即可参与讨论。