快轉到主要內容

一鍵提昇動漫影片畫質 ~ Linux版的Anime4K使用教學

分類   開源AI應用 AI影像處理
標籤   Anime4K Image Upscaling Video Upscaling MPV
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

如果你找到的動漫影片畫質低下想要改善,或是看到喜歡的圖片畫質卻不夠做成桌布,那麼你就需要能用魔法放大圖像的工具。

在這裡為您介紹bloc97開發的「Anime4K」,它是可以即時提昇2D動畫畫質的開源工具。不用轉檔播放影片立即生效。可在Linux上達成類似mpv-lazy的效果。

除此之外還有以Anime4K技術製成的轉檔工具「Anime4KCPP」,類似Waifu2x,專門把動漫圖片和影片放大之用。

Anime4K支援Linux/Windows/MacOS系統,甚至Android/iOS手機也能用。本文將簡介Anime4K用法。

1. Anime4K效果預覽
#

Anime4K具體效果如何呢?請先看圖。

Anime4K需要搭配播放器使用,在Linux上就是MPV。運算時需要獨立顯示卡才跑得動,例如我的是Nvidia GTX1050Ti。

Anime4K可以將1080p影片提昇至接近4K畫質,細節變清晰了:

艦隊Collection總有一天在那一片海

或是720p變類似1080p

Fatekaleid liner 魔法少女伊莉雅2wei Herz!

順帶一提,MPV可以當圖片檢視器(開啟主程式後把圖片拖進去),你可以把Anime4K當作暫時提昇圖片畫質的一個「濾鏡」工具。

2. 比較Anime4K與GAN圖片放大技術
#

Anime4K最直觀感受的是線條變得清楚。根據開發者說法,Anime4K僅針對H.264/H.265/VC-1編碼的1080p影片最佳化,720p以下放大會更容易糊掉,因此用來放大1080p(含以上)影片效果最好。

且Anime4K是針對動畫訓練的,對動畫以外的影片幾乎無效。

開發者也指出,Anime4K不是生成對抗網路,放大效果並沒有比Waifu2x/SRGAN/ESRGAN/Real-ESRGAN好。

Anime4K不是最好的圖片放大技術。如果你實際拿Anime4K跟Waifu2x、GAN之類的放大圖片技術比較,你會發現Anime4K還是有很多模糊的地方。

Anime4K與Real-ESRGAN 4x Anime6B的比較。同樣是放大四倍,Anime4K仍有許多模糊之處。

Anime4K的優點在於它是「即時運算」,宛如影片播放器的特殊濾鏡,不需要像GAN要等轉檔完成,而且GAN需要更高級的顯示卡。如果你只是想要「看起來」影片畫質很好,那麼Anime4K就夠用了。

3. Linux版MPV如何使用Anime4K
#

Linux要用MPV播放影片,再載入Anime4K的GLSL shader(著色器)達成提昇畫質的效果。為防止lag,最好使用獨立顯示卡運算。

Anime4K版本為v4.0.1,系統為Ubuntu,顯示卡為Nvidia GTX1050Ti

  1. 以Flatpak安裝 MPV播放器。MPV只能播放本機影片,如果你想要透過MPV觀看瀏覽器網站的影片,請安裝 MPV Handler

  2. Anime4K得依獨立顯示卡運算才不會lag。以Nvidia顯示卡來說,Linux需 安裝Nvidia專有驅動,順便裝CUDA。

  3. 取得Anime4K的GLSL檔案

git clone https://github.com/bloc97/Anime4K.git

cd Anime4K
  1. 將Anime4K的全部GLSL檔(非目錄)複製到MPV設定檔目錄下的shaders
mkdir ~/.var/app/io.mpv.Mpv/config/mpv/shaders

find glsl -type f -exec cp "{}" ~/.var/app/io.mpv.Mpv/config/mpv/shaders \;
  1. 編輯~/.var/app/io.mpv.Mpv/config/mpv/mpv.conf,加入MPV的播放參數,啟用GPU加速
