ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Jasna 视频马赛克修复:3:22 的 1080p 视频 34 秒修完的 GPU 加速实战指南

Jasna 视频马赛克修复:3:22 的 1080p 视频 34 秒修完的 GPU 加速实战指南

Jasna 视频马赛克修复:3:22 的 1080p 视频 34 秒修完的 GPU 加速实战指南

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

Jasna 是免费开源的 GPU 加速视频马赛克修复工具,把解码、检测、修复、编码全放到 GPU 上,适合想给视频去马赛克的 NVIDIA/AMD 独显用户。读完能过环境检查、跑通第一个任务,并按自己的显卡调好显存与速度。

🛑 启动前的 4 项硬性门槛

第一次运行前花一分钟核对下面四项,任何一条不达标,启动检查(jasna/gui/system_checks.py)都会直接拦下来。

项目可接受范围不达标怎么办
显卡NVIDIA GTX 16 系 / RTX 20 系起(计算能力 ≥ 7.5);AMD RX 7000/9000、Radeon 780M/760M/740M、Ryzen AI(实验性)GTX 10 系及更早无法使用,只能换机器
驱动NVIDIA:Windows 610+ / Linux 580+;AMD:Adrenalin 26.8.1+,Linux 另装 AMF 视频运行库升级后从头部菜单重跑系统检查;Linux AMD 先装 AMF 再执行run_jasna_amd.sh
存储本地 SSD,文件系统为 NTFS / ext4 / Btrfs / XFS / ZFS,网络盘不支持挪到本地 SSD;机械硬盘能跑但启动与加载明显变慢,程序会给出警告
路径纯 ASCII 字符,不含中文、日文、带重音符号的字母整个文件夹挪到D:\Tools\jasna这类路径,校验由 jasna/os_utils.py 的check_ascii_install_path在每次启动执行

注意:路径这条最容易被忽略。C:\Users\张三\Downloads\jasna这种中文用户名下的路径会直接报错退出,必须整体搬到英文路径。

📦 三条命令跑通:GUI 与 CLI 并列

图形界面最短路径:解压版本包到纯英文路径 → 启动(Windows 双击jasna.exe;Linux NVIDIA 执行jasna文件;Linux AMD 先装好 AMF 运行库再执行run_jasna_amd.sh)→ 把视频拖进队列并保持默认设置 → 点界面底部的▶等它跑完。

命令行最短路径就是这一条,对单个视频执行默认的 BasicVSR++ 流程:

jasna --input input.mp4 --output output.mkv

图片输入自动走 SD 1.5 模型,文件夹输入批量处理(先图片后视频):

jasna --input photo.png --output restored.png jasna --input input_folder --output output_folder

首次任务要等 15–60 分钟,仅此一次。NVIDIA 上 Jasna 会把检测模型和修复模型编译成专属于这块 GPU 的 TensorRT 引擎,期间关闭其他应用、别碰电脑;判断正常的标志是机器负载拉满、model_weights目录持续增长。编译产物存放在model_weights目录(缓存位置由 jasna/engine_paths.py 的configure_torch_compile_cache配置),以后升级 Jasna 时把这个文件夹复制到新版本目录即可跳过等待。

跑完发现显存吃紧时,把最大剪辑大小从90降到60是最直接的手段,调法见后文。

🎯 三种引擎怎么选:BasicVSR++、LTX、SD 1.5

先说结论:绝大多数视频用免费的BasicVSR++就够;只有当你对个别关键场景的质感有更高要求、且显卡是 RTX 30/40/50 系(8 GB 显存起)时,才值得上LTX;静态图片自动走SD 1.5。选型细节见 docs/zh/models.md。

引擎速度画质GPU 要求费用模型体积
BasicVSR++(默认)快良好全部受支持显卡免费,随包附带随包
LTX很慢(耗时表见下)纹理更细腻自然RTX 30/40/50(2080 Ti 仅验证过);Linux 兼容 Radeon RX 7000/9000 与 R9700,Windows AMD 为测试版支援者专属(25 USD 档,含 UNet 4x 与 SD 1.5)不附带,需下载:标准约 15 GB、高速约 9 GB、更高画质每档再加约 13 GB
SD 1.5(仅图片)单张数十秒级实验性,单张差异大约 7 GB 显存支援者专属(15 USD 档起)约 6.9 GB,首次使用会询问后下载

LTX 耗时参考(1 分钟 1080p、马赛克持续出现的素材,标准画质档):

