jasna
一寸光阴一寸金,寸金难买寸光阴。
只在一小块地方动刀:Jasna 把视频里的马赛克逐帧修回去
先把画面讲清楚
一段视频里,有一小块区域被马赛克盖住了。其余的一切——背景、人物、光线、噪点、镜头的轻微抖动——都是完好的,没有任何问题。
大多数视频修复工具的思路是「整帧处理」:把每一帧当成一张图,送进模型,出来一张更清晰、更平滑、也更陌生的图。代价是全局的,收益也是全局的,你没法只要其中一小块。
Jasna 走的是另一条路。它的定位只有一句:找出视频里的马赛克,把它们修回来,画面其余部分一概不动。
项目地址:https://github.com/Kruk2/jasna
这句话听起来像一句寻常的功能介绍,其实是整份工程设计的原点。因为「只改一小块」这件事,在视频里比在图片里难得多——图片改一块就完了,视频里同一块区域会移动、会变形、会被切镜打断,你必须先知道它在每一帧的哪里,才谈得上修。
它到底能做什么
把功能摊开看,五条:
- 找出来,再修回来。 在视频里定位马赛克区域并还原,画面其余部分不受影响。
- 两种还原模型。 快的 BasicVSR++,免费;慢但细节更多的 LTX,面向支持者,且只支持 NVIDIA。
- 只修你圈定的部分。 在 Segment Editor 里带预览地选区,修哪块由你决定。
- 支持 VR180 视频和静态图片。 静态图片走 SD 1.5,面向支持者。
- 实时预览。 在 Video Player 里直接看还原后的效果,不落地成文件。
这五条里,最有意思的其实是最后一条。多数工具的工作流是「跑完 → 打开输出文件 → 发现不对 → 改参数 → 再跑一遍」,一轮几十分钟。能先看再决定要不要生成文件,把试错成本从「一次渲染」压到了「一次播放」。
门槛摆在明面上
这份工具不装客气,硬件要求写在最前面,而且写得很具体。
显卡。 NVIDIA 需要 GTX 16 系列、RTX 20 系列或更新,驱动要够新——Windows 上 610 以上,Linux 上 580 以上。GTX 10 系列及更老的不行。换 AMD 的话,Radeon RX 7000、9000 系列可以跑,但标注为实验性。
更细一层的要求也给了:NVIDIA 的卡需要计算能力 7.5 或更高;AMD 需要 ROCm 支持的型号,包括 RX 7000、9000 系列以及 Radeon 780M、760M、740M 和 Ryzen AI。Windows 上 AMD 驱动要 Adrenalin 26.8.1 或更新。而二级修复和 LTX,只有 NVIDIA 能跑。
路径。 解压目录不能在路径里带中文、日文、带音标的字母或其他非英文字符。这条限制很朴素,也很容易在第一分钟绊倒人。
磁盘。 Windows 上用 NTFS;Linux 上用 ext4、Btrfs、XFS 或 ZFS。网络磁盘不支持。建议 SSD——如果放在机械硬盘上,Jasna 的启动和模型加载都会明显变慢。
LTX 的额外账。 需要 NVIDIA RTX 显卡,至少 8 GB 显存和 16 GB 内存。
这些条件加在一起,等于一句实话:这是一个明确面向「有独立显卡的本地机器」的工具,不打算讨好所有人。
第一次跑,慢是正常的
上手四步,没有安装程序,没有配置向导:
- 下载对应你系统和显卡的发行版。
- 解压到一个路径不含非英文字符的文件夹。
- 启动:Windows 双击
jasna.exe;Linux NVIDIA 运行jasna文件;Linux AMD 运行run_jasna_amd.sh。 - 添加视频,选好设置,点底部那个 ▶。
真正的坑在第四步之后。第一次任务会很慢。 在 NVIDIA 上,Jasna 要先为你的具体型号准备模型,这个过程大约 15 到 60 分钟,而且只需要做一次。这段时间里最好关掉其他程序,也别拿这台机器干别的。
准备结果存在 model_weights 目录里,之后一直复用。更新 Jasna 的时候,把这个目录复制到新版本里,就不必再等一遍。
其余的学习成本被压进了界面:每个设置都有提示,鼠标移到 ⓘ 图标上就能看到。显存不够了怎么办?降低 Max Clip Size,比如从 90 降到 60。
七步管线:一条全程不下 GPU 的流水线
这一节是整份文档里含金量最高的部分。Jasna 的流程几乎全部跑在显卡上——从读视频到最后存视频,中间没有来回搬运。
第一步,解码。 在 GPU 上解,NVIDIA 走 NVDEC,AMD 走 AMF。
第二步,检测。 逐帧找出马赛克的位置,默认模型是 rfdetr-v6。
第三步,跟踪。 把同一块马赛克在时间上串起来,把它的这些帧归成一个片段,长度上限就是 Max Clip Size。片段会在切镜处断开,所以两个不同的镜头永远不会被混在一起。
这一步是整条管线的关节。它承认了一个事实:视频不是一叠图片,镜头是有语法单位的。在切镜处切断,等于把「同一段连续画面」作为处理的最小语义单元交下去。
第四步,还原。 每个片段以 256×256 的规格送进 BasicVSR++。片段之间会稍微重叠一点,这样接缝处不会出现肉眼可见的跳变。
重叠这一手很不起眼,但它是「看起来像一段视频」和「看起来像一堆碎片」的分界线。
第五步,可选的二级修复。 用 UNet 4x、RTX Super Res 或 Topaz TVAI 把还原出来的画面放大、变锐。
第六步,混合。 把修好的画面贴回原始帧,只有马赛克那块区域发生变化。
第七步,编码。 用 GPU 编码器输出,NVIDIA 走 NVENC,AMD 走 AMF。音频直接复制,只有当输出格式装不下它时才重新编码。
把这七步连起来看,会发现一个贯穿始终的取舍:每一步都尽量少碰像素。 检测只关心一块区域,还原只在 256×256 的小图上做,混合只覆盖那一块,编码只做一次。省下来的不只是时间,还有「改坏了别处」的风险。
第一次任务之所以慢,是因为第二步和第四步的模型,以及可能用到的 UNet 4x,都要针对你的具体显卡重新准备,这一准备只在 NVIDIA 上发生。结果落在 model_weights,之后反复使用,也可以复制到更新版本的 Jasna 里。
LTX:另一条更慢、也更贪心的路
BasicVSR++ 是「还原」,LTX 更接近「重画」。
它不走上面那条流水线,而是把视频过四遍:找马赛克、准备、用扩散模型还原、保存。慢得多,但能补出更多真实的细节。
这种「更多细节」是可以按档位买的——不是花钱买,是花时间买:
| 档位 | 相对速度 |
|---|---|
| Standard | 默认,最快 |
| Good | 约慢 1.5 倍 |
| High | 约慢 2.5 倍 |
| Top | 约慢 5 倍 |
扩散模型这条路线绕不开一个问题:它补出来的细节,有多少是画面里真有的,有多少是模型觉得「这里应该有」的。档位越高,模型参与的力度越大,画面越漂亮,也越需要你自己判断它补得对不对。
想先知道自己的卡撑不撑得住,可以跑 Trial mode,也就是速度测试。免费,会告诉你能不能跑 LTX、大概要多久,但不还原视频。
只修你选中的那一块
Jasna 在「修哪里」这件事上给足了控制权。
Segment Editor 让你圈定范围并预览效果,只处理你选中的部分。这比整段处理要省,也比整段处理要准——尤其是当画面里只有几个镜头出问题的时候。
VR180 视频也能处理,左右并排的 VR 画面有专门的处理方式。
静态图片走 SD 1.5 模型,标注为实验性。
Video Player 则是前面提过的那个「先看再决定」的入口:直接看还原后的播放效果,不生成文件。
对批量任务,命令行覆盖了应用里的大部分能力,但不是全部——Video Player、LTX 的种子预览、遮罩建议和交互式图片模式,只在图形界面里有。
命令行:三行命令,三种粒度
1 | # 一个视频 |
三种粒度:单个文件、单张图片、整个目录。所有选项用 jasna --help 列出来。
如果你是从源码跑的,那里也能用免费的 BasicVSR++;但激活和支持者模型必须走官方发行版。这条界线划得很清楚——开源的是应用代码,不是模型。
性能:拿 RTX 5090 跑一段 3 分 22 秒
README 里给了一组直接的对比,条件是同一段 3 分 22 秒的视频、BasicVSR++、RTX 5090、Linux,数字是完整还原所需时间,越低越好。
| 输入 | Lada 0.11.0 | Jasna v0.9.1 |
|---|---|---|
| 720p H.264 | 01:47 | 00:32,快 3.4 倍 |
| 1080p H.264 | 02:02 | 00:34,快 3.6 倍 |
| 2160p H.264 | 04:56 | 01:03,快 4.7 倍 |
三个数字放在一起看,有意思的不是绝对值,而是分辨率越高,差距越大。720p 到 2160p,像素量涨了九倍,Jasna 的耗时只从 32 秒涨到 63 秒。这说明瓶颈不在「处理多少像素」,而在那些与分辨率无关的固定开销——检测、跟踪、调度。
显存这一栏,README 给了一张按版本排列的典型值与峰值表,覆盖 720p、1080p、2160p 以及一段 15 秒的 8K VR HEVC 60fps,也给了更早版本的数据。同时留了一句很实在的提醒:Lada 用的显存比 Jasna 少。
这句话值得单独拎出来说。一份性能对比文档,通常只写自己赢的那一栏;这份把输的那一栏也写在摘要里。快是有代价的,代价就是显存。
免费,但模型要钱养
Jasna 是免费的。这一点没有含糊。
那模型从哪来?README 说得很直白:支持者的钱主要花在训练新模型上,而训练的大头是租 GPU。
支持换来的是一串「支持者模型」的许可证码:
| 门槛 | 得到什么 |
|---|---|
| 累计 15 美元或以上 | UNet 4x,让还原区域更锐利;SD 1.5,面向静态图片的实验模型 |
| 25 美元 | UNet 4x 与 SD 1.5,外加 LTX——比 BasicVSR++ 慢得多但细节更多,仅限 NVIDIA,含该 LTX 模型的后续更新 |
还有一个时间点:在 2026 年 10 月 14 日或之前已经给到 15 美元以上的支持者,可以免费拿到 LTX。
至于许可证码从哪来,文档把话说得很重:正版码只能从三个地方来——Buy Me a Coffee、Unifans,以及中国大陆的闲鱼卖家。除此之外,任何出售 Jasna、许可证码或修改版文件的人都是骗子:他们的密钥不生效,他们的文件可能在你机器上运行隐藏代码。Jasna 只从 GitHub 下载。
这段警告写得比多数项目都硬,但它对得起「本地跑、要执行文件」这件事的风险量级。
激活的流程也不复杂:打开 Activate Jasna,填入许可证码,点 Activate online。那台机器没网,或者在线激活失败,就走 Manual 手动方式。
一个许可证码可以用在 3 台 PC 或云工作区上。激活之后可以离线使用。租 GPU 的话还有专门的说明。
「什么算一台新机器」这条定义得挺细:Windows 上换主板算新机器,Linux 上重装系统算新机器,各占一个名额;重装 Windows、换显卡、换硬盘、换内存都不算,用同一个码重新激活即可。少数 Windows 机器没有真正的主板 ID,在那类机器上,换系统盘也会被算成新机器。
还有一条给老用户的提醒:如果你手里是 Jasna 0.10 时期的邮箱和密钥,它们已经不能用了,需要回到当初购买的地方换新的许可证码。
谁站在谁的肩膀上
文档末尾的致谢很短,但分量不轻。
Lada,托管在 Codeberg 上。Jasna 受它启发,在部分地方基于它构建;Jasna 使用的 mosaic_restoration_1.2 模型,正是由 Lada 的作者 ladaapp 训练的。
ZeLeFans,提供了 VR 检测模型,以及关于马赛克形状与 VR 投影的细致分析。
这两个致谢解释了一件事:这类工具的进步不是凭空长出来的。检测模型、还原模型、对马赛克形态的理解,每一块都有人先铺过路。
授权:一层一层分开算
Jasna 公开的应用源码采用 AGPL-3.0。但模型和打包进来的依赖各自保留自己的条款——不是一个大许可盖住全部,而是分层说明:许可与源码可得性一份文件,第三方模型声明一份,发行版源码对应关系一份。
这种拆法看着麻烦,其实是唯一诚实的拆法。代码是你写的,你可以决定它怎么授权;模型是别人训的,你没有权力替它做主。
最后
回到那个画面。
一小块被盖住的区域,周围一切都完好。Jasna 做的事,说穿了就是把注意力收窄:只在那一小块上找、只在那一小块上算、只在那一小块上改。为了做到这一点,它把整条流水线搬上了显卡,把镜头切成片段,把片段之间的接缝用重叠抹平,最后只把修补过的那一块贴回去。
这是一种很克制的工程审美。能准确地说出「我不动别的地方」,比宣称「我什么都能修」要难得多。
