Skip to content

基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。AI-based tool for removing hard-coded subtitles and text-like watermarks from videos or Pictures.

License

Notifications You must be signed in to change notification settings

YaoFANGUK/video-subtitle-remover

Repository files navigation

简体中文 | English

项目简介

License python version support os

Video-subtitle-remover (VSR) 是一款基于AI技术,将视频中的硬字幕去除的软件。 主要实现了以下功能:

  • 无损分辨率将视频中的硬字幕去除,生成去除字幕后的文件
  • 通过超强AI算法模型,对去除字幕文本的区域进行填充(非相邻像素填充与马赛克去除)
  • 支持自定义字幕位置,仅去除定义位置中的字幕(传入位置)
  • 支持全视频自动去除所有文本(不传入位置)
  • 支持多选图片批量去除水印文本

demo.png

使用说明:

  • 有使用问题请加群讨论,QQ群:210150985(已满)、806152575(已满)、816881808(已满)、295894827
  • 直接下载压缩包解压运行,如果不能运行再按照下面的教程,尝试源码安装conda环境运行

下载地址:

Windows GPU版本v1.1.0(GPU):

预构建包对比说明

预构建包名 Python Paddle Torch 环境 支持的计算能力范围
vsr-windows-directml.7z 3.12 3.0.0 2.4.1 Windows 非Nvidia显卡 通用
vsr-windows-nvidia-cuda-11.8.7z 3.12 3.0.0 2.7.0 CUDA 11.8 3.5 – 8.9
vsr-windows-nvidia-cuda-12.6.7z 3.12 3.0.0 2.7.0 CUDA 12.6 5.0 – 8.9
vsr-windows-nvidia-cuda-12.8.7z 3.12 3.0.0 2.7.0 CUDA 12.8 5.0 – 9.0+

NVIDIA官方提供了各GPU型号的计算能力列表,您可以参考链接: CUDA GPUs 查看你的GPU适合哪个CUDA版本

Docker版本:

  # Nvidia 10 20 30系显卡
  docker run -it --name vsr --gpus all eritpchy/video-subtitle-remover:1.1.1-cuda11.8 

  # Nvidia 40系显卡
  docker run -it --name vsr --gpus all eritpchy/video-subtitle-remover:1.1.1-cuda12.6 

  # Nvidia 50系显卡
  docker run -it --name vsr --gpus all eritpchy/video-subtitle-remover:1.1.1-cuda12.8 

  # AMD / Intel 独显 集显
  docker run -it --name vsr --gpus all eritpchy/video-subtitle-remover:1.1.1-directml 

  # 演示视频, 输入
  /vsr/test/test.mp4
  docker cp vsr:/vsr/test/test_no_sub.mp4 ./

演示

  • GUI版:

demo2.gif

demo.gif

源码使用说明

1. 安装 Python

请确保您已经安装了 Python 3.12+。

  • Windows 用户可以前往 Python 官网 下载并安装 Python。
  • MacOS 用户可以使用 Homebrew 安装:
    brew install [email protected]
  • Linux 用户可以使用包管理器安装,例如 Ubuntu/Debian:
    sudo apt update && sudo apt install python3.12 python3.12-venv python3.12-dev

2. 安装依赖文件

请使用虚拟环境来管理项目依赖,避免与系统环境冲突。

(1)创建虚拟环境并激活

python -m venv videoEnv
  • Windows:
videoEnv\\Scripts\\activate
  • MacOS/Linux:
source videoEnv/bin/activate

3. 创建并激活项目目录

切换到源码所在目录:

cd <源码所在目录>

例如:如果您的源代码放在 D 盘的 tools 文件夹下,并且源代码的文件夹名为 video-subtitle-remover,则输入:

cd D:/tools/video-subtitle-remover-main

4. 安装合适的运行环境

本项目支持 CUDA(NVIDIA显卡加速)和 DirectML(AMD、Intel等GPU/APU加速)两种运行模式。

(1) CUDA(NVIDIA 显卡用户)

请确保您的 NVIDIA 显卡驱动支持所选 CUDA 版本。

  • 推荐 CUDA 11.8,对应 cuDNN 8.6.0。

  • 安装 CUDA:

    • Windows:CUDA 11.8 下载
    • Linux:
      wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
      sudo sh cuda_11.8.0_520.61.05_linux.run
    • MacOS 不支持 CUDA。
  • 安装 cuDNN(CUDA 11.8 对应 cuDNN 8.6.0):

  • 安装 PaddlePaddle GPU 版本(CUDA 11.8):

    pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
  • 安装 Torch GPU 版本(CUDA 11.8):

    pip install torch==2.7.0 torchvision==0.22.0 --index-url https://download.pytorch.org/whl/cu118
  • 安装其他依赖

    pip install -r requirements.txt