显卡标准画质高速模式(--ltx-fast,仅 RTX 50 系)
RTX 5090约 1 分钟不到 1 分钟
RTX 4090约 1.5 分钟不可用
RTX 5080约 2 分钟约 1.5 分钟
RTX 3090约 3 分钟不可用
RTX 2080 Ti约 10 分钟不可用

LTX 常用开关:--restoration-model-name可选ltx(标准)/ltx-4step(良好,慢约 1.5 倍)/ltx-8step(高画质,慢约 2.5 倍)/ltx-undistilled(顶级,慢约 5 倍);--ltx-large-canvas让大马赛克按 768px 修复(该部分慢约 3 倍,需约 12 GB 空闲显存,不足自动回退);--experimental-ltx-less-overlap默认开启(马赛克持续超 4 秒的场景约快 13%);--ltx-seed默认20260923控制可复现性。决定上 LTX 前先跑一次--ltx-trial速度实测(无需模型和许可证,不产出修复视频):

jasna --input input.mp4 --output output.mkv --restoration-model-name ltx --ltx-trial

注意 LTX 的硬限制:不支持 VR180 左右并排、不支持流媒体,且启用后二次修复与降噪自动关闭。Jasna 0.12 起从 0.11.3 复制过来的 LTX 模型文件需要重新下载,原来的许可证码和共享 VAE 文件仍可复用。

检测模型管的是"找马赛克"这一步,全部选项如下(阈值取自 jasna/mosaic/detection_registry.py):

模型权重状态输入分辨率默认阈值适合什么
rfdetr-v6(默认)随包5760.35绝大多数视频,拿不准就用它
rfdetr-v6-large另下载(NVIDIA 用.onnx、AMD 用.pt)7680.404K 素材、要更高检测精度
rfdetr-vr-v1随包7680.40VR180 视频
zelefans-vr-yolo-v2另下载—0.25VR180 的另一选项
lada-yolo-v2/lada-yolo-v4随包—0.252D 动画素材,或 AMD 上求快
rfdetr-v5随包7680.25旧版仍可用(批大小固定为 4)

权重放进model_weights/后自动发现。阈值用--detection-score-threshold调(0–1):调低检得更多、调高检得更少。AMD 上 RF-DETR 明显慢于 NVIDIA,检测是瓶颈时换成lada-yolo-v4换回速度。

二次修复只在修复块看起来"软"(大马赛克、特写、4K 素材)时才有必要,且仅限 NVIDIA。1080p 实测(耗时 / 显存):

修复组合CAWD 1080pKV-109 1080p
不启用22 秒 / 10.0 GB11 秒 / 10.7 GB
UNet 4x(支援者专属,质量接近 TVAIiris-2且更快)29 秒 / 12.5 GB14 秒 / 12.6 GB
RTX Super Res(免费、极快,个别视频会闪,先在短片段验证)25 秒 / 11.7 GB13 秒 / 11.4 GB
TVAI(2 workers,iris-2;需付费 Topaz Video,仅 Windows,很慢)52 秒 / 12.1 GB24 秒 / 12.4 GB
jasna --input input.mp4 --output output.mkv --secondary-restoration unet-4x

TVAI 需额外设置环境变量TVAI_MODEL_DATA_DIR与TVAI_MODEL_DIR指向 Topaz Video 的模型目录,相关参数--tvai-model(默认iris-2)、--tvai-scale(默认 4,输出为 256×scale)、--tvai-workers(默认 2)、--tvai-ffmpeg-path见 docs/zh/cli.md。

三档场景推荐:

  • 日常够用:全部默认值(--max-clip-size 90 --temporal-overlap 8,交叉淡化默认开),在 10 GB 级显存的卡上非常宽裕。

  • 追求质量:--max-clip-size 180(收益拐点,1080p 实测 35 秒 / 5.0 GB,再往上时间不再变好只吃显存)+ 二次修复 + 低 CQ:

    jasna --input input.mp4 --output output.mkv --max-clip-size 180 --temporal-overlap 8 --secondary-restoration unet-4x --cq 22
  • 资源受限(4–6 GB 显存):--max-clip-size 30起步(1080p 实测 51 秒 / 3.4 GB),关二次修复,关闭一切占 GPU 的其他程序。4K 素材同剪辑大小下显存约 ×1.5,再往下压。

🧩 帧的旅程:七段 GPU 流水线

源码把整条流水线拆成四个并行线程循环(decode_detect_loop→primary_restore_loop→secondary_restore_loop→blend_encode_loop),定义在 jasna/pipeline_threads.py。七个环节各自吃进什么、做什么、吐出什么:

