SeedVR2 的官方 ComfyUI 版本,可实现高质量视频和图像 upscale。
也可作为多 GPU 独立 CLI 运行,详见🖥️ 作为独立程序运行部分。


我们正在积极开发改进和新功能。如需了解最新动态:
2025.11.09 - 版本 2.5.5
2025.11.08 - 版本 2.5.4
.view() 替换为 .reshape(),以处理空间填充后非连续的张量,解决"视图大小与输入张量的大小和步幅不兼容"错误2025.11.08 - 版本 2.5.3
"mps" 而非 "mps:0",解决 M 系列 Mac 上的无效设备错误torch.mps.is_available() 的防御性检查,以处理非 Mac 平台上 PyTorch 版本中该方法不存在的情况2025.11.07 - 版本 2.5.0 🎉
⚠️ 重大变更:这是一个需要重新创建工作流程的重大更新。所有节点和 CLI 参数都经过重新设计,以提高可用性和一致性。观看 AInVFX 的最新视频深入了解,并查看使用指南部分。
📦 正式发布:现已在主分支上提供,支持 ComfyUI Manager,便于安装和自动版本跟踪。更新的依赖项和本地导入可防止与其他 ComfyUI 自定义节点发生冲突。
uniform_batch_size、temporal_overlap、prepend_frames 和 max_resolution,提供更好的控制能力2025.08.07
enable_debugcache_model 已移至主节点,通过优化 RoPE/包装器清理修复内存泄漏constants.py、model_registry.py、debug.py),移除遗留代码2025.07.17
2025.07.11
2025.09.07
2025.07.03
2025.06.30
2025.06.24
2025.06.22
2025.06.20
借助当前的优化(分块处理、BlockSwap、GGUF 量化),SeedVR2 可在多种硬件上运行:
注册表链接:ComfyUI Registry - SeedVR2 Video Upscaler
cd ComfyUI
git clone https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler.git custom_nodes/seedvr2_videoupscaler# Install requirements (from same ComfyUI directory)
# Windows:
.venv\Scripts\python.exe -m pip install -r custom_nodes\seedvr2_videoupscaler\requirements.txt
# Linux/macOS:
.venv/bin/python -m pip install -r custom_nodes/seedvr2_videoupscaler/requirements.txt首次使用时,模型将自动下载并保存至 ComfyUI/models/SEEDVR2。
您也可以手动下载模型:
AInVFX 的 Adrien 制作的 2.5 版本完整教程,涵盖全新的 4 节点架构、GGUF 支持、内存优化及生产工作流:
本综合教程内容包括:
作为参考,以下是涵盖初始版本的原始教程:
注:本教程介绍的是旧版单节点架构。尽管 v2.5 的界面发生了显著变化,但关于 BlockSwap 和内存管理的核心概念仍然具有参考价值。
SeedVR2 采用模块化节点架构,包含四个专用节点:

