☰
十分钟上手 Jasna:只修复视频里的马赛克区域,其余画面原样保留
2026/10/20 22:04:29 网站建设 项目流程

十分钟上手 Jasna:只修复视频里的马赛克区域,其余画面原样保留

【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna

视频修复工具大多有一个共同毛病:为了修复一小块马赛克,它会把整段画面重新过一遍 AI,速度慢不说,非马赛克区域的原始细节也被"二次加工"得面目全非。Jasna 反其道而行之——它的设计核心是"只动该动的地方":先用检测模型逐帧定位马赛克,再只对这一小块区域做 AI 重建,最后原样贴回原始帧,其余画面一个像素都不碰。配合 NVIDIA TensorRT 编译与 NVDEC/NVENC 纯 GPU 流水线,官方基准里修复 1080p 视频比同类工具 Lada 快 3.6 倍(34 秒 vs 2 分 02 秒,见 README.md 的 Benchmark 一节)。这篇文章用十分钟带你走完硬件自查、GUI 四步实操与"片段级修复"这一最核心的进阶姿势。

第一步:安装与硬件自查

Jasna 的整个流水线都跑在 GPU 上,从解码、检测、修复到编码,没有一个环节依赖 CPU。因此硬件门槛是真实的,先对照清单自查:

  • NVIDIA 显卡:GTX 16 系列 / RTX 20 系列或更新,需要 CUDA compute capability 7.5 及以上;GTX 10 系列及更老不支持。Windows 驱动需 610+,Linux 需 580+。
  • AMD 显卡(实验性):Radeon RX 7000/9000 系列,通过 ROCm 支持(Windows 需 Adrenalin 26.8.1+)。
  • 磁盘与路径:必须装在本地磁盘(Windows NTFS / Linux ext4、Btrfs、XFS),且路径中不能有中文、日文、带重音的字符或其他非英文字符——这是新手最容易踩的坑。
  • 显存参考:BasicVSR++ 模式下,4–6 GB 显存的显卡从"最大片段大小 30"起步即可处理 1080p;显存不够时 Jasna 会把等待中的帧自动挪到系统内存。

安装并启动后,第一个任务是慢的:在 NVIDIA 上,Jasna 会用 TensorRT 为你的具体型号编译检测模型与 BasicVSR++ 修复模型,耗时约 15–60 分钟,只做一次。编译产物缓存在model_weights/目录,后续任务直接复用;升级版本时把这个文件夹拷到新版即可免去二次等待(详见 tuning.md)。

第二步:图形界面四步实操

Jasna 的 GUI(gui.md)把工作流收敛成四个动作,比命令行更直观:

  1. 导入:点击"添加文件"或文件夹图标加入队列,也可以直接把视频拖进队列。每个视频项上有三个关键按钮——剪刀(区间编辑器)、播放(视频播放器)、三点菜单(打开所在文件夹等)。
  2. 检测:默认使用内置的rfdetr-v6检测模型,逐帧自动定位马赛克。误检多就调高检测阈值(默认 0.35),漏检就调低;检测模型、阈值可以按视频单独保存。
  3. 修复:默认用 BasicVSR++ 把每个马赛克片段重建为 256×256 的画面,可选 UNet 4x / RTX Super Res / Topaz TVAI 做二次增强。想先看效果就点▶开始;只想预览可以打开视频播放器实时观看。
  4. 导出:设置输出目录、文件名模板与文件冲突策略(自动重命名/覆盖/跳过),CQ 值控制编码质量(越低越好,文件越大)。编码同样走 GPU(NVENC / AMF),音频直接复制。

四步背后是 pipeline.py 里一条清晰的 GPU 流水线:GPU 解码 → 检测 → 逐帧跟踪并按镜头分组 → 每个片段独立修复 → 混合回原始帧(只改马赛克区域)→ GPU 编码。注意第 6 步——Jasna 用遮罩把重建结果 blend 回原帧,非遮挡区域完全不动,这就是"其余画面原样保留"的工程保证。

第三步:片段级修复的正确姿势

