人工智慧AI影像風格遷移(StyleTransfer),基於雙層ControlNet(Python3.10)

劉悅的技術部落格發表於2023-04-21

影像風格遷移(Style Transfer)是一種計算機視覺技術,旨在將一幅影像的風格應用到另一幅影像上,從而生成一幅新影像,該新影像結合了兩幅原始影像的特點,目的是達到一種風格化疊加的效果,本次我們使用Stable-Diffusion結合ControlNet來實現影像風格遷移效果。

安裝ControlNet外掛

首先確保本地已經安裝並且配置好了Stable-Diffusion-Webui服務,關於Stable-Diffusion-Webui,請參見:人工智慧,丹青聖手,全平臺(原生/Docker)構建Stable-Diffusion-Webui的AI繪畫庫教程(Python3.10/Pytorch1.13.0),這裡不再贅述。

隨後進入專案目錄,啟動Stable-Diffusion-Webui服務:

python3 launch.py

如果是沒有N卡的電腦,就使用cpu模式啟動:

python3 launch.py --skip-torch-cuda-test --upcast-sampling --use-cpu interrogate

接著訪問 http://localhost:7860

選擇外掛(Extensions)選項卡

點選從url安裝,輸入外掛地址:github.com/Mikubill/sd-webui-controlnet.git

安裝成功後,重啟WebUI介面。

由於ControlNet預設是一層網路,風格化操作我們需要兩層,所以在設定選單(Settings)中,將多層網路設定為2。

設定好之後,下載模型檔案:huggingface.co/webui/ControlNet-modules-safetensors/tree/main

將模型放入 stable-diffusion-webui/extensions/sd-webui-controlnet/models目錄

這裡還需要單獨下載一個風格遷移模型,地址是:huggingface.co/TencentARC/T2I-Adapter/blob/main/models/t2iadapter_style_sd14v1.pth

同樣放入stable-diffusion-webui/extensions/sd-webui-controlnet/models目錄

至此,Stable-Diffusion-Webui服務的ControlNet外掛就配置好了。

風格遷移

現在,我們開啟ControlNet的第一個圖層,將原始影像的輪廓渲染出來,因為需要保證原始影像的基本形狀。

這裡前處理器選擇head,模型使用ControlNet的head模型即可。

可以看到基本輪廓已經得到了保留,風格化只負責顏色和線條。

隨後配置第二個ControlNet圖層,前處理器選擇t2ia_style-clipvison,模型選擇剛剛下載的t2iadapter_style_sd14v1.pth,預設影像權重為1,先不要動。

接著上傳一張目標風格的圖片,這裡我們選擇文森特梵高的表現主義作品《星空》:

隨後點選Generate按鈕做圖生圖(img2img)操作即可。

過擬合問題(Overfitting)

經過一段時間的本地推理,生成結果如下:

效果並不盡如人意,這也是大多數深度學習入門者會遇到的問題,也就是過擬合問題。

過擬合(Overfitting)是指在訓練模型時,模型過度地學習了訓練資料的特徵和噪聲,從而導致模型在新資料上表現不佳的問題。

通俗地講,過擬合就像是一名學生背誦考試答案,但是他只是死記硬背了考試題目的答案,沒有真正理解題目的本質和解題思路。當他遇到新的考試題目時,由於沒有理解題目的本質和解題思路,他就無法正確回答。

在機器學習中,過擬合的原因是模型複雜度過高,導致模型對訓練資料中的噪聲和特徵都過度追求,並且忽略了資料背後的本質規律和特徵。因此,當模型面對新的資料時,由於沒有真正理解資料的本質規律和特徵,它就無法正確地對新資料進行預測。

說白了,就是對於原始圖的特徵過分追求,從而淡化了目標圖的風格,還記得ControlNet預設權重是1嗎?這裡我們只需要將權重往下調整,比如調成0.8,再次嘗試生成:

效果不錯,既保留了原始圖的大部分細節,又增加了梵高的表現主義風格。

當然了,權重也不能一味地往下調整,否則也會出現欠擬合(Underfitting)問題,整個風格化遷移的過程也可以理解為是一種“調參”的過程。

結語

透過Stable-Diffusion結合ControlNet外掛,我們可以得到一幅新的影像,該影像結合了兩幅原始影像的特點,既具有內容影像的內容,又具有風格影像的風格。影像風格遷移也可以應用於其他的領域,比如電影、遊戲、虛擬現實和動畫創作等等。

相關文章