KJNodes/imagegenerated

编码视频组件(EncodeVideoComponents)

提取视频帧,调整大小,并直接使用VAE进行编码,避免存储完整的图像张量。

Encode Video Components

video
vae
keep_proportion
latent
audio
fps
frame_count
width
768
height
512
max_frames
0
upscale_method
lanczos
KJNodes

描述

编码视频组件节点从视频中提取帧,将其调整到指定分辨率,并直接通过VAE编码为Latent表示。它逐帧处理,避免了同时存储整个视频的所有图像张量的内存开销。该节点还会传递输入视频的音频轨道,并输出帧率和总帧数等元数据。

输入

  • video (VIDEO, 必填) — 要处理的视频文件或序列。必须是 ComfyUI-KJNodes 接受的有效视频输入。
  • vae (VAE, 必填) — 用于将调整大小后的帧编码到Latent空间的VAE模型。
  • width (INT, 默认: 768, 范围: 016384, 步长: 2) — 每个帧在编码前的目标宽度。设为 0 则保留原始视频宽度。
  • height (INT, 默认: 512, 范围: 016384, 步长: 2) — 每个帧在编码前的目标高度。设为 0 则保留原始视频高度。
  • max_frames (INT, 默认: 0, 范围: 0999999, 步长: 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 登录后即可参与讨论。

评论加载中…
编码视频组件 (EncodeVideoComponents) - ComfyUI-KJNodes | ComfyUI Wiki