如果整部视频只有几个场景带马赛克,全片跑修复就是浪费 GPU。Jasna 的区间编辑器(Segment Editor)专为此设计:点击队列项上的剪刀按钮打开,界面实现见 segment_editor.py,配套的扫描面板在 segment_scan_panel.py。正确流程如下:

  1. 马赛克扫描:在扫描面板选择检测模型和检查频率——每帧(最准确)或每 0.25–2 秒(更快)。官方文档给出的参考是 RTX 5090 上扫描速度约2,000 FPS,一部几分钟的视频几秒钟扫完。扫描结果在时间线上以琥珀色区间呈现,点击"添加全部 N 个区间"即可一键转为待修复的紫色区间。
  2. 调节检测阈值:阈值滑块决定"什么样的检测算数"。配合"在预览中显示遮罩",可以直观看到每个马赛克的位置与大小(以最长边占画面高度的百分比标注)。
  3. 修复预览:BasicVSR++ 区间立即显示修复效果;LTX 区间需先渲染对应种子(通常几分钟),可以对比多个种子再选。预览确认无误后再开跑,避免整段返工。
  4. 确认输出:选了区间后,输出会保留源视频的编解码器——因为区间之间的部分是直接复制的,不做任何处理,速度快且无损。如果视频不支持按区间处理,编辑器会立刻报错。

这一设计的底层是一套严格的时间区间数据模型。在 segments.py 中,SegmentRange是用户可见的半开时间区间(秒),SegmentRestoration绑定每个区间使用的修复模型(BasicVSR++ 或 LTX 及其种子),parse_segments()负责把"10-25,01:10-01:30.5"这类字符串解析成有序、去重的区间集合。跟踪环节则由 clip_tracker.py 的ClipTracker负责:max_clip_size限制单个片段的最大帧数,temporal_overlap让相邻片段共享数帧消除接缝闪烁——默认 8 帧,超过 20 一般不再有帮助。

命令行下同样的能力一句话即可完成:

# 只修复 10-25 秒与 01:10-01:30.5 两个区间,其余直接复制 jasna --input input.mp4 --output output.mp4 --segments "10-25,01:10-01:30.5" # 先自动扫描,大马赛克用 LTX、其余用 BasicVSR++(12 = 马赛克占画面高度百分比) jasna --input videos/ --output restored/ --restoration-model-name ltx --ltx-auto-split 12

扫描与自动分段在 mosaic_scan.py 中实现:scan_sample_stride()按时间间隔抽样,segments_from_scores()把超过阈值的样本合并成带 padding 的规范化区间,ltx_auto_segments()则把"马赛克尺寸达到画面高度一定比例"的区间分配给 LTX——让最慢的模型只花在最值得的地方。

两个值得注意的细节

检测稳定性。逐帧检测并非完美,马赛克可能断续出现。--max-detection-gap 2(默认)填补同一位置最多 2 帧的检测中断,--min-detection-duration 2丢弃短于 2 帧的误检,两者配合即可消除"接缝 + 漏修一帧"的观感问题。镜头切换检测(--scene-detection,默认开启)在 GPU 上识别硬切,保证每个片段不会跨镜头混合两个不同的画面——这是修复质量的地基,默认开启即可。

显存调优。处理速度与显存占用是正相关的:在 RTX 5090 上,最大片段大小从 30 提到 180,处理时间从 51 秒降到 35 秒,显存从 3.4 GB 涨到 5.0 GB(完整表格见 tuning.md)。原则很简单:显存放得下就用尽量大的片段大小,时间重叠设 8–20,交叉淡化保持开启。爆显存时优先调低片段大小,而不是关掉编译——那会让速度慢约 3 倍却省不下 0.5 GB。

把这三个步骤串起来就是完整的十分钟上手路径:确认显卡达标 → 跑一次首任务等编译完成 → 之后每个视频"导入 → 扫描 → 添加区间 → 预览 → 开始",剩下的交给 GPU。最核心的心法始终只有一句——只修马赛克,别碰其他画面。

【免费下载链接】jasnaVideo restoration tool项目地址: https://gitcode.com/GitHub_Trending/ja/jasna

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询