描述
解码并保存视频节点从Latent表示中解码视频帧和可选的音频,合并后直接将生成的视频保存到文件。它专为内存效率设计:解码的帧会即时写入磁盘,无需将所有中间图像存储在RAM中。因此,它适用于本来会超出可用内存的长视频或高分辨率视频。
该节点期望接收视频帧的Latent表示(通常由视频扩散模型生成)以及可选的音频Latent表示。必须提供两个独立的VAE模型:一个用于解码视频Latent(video_vae),另一个用于解码音频Latent(audio_vae——仅当提供了audio_latent时才需要)。节点还支持分块解码(空间和时间),以进一步减少内存使用,可通过分块参数配置。
将此节点用作视频生成流程的最终步骤,将结果导出为常见的视频容器格式。
输入
| 输入 | 类型 | 必填 | 默认值 | 备注 |
|---|---|---|---|---|
video_latent | LATENT | 是 | – | 视频帧的Latent表示。通常从兼容的视频扩散模型获得。 |
audio_latent | LATENT | 否 | – | 音频帧的Latent表示。如果提供,则必须同时连接一个audio_vae。保持断开连接可输出静音视频。 |
fps | FLOAT | 是 | 25.0 | 输出视频的帧率。范围:0 – 999(间距0.01)。 |
filename_prefix | STRING | 是 | video/ComfyUI | 保存视频文件的前缀。可包含格式化令牌,如%date:yyyy-MM-dd%或节点值引用,如%Empty Latent Image.width%。节点会自动附加唯一后缀以避免覆盖。 |
format | COMBO | 是 | auto | 输出容器格式。选项取决于系统可用的编码器(例如mp4、avi、mkv、webm)。auto选择最广泛支持的格式(通常是MP4)。 |
codec | COMBO | 是 | auto | 要使用的视频编解码器。选项取决于系统安装的编码器(例如libx264、libx265、libvpx、libaom-av1)。auto选择常用的编解码器(通常是H.264)。 |
video_vae | VAE | 是 | – | 用于将video_latent解码为像素帧的VAE模型。必须与Latent表示兼容。 |
audio_vae | VAE | 否 | – | 用于将audio_latent解码为音频样本的VAE模型。当audio_latent已连接时为必填。 |
tiling | DYNAMICCOMBO | 是 | – | 视频解码的分块模式。动态选项可能包括disable(全帧解码)、spatial(仅空间分块)、temporal(仅时间分块)或both。具体选择取决于节点实现和连接的VAE。 |
tile_size | INT | 是 | 512 | 每个空间块的宽度/高度。较小的值降低峰值内存使用,但增加解码时间。范围:64 – 4096(间距32)。仅在空间分块激活时使用。 |
overlap | INT | 是 | 64 | 相邻空间块之间的重叠(像素)。较高的重叠减少块边界的可见接缝,但会消耗更多内存和处理时间。范围:0 – 4096(间距32)。 |
temporal_size | INT | 是 | 4096 | 启用时间分块时一次性解码的帧数。大于总帧数的值实际上禁用了时间分块。仅与支持时间分块的视频VAE相关。范围:8 – 4096(间距4)。 |
temporal_overlap | INT | 是 | 16 | 连续时间块之间的重叠帧数。较高的重叠可以平滑时间接缝,但使用更多内存并增加解码时间。范围:4 – 4096(间距4)。 |
分块行为
- 当
tiling禁用时,整个帧一次性解码——这占用最多内存。 - 空间分块(
tiling = "spatial"或"both")将每个帧拆分为大小为tile_size×tile_size的更小块,独立解码并混合重叠区域。 - 时间分块(
tiling = "temporal"或"both")将帧序列拆分为大小为temporal_size的块,每个块重叠temporal_overlap帧。仅适用于支持时间分解的VAE(例如某些视频VAE)。 - 节点自动处理重叠区域和块边界的混合。
输出
此节点没有输出连接。解码后的视频直接根据filename_prefix构造的路径写入磁盘。节点不向工作流返回任何数据。
使用说明
- 内存管理:节点在生成解码帧时即时将其流式写入磁盘。即使禁用了分块,也不会同时将所有帧累积在内存中。分块进一步降低峰值内存,但会降低解码速度。
- 音频:要包含音频,请同时提供
audio_latent和audio_vae。音频VAE必须匹配音频Latent空间(例如来自音频扩散模型)。如果未连接音频Latent,输出视频将为静音。 - 格式和编解码器支持:可用的格式和编解码器取决于系统上安装的FFmpeg(或其他编码器)。使用
auto可获得无忧体验;如果需要特定编解码器或容器,请确保安装了所需的编码器。 - 文件名前缀令牌:您可以使用ComfyUI的格式化语法来包含日期、时间或节点值。例如:
video/ComfyUI_%empty_latent_image.width%x%empty_latent_image.height%_%date:yyyy-MM-dd%
将生成类似video/ComfyUI_512x512_2025-01-15_0001.mp4的文件名。 - 块大小调优:对于大多数用例,
tile_size为512、overlap为64可在内存和速度之间取得良好平衡。如果内存允许,可以增大tile_size;如果VRAM不足,则减小它。 - 时间分块:仅对原生支持时间分块的VAE有效。如果您的VAE不支持,设置时间参数将不起作用。
- 间距递增:所有整数块参数都强制执行节点中定义的间距(空间为32,时间为4)。未对齐间距的值会自动四舍五入。
评论
使用 GitHub 登录后即可参与讨论。