GPU 解码

  • 输入:源文件(H.264 / HEVC / AV1,含 10-bit)
  • 处理:NVIDIA 走 NVDEC、AMD 走 AMF,另有软件解码兜底(jasna/media/video_decoder.py 的_setup_nvdec_decoder/_setup_amf_decoder)
  • 输出:连续帧流,进入检测队列

逐帧马赛克检测

  • 输入:刚解码出的每一帧
  • 处理:默认rfdetr-v6,按推荐阈值打分并框出马赛克区域
  • 输出:该帧的马赛克框列表与置信度

时间维跟踪分组

  • 输入:连续帧的检测框
  • 处理:同一块马赛克沿时间轴被跟踪,帧归组为"剪辑",长度上限即最大剪辑大小;硬切镜头处强制收尾,保证一个剪辑不混入两个镜头(jasna/tracking/clip_tracker.py)
  • 输出:一批互不混镜头的剪辑

主修复(BasicVSR++)

  • 输入:每个剪辑的 256×256 图像序列
  • 处理:按序列做时间维超分重建,相邻剪辑刻意保留少量重叠来隐藏接缝
  • 输出:补出纹理的马赛克图块

二次修复(可选,NVIDIA 独占)

  • 输入:256×256 修复图块
  • 处理:UNet 4x / RTX Super Res / Topaz TVAI 先把图块放大到 512×512 或 1024×1024,再走一遍锐化
  • 输出:更清晰的图块(用 LTX 时此环节整体关闭)

合成回原帧

  • 输入:修复图块 + 原始帧
  • 处理:只替换马赛克区域,其余像素原样保留(混合掩码与缓冲在jasna/blend_buffer.py与jasna/tracking/blending.py);显存告急时排队中的帧自动挪到系统内存、需要时再搬回(jasna/vram_offloader.py),全程无需手动干预
  • 输出:完成混合的完整帧

GPU 编码

  • 输入:完整帧 + 原音轨
  • 处理:NVENC 或 AMF 编码;音频默认直接复制,仅当输出容器装不下原音轨才重新编码(判断逻辑在jasna/media/audio_utils.py的needs_audio_reencode)
  • 输出:最终文件(默认 HEVC)

LTX 不走这条流水线:它要把视频完整过四遍——找马赛克、准备、用扩散模型修复、保存——所以慢得多,但能补出更真实的纹理。

⚡ 速度与显存调优:把显存从 10 GB 压到 3.4 GB 的三档配置

调参对象主要是 BasicVSR++(LTX 自管内存),核心变量就三个:最大剪辑大小、时间重叠、交叉淡化,参数合法性由 jasna/session_config.py 统一校验。

剪辑大小扫描数据(1080p 单视频、重叠 8、RTX 5090,趋势普适、绝对值因环境而异):

剪辑长度(帧)1080p 耗时典型显存
3051 秒3.4 GB
6040 秒3.7 GB
9034 秒4.1 GB
18035 秒5.0 GB
36032 秒6.3 GB
72033 秒8.0 GB

小剪辑只会更慢:重叠帧在每个剪辑里都要重复处理,剪辑越多重复劳动越多,超过 180 之后时间不再变好、只有显存上升。交叉淡化复用的正是已处理好的帧,零额外开销,保持默认开启即可。模型编译同理——关掉编译开关(--no-compile-basicvsrpp)只省不到 0.5 GB 显存,却让处理慢约 3 倍(同素材对比:编译 33 秒 / 5.0 GB,不编译 107 秒 / 4.6 GB),几乎没有正当理由。

注意:时间重叠必须满足2 × temporal_overlap < max_clip_size,否则启动即报错;8–20 是推荐区间,超过 20 通常无收益。

按需求查表(编码与画质):

你的需求推荐设置
兼容性最好、8-bit 到处能放--codec h264
质量体积平衡(默认)--codec hevc,默认 CQ:NVIDIA 28 / AMD 25
文件体积最小--codec av1(需 RTX 40 系 / RX 7000 及以上),默认 CQ:NVIDIA 35 / AMD 16
质量更高、文件更大调低--cq(默认值:NVIDIA H.264 25 / HEVC 28 / AV1 35,AMD H.264 24 / HEVC 25 / AV1 16)
画面更锐--sharpen 0.2–0.5(0 关闭,1 最强)

CQ 合法范围:NVIDIA H.264/HEVC 为 1–51、AV1 为 1–63;AMD H.264/HEVC 为 0–51、AV1 为 1–51。Jasna 还会按源码率自动给输出设maxrate(bufsize为其 2 倍)防止低码率源被过度放大:NVIDIA H.264 输出为源码率 2.0 倍、HEVC 源 1.25 倍、其余组合 1.0 倍;自行指定maxrate可覆盖。

