news 2026/9/19 21:18:52

Real-ESRGAN 动漫视频模型对比指南:AnimeVideo-v3 与 waifu2x、Real-CUGAN 的实测比较与推理速度分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Real-ESRGAN 动漫视频模型对比指南:AnimeVideo-v3 与 waifu2x、Real-CUGAN 的实测比较与推理速度分析

Real-ESRGAN 动漫视频模型对比指南:AnimeVideo-v3 与 waifu2x、Real-CUGAN 的实测比较与推理速度分析

【免费下载链接】Real-ESRGANReal-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration.项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN

Real-ESRGAN 在 2022/04/24 发布了专为动漫视频优化的小模型AnimeVideo-v3realesr-animevideov3.pth),本指南以仓库文档 docs/anime_comparisons_CN.md 为核心,完整还原该模型与 waifu2x、Real-CUGAN 的对比评测方法、三类视觉结果差异与 V100 上的推理速度数据,并结合 inference_realesrgan_video.py、realesrgan/archs/srvgg_arch.py 等源码,给出可复制、可运行的 PyTorch 与 ncnn 实测复现方案。读完本文,你将掌握 AnimeVideo-v3 的适用场景、评测口径与完整上手动线。

一、AnimeVideo-v3 是什么

AnimeVideo-v3 是 Real-ESRGAN 为动漫视频超分设计的轻量模型,权重文件为realesr-animevideov3.pth,属于仓库模型库(见 docs/model_zoo.md)中"For Animation Videos"一栏的唯一模型:

模型缩放倍率说明
realesr-animevideov3X4(同时可用于 X1、X2、X3)面向动漫视频的 XS 尺寸模型

从 inference_realesrgan_video.py 的模型注册逻辑可以看到其底层架构,它并非常规的 RRDBNet,而是:

model = SRVGGNetCompact(num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=16, upscale=4, act_type='prelu') netscale = 4 file_url = ['https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-animevideov3.pth']

SRVGGNetCompact定义在 realesrgan/archs/srvgg_arch.py 中,是一种紧凑型 VGG 风格网络:1 个输入卷积 +num_conv个主体卷积层 + 1 个输出卷积,最后通过nn.PixelShuffle(upscale)在末层完成上采样,且不在 HR 特征空间做卷积,因此参数与计算量都远小于 23 个 RRDB block 的RealESRGAN_x4plus。网络还通过F.interpolate(x, scale_factor=upscale, mode='nearest')叠加最近邻上采样的原始输入作为残差基线,让网络只学习残差,加速收敛并稳定输出。这解释了文档中反复强调的"XS size + 更快推理速度"的底气来源。

二、v3 版本的更新要点

docs/anime_comparisons_CN.md记录了 2022/04/24 发布 AnimeVideo-v3 时的五项核心改进,这也是对比评测围绕的核心维度:

  • 更自然(better naturalness):整体观感更接近原生动漫画面;
  • 更少瑕疵(fewer artifacts):边缘与色块区域更干净;
  • 颜色保持得更好(more faithful to the original colors):减少色偏与饱和度漂移;
  • 更好的纹理恢复(better texture restoration):细节纹理重建更扎实;
  • 虚化背景处理(better background restoration):对景深虚化背景的恢复更自然。

三、对比评测设置

文档中的横向对比严格限定在三个方法之间:

  1. waifu2x(基于 ncnn 的 waifu2x 实现),固定超参数:tile=0noiselevel=2
  2. Real-CUGAN,采用 2022-02-27 发布的"faster/low-memory"版本,固定超参数:cache_mode=0tile=0alpha=1
  3. RealESRGAN-AnimeVideo-v3

对比评测的结论表述是:AnimeVideo-v3 在更快的推理速度下取得更好的结果。需要强调的是,这一结论建立在上述固定超参数与固定版本的评测口径之上,属于该文档声明的对比结果,不构成对任意配置组合的普遍性结论。

四、视觉结果对比的三组维度

文档中的对比图像均来自原图中裁剪出的 patch,再经 resize 后的结果,因此查看时建议放大单击查看完整尺寸才能比较细节。原始输入与输出素材随文档发布提供下载,方便读者自行复现与肉眼核验。对比按三个主题分组:

1. 更自然的结果、更好的虚化背景恢复:示例来自157083983-*a001000000044等帧,重点考察大面积虚化背景上是否出现生硬的纹理假象。

2. 更少瑕疵、更好的细节纹理:示例来自00000053Disney_v4_22_018514_s2Japan_v2_0_007261_s2huluxiongdi_2(葫芦兄弟)等帧,重点考察线条边缘、渐变区域是否出现振铃、色块等伪影。

3. 其他更好的结果:示例来自Japan_v2_1_128525_s1tianshuqitan_2(天书奇谭)、00000051(含两帧连排)、0000009900000016等帧,覆盖不同画风与场景下的综合表现。

