chaiNNer是一款自由開源的圖片處理軟體,主打工作流式操作,將繁複的圖片處理流程自動化。
chaiNNer最主要的功能是放大圖片。
示意圖:圖片放大效果,將上圖的圖片放大並修正模糊噪點,成為下圖
示意圖:圖片放大效果,將左圖放大並修復人臉,放大後變成右邊的樣子。
Ivon之前分享過Upscayl這個軟體,就有使用RealESRGAN模型放大圖片的功能了,那麼為什麼要用chaiNNer呢?追求更高的自由度。
講到工作流的圖片處理軟體,不免會讓人想到ComfyUI吧。是的二者確實有許多相似之處,不過ComfyUI偏重Stable Diffusion圖片生成,而且需要的依賴套件非常多。至於chaiNNer就相對輕量,只提供圖片處理功能。
chaiNNer的定位不只是圖片放大軟體,而是一個以節點為主的圖片處理工作流程 ,有以下功能:
- 可以用來放大動漫圖片,自由選取想要使用的放大模型。可以參考原始圖片修正放大後的顏色。
- 放大真人圖片的時候可以載入GFPGAN臉部修復模型,強化效果
- 如果輸入的圖片是像素畫,則放大後不會模糊。
- 支援放大影片,雖然只是簡單的把影片畫格一張張抽出來放大再拼回去而已。
- 基本圖像處理,涵蓋降噪、調整色溫、裁切、旋轉、加上文字功能,可以針對個人需求設計一套自動化操作。
- 偵測邊緣生成遮罩、生成法線貼圖、AI去背、局部重繪(內容感知填色)
- 相容多種後端,可以使用NCNN或ONNX或PyTorch模型,也可以連接到Stable Diffusion WebUI處理。
本篇文章Ivon示範使用chaiNNer放大圖片,打造類似Upscayl的放大效果,並讓使用者可以根據自己需求做調整。
1. 系統需求#
這個軟體支援Linux、Windows、macOS
chaiNNer需要CUDA,建議使用有Nvidia獨顯的電腦。純用CPU算會很慢。
單純跑放大圖片模型的話4GB VRAM應該是夠用的,不過如果額外疊其他模型可能就會爆掉。
部份模型可以用CPU跑,但運算速度就會慢很多。
2. 安裝chaiNNer#
以Ubuntu為例,先在系統安裝Nvidia驅動與CUDA
然後到Github下載
chaiNNer-linux-x64.zip
,解壓縮,點二下chainner
啟動程式。初次啟動之後會自動安裝好所有Python依賴套件。
安裝好後還要點右上角,依序下載PyTorch和ONNX的依賴套件。
接著就可以開始建立工作流了,將左邊的方塊拖曳到畫面中央,就會成為一個個節點(node)。chaiNNer的基本概念是從左邊「載入檔案」,然後中間節點處理圖片,最後在最右邊的節點「輸出檔案」。連好工作流之後點選畫面上方播放鍵開始運算。
建立工作流後記得按File → Save存檔,chaiNNer的存檔格式是
.chn
3. 下載模型#
chaiNNer功能繁多,依照需求自行到各大網站下載。通常在Github、Huggingface、OpenModelDB都可以找到這些模型。
chaiNNer的作者在這個Github儲存庫分享了支援的模型種類。
chaiNNer沒有限定模型路徑,不過,程式資料都會儲存在程式所在的目錄,下載的模型建議統一放到這裡的models
目錄。
4. 放大圖片工作流#
OpenModelDB有許多用戶訓練的模型分享,效果不一而足,請自行測試。
動漫圖片#
工作流參考:
需要的模型:RealESRGAN_x4plus_anime_6B.pth
RealESRGAN預設會將圖片放大4倍解析度,有放大兼降噪的效果,應該不需要用到降噪模型。
為了防止圖片放大後產生色偏,有使用顏色修正節點。修正顏色的我使用不吃GPU的簡單Average Color Fix節點。如果想要更好效果試試Wavelet Color Fix節點。
如果輸入圖片解析度太大,中間可以再插入一個Resize的節點,將圖片裁切後再放大。
這個工作流會讀取該圖片並輸出到同一個目錄下。如果要批次處理圖片:將Load Image的節點換成Load Images節點,這樣就會變成處理特定目錄下的所有圖片。
真實圖片#
工作流參考:
需要的模型:GFPGAN.pth
臉部修復模型和4x_NMKD-Siax_200k.pth
放大模型。NKMD系列的模型效果都不錯,不會有很重的油畫感。
流程與放大動漫圖片類似,但是多加了一個臉部修復模型。這個模型會針對圖片中的臉部進行修復,使得圖片放大後不會出現噪點。
先放大圖片,然後用臉部修復強化,效果比較好。因為臉部放大模型會將整張圖片解析度再次放大,所以最後使用Resize節點調整大小,防止圖片過大。
5. 放大影片工作流#
工作流參考:
跟放大圖片流程一樣,使用類似的模型。原理是簡單的把影片畫格一張張抽出來,放大,再拼回去。
影片格式選MKV,至於輸出FPS還有音軌繼承原始影片,所以把二者節點連在一起。
6. 圖片去背工作流#
工作流參考:
需要的模型:u2net.oonx
使用Remove Background節點之後,圖片會產生遮罩,要連到Alpha Matting切分圖片,再把去背後的圖片存檔。
如果要搭配圖片放大節點使用的話,建議是先「放大圖片」再跑「去背」流程,不然透明圖層會變成黑色的。