常用默认值速查(以jasna --help为准):

参数默认值
--devicecuda:0(AMD 经 ROCm 也用cuda:N命名)
--batch-sizeNVIDIA 4 / AMD 8(rfdetr-v5恒为 4)
--fp16/--no-fp16开(半精度,省显存且通常更快)
--max-clip-size90
--temporal-overlap8
--enable-crossfade开
--detection-modelrfdetr-v6
--max-detection-gap2(同位置马赛克漏检最多补 N 帧,0 关闭)
--min-detection-duration2(短于 N 帧的检出按误检丢弃,0 关闭)
--scene-detection开(硬切处结束所有剪辑)
--denoisenone(可选low/medium/high,只清理修复区域)
--denoise-stepafter_primary(或after_secondary移到最后)
--codechevc
--sharpen0
--ltx-seed20260923
--sd15-steps/--sd15-strength/--sd15-seed/--sd15-variants25 / 0.6(上限 0.7)/ 0 / 1(variants 产出name_v1…vN供挑选)
--stream-port/--stream-segment-duration8765 / 4.0
--log-levelerror(可选debug/info/warning)

🚀 四个进阶方向:区间、流媒体、VR180、云 GPU

区间处理(segments)—— 马赛克只出现在部分场景,或想只对关键片段花 LTX 的慢钱:未选中的区间原样复制,快且无损,输出仍是全片长视频。

jasna --input input.mp4 --output output.mp4 --segments "10-25,01:10-01:30.5"
  • 一次只能处理单个视频,不支持文件夹/图片/流媒体
  • 输入须为恒定帧率的 H.264/HEVC/AV1,输出 MP4/MOV/MKV,且输出编解码器恒等于输入
  • 不能与--stream、--retarget-high-fps、--fmp4、--ltx-auto-split组合;区间之间的少量帧会被重新编码(视频只能在特定帧处切开)

GUI 里点队列条目的剪刀按钮打开区间编辑器:按帧选区间、逐区间指定 BasicVSR++ 或 LTX(LTX 区间可先渲染指定种子、比较多个种子)、用内置马赛克扫描(RTX 5090 上约 2000 FPS)自动定位含马赛克的场景,还能开"仅大马赛克用 LTX"把慢速 LTX 集中在收益最大的大马赛克上(建议从 12% 起步)。想让文件夹里每个视频"大马赛克走 LTX、其余走 BasicVSR++",用自动分配:

jasna --input videos/ --output restored/ --restoration-model-name ltx --ltx-auto-split 12

临时文件默认放输出旁的隐藏文件夹,磁盘紧张时用--working-directory指到更快的盘。

流媒体(Stash / 浏览器)—— 边修边看不落盘,先确认效果,或挂在 Stash 里按需修复。

jasna --stream
  • 恒用 BasicVSR++ 与 H.264,LTX 不可用
  • 首次必须先用 Stash 里实际会用的相同设置流式跑通一个短视频——第一次要为 GPU 准备文件、耗时很长,跳过这步 Stash 会超时放弃(日志出现timeout waiting for jasna-cli to become healthy就是这个原因)
  • Stash 需下载专用的 v0.30.1-jasna 版本,并设置JASNA_CLI_PATH(jasna 可执行文件完整路径)与JASNA_WORKING_DIR(其所在文件夹)两个环境变量

启动后 Jasna 会开 HLS 服务并自动打开浏览器播放器,可拖动进度;--stream-port(默认 8765)、--stream-segment-duration(默认 4.0 秒)、--no-browser可调。

VR180—— VR180 文件通常把左右眼并排放进一个宽帧,Jasna 会拆开分别修复再拼回。保持VR180 模式 = 自动(高度 > 1080px 的 2:1 视频,如 3840×1920、8192×4096,或文件内 VR 元数据、已知片商名,都会自动识别为并排 VR),检测模型换用内置的rfdetr-vr-v1;认不出来时手动指定:

jasna --input input.mp4 --output output.mp4 --vr-mode sbs-fisheye
  • LTX 不支持 VR180 并排视频,只能用 BasicVSR++
  • --vr-mode取值:auto(默认)/off/sbs/sbs-fisheye
  • 投影方式(原样/鱼眼/球心投影)按片商自动选择,也可在区间编辑器的修复预览旁手动切换

云端 GPU(RunPod / Vast / Docker)—— 本地显卡太慢或没有显卡,租一张云 GPU 跑批量任务。向许可证码来源申请开通"云权限"后,用 Linux NVIDIA 官方版 CLI 在容器内以root登录运行,安装到/root(不要用/workspace,权限不可靠):