这三组维度与"更新要点"一一对应,构成了评测的主观指标框架:自然度、伪影、颜色保真、纹理恢复与背景恢复。

五、推理速度对比(PyTorch)

文档明确指出,速度表只报告模型推理时间,忽略硬盘读写(IO)时间。测试 GPU 为 V100,结果如下:

GPU输入尺寸waifu2xReal-CUGANRealESRGAN-AnimeVideo-v3
V1001921 x 1080-3.4 fps10.0fps
V1001280 x 720-7.2 fps22.6fps
V100640 x 480-24.4 fps65.9fps

三档分辨率下 AnimeVideo-v3 的吞吐约为 Real-CUGAN 的 2.7~3 倍,同时原生 4 倍超分倍率支持降倍使用(X1/X2/X3),进一步放大了高分辨率场景的速度优势。这一优势的实现基础正是上一节提到的紧凑架构:num_conv=16、特征通道num_feat=64,计算量与显存占用均显著低于 23-block 的通用模型。

另外,文档中"ncnn"一栏标注为 TODO,即基于 ncnn 可执行文件的官方速度对比数据在仓库中尚未公布,读者不应将 PyTorch 侧的数值直接等同于 ncnn 侧表现。

六、复现一:PyTorch 视频推理

AnimeVideo-v3 的完整使用教程见 docs/anime_video_model.md,推理入口为 inference_realesrgan_video.py。该脚本默认模型名即为realesr-animevideov3(见 main 函数),并支持对视频、图片、文件夹三类输入做流式超分。

6.1 下载模型

wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.5.0/realesr-animevideov3.pth -P weights

模型放入仓库根目录的weights/下;若缺失,脚本会自动通过 load_file_from_url 下载。

6.2 三种启动方式

# 单 GPU 单进程 CUDA_VISIBLE_DEVICES=0 python inference_realesrgan_video.py -i inputs/video/onepiece_demo.mp4 -n realesr-animevideov3 -s 2 --suffix outx2 # 单 GPU 多进程(提升 GPU 利用率) CUDA_VISIBLE_DEVICES=0 python inference_realesrgan_video.py -i inputs/video/onepiece_demo.mp4 -n realesr-animevideov3 -s 2 --suffix outx2 --num_process_per_gpu 2 # 多 GPU 多进程 CUDA_VISIBLE_DEVICES=0,1,2,3 python inference_realesrgan_video.py -i inputs/video/onepiece_demo.mp4 -n realesr-animevideov3 -s 2 --suffix outx2 --num_process_per_gpu 2

6.3 关键参数说明(取自 argparse 定义)

参数默认值说明
-i / --inputinputs输入视频、图片或文件夹
-n / --model_namerealesr-animevideov3模型名,还支持RealESRGAN_x4plus_anime_6BRealESRGAN_x4plusRealESRNet_x4plusRealESRGAN_x2plusrealesr-general-x4v3
-o / --outputresults输出文件夹
-s / --outscale4最终放大倍率,可自由设定(v3 模型支持 X1/X2/X3)
--suffixout输出视频文件名后缀
-t / --tile0分块推理的 tile 尺寸,0 表示不分块;显存不足时报错会提示调小此值
--tile_pad10分块时的边缘 padding
--pre_pad0每个边界的预填充尺寸
--face_enhance关闭是否使用 GFPGAN 增强人脸,动漫模型不支持
--fp32关闭默认 fp16 半精度推理,开启则使用 fp32
--fpsNone指定输出视频帧率,缺省沿用输入帧率
--ffmpeg_binffmpegffmpeg 可执行文件路径
--extract_frame_first关闭多进程遇到 ffmpeg 报错时,先抽帧再处理
--num_process_per_gpu1每张 GPU 的进程数,总进程数 = GPU 数 × 该值;瓶颈在 IO 时建议调大,以不超过显存为限
--alpha_upsamplerrealesrganalpha 通道上采样器,可选realesrgan | bicubic
--extauto输出图片扩展名,auto | jpg | png

6.4 多进程与 IO 瓶颈的源码级理解

文档特别指出"程序的瓶颈在 IO,GPU 通常未被充分利用",这正是--num_process_per_gpu存在的意义。查看 run 函数 可确认其实现机制:num_process > 1时,脚本先用 ffmpeg 将输入视频按进程数切成若干子视频get_sub_video),再用torch.multiprocessing的 spawn 上下文并行对每个子视频推理,最后通过 ffmpeg concat demuxer(vidlist.txt)无损拼接回完整视频。Reader/Writer类则通过 ffmpeg 的 rawvideo 管道以bgr24像素格式逐帧读写,推理与编解码流水并行。

若多进程下遇到 ffmpeg 错误,可开启--extract_frame_first:脚本会先用ffmpeg -qscale:v 1 -qmin 1 -qmax 1 -vsync 0将视频抽帧为 PNG 序列(run 函数),再以文件夹模式逐帧处理。此外,脚本对.flv输入会自动先转封装为.mp4(见 main 函数)。

