topaz吧 关注:4,402贴子:27,191
  • 41回复贴,共1

在ComfyUI使用SeedVR2的经历

只看楼主收藏回复

在 ComfyUI 中使用 SeedVR2 的一些经历
🧩 主要使用的节点依赖于以下 GitHub 项目: ComfyUI-SeedVR2_VideoUpscaler(https://github.com/numz/ComfyUI-SeedVR2_VideoUpscaler)(目前用的是实验版,支持 VAE)。
社区普遍推荐搭配 ComfyUI-VideoHelperSuite 来完成视频的帧分割与合成输出。它支持用 FFmpeg 替代 OpenCV,效率更高。另外,还可以通过 metabatch 节点控制每段渲染的帧数——这对内存管理非常关键。不过输入的视频注意对色彩空间的控制或元数据里写入色彩空间数据,否则默认输出BT709,不正确将导致色彩偏差。
💾 内存与帧数限制- 直接输出视频(非序列帧)时,内存占用较高,单次任务可处理的最大帧数如: - 64 GiB 内存 ≈ 支持 4K–6K 帧; - 96 GiB ≈ 8K 帧; - 在 128 GiB 环境下通过一些技巧成功跑完了 16K 帧。(metabatch只是减少单次分段占用的内存峰值)
⚠️ 注意一个严重问题:使用VideoHelperSuite的Combine节点合成视频时,内嵌的 FFmpeg 不会释放内存!即使清空节点缓存也无效,必须重启 ComfyUI 才能彻底释放。这是当前版本的一个问题。
个人执行多任务/长时间任务时,使用Persistent-Queue、SaveQueues、dream-video-batches和自定义节点执行任务保留以及完成单任务重启并执行下一任务,直至完成。
✅ 个人建议方案:如果帧数较多,优先选择输出 PNG 序列帧,能显著降低单次任务的内存压力,从而处理更长的视频片段,后期使用FFmpeg/达芬奇再执行合成。
🎨 模型效果对比(7B vs 3B)
- 7B / 7B-sharp:倾向于保留原始画面结构,涂抹感较弱,对细碎噪点(如低曝光产生的噪点)清理有限。对模糊文字和人脸重构能力强且不过度处理。对于模型不理解的文字结构仍会扭曲,例如一些艺术字。
- 3B:去噪力度更强,但画面细节保留能力下降,适合需要一定“磨皮”效果的场景,文字重构和人脸识别相对7B弱很多。
❗ 重要提醒:启用 VAE 会严重破坏模型对画面元素的理解和重构能力,导致细节失真,但可以极大节省显存,效果显著。
例如将一幅1920x1080的画面拆成572x572,重叠32x32。7B模型使用VAE对于纯色背景更加敏感,需要加大重叠以避免拼接处出现渐变色带或黑边。
建议慎用或关闭。
⚙️ Batch Size 与时间一致性
- 当 Batch Size 设置为 帧率 × 2 时,画面已有不错的前后一致性;
- 若提升到 帧率 × 4 至 ×10,模型能更好地根据前后帧推断模糊区域的原始内容,并进行合理填充,效果显著提升。
-随着BatchSize的加大,对于人脸的长期识别和保留也会更佳。即使非常模糊也能构建相对正常的“五官”,并且不会强行锐化太多。只有几十个甚至十几个像素的脸也会试图重建出合理的面部结构,且实际测试中较少出现‘鬼脸’现象。
🖥️ 硬件需求参考| 使用场景
| 显存需求(1080p 及以下老片) | 内存建议 ||----------------|------------------------------|----------|| “能看”级别 | 10–12 GiB | ≥32 GiB || “能用”级别 | 16–24 GiB | ≥32 GiB || 商用/高质量输出 | 40/48/80/96 GiB | ≥64 GiB |
UHD分辨率下,48GB显存,Batchsize=25,一下就溢出了,可见显存的渴望。(详细见官方gitbub)
> 注:除非分辨率极低,否则内存基本都要 32 GiB 起步,否则容易爆内存。


IP属地:广东来自Android客户端1楼2025-11-09 17:09回复
    下面是一些对比图,基本来自7B-sharp






    根据前后帧推理获取箱子上的编号。


    不认识的字体仍会扭曲



    IP属地:广东2楼2025-11-09 17:25
    回复
      2025-12-23 23:04:13
      广告
      不感兴趣
      开通SVIP免广告


      这里字体也是一样,下面的是原图/SeedVR2-7B-Sharp-FP16/starlight-mini-2x的对比




      IP属地:广东3楼2025-11-09 17:28
      回复
        我是自己写工具把视频分割成帧,然后批量处理,处理之后继续用工具一键重新合成视频。不然我在网上下载到的那个视频流,直接就爆显存、爆内存了,64G的内存还有16G的显存,都居然跑不了


        IP属地:广东来自Android客户端4楼2025-11-09 19:44
        收起回复
          https://github.com/LAOGOU-666/Comfyui-Memory_Cleanup/
          可以在合成视频后面加这个节点清理内存


          IP属地:广东5楼2025-11-09 23:32
          收起回复
            因为我视频很长所以把视频分割成10秒用dream video节点批量跑,但一次只能跑100个视频,我问一下有没有办法修改批次数量改成100以上的呢?


            IP属地:河南6楼2025-11-18 12:45
            收起回复
              videoupscaler节点更新了,修复了内存泄漏的问题,可以调节更多参数了,Linux依旧能使用更多加速方法,flash-attn和Triton,也可以自行编译TensorRT加速VAE,VAE decodeing仍然占最多时间。videohelpsuit节点的偶发泄露仍存在。目前最速是RTX PRO 6000,96GB显存可以用任意模型,1920*1080设batch size=241时,速度为1.47fps


              IP属地:广东7楼2025-11-20 22:34
              回复
                视频分割10秒的bat执行文件
                :found_input
                if not defined input (
                echo [错误] 当前文件夹未找到视频文件。
                pause
                exit /b
                )
                echo 发现视频文件:%input%
                :: 创建输出文件夹
                if not exist "output_parts" mkdir "output_parts"
                :: --- 关键状态变量初始化 ---
                set /a "part_index=1" :: 片段编号 (从1开始)
                set /a "start_time=0" :: 当前片段的起始时间 (整数秒)
                set "SEGMENT_DURATION=10" :: 每段时长
                :: --- 质量控制 (仅在重编码时有效) ---
                :: CRF (Constant Rate Factor) 值。 0=无损, 18=视觉无损, 23=默认, 51=最差
                :: 数字越小,质量越高,文件越大。
                set "CRF_VALUE=18"
                echo 编码质量(CRF)设置为: %CRF_VALUE%
                :: ----------------------------
                :loop
                echo.
                :: 创建4位补零的序号 (例如: 0001, 0010)
                set "padded_index=000!part_index!"
                set "padded_index=!padded_index:~-4!"
                echo 正在尝试从 !start_time! 秒处导出 part_!padded_index!.mp4 ...
                :: --- 核心修正命令 ---
                :: -ss 放在 -i 之前以快速定位
                :: -t %SEGMENT_DURATION% 确保精确的时长
                :: 移除了 "-c copy" 以强制重新编码,确保精确切割
                :: -crf %CRF_VALUE% 控制重新编码的质量
                :: -map 0 确保所有流 (视频/音频/字幕) 都被处理
                ffmpeg -y -ss !start_time! -i "%input%" -t %SEGMENT_DURATION% -map 0 -crf %CRF_VALUE% "output_parts\part_!padded_index!.mp4" >nul 2>&1
                :: 检查 FFmpeg 是否成功创建了文件 (如果视频结束,FFmpeg会失败)
                if not exist "output_parts\part_!padded_index!.mp4" goto end_error
                :: 使用FFprobe检查新片段的实际时长
                :: (这一步在重编码模式下主要用于检测最后那个短于10秒的片段)
                for /f "tokens=1" %%b in ('ffprobe -v error -show_entries format^=duration -of default^=noprint_wrappers^=1:nokey^=1 "output_parts\part_!padded_index!.mp4" 2^>^&1') do set "seglen=%%b"
                :: 批处理无法可靠比较浮点数,我们检查整数部分
                set "length_check=0"
                for /f "delims=." %%c in ("!seglen!") do set /a "length_check=%%c"
                :: 如果片段时长小于 1 秒,我们认为它是无效的错误片段
                if !length_check! LSS 1 goto check_final_segment
                :: --- 成功分割片段,更新状态 ---
                set /a "start_time+=%SEGMENT_DURATION%"
                set /a "part_index+=1"
                goto loop
                :check_final_segment
                :: 这是一个极短的片段 (可能只是一个空文件或FFmpeg的错误输出)
                echo 导出的片段时长不足 1 秒。
                del "output_parts\part_!padded_index!.mp4" 2>nul
                goto end
                :end_error
                :: FFmpeg 失败,这是因为 -ss 的时间点已经超出了视频总长。
                echo 警告: FFmpeg 无法从 !start_time! 秒处创建片段。视为分割结束。
                goto end
                :end
                set /a "final_count=part_index - 1"
                if !final_count! LSS 0 set "final_count=0"
                echo.
                echo ===============================
                echo ✅ 分割完成!
                echo 共生成 !final_count! 个有效片段。
                echo 输出目录:output_parts
                echo ===============================
                pause


                IP属地:河南8楼2025-11-24 03:38
                收起回复
                  2025-12-23 22:58:13
                  广告
                  不感兴趣
                  开通SVIP免广告
                  看起来似乎seedvr2和starlight还是同一档的,starlight除了文字之外,在画面上还要好一些?
                  如果没有质变,我暂时就不折腾seedvr2了,等到下一个有质变的模型出来再说。
                  小吧有试过flashvsr么?听说最近也有些热度,不知道效果如何。


                  IP属地:北京9楼2025-11-24 15:06
                  收起回复
                    seedvr慢出天际,效果和starlight接近,毫无性价比可言。


                    IP属地:河北10楼2025-11-24 15:41
                    收起回复
                      说得非常详细,色彩方面 我试过 带bt709色彩空间数据标签的输入,输出颜色会偏红,而带bt601色彩空间数据标签侧正常,这问题一直困扰着我。


                      IP属地:广西11楼2025-11-30 18:20
                      收起回复
                        启用 VAE 会严重破坏模型对画面元素的理解和重构能力,这个我不太理解,如何把它关闭,最新版本的2.5.12占用的虚拟内存非常大(能上300g),我没发现比夜间版本的好,但夜间版本的分辨率必须要被16整除,1080的分辨率设置不了,只能1088


                        IP属地:广西12楼2025-11-30 18:24
                        收起回复
                          我之前试用了一下,感觉对于那种320p以下的视频还是用星光重构渲染比较好。seedvr2适合跑有点细节不那么模糊的视频,你对放大要求有很高的要求,电脑配置至少是24g显存和64g内存以上才适合跑,我5070ti+32g内存跑起来速度还不如现在新版星光


                          IP属地:广西来自Android客户端15楼2025-12-09 15:34
                          收起回复


                            IP属地:广东16楼2025-12-10 15:31
                            回复