apt-get update && apt-get install -y zstd wget libgl1 libglib2.0-0 # 从官方发布页下载 v0.11.1 的四个分卷包(part000–part003),拼合解压: cat jasna-linux-nvidia-0.11.1.tar.zst.part* | zstd -dc | tar -xpf - --same-owner cd jasna-linux-nvidia-0.11.1 export XDG_CONFIG_HOME=/root/jasna-config ./jasna --license-code YOUR-LICENSE-CODE --cloud-workspace

激活前可花一秒验证硬件编码器是否可用,没打出OK就换机器:

./tools/ffmpeg -loglevel error -f lavfi -i testsrc2=duration=1:size=1280x720 -c:v hevc_nvenc -f null - && echo OK
  • 硬性要求:驱动 ≥ 580、磁盘 ≥ 80 GB、设置NVIDIA_DRIVER_CAPABILITIES=all(不加则读不了也存不了视频)、固定的/etc/machine-id
  • --pid=host的 Docker 容器不可用;RunPod 上 LTX 暂不可用(会替换 root 用户导致 LTX 校验失败),BasicVSR++ 可用
  • 每次启动前先重新export XDG_CONFIG_HOME;删 Pod 前把jasna-config私有备份,否则激活名额就浪费了

📊 官方基准:3.4–4.7 倍提速,显存从 9.3 GB 降到 4.8 GB

测试条件:RTX 5090、Linux、BasicVSR++、同一段 3:22 全长视频。

输入Jasna v0.9.1 耗时Lada 0.11.0 耗时提速
720p H.26400:3201:473.4 倍
1080p H.26400:3402:023.6 倍
2160p H.26401:0304:564.7 倍

显存占用演变(典型 / 峰值,GB,H.264 8-bit 输入):

版本720p1080p2160p
Lada1.8 / 3.12.0 / 3.32.6 / 4.1
v0.4.117.6 / 19.918.9 / 21.426.0 / 30.5
v0.5.08.6 / 9.09.5 / 10.212.9 / 15.0
v0.9.08.6 / 9.19.3 / 10.111.4 / 15.4
v0.9.14.2 / 4.64.8 / 5.67.2 / 10.9

横向看,v0.9.1 相对 Lada 在同硬件上把 1080p 整片修复压到约 1/3.6 的时间;纵向看,v0.9.1 相比自家旧版本把 1080p 典型显存从 9.3 GB 降到了 4.8 GB。完整测试设置、内存占用与全编解码器明细见 benchmarks/2026-07-26_release_matrix.md,逐项提交的性能演进数据保留在benchmarks/目录的 CSV 中,可用 scripts/benchmark_releases.py 复现。

🩹 踩坑速查:看到什么、为什么、做什么

症状根因动作
首次任务卡在开头不动15–60 分钟的一次性 TensorRT 编译正常等待,期间负载拉满且model_weights目录在增长;升级时复制该目录到新版本即可免等
启动即报路径错误安装路径混入非 ASCII 字符(中文/日文/重音字母),check_ascii_install_path拦截整个文件夹挪到纯英文路径;顺带确认是本地盘、文件系统为 NTFS / ext4 / Btrfs / XFS / ZFS
显存不足(out of memory 或明显卡死)剪辑太大、显存超了按顺序:①--max-clip-size90→60→30 对照扫描表看每档代价;② 关二次修复或换 RTX Super Res;③ 关闭浏览器、游戏等其他占 GPU 程序。4–6 GB 显存的卡固定从 1080p + 剪辑 30 起步
驱动检查不通过 / 提示版本过低NVIDIA 需 Windows 610+ / Linux 580+;AMD 需 Adrenalin 26.8.1+(Linux 另装 AMF)升级后从头部菜单重新执行系统检查,无需重装 Jasna
AMD 上检测速度很慢RF-DETR 在 AMD 跑 torch 模型,比 NVIDIA 的 TensorRT 引擎慢--detection-model lada-yolo-v4换速度,默认批大小在 AMD 上自动取 8
LTX 模型下载一直失败连不上 Hugging Face(Jasna 会自动切 hf-mirror.com,仍失败需手动)手动下载 3 个文件:所选模型 1 个 +vae.safetensors.enc与vae-decoder.safetensors.enc,文件名保留.enc后缀,全部放入model_weights/ltx-restore/(目录不存在就新建)
60 fps 素材处理时间翻倍帧数翻倍,工作量自然翻倍用 `--

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

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

返回列表