即使之前在 Midjourney 中有過圖生圖的使用經驗,但大部分人對該功能的印象僅限于喂圖,通過它可以讓模型了解更多我們要傳達的信息,從而達到準確出圖的目的。但在 Stable Diffusion 中的圖生圖還要強大的多,除了控圖還包含了手動涂鴉、局部重繪、圖像擴展等更多功能。
今天的文章里我會為你詳細介紹圖生圖的工作原理、工具解析和圖像重繪的應用方向,如果沒有看過「文生圖篇」的朋友建議先去學習下,以便你更好的理解今天的內容。
1. 傳統意義上的喂參考圖
我們都知道,模型在運算時是根據我們提供的提示內容來確定繪圖方向,如果沒有提示信息,模型只能根據此前的學習經驗來自行發揮。在之前的文生圖篇,我們介紹了如何通過提示詞來控制圖像內容,但想要實現準確的出圖效果,只靠簡短的提示詞是很難滿足實際需求的。
AI 繪畫的隨機性導致我們使用大段的提示詞來精確描述我們想要的畫面內容,但畢竟文字能承載的信息量有限,即使我們寫了一大段咒語,模型也未必能準確理解,不排除有時候還會出現前后語義沖突的情況。其實這個過程就像甲方給我們明確設計方向,除了重復溝通想要的畫面內容外,有沒有什么比口述更高效的溝通方式呢?這個時候,有經驗的甲方會先去找幾張目標風格的競品圖,讓我們直接按照參考圖的感覺走。
「感覺」這個詞聽起來似乎虛無縹緲,但在 AI 繪畫領域是有實際道理的,因為圖像能承載的信息要比文字多得多。以上面這張圖為例,如果用提示詞描述,可能寫上幾百字都難以向模型解釋清楚畫面的內容,但圖生圖不同,模型會自動從參考圖上提取像素信息,并將其作為特征向量準確映射到最終的繪圖結果上,通過這樣的方式能最大程度還原參考圖中的提示信息,實現更穩定準確的出圖效果。
因此,傳統意義上的圖生圖就是將提示詞和參考圖中的圖像信息進行綜合考慮并進行繪圖的過程。
2. 真正強大的圖像重繪
當然,如果僅僅是喂圖功能,Stable Diffusion 的圖生圖板塊并不值得我們單獨花一篇文章來講解,它的真正價值在于提供了豐富的操作工具將圖像可控性提升到了新的層次。
我們先來回顧下平時使用文生圖進行 AI 繪畫的過程:編寫提示詞進行繪圖,然后根據出圖結果再不斷優化提示詞和各類參數進行抽獎,最終得到一張比較滿意的圖片。而圖生圖則是直接根據現有圖片進行優化調整,因此圖生圖的操作過程可以簡單理解成省去了前期文生圖的抽獎過程,直接在現有圖像約束的基礎上進行的二次重繪。
需要注意的是,配合參考圖進行圖生圖的過程是需要將參考圖先逆向推導為潛空間的數據,再和提示詞綜合考慮繪制成圖像。因此相比沒有逆向推導過程的文生圖,圖生圖的繪制會占用更多的系統資源,根據這個原理,我們也就能理解使用參考圖的尺寸越大,在逆向推導的過程中消耗的資源也會越多。
在 Stable Diffusion 中,我們可以通過蒙版和局部重繪等功能來控制只對圖像特定部分的區域進行重繪,并設置各類參數來控制重繪的效果。此外通過選擇不同的繪圖模型和調整圖像尺寸,我們也能甚至還能實現畫風轉換、圖像無損放大等更多玩法。相較于其他 AI 繪畫工具,Stable Diffusion 中的圖生圖并非單純的喂參考圖,而是可以在現有圖片的基礎上通過人工干預來實現更加穩定可控的圖像重繪。
在 WebUI 的功能導航欄中選擇圖生圖模塊,我們可以看到它的頁面布局和文生圖基本類似,同樣有提示詞輸入框、操作按鈕和參數設置項,不同的是這里多了提示詞反推、支持上傳圖片的二級功能模塊和對應的參數設置項。
1. 提示詞反推
先來看提示詞反推的功能:即根據提供的圖片自動反推出匹配的文本關鍵詞,也就是我們俗稱的圖生文功能。WebUI 這里提供了 Clip 反推和 DeepBooru 反推 2 種反推操作,其區別在于:
- Clip 反推:推導出的文本傾向于自然語言的描述方式,即完整的描述短句,該功能的特點是可以描述出畫面中對象間的關系
- DeepBooru 反推:推導結果更多的是單詞或短句,比較類似我們平時書寫提示詞的方式,該功能更傾向于描述對象特征
不難看出,通過 Clip 和 DeepBooru 反推的提示詞中包含不少錯誤標簽,需要人工進行二次篩選。其實,WebUI 在圖生圖模塊內置提示詞反推是為了在上傳圖片后可直接獲取相應的參考關鍵詞,以便后面更好的通過提示詞來控制重繪圖像內容。但實際上我們平時反推提示詞時更常使用的是秋葉整合包中自帶的 Tagger 插件,該插件除了生成的提示詞準確度和穩定更高,還提供了關鍵詞分析和排名展示,屬于 Stable Diffusion 的必備插件之一。
在 Stable Diffusion 中有非常多類似的開源插件可以有效提升繪圖效率,但不屬于本篇文章重點,這里就不過多介紹了。
2. 二級工具欄概覽
在圖生圖模塊中為我們內置了許多二級工具欄,很多朋友看到這樣可能會擔心學習起來很復雜。但其實這里每款工具其實都是在上一個工具基礎上進行的衍生,比如涂鴉和局部重繪是在原生圖生圖基礎上增加了手繪和蒙版,而涂鴉重繪又是這 2 款工具的結合。系統來看,所有的二級工具都是圍繞圖像重繪、手繪涂鴉和蒙版選區這 3 個基礎功能所進行的重組,而 WebUI 作者是為了方便我們使用將實際操作場景進行了細分。
上圖中整理了不同工具的簡介和差異對比,下面針對每款工具和相關參數為大家進行詳細介紹。
3. 圖生圖工具
這部分的操作和文生圖基本相同,區別在于支持額外上傳參考圖并增加了幾項圖生圖專屬的參數。下面介紹幾項影響圖生圖效果的重要參數,這也是所有二級模塊都需要用到的參數,其中和文生圖模塊中相同的參數這里就不再贅述了,大家可以回顧下「文生圖篇」的相關內容。
①重繪幅度
重繪幅度可以說是圖生圖中最重要的參數,它的功能有點類似 Midjourney 中的 iw 參數。前面介紹圖生圖的原理是在原圖基礎上繪制一張新的圖片,而重繪幅度就是用來控制在原圖基礎上重繪的發散性程度,數值越高,說明模型重繪過程中更加自由,繪制結果和原參考圖的差異性越大,生成的圖像也就更傾向于模型自身的繪圖風格。
可以看到當重繪幅度過高時,繪制的圖像內容和原圖基本就很難進行關聯了,因此我們通常將重繪幅度的數值控制在 0.4~0.8 之間,這樣既能維持參考圖的控圖效果,又能保證重繪后不會發生太強烈的變化。但從重繪幅度角度來看圖像可操作的范圍并不大,該參數的更多場景是配合其他功能項進行靈活調節,在下面的內容中我會配合各類工具進行詳細介紹。
②重繪尺寸
故名思義,該參數用于設置重繪后的圖像尺寸,可以分為直接設置圖像寬高和設置圖像縮放倍數 2 種調節方式。
默認情況下重繪尺寸會自動帶入當前參考圖的寬高數值,而當我們拖動尺寸滑塊時,可以直觀的在參考圖上預覽重繪后的圖像范圍。
③縮放模式
很多時候我們的參考圖和重繪后的圖片尺寸并不一致,而縮放模式就是用來選擇采用何種變形方式來處理圖像。這里雖然提供了 4 個按鈕,但是可以分為 2 類場景來使用。一種是圖像長寬比發生變化時使用,這里提供了 3 種我們常見的處理方式:拉伸、裁剪、填充(由于漢譯插件不同,在名稱上存在一定差異)。另一種是圖像長寬比例不變時使用,多數情況下用于圖像等比放大。
換句話說,如果重繪后的圖像尺寸和原圖完全一樣,這幾種縮放模式使用起來并沒有區別。
下面我們來挨個介紹不同縮放模式的效果差異。首先是拉伸模式(僅調整大?。男Ч菍⒃瓐D直接變形拉伸至新設定的尺寸。在下面的圖中可以看到,在重繪幅度參數設置為 0 時,圖像被直接變形拉伸為正方形,而隨著提升重繪幅度,變形效果逐漸得到緩解,但同樣也會導致和原圖差異過大。
第二種裁剪模式(即裁剪后縮放)是根據新設定圖像的長寬比,對原參考圖的內容進行裁切。重繪后尺寸由矩形變為正方形,上下部分內容被裁切,這里的重繪幅度參數不會對圖像的長寬比例產生影響。
第三個填充模式(縮放后填充空白)的效果根據新設定的長寬比例,將原圖缺失的部分進行繪制填充。比如當圖像從原圖的 512*768 重繪為 768*768 時,下圖的效果就是向左右填充了新的背景內容,且隨著重繪幅度數值越大,填充部分和原圖的融合效果越好。
最后一種縮放模式叫調整大?。摽臻g放大),有的地方也叫直接縮放,該功能主要用于對圖像進行等比放大,實現“小圖轉大圖”的效果。當然如果重繪尺寸比例和原圖比例不一致,則默認會采用拉伸的方式進行處理,但由于是反饋到潛空間中進行運算,因此圖像出現了模糊變形的效果。
相較于單純增加分辨率的放大做法,圖生圖中使用調整大小模式有重繪幅度參數可供調節,少量的重繪幅度可以為原圖增加更多細節。
當然添加重繪幅度的弊端是不可避免的會導致圖像發生改變,想要實現更好的效果還有更多定制插件可以實現低顯存繪制高清大圖,此處先按下不表。
對于調整大小功能的潛空間放大算法,我們可以在設置-放大-圖生圖放大算法中進行切換,選擇之后記得保存設置并重啟 webUI 界面。
綜合使用場景來看,除非是需要對圖像進行畫布拓展,否則多數情況下還是建議先將參考圖裁剪到目標比例再導入圖生圖中使用,這樣的出圖效果會更加可控。
下面我們再來看看圖生圖模塊下的其他二級工具及參數,由于漢化差異,二級工具的名稱可能不同,比如涂鴉重繪有的翻譯插件下也被稱作有色蒙版重繪。
4. 涂鴉工具
再來看看第二個涂鴉工具,涂鴉工具的參數項和圖生圖完全相同,唯一區別是上傳圖像后右上角多了畫筆工具,支持我們對圖像進行涂抹。涂鴉工具相當于增加了我們傳統的手繪過程,在圖片上涂抹色塊后再進行全圖范圍的圖生圖,同時配合提示詞可以實現更加多樣的重繪效果。
其中畫筆支持調整調整筆觸大小和切換顏色,自帶的吸色工具也可以進行全屏幕范圍內的取色。
在這幾個操作工具中,返回上一步的按鈕目前還存在 bug,有時候并不會逐步撤回而是將整個涂鴉筆觸全部清空。并且由于不知名原因,上傳的圖片有時候會出現報錯或失效等情況,需要刪除當前圖片后重新上傳才能。
涂鴉工具的操作很簡單,使用畫筆在圖像上涂抹顏色后點擊生成,Stable Diffusion 會將手繪后的圖像進行整體重繪,同時控制重繪幅度和增加描述關鍵詞可以實現非常神奇的融圖效果。在下圖中可以看到女孩的衣服會根據涂鴉部分重繪成紫色的運動服,當重繪幅度設置為 0.5 左右時達到比較自然的融合效果。
需要注意的是通過涂鴉工具來重繪圖像時,由于重繪幅度的影響,畫面中未被涂鴉的部分也會發生變化,因此涂鴉工具是針對畫面整體進行重繪。
由于鼠標涂鴉的繪制效果不夠準確,而且涂抹的顏色不支持透明度等細節調整,因此涂鴉工具平時使用并不多,一般都是導入 PS 中進行細致的繪制操作,這里就不做過多贅述了。
5. 局部重繪工具
再來看看局部重繪工具,在前幾天,Midjourney 終于上架了大家期待已久的局部重繪功能,應該算得上是 Midjourney 目前在控圖方向上最大的一次邁步,而 Stable Diffusion 在這塊算得上是深耕已久。簡單來說,局部重繪就是在圖像中設定一塊區域,在圖生圖過程中只針對該區域部分進行重繪,而其他部分保持不變,從而實現精準控制改變圖像特定部分的效果。該功能通常用于對畫面大部分內容都基本滿意,但需要調整部分細節元素的場景。
在下圖中可以看到,局部重繪同樣是使用畫筆進行涂抹,但這里涂抹的顏色只有黑色,因為被涂抹區域表示的是蒙版,而不是實際的顏色色塊。
下面我們來看看局部重繪的各項參數。
蒙版邊緣模糊度:該參數用于設置重繪區域和原圖的融合程度,效果可以簡單理解為 PS 中的選區羽化。邊緣模糊度太小會導致邊緣銜接過于生硬,而數值太高會削弱蒙版的區域限制效果,導致蒙版不精確或直接失效。默認情況下數值是 4,我們可以根據圖像的融合效果來進行適度調節。
為方便對比蒙版效果,在下圖的案例中我選擇重繪黑色蒙版之外的區域,可以發現當邊緣模糊度為 0 時,蒙版邊緣非常生硬,而隨著數值變大,重繪區域和原圖的融合過渡也變得更加自然。
蒙版模式:「重繪蒙版區域」表示重繪涂抹過的蒙版區域,「重繪非蒙版區域」表示涂抹區域不變,而是重繪畫面中的其他區域。該參數類似 PS 中的選區反轉,在實際使用時根據重繪區域大小自由選擇是涂抹需要重繪的部分還是剩余的背景部分。
蒙版區域內容處理:該選項用于設置重繪時的圖像處理方式,這里提供了 4 個選項:填充、原圖、潛空間噪聲、空白潛空間,具體的效果可以看下圖,相較之下潛空間噪聲會比其他幾項產生出更多變化,而原圖的效果比較穩定。
該參數對繪圖結果的影響不太穩定,一般情況下保持默認的「原圖」即可。
重繪區域:指的是重繪過程中用于參考的圖像范圍。在下圖中可以清楚的看到,當重繪區域設置為「僅蒙版區域」時,繪制的部分只有涂抹的蒙版部分區域的元素,相當于把涂抹區域切割下來單獨進行重繪,該選項下會打斷選區和參考圖其他部分的聯系,最終畫面的融合效果可能會下降。
僅蒙版區域下邊緣預留像素:該參數只在重繪區域選擇了「僅蒙版區域」時生效,用于控制切割下來重繪部分向外擴展的范圍大小。觀察下面重繪過程的進度圖可以發現,邊緣預留像素的數值越大,則繪制過程中會向四周裁剪更多的內容進行整體重繪。
在默認情況下局部重繪會參考全圖進行繪制,并且被涂抹的范圍并不代表都會發生變化,所以通常我們會在目標區域基礎上對外再涂抹一部分區域,以保證重繪后更好的融合效果,而提高邊緣預留像素也是同樣的原理。
總結來看,由于手涂蒙版的方式比較方便也很自由,因此局部重繪被廣泛用于圖像的局部調整,比如常見的臉部修復、手部修復等。
6. 涂鴉重繪工具
涂鴉重繪工具可以理解為涂鴉+蒙版的結合,相當于在涂抹顏色的同時加上了局部重繪的蒙版,只不過這個過程中顏色涂抹和蒙版繪制是同時進行的。因此和局部重繪相比,涂鴉重繪多了一個參數項:蒙版透明度。
蒙版透明度設置的是涂抹色塊在畫面中的呈現效果:當透明度設置為 0 時涂抹顏色完全覆蓋下方圖片,此時等同于涂鴉工具的效果,50%時相當于半透明色塊,而達到 100%時蒙版完全透明,相當于色塊消失。需要注意的是,當透明度過高時涂抹色塊可能無法被 Stable Diffusion 準確識別,繪制結果中會直接呈現出半透明色塊效果(如下圖中的 50%透明度時)。
下面舉個實際案例,我們希望實現長裙變短裙的效果。如果只是單純的局部重繪,重繪的部分始終會受到原圖其他部分的影響出現裙擺,但這里的重繪幅度又不能調整過高,否則和原圖會產生明顯的割裂感。
但使用了涂鴉重繪相當于給 Stable Diffusion 提供了大概的范圍參考,并且由于可以自由設置繪制色塊的不透明度,不用擔心完全覆蓋原圖內容,在整個重繪操控上更加準確和穩定。
對比來看,涂鴉重繪比單純的涂鴉工具多了蒙版的局部控圖效果,又比局部重繪工具多了顏色的指導作用,可以說是兩款工具的結合體。
7. 上傳重繪蒙版工具
雖然涂鴉重繪效果很好,但畢竟手動涂抹的方式不夠準確,因此 WebUI 也提供了自行上傳蒙版的方法來精準控制重繪區域。上傳重繪蒙版和局部重繪的頁面基本相同,區別在于支持額外上傳一張已繪制好的蒙版圖。
這里蒙版圖片的顏色含義和 PS 中的蒙版相同,白色表示有內容,黑色表示為空,因此白色區域內的圖像會被進行重繪。相信很多朋友都出現過黑白蒙版傻傻分不清楚的情況,這里給大家分享個小妙招。我們只要將蒙版圖想象成黑板即可,黑色表示默認的空白,白色即粉筆填充后的內容。
需要注意的是,在 Stable Diffusion 中表示半透明蒙版的灰色并不適用,因此像黑白漸變的蒙版圖不起效果,我們平時用黑白純色即可。
上傳蒙版的優勢在于我們可以精準控制蒙版范圍,通常在 PS 中進行摳圖并填充成黑白蒙版圖,再上傳到 Stable Diffusion 中進行使用。
8. 批量處理工具
最后還有個批量處理工具,顧名思義可以批量對圖像進行重繪操作。只需設置到相關參數和提示詞,設置到參考圖文件夾和輸出文件夾就能實現批量重繪。我們平時在抖音上看到那種用拍攝視頻轉換 AI 繪圖視頻也是同樣的原理,通過將視頻拆解成逐幀圖片再進行重繪,但目前開源社區中有用于制作動態視頻更好用的插件,這里就不再贅述了。
由于各款工具的名稱都比較相似,加上不同功能項的調節參數和使用方法都不同,新手在學習圖生圖模塊時很容易把各類功能弄混淆。因此,在學習這類 AI 繪畫工具時,我更建議大家按照下面重繪應用方向的思路來理解,而不是單純的從工具角度學習。
1. 重繪的 3 個應用方向
我們前面提到圖生圖的本質是進行圖像的二次重繪,根據繪制區域的差異,可以將重繪功能劃分為整體重繪、局部重繪和圖像擴展三個方向:
- 整體重繪 Img2img:按照原圖的比例進行整體重繪,即傳統意義上的基于參考圖進行圖生圖,需要注意的是圖像比例不變,但尺寸可以等比例調整。
- 局部重繪 Inpaint:通過手動涂鴉或上傳蒙版等方法控制只針對指定區域進行重新繪制。
- 圖像拓展 Outpaint:在原畫布尺寸基礎上向其他方向拓展,添加更多原畫布外的內容。
回過頭來看,文生圖、圖生圖、涂鴉都相當于整體重繪功能,而局部重繪、涂鴉重繪和上傳重繪蒙版則是局部重繪功能,至于圖像擴展則是在圖像比例發生變化且縮放模式選擇填充時啟用。
我們橫向對比其他工具來看,整體重繪、局部重繪和圖像擴展可以說是所有圖像處理工具的基礎功能,畢竟可控性在商業領域的價值很多時候比創意性更加重要,而可以將兩者結合起來靈活使用的 AI 繪畫工具才稱得上是行業翹楚。這也是為什么 PS 的創意生成和畫布拓展繪制功能剛一推出就引起廣泛熱議,而像 Midjourney 近期更新的 Zoom Out 圖像擴展和 Vary(Region)局部重繪等功能同樣也是在向控圖穩定性方向發展。
2. 圖生圖中的提示詞
前面提到圖生圖本質是增加了參考圖的約束,雖然提示詞的信息權重被參考圖削弱了一部分,但并不意味著提示詞就沒用了。相反,很多時候還是需要通過提示詞來告訴 Stable Diffusion 我們希望繪制的內容。這時候有朋友會問,那我們是只填寫需要重繪部分的內容還是將畫面全部內容進行完整描述呢?其實,圖生圖的提示詞填寫要根據實際的出圖效果來調整。
當我們只希望更改畫面中的部分元素而其他部分不變時,就需要在提示詞中將不更改的部分進行保留,并對修改部分進行調整或補充描述,為了保證出圖效果還可以靈活增加對應關鍵詞的權重。
而當局部重繪時,如果繪制部分和原有圖像的融合效果不佳,我們可以增加蒙版部分之外的內容描述來加強和畫面其他部分的聯系,比如下面的圖中通過交互動作來增加重繪后手部和環境的融合效果。
以上案例只針對提示詞進行了調整,實際使用時像 seed 值、重繪幅度、繪圖模型等因素也要進行靈活考慮。
3. 圖生圖和高清修復
如果有仔細觀察的小伙伴應該已經發現了,圖生圖中并沒有提供文生圖中的高清修復選項,這是因為高清修復的本質就是進行了一次額外圖生圖操作,同樣是先生成小圖再進行放大,所以在圖生圖中想實現高清修復,只需將圖像尺寸調大進行重繪即可,此外高清修復這一特性在圖生圖中有更多使用場景。
不知道大家平時是否發現過這樣的現象,當人物在畫面中占比越小,出圖結果中出現臉部崩壞的情況就越常見,而當對人物臉部特寫時很少出現崩壞情況。這是因為 Stable Diffusion 模型在逆向擴散的過程中對大區域的圖像去噪處理會更加清晰,因此更擅長繪制畫面中占比大的事物,通過利用這一點我們可以將圖像中不清晰的小圖截取出來進行放大重繪,然后再放回原圖位置,即可有效修復局部變形的情況。
在今天文章里,我為大家介紹了 Stable Diffusion 中圖像重繪的作用、各類工具和參數的功能解析以及關于圖像重繪的學習思路。相比于文生圖的一步成型,圖生圖更多是碎片化的使用思路,需要通過不斷的修飾和調整局部細節來得到我們想要的圖片。
回顧近幾篇的文章內容,從文生圖到圖生圖,從局部重繪再到上傳重繪蒙版,不難發現我們對 Stable Diffusion 的學習是從發散向可控的方向逐漸遞進,而聊到可控性就不得不提 Stable Diffusion 中大名鼎鼎的 ControlNet,在下篇文章中我會為你詳細介紹這款真正讓 Stable Diffusion 立足 AI 繪畫之巔的神級插件。今天文章就到這里結束啦,我們下期再見
復制本文鏈接 文章為作者獨立觀點不代表優設網立場,未經允許不得轉載。
發評論!每天贏獎品
點擊 登錄 后,在評論區留言,系統會隨機派送獎品
2012年成立至今,是國內備受歡迎的設計師平臺,提供獎品贊助 聯系我們
標志設計標準教程
已累計誕生 729 位幸運星
發表評論 為下方 8 條評論點贊,解鎖好運彩蛋
↓ 下方為您推薦了一些精彩有趣的文章熱評 ↓