iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
自我挑戰組

一天一招,快速上手 mpv-lazy系列 第 12

Day12:AI 超分之外的選擇:著色器(Shader)畫質強化

  • 分享至 

  • xImage
  •  

其實,我用 mpv-lazy 都用 AI超分,之前有跑一下 Anime4k 著色器看效果,但沒什麼麼在用著色器,不過著色器好像也是滿重要的單元,還是介紹一下。
建議可以看巴哈mpv-lazy這篇教學其中有講到著色器,我才幾天看到這篇才知道 main 著色器選兩個之後其中一個放大才會有一個生效😅,這邊就不獻醜了,另外著色器檔名有寫 X2,意思是會做兩倍放大,所以 1080p x2 結果會變 4k。

另外,假如你視窗沒有放大,可能不會觸發放大(upscaler)著色器,這跟前面幾天運作 vpy 濾鏡原理有點不太一樣,有點像 mpc madvr 運作,放大視窗才有作用。

我知道的東西也不多,大概就先說到這樣。

https://ithelp.ithome.com.tw/upload/images/20260811/20182793HuAPEQnbjo.png

網路上看的組合

有找了一下網路上怎麼搭配著色器。

職責 常見 shader HOOK
luma 放大 ArtCNN、FSRCNNX、RAVU、nnedi3 LUMA
chroma 重建 CfL_Prediction、KrigBilateral CHROMA(+BIND LUMA
降噪 nlmeans LUMAMAIN
銳化 adaptive-sharpen、CAS MAIN
縮小 SSimDownscaler MAIN(附 WHEN 條件)

每個階段挑選一個著色器。

現在的主流搭配:ArtCNN + mpv 內建

近幾年的建議是拿 ArtCNN 取代舊的 FSRCNNX、KrigBilateral、SSim 系列,一支就夠,設定最簡單:

1. ArtCNN(Artoriuz,原作)

mpv-lazy 預設沒放這個著色器。

https://ithelp.ithome.com.tw/upload/images/20260811/20182793gbvVCBvlVq.png
位置: ArtCNN/GLSL at main · Artoriuz/ArtCNN

架構本身 + 官方模型。分兩條線:

  • C 系列:為速度優化,即時播放用,有 GLSL shader。C4F32 約 4.8 萬參數、C4F16 約 1.2 萬。
  • R 系列:加了殘差塊、更深更寬,R8F64 約 92.6 萬、R16F96 約 400 萬。只有 ONNX,沒有 shader,是給離線壓片用的。

後綴系統:無後綴=中性放大、DS=去噪+銳、DN=去噪+柔、Chroma=色度重建、JPEG420/444=清 JPEG 雜訊。

vo=gpu-next
profile=high-quality
glsl-shader="~~/shaders/ArtCNN_C4F32.glsl"
scale=ewa_lanczos
dscale=catmull_rom
deband=yes

型號選法:C4F16 是輕量版,C4F32 是硬體吃得下時的即時播放選擇;R8F64R16F96 是給非即時(壓片)用的,不要拿來播放。後綴 DS 是去噪+銳利、DN 是去噪+柔和、Chroma 是色度重建(要先用 bilinear 放大色度)。

2. Ani4K v2 ArtCNN(Sirosky)

https://github.com/Sirosky/Upscale-Hub/releases/tag/AniSD-ArtCNN

拿 ArtCNN 的 C4F32 架構,換上 Ani4K v2 資料集的精簡版重訓。約 4.7 萬參數。

針對現代動畫,從高品質 BD 到爛 WEB 源都在訓練範圍,設計來往 2K/4K 放。設計理念是保細節、保景深(散景不會被硬拉銳)、忠於原畫風。

另外有個 _CMP 的 compute shader 版本,新顯卡上比較快,但作者自己講基本上只在 Vulkan 下能動。

3. AniSD ArtCNN(Sirosky)

https://github.com/Sirosky/Upscale-Hub/releases/tag/Ani4k-v2-ArtCNN

同樣架構,換 AniSD 資料集的精簡版。約 4.7 萬參數。

針對標清動畫,DVD 和 SD WEB。用途講白了就是清理加去模糊,讓老片能看下去,省得你事先離線壓一遍。

畫質爛的動畫 / SD 片源:Anime4K

Anime4K 分 A、B、C 三種模式,各自針對不同劣化類型——A 對應 1080p、B 對應 720p、C 對應 480p。它的鏈固定是:

Clamp_Highlights → Restore → Upscale → Upscale_S

Restore 一定要放在放大之前,用來去壓縮雜訊、模糊、振鈴。CNN 大小依序 S < M < L < VL < UL,顯卡不夠就往小的選。

老派經典組合

FSRCNNX(亮度)+ KrigBilateral(色度)+ SSimSuperRes / SSimDownscaler + adaptive-sharpen。這種三件組串法在舊設定檔裡很常見,效果不差但設定繁瑣,除非你已經在用,否則沒必要重新配。

真人影片

真人片不太適合動畫用的 CNN。用 ravu-litennedi3 就好,或乾脆只開內建 ewa_lanczos + deband,別加銳化。


簡單原則:動畫看 ArtCNN、片源爛才上 Anime4K、真人幾乎不用開。設好之後按 Shift+I 再按 2 看 GPU 跟不跟得上,掉幀就換小一號的型號。

著色器跟 AI 超分差在哪?

Day 3 的 UAI 是把畫面丟出去給 ONNX 模型算,算完再送回來。 它走 VapourSynth,能用很大的模型,畫質上限高,代價是要裝 vsNV、要等 TensorRT engine、吃資源兇。

著色器是直接在 GPU 的渲染流程裡動手。 沒有外部依賴、沒有等待、開了就跑。畫質上限低一些,但便宜太多了 —— 而且它不挑顯卡品牌,AMD、Intel 一樣能用。

怎麼查看著色器運行狀態

shift+I可以看到運行狀態,upscaler 是放大視窗才會觸發。

https://ithelp.ithome.com.tw/upload/images/20260811/20182793UbG2r0YsyM.png

mpv-lazy 手動開關著色器

mpv-lazy 按下 Ctrl+ ` 可以清除著色器,濾鏡是按下 Shift+ ` 可以做清除。
通常切換濾鏡會建議先清除再做切換別的濾淨比較好,比較不會卡頓問題。

你可以 Ctrl+ ` 查看原圖,在按下 Ctrl+ 1 (Ani4K) 或者 Ctrl + 2 (AniSD),可以比較效果。雖然效果可能沒像 UAI 超分比較明顯,但是仔細看還是會看得出差異,這邊就不截圖了,可以自己切換比較看看。

相關文章


上一篇
Day11:DRBA補幀 - RIFE 之外的新選擇
下一篇
Day13:Anime4K 畫質強化- 一鍵切換 Mode A / B / C
系列文
一天一招,快速上手 mpv-lazy13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言