七、复现二:ncnn 可执行文件三步流程

若不使用 PyTorch/CUDA 环境,可使用支持 Intel/AMD/Nvidia GPU 的 ncnn 便携版可执行文件(无需安装 CUDA 与 PyTorch),完整流程见 docs/anime_video_model.md:

Step 1:用 ffmpeg 抽帧

ffmpeg -i onepiece_demo.mp4 -qscale:v 1 -qmin 1 -qmax 1 -vsync 0 tmp_frames/frame%08d.png

需预先创建tmp_frames目录。

Step 2:用 ncnn 可执行文件推理

以 Windows 为例:

./realesrgan-ncnn-vulkan.exe -i tmp_frames -o out_frames -n realesr-animevideov3 -s 2 -f jpg

需预先创建out_frames目录。可执行文件内置了模型文件,-n指定模型名,-s为放大倍率,-f为输出格式。ncnn 版可执行文件并不支持 Python 脚本的全部功能(如outscale),且因为采用分块处理再拼接,输出图像可能存在轻微割裂感,与 PyTorch 输出不完全一致——这是 ncnn 实现的固有限制,详见 README_CN.md。

Step 3:合并回视频

先用ffmpeg -i onepiece_demo.mp4查看输入视频帧率,再按该帧率合并:

ffmpeg -r 23.98 -i out_frames/frame%08d.jpg -c:v libx264 -r 23.98 -pix_fmt yuv420p output.mp4

若需保留原音频,追加一条输入流并映射:

ffmpeg -r 23.98 -i out_frames/frame%08d.jpg -i onepiece_demo.mp4 -map 0:v:0 -map 1:a:0 -c:a copy -c:v libx264 -r 23.98 -pix_fmt yuv420p output_w_audio.mp4

其中-r为帧率(按实际输入修改)、-c:v通常用libx264-pix_fmt yuv420p保证播放兼容性。ncnn 模型的转换方法可参考 docs/ncnn_conversion.md(PyTorch → ONNX → ncnn,再经ncnnoptimize优化并修改 param 中的 blob 名)。

八、使用注意事项

  • 人脸增强与动漫不兼容:FAQ(docs/FAQ.md)明确说明face_enhance只能用于真实人脸,不推荐在动漫图片/视频上开启以节省显存。即使强行开启,inference_realesrgan_video.py 也会在检测到'anime' in model_name时自动关闭并打印提示。
  • 显存管理:推理时遇到 CUDA OOM,优先用--tile设置更小的分块尺寸;输出视频超过 4K 时,脚本会提示 IO 速度成为瓶颈,建议调低-s
  • 对比口径:本文所有速度与画质数据均出自该文档在 V100 上的既定评测设置(waifu2xtile=0, noiselevel=2;Real-CUGAN 20220227 版cache_mode=0, tile=0, alpha=1),若更换硬件、版本或参数,结果可能变化。

九、延伸阅读

  • docs/anime_comparisons.md:本文的英文原版;
  • docs/anime_video_model.md:AnimeVideo-v3 的完整使用教程与演示视频;
  • docs/anime_model.md:面向动漫图片RealESRGAN_x4plus_anime_6B模型介绍;
  • docs/model_zoo.md:全模型清单(通用、动漫图片、动漫视频);
  • inference_realesrgan_video.py:视频推理脚本源码;
  • realesrgan/archs/srvgg_arch.py:AnimeVideo-v3 所用紧凑 VGG 网络的实现。

【免费下载链接】Real-ESRGANReal-ESRGAN aims at developing Practical Algorithms for General Image/Video Restoration.项目地址: https://gitcode.com/gh_mirrors/re/Real-ESRGAN

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 21:14:19

抖音批量下载实操手册:去水印取用五分钟跑通

抖音批量下载实操手册:去水印取用五分钟跑通 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批…

作者头像 李华
网站建设 2026/9/19 21:12:48

资源数据采集技术方案:从爬虫到自动化的完整架构解析

简介:面向在线预订类旅游网站的数据采集技术方案要点文档,以系统建设与开发人员为主要读者,解决海量信息环境下旅游信息自动采集、过滤与整合的难点。文档完整覆盖项目概况、建设目标与原则、总体框架、技术路线、系统设计规范及详细设计等模…

作者头像 李华
网站建设 2026/9/19 21:11:53

Zotero 7全文翻译实战:PDFMathTranslate+Ethereal Style深度集成指南

1. 项目概述:Zotero里全文翻译到底在解决什么问题?Zotero里全文翻译的方法,核心解决的是科研工作者在阅读外文文献时“看得懂标题、读不懂内容”的典型困境。不是简单地把PDF里的一段文字复制粘贴到网页翻译框里——那叫临时救急;…

作者头像 李华