keep-open=yes
sub-auto=fuzzy
hwdec-codecs=all
profile=gpu-hq
  1. 編輯~/.var/app/io.mpv.Mpv/config/mpv/input.conf,加入MPV的快捷鍵設定。以下為參考 Github說明所填寫,適用於GTX1650以下低階顯示卡的設定值。
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A (Fast)"
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B (Fast)"
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C (Fast)"
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode A+A (Fast)"
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_S.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode B+B (Fast)"
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"; show-text "Anime4K: Mode C+A (Fast)"

CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"

原理:Anime4K的開發者提供了數十種以上的著色器,包含放大、修復、銳化、降噪、去模糊。

參見 開發者Github,他定義了A、B、C、A+A、B+B、C+A五種模式,每種模式由多個著色器組成。每按一個組合鍵就會啟用對應的模式提升畫質,使用者要自行判斷哪個比較好。

  1. 接著用MPV播放影片試試吧,檔案管理器裡對影片右鍵應可選取用MPV播放。

  2. 影片播放時按CTRL數字鍵1~6開啟Anime4K提昇畫質,按CTRL+0還原。目前Anime4K v4共有6種模式,通常使用A+A模式效果就夠了。

  3. 啟用Anime4K時可按ShiftI再按2,查看Anime4K的shader有無顯示在user shader列表,代表正確執行。

  4. 如果要設定MPV播放影片便自動套用Anime4K A+A模式,在~/.var/app/io.mpv.Mpv/config/mpv/mpv.conf加入以下設定

glsl-shaders="~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl:~~/shaders/Anime4K_Restore_CNN_S.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_S.glsl"

4. 如何在手機使用Anime4K
#

參考 Android版MPV+Anime4K使用教學 iOS版Anime4K使用教學

5. 配合Vapoursynth提昇影片FPS
#

參見 Linux版Vapoursynth MVTools設定教學

6. 如何用Anime4KCPP轉檔放大影片與圖片
#

Anime4KCPP是採用Anime4K技術的「轉檔」軟體,將Anime4K的升級畫質結果轉成影片儲存,這樣播放就不需要額外耗費顯示卡運算了。

這可以說是離線版的Waifu2x,更棒的是還能轉影片。

Github提供的程式僅Windows和Android版有圖形界面,Linux只有純文字模式。

  1. Linux版要自行編譯,首先安裝編譯用的套件:
sudo pacman -S cmake gcc clang opencv python-opencv boost qt5-tools
  1. 開始編譯:
git clone https://github.com/TianZerL/Anime4KCPP.git
cd Anime4KCPP && mkdir build && cd build && cmake ..
make -j$(nproc)
  1. Anime4KCPP的執行檔位於bin,查看是否有正確安裝:
cd bin
./Anime4KCPP_CLI -V
  1. 接著開始轉檔。Nvidia顯示卡轉檔時可調用CUDA加速,圖片轉檔通常不會超過10秒。

  2. 範例一:將同目錄下的圖片input.png放大4倍,保持圖層透明度,輸出為output.png

./Anime4KCPP_CLI -i "input.png" -o "output.png" --GPUMode --zoomFactor 4 --alpha --CNNMode --HDN
  1. 成果

  2. 範例二:影片放大2倍,MP4轉MKV,使用AVC1編碼:

./Anime4KCPP_CLI -i "input.mp4" -o "output.kmv" --GPUMode --videoMode --codec avc1 --CNNMode --HDN

更多參數參考 Github Wiki

順帶一提,此款工具可以配合 RIFE使用,讓動漫影片變成4K60FPS的豪華內容。

相關文章

免費AI漫畫圖片翻譯軟體 ~ Manga Image Translator安裝與使用
分類   開源AI應用 AI影像處理
標籤   Machine Translation Anime ChatGPT
Linux安裝 Style2Paints 半自動漫畫圖片上色軟體
分類   開源AI應用 AI影像處理
標籤   Image Inpainting
提昇影片播放效果 ~ Linux用MPV Handler播放瀏覽器的Bilibili、Youtube、巴哈動畫瘋串流影片
分類   Linux系統 Linux好用軟體
標籤   MPV Video Upscaling Linux Bilibili Youtube Yt-Dlp Browser Extension

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。