最新版本 Stable Diffusion 開源 AI 繪畫工具之圖生圖進階篇
tiny極客發表於2023-04-12
? 圖生圖基本引數
- 圖生圖功能主要包括六大類:
圖生圖 / img2img
、塗鴉繪製 / sketch
、區域性繪製 / inpaint
、區域性繪製之塗鴉蒙版 / inpaint sketch
、區域性繪製之上傳蒙版 / inpaint upload
、批次處理 / batch
- 而圖生圖的基本引數包括但不限於以下幾種:
- Resize mode: 縮放模式,包括
拉伸/Just resize
、裁剪/crop and resize
、填充/resize and fill
、僅調整大小(潛空間放大/just resize (latent ipscale)
,縮放模式指的是當原圖和要生成的圖的寬和高不一致的時候,選擇的縮放模式,一般選擇裁剪,如果原圖和生成圖的寬高一致的時候,選擇任意均可 - Mask blur: 蒙版模糊度,在
0-64
之間調節,就是將我們塗抹區域,從邊緣向中間透明過渡。數值較小的時候,邊緣越銳利,所以一個合適的值會讓圖片看起來更真實,數值一般預設即可 - Masked content: 蒙版矇住的內容,包括
填充/fill
、原圖/original
、潛在噪聲/latent noise
、無潛在空間/latent nothing
。這是一種預處理的步驟,其中填充是指使用蒙版邊緣影像的顏色填充,不過顏色已經被高度模糊;原圖則是同原圖一樣不改變任何細節;而潛在噪聲則是使用噪點進行填充;而無潛在空間就是噪點值為0的狀態,可以看到只有原圖保留了原來的畫面,所以一般選擇原圖即可 - Mask transparency: 蒙版的透明度,一般預設為0,即不透明,因為透明度越高,AI發揮的空間越小,基本上當透明度大於60,預處理就會失去作用
- Mask mode: 蒙版模式,包括
繪製蒙版內容/inpaint masked
、繪製非蒙版內容/inpaint not masked
,這個很好理解,選擇第一個就是隻在蒙版區域重繪,另一種則相反,正常一般預設第一個即可 - Inpaint area: 繪製區域,包括
全圖/whole picture
、僅蒙版/only masked
。全圖重繪是指在原圖大小的基礎下繪製蒙版區域,優點就是內容與原圖融合的更好,缺點是不夠細節;而蒙版重繪是隻處理的時候將蒙版區域進行放大到原圖的尺寸,畫完之後再縮小放到原圖的相應的位置,優點就是細節更好,缺點也是細節太多,與原圖融合的不夠好 - Denoising strength: 重繪強度,預設0.75,低強度就是基本不重繪,越高重繪越強,融合越不好,所以預設即可
- 雖然圖生圖的引數比較多,但大多數的時候,我們選擇預設即可,因為很多時候,只需要正確的選擇而非過多的選擇,個人也僅僅設定一下縮放模式、取樣器、取樣步驟和寬高進行出圖
? 圖生圖(img2img)
- 可以根據你上傳的圖片生成一張在原圖基礎上創作的新圖片
- 可以透過修改
Prompt
去自定義想要的結果圖片,比如白色頭髮,紅色眼睛等等
? 塗鴉繪製(Sketch)
- 在原圖基礎上塗鴉後,進行二次創作,這是最基礎的用法,當然也可以進行線稿的上色
- 模型要選擇好,如果想要生成二次元的,記得選擇二次元模型,下圖測試選擇的是真人模型
- 在進行線稿上色的時候,設定 縮放模式為裁剪 ▶ 取樣器是
DPM++ 2M Karras
▶ 取樣步驟設定的是30
▶ 指令碼 Script
中選擇是影像迭代 Loopback
▶ 迭代次數設定成多少生成的圖片就是多少張,一般設定2-4,防止顯示卡撐不住 ▶ 最終的重繪強度 Final denoising strenght
設定成了 0.88
▶ 重繪曲線選擇 Linear
▶ 迭代中反推提示詞選擇 DeepBooru
,生成的最終圖片效果還是很棒的
? 區域性繪製(Inpaint)
- 在區域性繪製中,我們只需要將需要重繪的地方圈出來,然後加上
Prompt
提示詞即可 - 其中蒙版的黑色畫筆並不是一種真的顏色,它是一片代表透明(不可見)屬性的區域
- 比如,將圖片中的女生頭髮換成一頭白髮,只需要將圖片上的頭髮區域塗上蒙版,然後在
Prompt
中輸入 white hair
提示詞即可 - 當然這裡只作為測試,如果想要更好的效果,自己設定更多的
Prompt
進行描述,除了頭髮,其他任何區域都可以進行重繪
? 塗鴉蒙版(Inpaint sketch)
- 相比於區域性重繪,多了一個蒙版透明度的配置,這是因為這裡的蒙版是可以自定義顏色的
- 在區域性繪製中畫筆只有黑色,而在塗鴉蒙版中蒙版的顏色會影響到原圖,選擇什麼顏色最終重繪都會往這個顏色上靠
- 蒙版透明度按照需要顏色的程度調節,最好不要超過40
- 比如將動漫女生衣服換成紅色的旗袍,只需要將衣服用紅色的畫筆塗抹,然後在
Prompt
中輸入中國旗袍的英文解釋即可,因為塗鴉蒙版的顏色是會影響到原圖的,所以如果是用藍色塗抹衣服,最終將會生成藍色的旗袍
? 上傳蒙版(Inpaint upload)
- 跟塗鴉蒙版其實差不多,只是上傳的蒙版需要藉助其他工具如PS的處理,相比直接手塗肯定是更精確
- 上傳蒙版的蒙版在製作時可以設定部分透明的效果(不同程度的灰),還有邊緣的羽化等等。此時需要注意具有相同效果的蒙版模糊的使用
- 需要注意的一點是,在上傳蒙版中,白色代表重繪,黑色代表不處理。也不用細分,如果弄錯了,在蒙版模式中選擇重繪非蒙版就可以
- 為了方便測試,就將圖片放到塗鴉蒙版中,用黑白兩色把原圖進行圈出,截圖上傳到上傳蒙版中了,順便加了
Prompt
的引數是天空、建築物、人物等,可以看出 AI
只在白色區域進行了重繪,而圈出的黑色是沒有重繪的 - 還有最後一個批次處理功能,用的不多,也不用講太細,只要輸入圖片所在目錄路徑、圖片處理後儲存的路徑以及蒙版路勁即可批次處理
本文參與了SegmentFault 思否寫作挑戰賽,歡迎正在閱讀的你也加入。