在最近半年和大家交流 AIGC 相關(guān)問題時(shí),最讓大家頭疼的問題之一就是如何讓 AI 繪制的圖像更加清晰。
推薦閱讀
受限于服務(wù)器或硬件本身的性能,很多時(shí)候我們無法一步得到自己滿意的圖像,而生成擁有高清細(xì)節(jié)的大圖又是每一位 AI 繪畫愛好者的追求。今天我會(huì)為大家匯總并分析市面上各類常見的圖像高清放大工具,以及操作方法和運(yùn)行原理,附件也為大家整理了下載資源,強(qiáng)烈推薦每位追求圖像高清化的寶子們查閱收藏,快來看看吧~
以下是正文部分
1. 圖像的 2 種類型:矢量圖&位圖
在正式介紹各類工具前,先為不少小白玩家介紹下圖像文件的類型和影響圖像觀感的因素,方便大家更好理解決定圖像清晰度的底層原理。
首先,圖片的類型可以大致分為矢量圖和位圖兩種。先來看看矢量圖,我們常見的 ai、eps、svg 等格式后綴都是矢量圖文件。矢量圖是由數(shù)字線條呈現(xiàn)的一種圖像,原理是將圖像信息儲(chǔ)存為代碼公式,因此它的最大特點(diǎn)體積小,并且無論放大多少倍,圖像依舊可以呈現(xiàn)出光滑的邊緣,不會(huì)出現(xiàn)失真的效果。
位圖的專業(yè)稱呼是點(diǎn)陣圖或柵格圖,它的常見格式有 jpg、gif、png 等。這類圖像是由一個(gè)個(gè)像素點(diǎn)所組成的,每個(gè)像素點(diǎn)都是一個(gè)顏色方塊,當(dāng)不同方塊組合在一起我們整體來看時(shí),最終就是一張完整的圖像了。下圖是由矢量圖柵格化轉(zhuǎn)化成的位圖,可以看到圖像邊緣有非常明顯的顆粒感。
通常我們會(huì)使用矢量圖來承載簡(jiǎn)單幾何圖形和需要無限縮放的圖像,而位圖則用來承載表現(xiàn)色彩豐富、細(xì)節(jié)復(fù)雜的圖像。對(duì)于 AI 繪圖而言,目前使用的基本都是 Diffusion 擴(kuò)散模型,這類模型的原理是通過逐步降噪的方式來讓圖像逐步具象化。因此 AI 模型繪制的圖像只能是位圖,而我們所討論的圖像高清化也是針對(duì)像素顆粒組成的位圖而言。
2. 影響圖像觀感的主要因素
那影響位圖顯示效果的具體有哪些因素呢?對(duì)很多新手來說,最容易產(chǎn)生的誤解就是將圖像文件的大小和清晰效果劃等號(hào),以為文件越大則圖像顯示效果越清晰。其實(shí),文件大小只是圖像顯示的結(jié)果,而并非原因。換句話說,清晰的圖像往往文件大小和尺寸都會(huì)比較大,但文件或尺寸大并不意味著圖像顯示效果就一定好。
舉個(gè)最簡(jiǎn)單的例子,我們將一張?jiān)?72x72 尺寸的圖像放大到原有尺寸的 4 倍再導(dǎo)出,即使圖像尺寸變大,文件大小也增大了,但實(shí)際的清晰度并沒有任何改變,其原理在于放大過程中并沒有增加有用的像素信息,圖像細(xì)節(jié)并沒有變化。這個(gè)過程就像一塊蛋糕從 4 塊切成了 16 塊,雖然看似蛋糕數(shù)量增多了,但本質(zhì)上蛋糕的實(shí)際體積并沒有發(fā)生變化。
那我們究竟該怎么判斷圖像的真正清晰程度呢?看得比較仔細(xì)的小伙伴應(yīng)該發(fā)現(xiàn)了,在上圖案例中 2 張圖雖然尺寸相差 4 倍,但分辨率卻都是 72*72,而分辨率正是我們判斷一張圖像清晰程度的直觀參數(shù)。
分辨率,又叫解析度、解像度,它決定了位圖圖像細(xì)節(jié)的精細(xì)程度。分辨率和圖像的像素有直接關(guān)系,通常情況下圖像的分辨率越高,所包含的像素細(xì)節(jié)就越多,圖像就越清晰。分辨率的兩個(gè)數(shù)字表示的是圖片在長(zhǎng)和寬上所占像素的單位,比如一張分辨率為 640 x 480 的圖片,分辨率就達(dá)到了 640 x 480=307200 像素,也就是我們常說的 30 萬(wàn)像素。
那么圖像分辨率大,我們看到的圖像就一定足夠清晰嗎?這也不一定,因?yàn)閳D像實(shí)際的成像效果還受到顯示媒介的影響,比如一張高分辨率的圖片在 1080P 屏和 5K 屏上看到的效果是完全不同的,那這里的顯示器分辨率和圖像分辨率是什么關(guān)系呢?
要明白這個(gè)概念,首先要理解圖像在顯示屏上的成像原理。當(dāng)一張 4096*2160 分辨率的圖片應(yīng)用到顯示器上時(shí),圖片中的單個(gè)像素會(huì)依次映射到屏幕上的單個(gè)像素上的,如果顯示器支持顯示的像素?cái)?shù)只有 1920*1080,那最終只能看到相應(yīng)數(shù)量的像素點(diǎn),多余的像素會(huì)被移除,因此圖片實(shí)際看起來只有 1920*1080 的清晰度。
而如果顯示器支持顯示的像素?cái)?shù)能達(dá)到 4096*2160(也就是我們俗稱的 4K 屏),則所有像素點(diǎn)都能被完整顯示,圖片看起來就是完整的 4096*2160,這也是為什么大家會(huì)追求高 K 級(jí)的顯示器,因?yàn)榭梢猿尸F(xiàn)更清晰完整的圖像畫質(zhì)。
這里需要注意的是,像素 Pixel 是一個(gè)相對(duì)單位,而非物理世界的實(shí)際可度量的尺寸。同樣 1920 像素*1080 像素,既可以指小尺寸手機(jī)的分辨率,也可以指大尺寸筆記本的分辨率,也就是說在單個(gè)像素點(diǎn)在不同尺寸的屏幕上物理尺寸也是不同的,決定最終成像清晰度要綜合考慮顯示器尺寸和顯示器分辨率 2 個(gè)因素來看。
這里就有了顯示器像素密度的概念,像素密度的單位為 PPI,Pixels Per Inch 所表示的是每英寸所擁有的像素?cái)?shù)量:PPI 數(shù)值越高,即代表顯示屏能夠以越高的密度顯示圖像,高分辨率的圖像也就能被完整映射,看起來更加清晰。
通過下面這個(gè)案例我們也可以看出,32 寸 2K 顯示器和 24 寸 1080P 顯示器的 PPI 完全相同,也就是兩者的清晰度是完全一樣的,并非我們平時(shí)理解的 2K 顯示器一定比 1080P 清晰。(K 級(jí)針對(duì)的是橫向分辨率,P 級(jí)針對(duì)的是縱向分辨率)
總結(jié)來說,圖像的最終顯示效果同時(shí)受到圖像自身分辨率和顯示設(shè)備像素密度的影響,但本文重點(diǎn)是針對(duì)圖像放大,關(guān)于顯示設(shè)備此處就不做過多贅述了。而在設(shè)備不變的情況下,如果想實(shí)現(xiàn)圖像清晰化的唯一辦法就是提升圖像自身分辨率,即補(bǔ)充畫面中像素細(xì)節(jié)。這個(gè)過程就像是像素畫到寫實(shí)照片的過程,隨著像素細(xì)節(jié)的增多,圖像的畫質(zhì)會(huì)顯著提升,視覺觀感上也就愈加細(xì)膩入微。
對(duì) AI 繪圖工具而言,通常情況下只要設(shè)定好圖像尺寸,在運(yùn)行過程中模型就會(huì)自動(dòng)給我們繪制出相應(yīng)分辨率的圖像來,因此圖像尺寸設(shè)置越大,最終出圖的分辨率也就越高,但是我們發(fā)現(xiàn)往往 AI 繪圖工具會(huì)限制初始的出圖尺寸。比如 Midjourney 的默認(rèn)出圖和常用功能都會(huì)限制尺寸為 1024 分辨率,這是為什么呢?
對(duì)于這類在線繪圖工具而言,平臺(tái)方一方面需要考慮服務(wù)器資源算力分配問題。圖像分辨率越高,要繪制的像素?cái)?shù)量也就越多,會(huì)消耗更多的算力資源。但是用戶通過額外付費(fèi)其實(shí)可以獲取更多算力資源,所以算力并不是影響出圖結(jié)果的主要原因。
實(shí)際影響出圖尺寸的是模型訓(xùn)練時(shí)采用的圖像數(shù)據(jù)集。對(duì) SD 的 V1.5 版本的繪圖模型而言,通常我們的圖像分辨率都是設(shè)置在 512~768 范圍內(nèi),這是因?yàn)樵谟?xùn)練模型時(shí)使用的數(shù)據(jù)集圖像也是使用的這個(gè)尺寸,如果圖像尺寸設(shè)置超過這個(gè)范圍,模型往往會(huì)將繪圖指令理解為多張小圖拼合的結(jié)果,因而出圖結(jié)果中會(huì)出現(xiàn)多人或多肢體的情況,就像下圖一樣。
平臺(tái)方在訓(xùn)練模型時(shí)限于成本預(yù)算和效率需要,往往采集的訓(xùn)練圖像集不會(huì)出現(xiàn)過大的情況,因此在目前顯卡算力的水平下,大多數(shù)在線 AI 繪圖工具平臺(tái)支持默認(rèn)初始繪制的圖像分辨率大多在 1024 左右。而要實(shí)現(xiàn)更加清晰的圖像繪制,我們可以通過一些高清放大的工具在現(xiàn)有小圖的基礎(chǔ)上進(jìn)行二次放大。
下面給大家介紹幾種我們迄今市面上常見的圖像高清化方法和技巧,在文章結(jié)尾我會(huì)為大家整理各類方法的優(yōu)劣勢(shì)和適用場(chǎng)景,方便大家自行選用。
對(duì) SD 繪制的圖像而言,可以通過 WebUI 原生功能直接進(jìn)行圖像放大,還可以通過下載一些擴(kuò)展插件來增強(qiáng)放大效果,我們先來看看原生放大部分。
1. 高清修復(fù)和圖生圖
在 SD WebUI 的文生圖模塊,內(nèi)置了 Hires-Fix 高清修復(fù)功能,這就是我們平時(shí)最常使用的高清放大功能了。
高清修復(fù)的原理很簡(jiǎn)單:本質(zhì)上是在原圖基礎(chǔ)上進(jìn)行了一次額外的圖生圖重繪。操作方法也很簡(jiǎn)單,我們以 512 分辨率的圖像為例,先在文生圖中生成一張所需的圖像,當(dāng)圖像內(nèi)容比較滿意時(shí),我們將對(duì)應(yīng)圖像的種子值固定。接著勾選高清修復(fù)選項(xiàng),將圖像放大倍數(shù)設(shè)置為原圖的 2 倍,重繪后的圖像尺寸即為 512*2=1024px。
這里的放大算法有很多,我們使用針對(duì)寫實(shí)圖片的 R-ESRGAN4x+算法,將重繪幅度設(shè)置為 0.5 并點(diǎn)擊生成,即可獲取一張被放大 2 倍的圖像,相較之下放大后的圖像擁有更多細(xì)節(jié),畫質(zhì)清晰度得到了明顯提升。
除了文生圖模塊,使用圖生圖進(jìn)行重繪也是同樣的原理,實(shí)際操作上我們只需將原圖發(fā)送至圖生圖模塊,固定種子值并設(shè)置圖像尺寸后點(diǎn)擊生成即可。
使用高清修復(fù)和圖生圖進(jìn)行圖像高清放大的優(yōu)點(diǎn)在于操作簡(jiǎn)單直接,無需其他復(fù)雜設(shè)置即可完成。受限于顯卡性能和出圖效率,我們?cè)诶L圖前往往都是先通過抽獎(jiǎng)的方式多生成幾張小圖,然后從中選擇最滿意的一張使用高清修復(fù)或圖生圖進(jìn)行高清放大。
由于是在原圖基礎(chǔ)上進(jìn)行重繪,所以我們可以通過重繪幅度參數(shù)來控制重繪后和原圖的變化強(qiáng)度。通常建議將重繪幅度設(shè)置在 0.5 左右,如果想保證和原圖盡可能接近,還可以適當(dāng)降低參數(shù)數(shù)值。
下圖的案例中為了加強(qiáng)體現(xiàn)重繪幅度對(duì)圖像內(nèi)容的影響變化,我們?cè)趫D像重繪時(shí)調(diào)整了提示詞內(nèi)容,實(shí)際如果只想對(duì)圖像放大重繪,提示詞內(nèi)容應(yīng)保持不變或盡可能和原圖內(nèi)容吻合。
2. 后期處理
除了以上方法,還有一個(gè) SD WebUI 原生自帶的圖像高清化功能,叫「后期處理」模塊。在頂部標(biāo)簽頁(yè)找到并打開之后,我們會(huì)發(fā)現(xiàn)該模塊支持設(shè)置的操作項(xiàng)并不多。
要使用后期處理功能非常簡(jiǎn)單,只需將需要放大的圖像進(jìn)行上傳,選擇好放大算法和放大倍數(shù)點(diǎn)擊生成即可。
相較于圖生圖,后期處理并沒有將圖像進(jìn)行完整的重繪,只是使用算法進(jìn)行了簡(jiǎn)單的放大處理。因此放大后的圖像畫質(zhì)幾乎沒有太大的提升,這里我們即使將圖像放大至原有的 4 倍,畫面中之前粗糙的細(xì)節(jié)顆粒依舊會(huì)被保留。
使用該方法進(jìn)行圖像放大幾乎沒有任何門檻,無需考慮原圖的模型、種子值、重繪幅度等參數(shù),甚至手機(jī)拍攝的照片也可以直接進(jìn)行放大。因此后期處理模塊的功能多用于對(duì)已經(jīng)生成的圖像進(jìn)行簡(jiǎn)單處理,在日常工作中使用較少。
以上就是 SD 原生放大圖像的 2 種方法,除此之外通過安裝一些擴(kuò)展插件可以實(shí)現(xiàn)更有效的圖像高清化處理,如果你用的是整合包,其中部分?jǐn)U展可能已經(jīng)默認(rèn)幫你安裝好,在圖生圖頁(yè)面下方可以找到。如果你還沒有對(duì)應(yīng)擴(kuò)展,可以看下這 3 種安裝方案任選其一即可。需要注意的是,以下下載和安裝過程需要在科學(xué)網(wǎng)絡(luò)的條件下進(jìn)行,否則會(huì)出現(xiàn)無法鏈接的情況。
1. 擴(kuò)展插件安裝方法
方法一:官方市場(chǎng)安裝
打開擴(kuò)展-可下載-加載擴(kuò)展列表,在其中搜索擴(kuò)展名稱即可找到對(duì)應(yīng)擴(kuò)展點(diǎn)擊下載即可。
方法二:URL 地址安裝
將選項(xiàng)卡切換到從網(wǎng)址安裝選項(xiàng)頁(yè),將對(duì)應(yīng)的擴(kuò)展插件地址粘貼到輸入框中,即可自動(dòng)下載和安裝好擴(kuò)展。
方法三:本地安裝
直接下載對(duì)應(yīng)的擴(kuò)展文件包,解壓后放至 WebUI 根目錄下的「\extensions」文件夾,再重載 WebUI 界面即可正常使用。
我已經(jīng)為大家提前下載好了所需的插件資源,文章附件即可找到對(duì)應(yīng)的擴(kuò)展安裝包。
2. 原圖切片重繪:Ultimate SD Upscale
資源地址: https://github.com/Coyote-A/ultimate-upscale-for-automatic1111.git
我們先來看看第一款插件 Ultimate SD Upscale。在前面 SD WebUI 原生的高清放大操作中,我們是直接將原圖丟給模型進(jìn)行完整的重繪,但是受限于顯卡的算力,我們支持重繪的圖像尺寸往往都比較小。那有沒有方法可以在不升級(jí)硬件的情況下繪制更大尺寸的圖像呢?
Ultimate SD Upscale 插件就可以實(shí)現(xiàn)這樣的效果,該插件最大的特點(diǎn)就是在繪制前先將圖像切割成多個(gè)小塊切片,并挨個(gè)針對(duì)每張切片進(jìn)行單獨(dú)繪制,最后再通過算法將切片拼合為原始的一張圖。通過這樣切割分塊繪制的方法,可以極大的緩解硬件的運(yùn)行壓力,等于是間接提升圖像繪制清晰度的上限。
我們?cè)诎惭b完腳本擴(kuò)展后,在圖生圖模塊下面的腳本下拉中選擇 Ultimate SD Upscale。如果你沒有找到對(duì)應(yīng)腳本,大概率是還在文生圖模塊下或沒有刷新,只需重啟 WebUI 并切換到圖生圖模塊下。
使用 Ultimate SD Upscale 也很簡(jiǎn)單,一般保持默認(rèn)參數(shù)即可,然后再點(diǎn)擊生成。在生成過程中可以清楚看到該插件主要是在針對(duì)切片進(jìn)行挨個(gè)繪制。
下面針對(duì)使用該擴(kuò)展時(shí)的一些關(guān)鍵參數(shù)進(jìn)行說明:
- 重繪強(qiáng)度:由于是針對(duì)切片進(jìn)行重繪,避免重繪后切片內(nèi)容差異過大,建議數(shù)值設(shè)置為 0.35,如果想盡量避免圖像發(fā)生改變可設(shè)置為 0.15~0.20;
- 目標(biāo)圖像尺寸設(shè)置 Target size type:可以選擇跟隨圖生圖原生設(shè)置的寬高,也可以自定義圖像寬高,最大值為 8192;
- 圖像的處理方式 Type:建議優(yōu)先選擇 Chess,可以一定程度上減少接縫處不連貫的問題;
- 切片寬高 Tile width / height:設(shè)置切片的寬度和高度。切片的大小影響最終圖像的效果,一般切片越大,圖像完整性越好但對(duì)顯卡的性能要求也就越高。一般對(duì)于 2048px 的圖,切片設(shè)置為 512px 就夠了;
- 切片間重疊區(qū)域 Padding:數(shù)值越大則切片融合效果越好,但繪圖時(shí)間會(huì)增長(zhǎng);
- 邊緣羽化程度 Mask blur:用于調(diào)整切片的融合程度,針對(duì) 512~768px 的切片,建議設(shè)置為 12~16;
- 圖像接縫的修復(fù)方式 Seams fix type:建議選擇 Half tile offset pass;
- 接縫修復(fù) Seams fix:建議開啟,可修復(fù)切片接縫;
以上大部分參數(shù)都很好理解,其中為什么要在塊與塊之間設(shè)置重疊區(qū)域呢?這里的原理其實(shí)和圖生圖的「蒙版邊緣模糊度」參數(shù)類似,是為了減少切片之間融合產(chǎn)生的邊界線問題。
下圖中分別是設(shè)置了重疊區(qū)域和未設(shè)置時(shí)的繪圖對(duì)比,可以發(fā)現(xiàn)在未設(shè)置重疊區(qū)域的情況下,切片之間會(huì)有明顯的切縫,而設(shè)置了重疊區(qū)域后切片間融合效果好得多。需要注意的是,重疊區(qū)域的寬度通常設(shè)置為切片寬度的 1/3~1/2 即可,過大的重疊區(qū)域繪制會(huì)浪費(fèi)算力,顯著降低運(yùn)行速度。
當(dāng)然如果大家覺得參數(shù)理解起來非常麻煩,下面也給大家提供了分別繪制 2048 和 4096 分辨率圖像的推薦參數(shù),在繪制對(duì)應(yīng)尺寸圖像時(shí)直接設(shè)置成同樣的數(shù)值即可。
除了 Ultimate SD Upscale 外,我們有時(shí)候還會(huì)看到 SD Upscale 等其他輔助放大圖像的腳本插件,它們大多也都是采用切片重繪的操作過程,但相較之下其他插件功能單一且支持設(shè)置的參數(shù)項(xiàng)更少,所以建議大家只需下載 Ultimate SD Upscale 這一款功能齊全的擴(kuò)展插件即可。
3. 潛空間切片重繪:Multi Diffusion
資源地址: https://github.com/pkuliyi2015/multidiffusion-upscaler-for-automatic1111.git
說到切片重繪,除了上面的 Ultimate SD Upscale 之外,另外一款采用同樣原理來提高繪圖上限的插件更為被大家熟知,那就是大名鼎鼎的 Multi Diffusion,作為目前市面上圖像高清處理的集大成者:除了繪制速度更快,可控性更強(qiáng)等優(yōu)勢(shì)外,它還優(yōu)化了 SD 對(duì)本地顯存的應(yīng)用,極大的降低了顯存負(fù)荷。
具體效果可以看下圖,同樣是將 512 分辨率的圖像放大 4 倍到 2048。開啟 Multi Diffusion 后雖然運(yùn)行時(shí)間差不多,但肉眼可見的是顯存占用下降了一半之多,而實(shí)際的圖像效果卻基本一致,簡(jiǎn)直完美。
實(shí)際場(chǎng)景下該擴(kuò)展可以提升的繪圖效率至少在 50%,比如原本 12G 顯存默認(rèn)只能繪制 1024px 左右尺寸的圖像,配合 Multi Diffusion 擴(kuò)展后,繪圖上限直接提升到 8k 圖。
嚴(yán)格來說,Multi Diffusion 是由 Tiled Diffusion 和 Tiled VAE 兩款插件組合而成的。Tiled Diffusion 生效在 Diffusion 擴(kuò)散模型運(yùn)作過程,而 Tiled VAE 作用在 VAE 模型圖像編解碼過程,在實(shí)際使用時(shí)需要同時(shí)開啟 2 個(gè)擴(kuò)展,配合使用體驗(yàn)更佳。
下面分別介紹下 2 個(gè)擴(kuò)展的一些關(guān)鍵參數(shù)。首先是 Tile Diffusion:
保持輸入圖像大小 Overwrite image size:開啟后即以擴(kuò)展中設(shè)置的圖像尺寸為準(zhǔn),原生圖中的尺寸大小將被覆蓋,通過此設(shè)置可以突破 WebUI 默認(rèn)的圖像尺寸上限,最高可達(dá) 16384x 16384
模型算法方案 Method:用來選擇擴(kuò)展運(yùn)行的算法方案,有 MultiDiffusion 和 Mixture of Diffusers 兩種。實(shí)際體驗(yàn)下來 2 種算法出圖效果差不多,但前者運(yùn)行速度會(huì)稍微快一點(diǎn)。
下面這部分潛空間分塊設(shè)置參數(shù)是擴(kuò)展最重要的參數(shù)設(shè)置項(xiàng),這里決定了我們?cè)谶M(jìn)行圖像繪制時(shí)的處理效率,需要根據(jù)顯卡性能進(jìn)行對(duì)應(yīng)微調(diào)。要理解這類參數(shù)的作用,需要先回顧下潛空間的概念:如今的 SD 模型之所以可以在商用級(jí)顯卡上運(yùn)行,是沿用了潛在擴(kuò)散模型的降維技術(shù),圖像在處理前會(huì)先從像素空間壓縮 8 倍后,降維到潛空間中進(jìn)行運(yùn)算,從而緩解硬件的運(yùn)算壓力,而下面這些潛空間切片設(shè)置參數(shù)也就是設(shè)置在潛空間中的圖像尺寸。
- 潛空間分塊寬度和高度 Latent tile width and height:更改切片的寬度和高度。切片的寬高越大,出圖效果越好,但顯存壓力也會(huì)越大。通常建議大家將塊大小設(shè)置在 64~160 之間,比如 96 和 128 都是比較合適的塊大小尺寸。
- 潛空間分塊重疊區(qū)域 Latent tile overlap:設(shè)置切片彼此重疊的程度。數(shù)值越大則圖像生成時(shí)間越長(zhǎng),但可以有效增強(qiáng)切片之間的連貫性,建議設(shè)置數(shù)值比切片寬高中最低值稍微大一點(diǎn)即可。如果原圖的寬度或高度過大并開啟高清修復(fù)時(shí),可以將數(shù)值設(shè)置小一點(diǎn)。
- 潛空間分塊單批繪制數(shù)量 Latent tile batch size:設(shè)置同批次下繪制切片的數(shù)量。如果顯卡的內(nèi)存足夠大,建議設(shè)置為 8,可以有效減少繪圖時(shí)間,但對(duì)圖像質(zhì)量沒有任何影響。
Tiled Diffusion 之所以繪制大尺寸圖像時(shí)有如此高的上限,很大程度上是因?yàn)樗谇衅乩L的基礎(chǔ)上增加了潛空間運(yùn)算的維度,通過將圖像擴(kuò)散生成的過程放置在潛空間內(nèi)運(yùn)行,可以極大的減少算力壓力,從而實(shí)現(xiàn)更高上限的圖像繪制。
有朋友可能好奇潛空間切片尺寸的 64~160 這 2 個(gè)范圍區(qū)間是如何得來的,我們都知道 SD 主模型基于參數(shù)量級(jí)的不同,適合繪制的圖像尺寸也有很大差異:比如 v1.5 版本以下的模型適合繪制 512 分辨率圖像,v2.1 適合 768 分辨率,而 SDXL 可以直出 1024 分辨率圖像。
而目前市面上主流模型支持的繪圖尺寸基本都在 512~1280 這個(gè)范圍區(qū)間內(nèi)。我們前面提到的 512~1280 范圍區(qū)間,降維到潛空間縮小 8 倍恰好是 64~160,對(duì)應(yīng)的也就是推薦設(shè)置的切片大小。
在 Tiled Diffusion 下面還有一塊分區(qū)提示詞參數(shù),該功能可以在同一畫布中針對(duì)不同區(qū)域設(shè)置不同提示詞,實(shí)現(xiàn)分區(qū)控制的效果。該功能其實(shí)有點(diǎn)類似 PS 的創(chuàng)意生成功能,但缺點(diǎn)是選區(qū)不夠靈活,后續(xù)我會(huì)通過其他教程介紹更合適的操作方法,此處先按下不表。
下面我們?cè)賮砜纯?Tile VAE。VAE 模型是 SD 運(yùn)行過程中不可或缺的模型,用于將圖像從潛空間中解碼成大圖,但這個(gè)過程通常需要消耗很大一部分顯存性能。而 Tile VAE 擴(kuò)展可以極大程度的降低編解碼過程中的顯存壓力,以默認(rèn)參數(shù)為例,如果之前你的顯卡只能支持 1.5 倍的高清放大,開啟擴(kuò)展后就能直出放大 2 倍的圖像。
由于對(duì)顯存影響主要是未降維前的切片大小,因此如果你在圖像生成后有提示「CUDA error: out of memory」即顯存不足的報(bào)錯(cuò),可以適當(dāng)降低編碼器切片大小 Encoder Tile Size 的數(shù)值。
- 編碼器切片大小 Encoder Tile Size:用于設(shè)置降維到潛空間的切片大小
- 解碼器切片大小 Decoder Tile Size:用于設(shè)置還原到像素空間的切片大小
- 快速編碼器 Fast encoder:默認(rèn)啟用,但有時(shí)會(huì)導(dǎo)致顏色變異,不建議開啟
4. 避免全局干擾:Tile 控制網(wǎng)絡(luò)模型
資源地址: https://github.com/Mikubill/sd-webui-controlnet
除了硬件方面的顯存要求,另一個(gè)讓大家很頭疼的就是重繪時(shí)切片內(nèi)容問題,簡(jiǎn)單來說就是切割后的每張切片圖在重繪時(shí)都會(huì)收到全局提示詞的影響。舉個(gè)例子,我們的全局提示詞是“女孩”,當(dāng)我們繪制大尺寸圖像時(shí),原圖被分割為多張切片,我們希望的是每個(gè)切片重繪各自原有的內(nèi)容,但實(shí)際上每張切片都會(huì)被識(shí)別成一張獨(dú)立的圖片,導(dǎo)致每個(gè)塊中可能都會(huì)理解成單獨(dú)繪制一個(gè)女孩,出現(xiàn)如下圖所示變形的結(jié)果。
而 ControlNet 中的 Tile 模型正好可以巧妙的解決這個(gè)問題,該模型最大的特點(diǎn)就是在優(yōu)化圖像細(xì)節(jié)的同時(shí)不會(huì)影響畫面結(jié)構(gòu)。因此我們?cè)谑褂?ControlNet 模型時(shí),可以直接將重繪幅度設(shè)置為最大值 1,ControlNet 依舊可以穩(wěn)定的控制繪圖結(jié)果,而很少出現(xiàn)產(chǎn)生夸張的變形。
之所以會(huì)有這樣的效果,是因?yàn)樵谶\(yùn)行過程中 Tile 進(jìn)行了 2 步額外的處理:
- 忽略原有圖像中的細(xì)節(jié)并生成新的細(xì)節(jié)。
- 如果小方塊的原有語(yǔ)義和提示詞不匹配,則會(huì)忽略全局提示詞,轉(zhuǎn)而使用局部的上下文來引導(dǎo)繪圖。
通過這種方式,我們?cè)诶L制圖像時(shí)啟用 Tile 模型,便可主動(dòng)識(shí)別每張切片中的語(yǔ)義信息,減少全局提示的影響,也因此 ControlNet Tile 被廣泛用于圖像細(xì)節(jié)修復(fù)和高清放大等場(chǎng)景,可以說和切片重繪的處理方式是天作之合。
關(guān)于 ControlNet 中的 Tile 模型在之前的 ControlNet 教程中已經(jīng)做過介紹,需要安裝和學(xué)習(xí)的朋友可以翻看之前的文章進(jìn)行查閱。
5. Upscayl-免費(fèi)開源的 AI 圖像放大工具
資源地址: https://github.com/upscayl
以上方法主要是針對(duì)使用 SD 中的插件來實(shí)現(xiàn)圖像高清放大的效果,在日常工作中,我們還會(huì)遇到很多輕量化放大圖像的場(chǎng)景,如果每次都打開 SD 來進(jìn)行放大,未免太過麻煩。下面再給大家推薦一款好用且免費(fèi)開源的 AI 圖像處理工具 Upscayl,它具有免費(fèi)開源、無損放大、處理快速、支持多格式、簡(jiǎn)單易用等特點(diǎn),無需聯(lián)網(wǎng)和額外付費(fèi)就能輕松實(shí)現(xiàn)最高 16 倍的圖像放大。
使用 Upscayl 方法非常簡(jiǎn)單,我們從 Upscayl 官網(wǎng)或官方 Github 頁(yè)面下載程序后進(jìn)行本地安裝。安裝完成后打開 Upscayl,在其中拖入需要放大的圖像,直接點(diǎn)擊執(zhí)行放大按鈕,即可生成一張放大 4 倍的圖像。
由于沒有經(jīng)過擴(kuò)散模型的重繪過程,因此 Upscayl 的放大效果類似 WebUI 原生后期處理功能的升級(jí)版,只能在原圖基礎(chǔ)上增加像素?cái)?shù)量,但無法針對(duì)畫面細(xì)節(jié)進(jìn)行補(bǔ)充和重構(gòu),所以 Upscayl 多用來處理畫面內(nèi)容模糊、邊緣粗糙等簡(jiǎn)單修復(fù)。
當(dāng)然,除了操作便捷、免費(fèi)開源等優(yōu)點(diǎn),Upscayl 也支持切換不同的放大算法,可以自行下載更多算法模型用于不同類型的圖像處理。此外批量處理、設(shè)置放大倍數(shù)、切換視圖模式等功能也是支持的,更多玩法大家可以自行嘗試。
注意并不建議大家每次都直接開啟 Multi-Diffusion 或 ControlNet Tile 來繪制任意尺寸圖像,大炮射蚊子的操作雖然簡(jiǎn)單粗暴,但有時(shí)候并不會(huì)生效還會(huì)白白浪費(fèi)硬件算力。
下面是針對(duì)今天分享內(nèi)容整理的總結(jié),大家可以根據(jù)自己的實(shí)際使用場(chǎng)景選擇最佳的放大處理方式:
- 針對(duì)使用 SD 繪制的圖像,如果本身顯卡算力足夠且放大倍數(shù) 在 2 倍以內(nèi),可以直接通過 WebUI 原生的高清修復(fù)、圖生圖來進(jìn)行放大。
- 如果放大倍數(shù)超 2 倍或提示顯存不足時(shí),我們可以開啟 Ultimate SD Upscale 或 Multi-Diffusion 來進(jìn)一步提升圖像繪制尺寸的上限并降低顯存壓力。
- 如果重繪后尺寸超過 2048 或出現(xiàn)多人多肢體的變形圖時(shí),可以啟用 ControlNet Tile 模型來穩(wěn)定圖像內(nèi)容,避免出現(xiàn)元素重復(fù)等問題。
- 如果只想簡(jiǎn)單快速的將圖像進(jìn)行粗處理放大時(shí),建議直接使用 Upscayl 來進(jìn)行一鍵高清放大即可,省去特意啟用 SD 的步驟。
此外,關(guān)于本文中所有提及的圖像放大方法和類似功能的插件我也給大家整理了以下表格,希望能對(duì)大家有所幫助。
歡迎關(guān)注作者微信公眾號(hào):「樂伊體驗(yàn)筆記」
復(fù)制本文鏈接 文章為作者獨(dú)立觀點(diǎn)不代表優(yōu)設(shè)網(wǎng)立場(chǎng),未經(jīng)允許不得轉(zhuǎn)載。
發(fā)評(píng)論!每天贏獎(jiǎng)品
點(diǎn)擊 登錄 后,在評(píng)論區(qū)留言,系統(tǒng)會(huì)隨機(jī)派送獎(jiǎng)品
2012年成立至今,是國(guó)內(nèi)備受歡迎的設(shè)計(jì)師平臺(tái),提供獎(jiǎng)品贊助 聯(lián)系我們
AI輔助海報(bào)設(shè)計(jì)101例
已累計(jì)誕生 737 位幸運(yùn)星
發(fā)表評(píng)論 為下方 9 條評(píng)論點(diǎn)贊,解鎖好運(yùn)彩蛋
↓ 下方為您推薦了一些精彩有趣的文章熱評(píng) ↓