影像風格遷移(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插件,我們可以得到一幅新的影像,該影像結合了兩幅原始影像的特點,既具有內容影像的內容,又具有風格影像的風格,影像風格遷移也可以應用于其他的領域,比如電影、游戲、虛擬現實和影片創作等等,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550747.html
標籤:其他
上一篇:年薪50W京東軟體測驗工程師的成長路 —— 我們都曾一樣迷茫
下一篇:返回列表