(2) DirectML(AMD、Intel等GPU/APU加速卡用户)
  • 适用于 Windows 设备的 AMD/NVIDIA/Intel GPU。
  • 安装 ONNX Runtime DirectML 版本:
    pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/
    pip install -r requirements.txt
    pip install torch_directml==0.2.5.dev240914

4. 运行程序

  • 运行图形化界面
python gui.py
  • 运行命令行版本(CLI)
python ./backend/main.py

常见问题

  1. 提取速度慢怎么办

修改backend/config.py中的参数,可以大幅度提高去除速度

MODE = InpaintMode.STTN  # 设置为STTN算法
STTN_SKIP_DETECTION = True # 跳过字幕检测,跳过后可能会导致要去除的字幕遗漏或者误伤不需要去除字幕的视频帧
  1. 视频去除效果不好怎么办

修改backend/config.py中的参数,尝试不同的去除算法,算法介绍

  • InpaintMode.STTN 算法:对于真人视频效果较好,速度快,可以跳过字幕检测
  • InpaintMode.LAMA 算法:对于图片效果最好,对动画类视频效果好,速度一般,不可以跳过字幕检测
  • InpaintMode.PROPAINTER 算法: 需要消耗大量显存,速度较慢,对运动非常剧烈的视频效果较好
  • 使用STTN算法
MODE = InpaintMode.STTN  # 设置为STTN算法
# 相邻帧数, 调大会增加显存占用,效果变好
STTN_NEIGHBOR_STRIDE = 10
# 参考帧长度, 调大会增加显存占用,效果变好
STTN_REFERENCE_LENGTH = 10
# 设置STTN算法最大同时处理的帧数量,设置越大速度越慢,但效果越好
# 要保证STTN_MAX_LOAD_NUM大于STTN_NEIGHBOR_STRIDE和STTN_REFERENCE_LENGTH
STTN_MAX_LOAD_NUM = 30
  • 使用LAMA算法
MODE = InpaintMode.LAMA  # 设置为STTN算法
LAMA_SUPER_FAST = False  # 保证效果

如果对模型去字幕的效果不满意,可以查看design文件夹里面的训练方法,利用backend/tools/train里面的代码进行训练,然后将训练的模型替换旧模型即可

  1. CondaHTTPError

将项目中的.condarc放在用户目录下(C:/Users/<你的用户名>),如果用户目录已经存在该文件则覆盖

解决方案:https://zhuanlan.zhihu.com/p/260034241

  1. 7z文件解压错误

解决方案:升级7-zip解压程序到最新版本

社区支持

Powered by DartNode

赞助

捐赠者 累计捐赠金额 赞助席位
坤V 400.00 RMB 金牌赞助席位
Jenkit 200.00 RMB 金牌赞助席位
子车松兰 188.00 RMB 金牌赞助席位
落花未逝 100.00 RMB 金牌赞助席位
张音乐 100.00 RMB 金牌赞助席位
麦格 100.00 RMB 金牌赞助席位
无痕 100.00 RMB 金牌赞助席位
wr 100.00 RMB 金牌赞助席位
100.00 RMB 金牌赞助席位
TalkLuv 50.00 RMB 银牌赞助席位
陈凯 50.00 RMB 银牌赞助席位
Tshuang 20.00 RMB 银牌赞助席位
很奇异 15.00 RMB 银牌赞助席位
郭鑫 12.00 RMB 银牌赞助席位
生活不止眼前的苟且 10.00 RMB 铜牌赞助席位
何斐 10.00 RMB 铜牌赞助席位
老猫 8.80 RMB 铜牌赞助席位
伍六七 7.77 RMB 铜牌赞助席位
长缨在手 6.00 RMB 铜牌赞助席位
无忌 6.00 RMB 铜牌赞助席位
Stephen 2.00 RMB 铜牌赞助席位
Leo 1.00 RMB 铜牌赞助席位

About

基于AI的图片/视频硬字幕去除、文本水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API,本地实现。AI-based tool for removing hard-coded subtitles and text-like watermarks from videos or Pictures.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published