配置用于视频放大的 DiT(扩散Transformer)模型。
参数:
model:选择 DiT 模型
seedvr2_ema_3b_fp16.safetensors:FP16(最佳质量)seedvr2_ema_3b_fp8_e4m3fn.safetensors:FP8 8 位(良好质量)seedvr2_ema_3b-Q4_K_M.gguf:GGUF 4 位量化(可接受质量)seedvr2_ema_3b-Q8_0.gguf:GGUF 8 位量化(良好质量)seedvr2_ema_7b_fp16.safetensors:FP16(最佳质量)seedvr2_ema_7b_fp8_e4m3fn_mixed_block35_fp16.safetensors:FP8 格式,最后一个块采用 FP16 以减少伪影(良好质量)seedvr2_ema_7b-Q4_K_M.gguf:GGUF 4 位量化(可接受质量)seedvr2_ema_7b_sharp_*:Sharp 变体,增强细节表现device:DiT 推理使用的 GPU 设备(例如 cuda:0)
offload_device:非活动处理时模型卸载的目标设备
none:保持模型在推理设备上(速度最快,VRAM 占用最高)cpu:卸载到系统内存(减少 VRAM 占用)cuda:X:卸载到另一块 GPU(如有可用,平衡效果好)cache_model:在工作流运行期间保持 DiT 模型加载在 offload_device 上
blocks_to_swap:BlockSwap 内存优化
0:禁用(默认)1-32:3B 模型可交换的 Transformer 块数量1-36:7B 模型可交换的 Transformer 块数量swap_io_components:卸载输入/输出嵌入和归一化层
attention_mode:注意力计算后端
sdpa:PyTorch scaled_dot_product_attention(默认,稳定,始终可用)flash_attn:Flash Attention 2(在支持的硬件上更快,需要安装 flash-attn 包)torch_compile_args:连接到 SeedVR2 Torch Compile Settings 节点可提升 20-40% 速度
BlockSwap 详解:
BlockSwap 通过在推理过程中动态地在 GPU 和 CPU 内存之间交换 Transformer 块,使大型模型能够在 VRAM 有限的 GPU 上运行。其工作原理如下:
offload_device 设置为 cpu 或另一块 GPUblocks_to_swap=16(一半的块)swap_io_components 以获得最大 VRAM 节省低 VRAM(8GB)示例配置:
seedvr2_ema_3b-Q8_0.ggufcuda:0cpu32True
配置用于视频帧编码/解码的 VAE(变分自编码器)模型。
参数:
model:VAE 模型选择
ema_vae_fp16.safetensors:默认且推荐device:VAE 推理使用的 GPU 设备(例如 cuda:0)
offload_device:非活动处理时模型卸载的目标设备
none:保持模型在推理设备上(默认,速度最快)cpu:卸载到系统内存(减少 VRAM 占用)cuda:X:卸载到另一块 GPU(如有可用,平衡效果好)cache_model:在工作流运行期间保持 VAE 模型加载在 offload_device 上
encode_tiled:启用分块编码以减少编码阶段的 VRAM 使用
encode_tile_size:编码分块大小(像素)(默认:1024)
encode_tile_overlap:编码分块重叠区域(像素)(默认:128)
decode_tiled:启用分块解码以减少解码阶段的 VRAM 使用
decode_tile_size:解码分块大小(像素)(默认:1024)
decode_tile_overlap:解码分块重叠区域(像素)(默认:128)
torch_compile_args:连接到 SeedVR2 Torch Compile Settings 节点可提升 15-25% 速度
VAE 分块处理详解:
VAE 分块处理将高分辨率图像分割为较小的分块进行处理,以降低 VRAM 需求。使用方法如下:
enable_debug)encode_tiledencode_tile_size(尝试 768、512 等)decode_tileddecode_tile_size高分辨率(4K)示例配置:
True1024128True1024128
配置 torch.compile 优化,可提升 DiT 20-40% 速度和 VAE 15-25% 速度。
要求:
参数:
backend:编译后端
inductor:使用 Triton 内核生成和融合的全面优化(推荐)cudagraphs:使用 CUDA 图的轻量级包装,无内核优化mode:优化级别(编译时间 vs 运行时性能)
default:编译速度快,加速效果好(推荐用于开发)reduce-overhead:低开销,针对小型模型优化max-autotune:编译最慢,运行时性能最佳(推荐用于生产)max-autotune-no-cudagraphs:类似 max-autotune,但不使用 CUDA 图fullgraph:将整个模型编译为单个无中断图
False:允许图中断以获得更好的兼容性(默认,推荐)True:强制无中断以获得最大优化(可能在动态形状下失败)dynamic:处理变化的输入形状而无需重新编译
False:针对精确输入形状优化(默认)True:创建适应形状变化的动态内核(处理不同分辨率或批量大小时启用)dynamo_cache_size_limit:每个函数的最大缓存编译版本数(默认:64)
dynamo_recompile_limit:回退到 eager 模式前的最大重新编译尝试次数(默认:128)
使用方法:
torch_compile_args 输入适用场景:
推荐设置:
mode=default,backend=inductor,fullgraph=Falsemode=max-autotune,backend=inductor,fullgraph=False
使用 DiT 和 VAE 模型处理视频帧的主放大节点。
必需输入:
参数:
seed:用于可重现生成的随机种子(默认:42)
resolution:目标分辨率,指最短边的像素数(默认:1080)
max_resolution:任意边的最大分辨率(默认:0 = 无限制)
batch_size:每批处理的帧数(默认:5)
uniform_batch_size(默认:False)
将最后一个批次填充至 batch_size 以实现统一处理
batch_size=33 时,处理为 [33, 33] 而非 [33, 12]temporal_overlap:批次间的重叠帧数(默认:0)
prepend_frames:前置帧数(默认:0)
color_correction:色彩校正方法(默认:"wavelet")
lab:完全感知色彩匹配,保留细节(推荐用于最高保真度)wavelet:基于频率的自然色彩,良好保留细节wavelet_adaptive:小波基础 + 目标饱和度校正hsv:基于色调的饱和度匹配adain:统计风格迁移none:无色彩校正input_noise_scale:输入噪声注入强度 0.0-1.0(默认:0.0)
latent_noise_scale: latent 空间噪声强度 0.0-1.0(默认:0.0)
offload_device:处理阶段之间存储中间张量的设备(默认:"cpu")
none:所有张量保持在推理设备上(最快但 VRAM 占用最高)cpu:卸载到系统内存(推荐用于长视频,传输较慢)cuda:X:卸载到另一块 GPU(如有可用,平衡效果好,比 CPU 快)enable_debug:启用详细调试日志(默认:False)
输出:
基础工作流程(高显存 - 24GB+):
Load Video Frames
↓
SeedVR2 Load DiT Model
├─ model: seedvr2_ema_3b_fp16.safetensors
└─ device: cuda:0
↓
SeedVR2 Load VAE Model
├─ model: ema_vae_fp16.safetensors
└─ device: cuda:0
↓
SeedVR2 Video Upscaler
├─ batch_size: 21
└─ resolution: 1080
↓
Save Video/Frames低显存工作流(8-12GB):
Load Video Frames
↓
SeedVR2 Load DiT Model
├─ model: seedvr2_ema_3b-Q8_0.gguf
├─ device: cuda:0
├─ offload_device: cpu
├─ blocks_to_swap: 32
└─ swap_io_components: True
↓
SeedVR2 Load VAE Model
├─ model: ema_vae_fp16.safetensors
├─ device: cuda:0
├─ encode_tiled: True
└─ decode_tiled: True
↓
SeedVR2 Video Upscaler
├─ batch_size: 5
└─ resolution: 720
↓
Save Video/Frames高性能工作流(24GB+ 显存支持 torch.compile):
Load Video Frames
↓
SeedVR2 Torch Compile Settings
├─ mode: max-autotune
└─ backend: inductor
↓
SeedVR2 Load DiT Model
├─ model: seedvr2_ema_7b_sharp_fp16.safetensors
├─ device: cuda:0
└─ torch_compile_args: connected
↓
SeedVR2 Load VAE Model
├─ model: ema_vae_fp16.safetensors
├─ device: cuda:0
└─ torch_compile_args: connected
↓
SeedVR2 Video Upscaler
├─ batch_size: 81
└─ resolution: 1080
↓
Save Video/Frames独立 CLI 提供强大的批处理功能,支持多 GPU 并具备复杂的优化选项。
根据您的安装情况选择合适的设置:
如果您已通过 ComfyUI 安装 将 SeedVR2 作为 ComfyUI 的一部分安装,可直接使用 CLI:
# Navigate to your ComfyUI directory
cd ComfyUI
# Run the CLI using standalone Python (display help message)
# Windows:
.venv\Scripts\python.exe custom_nodes\seedvr2_videoupscaler\inference_cli.py --help
# Linux/macOS:
.venv/bin/python custom_nodes/seedvr2_videoupscaler/inference_cli.py --help跳至下方的命令行用法。
如果您希望在不安装 ComfyUI 的情况下使用 CLI,请按照以下步骤操作:
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | shgit clone https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler.git seedvr2_videoupscaler
cd seedvr2_videoupscaler# Create virtual environment with Python 3.13
uv venv --python 3.13
# Activate virtual environment
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
# Install PyTorch with CUDA support
# Check command line based on your environment: https://pytorch.org/get-started/locally/
uv pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu130
# Install SeedVR2 requirements
uv pip install -r requirements.txt
# Run the CLI (display help message)
# Windows:
.venv\Scripts\python.exe inference_cli.py --help
# Linux/macOS:
.venv/bin/python inference_cli.py --help命令行界面(CLI)为单GPU、多GPU和批量处理工作流提供了全面的选项。
基本使用示例:
# Basic image upscaling
python inference_cli.py image.jpg
# Basic video video upscaling with temporal consistency
python inference_cli.py video.mp4 --resolution 720 --batch_size 33
# Multi-GPU processing with temporal overlap
python inference_cli.py video.mp4 \
--cuda_device 0,1 \
--resolution 1080 \
--batch_size 81 \
--uniform_batch_size \
--temporal_overlap 3 \
--prepend_frames 4
# Memory-optimized for low VRAM (8GB)
python inference_cli.py image.png \
--dit_model seedvr2_ema_3b-Q8_0.gguf \
--resolution 1080 \
--blocks_to_swap 32 \
--swap_io_components \
--dit_offload_device cpu \
--vae_offload_device cpu
# High resolution with VAE tiling
python inference_cli.py video.mp4 \
--resolution 1440 \
--batch_size 31 \
--uniform_batch_size \
--temporal_overlap 3 \
--vae_encode_tiled \
--vae_decode_tiled
# Batch directory processing with model caching
python inference_cli.py media_folder/ \
--output processed/ \
--cuda_device 0 \
--cache_dit \
--cache_vae \
--dit_offload_device cpu \
--vae_offload_device cpu \
--resolution 1080 \
--max_resolution 1920输入/输出:
<input>:输入文件(.mp4、.avi、.png、.jpg 等)或目录--output:输出路径(默认:在 'output/' 目录中自动生成)--output_format:输出格式:'mp4'(视频)或 'png'(图像序列)。默认:根据输入类型自动检测--model_dir:模型目录(默认:./models/SEEDVR2)模型选择:
--dit_model:要使用的 DiT 模型。选项:3B/7B 及 fp16/fp8/GGUF 变体(默认:3B FP8)处理参数:
--resolution:目标短边分辨率(像素)(默认:1080)--max_resolution:任意边的最大分辨率。如果超过则缩小。0 = 无限制(默认:0)--batch_size:每批处理的帧数(必须遵循 4n+1:1、5、9、13、17、21...)。理想情况下应与镜头长度匹配,以获得最佳时间一致性(默认:5)--seed:用于可复现性的随机种子(默认:42)--skip_first_frames:跳过初始 N 帧(默认:0)--load_cap:从视频加载最多 N 帧。0 = 加载所有(默认:0)--prepend_frames:在开始处添加 N 个反转帧以减少起始伪影(会自动移除)(默认:0)--temporal_overlap:批次/GPU 之间重叠的帧数,用于平滑融合(默认:0)质量控制:
--color_correction:色彩校正方法:'lab'(感知型,推荐)、'wavelet'、'wavelet_adaptive'、'hsv'、'adain' 或 'none'(默认:lab)--input_noise_scale:输入噪声注入比例(0.0-1.0)。在高分辨率下减少伪影(默认:0.0)--latent_noise_scale:潜在空间噪声比例(0.0-1.0)。必要时可柔化细节(默认:0.0)内存管理:
--dit_offload_device:用于卸载 DiT 模型的设备:'none'(保持在 GPU 上)、'cpu' 或 'cuda:X'(默认:none)--vae_offload_device:用于卸载 VAE 模型的设备:'none'、'cpu' 或 'cuda:X'(默认:none)--blocks_to_swap:要交换的 transformer 块数量(0=禁用,3B:0-32,7B:0-36)。需要 dit_offload_device(默认:0)--swap_io_components:卸载 I/O 组件以节省更多 VRAM。需要 dit_offload_device--use_non_blocking:对 BlockSwap 使用非阻塞内存传输(推荐)VAE 分块处理:
--vae_encode_tiled:启用 VAE 编码分块处理以减少编码期间的 VRAM 使用--vae_encode_tile_size:VAE 编码分块大小(像素)(默认:1024)--vae_encode_tile_overlap:VAE 编码分块重叠(像素)(默认:128)--vae_decode_tiled:启用 VAE 解码分块处理以减少解码期间的 VRAM 使用--vae_decode_tile_size:VAE 解码分块大小(像素)(默认:1024)--vae_decode_tile_overlap:VAE 解码分块重叠(像素)(默认:128)--tile_debug:可视化分块:'false'(默认)、'encode' 或 'decode'性能优化:
--attention_mode:注意力后端:'sdpa'(默认,稳定)或 'flash_attn'(更快,需要安装相应包)--compile_dit:为 DiT 模型启用 torch.compile(提速 20-40%,需要 PyTorch 2.0+ 和 Triton)--compile_vae:为 VAE 模型启用 torch.compile(提速 15-25%,需要 PyTorch 2.0+ 和 Triton)--compile_backend:编译后端:'inductor'(完全优化)或 'cudagraphs'(轻量级)(默认:inductor)--compile_mode:优化级别:'default'、'reduce-overhead'、'max-autotune'、'max-autotune-no-cudagraphs'(默认:default)--compile_fullgraph:将整个模型编译为单个图(更快但灵活性较低)(默认:False)--compile_dynamic:处理变化的输入形状而无需重新编译(默认:False)--compile_dynamo_cache_size_limit:每个函数的最大缓存编译版本数(默认:64)--compile_dynamo_recompile_limit:回退前的最大重新编译尝试次数(默认:128)模型缓存(批处理):
--cache_dit:在文件之间缓存 DiT 模型(仅限单 GPU,加快目录处理速度)--cache_vae:在文件之间缓存 VAE 模型(仅限单 GPU,加快目录处理速度)多 GPU:
--cuda_device:CUDA 设备 ID。单个 ID(例如 '0')或逗号分隔的列表 '0,1' 用于多 GPU调试:
--debug:启用详细调试日志命令行界面(CLI)的多GPU模式会自动在多个GPU之间分配工作负载,并进行智能的时间重叠处理:
工作原理:
--temporal_overlap参数指定的帧数进行重叠2个GPU且temporal_overlap=4的示例:
GPU 0: Frames 0-50 (includes 4 overlap frames at end)
GPU 1: Frames 46-100 (includes 4 overlap frames at beginning)
Result: Frames 0-100 with smooth transition at frame 48最佳实践:
--temporal_overlap 设置为 2-8 帧以实现平滑混合--prepend_frames 减少视频开头的伪影批处理大小限制:由于时间一致性架构,模型要求 batch_size 遵循 4n+1 公式(1、5、9、13、17、21、25……)。批次中的所有帧会一起处理以保证时间连贯性,然后可以使用 temporal_overlap 对批次进行混合。理想情况下,将 batch_size 设置为与你的镜头长度相匹配,以获得最佳质量。
VAE 瓶颈:即使采用优化的 DiT upscale(BlockSwap、GGUF、torch.compile),VAE 编码/解码阶段也可能成为瓶颈,尤其是在高分辨率下。VAE 速度较慢。使用大的 batch_size 可以缓解此问题。
显存(VRAM)使用:尽管目前的集成已支持低显存系统(8GB 或更少,配合适当优化),但显存使用情况取决于以下因素:
速度:处理速度取决于:
欢迎大家贡献力量!我们十分重视社区的意见和改进建议。
详细的贡献指南,请参见 CONTRIBUTING.md。
快速入门步骤:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)获取帮助:
本 ComfyUI 实现是 NumZ 与 AInVFX(Adrien Toupet)合作的项目,基于 ByteDance Seed 团队的原始 SeedVR2 开发。
特别感谢社区贡献者,包括 benjaminherb、cmeka、FurkanGozukara、JohnAlcatraz、lihaoyun6、Luchuanzhao、Luke2642、naxci1、q5sys 以及其他众多贡献者,感谢他们的改进、错误修复和测试工作。
本仓库中的代码根据 LICENSE 文件中的 MIT 许可证发布。