本篇文章介紹 Stable Diffusion web UI 圖生圖頁面的基本功能,重點內容包含查詢提示詞 (interrogate)、調整大小機制說明和降噪強度 (Denoising strength) 說明。

功能區塊

進入 stable-diffusion-webui 的 img2img 頁面可以看到下面的畫面
Stable Diffusion web UI img2img 功能區塊

一些重複的區塊就略過,其他的功能區塊大概如下:

  1. 查詢提示詞 (interrogate)
  2. 圖生圖功能頁籤
  3. 圖片編輯
  4. 圖片複製
  5. 調整大小方式
  6. 降噪強度 (Denoising strength)

功能介紹

查詢提示詞 (interrogate)

這是能將圖片轉成提示詞的功能,Stable Diffusion web UI 提供兩種不同的模型

以上面的圖片為例,兩種模型轉出的提示詞如下:

  • CLIP: a woman in a short skirt and boots sitting on a red carpet with her legs crossed and legs crossed, a detailed painting, Aguri Uchida, sots art, official art
  • DeepBooru: 1girl, asuna_(sao), bare_shoulders, braid, brown_eyes, brown_hair, halftone, halftone_background, long_hair, looking_at_viewer, medium_breasts, miniskirt, pleated_skirt, polka_dot, polka_dot_background, red_skirt, sitting, skirt, smile, solo, thigh_strap, thighhighs, very_long_hair, white_footwear, white_legwear

使用下面這張真人圖片為例:
查詢提示詞 (interrogate) 範例圖片

  • CLIP: a woman in a white dress standing on a balcony near a castle with a castle in the background and a green lawn, a character portrait, Alice Prin, remodernism, cosplay
  • DeepBooru: 1girl, arm_support, asuna_(sao), brown_eyes, bush, castle, day, detached_sleeves, forest, grass, long_hair, looking_at_viewer, nature, outdoors, path, river, sky, smile, solo, standing, thighhighs, tree, white_legwear

可以發現即使是真人他也有辨識出 asuna_\(sao\) 的動漫元素。實際使用上 DeepBooru 不管圖片是不是動漫圖片都可以正確辨識,而且速度比 CLIP 快很多。CLIP 產出結果是接近自然語言的句子,DeepBooru 則是關鍵字。利用這個功能也可學習如何使用 Prompt,是一個相當好用的功能。

圖生圖功能頁籤

  • img2img: 圖生圖,也就是本篇文章介紹的功能
  • Sketch: 手繪生圖
  • Inpaint: 圖像修復
  • Inpaint sketch: 手繪 + 圖像修復
  • Inpaint upload: 使用遮罩檔案圖像修復
  • Batch: 批次生圖

其他頁籤功能,未來會在另外說明。

圖片編輯

一開始這個區域是空白,可以點擊從電腦選取檔案、拖曳檔案進來或從剪貼簿貼上,另外使用 Send to img2img 的功能也可以帶入。有圖片之後,右上角會出現兩個圖示:

按鈕說明
選取圖片區域選取圖片區域
清除圖片清除圖片

進入編輯模式,只能選取圖片區域,可調整選取匡的大小,或滾輪縮放圖片,如下圖所示:
Stable Diffusion web UI img2img 編輯模式

選區的範圍如果沒有圖片內容,在運算的時候他是填入黑色,並不能進行自動延伸的效果。另外右上角的叉叉仍然是清除圖片!無法重設或離開編輯模式。

圖片複製

點擊可以把當前的圖片帶入到其他功能頁籤。

降噪強度 (Denoising strength)

在解釋調整大小方式之前,先了解降噪強度會比較好解釋,所以這邊章節做了對調。降噪強度我們可以簡單理解為變化差異的強度,我們這邊直接做了測試來看結果。同時,為了後面更容易理解,這邊改使用下面這張圖片作為原始輸入:
降噪強度 (Denoising strength) 範例圖片

下面為 0, 0.1, 0.2… 1 不同的降噪強度輸出結果:
不同降噪強度 (Denoising strength) 輸出結果

可以看到 0 的時候和原圖沒有差別,當數字越大的時候,差異越大,0.9 和 1.0 則差異看起來蠻大的,所以預設值的 7,應該是合理的設定。

調整大小方式

當輸入的圖片尺寸和輸出的圖片尺寸不同的時候,這個部分才會有作用。他有四種調整方式:

  1. Just resize:縮放變形
  2. Crop and resize:縮放裁切
  3. Resize and fill:縮放填滿
  4. Just resize (latent upscale):縮放變形

流程上他是先把原始圖片尺寸調整成目標尺寸後才輸入去產圖,而我們知道降噪強度為 0 的時候,差不多就是原圖。所以調整尺寸的同時又設定降噪強度 0,就等於可以看到他是怎麼調整的。我們每一種方式都先使用了降噪強度 0 去看調整的結果,提供給大家參考。原始圖片為 512x512,輸出則使用 768x512 和 512x768 做測試。
不同影調整大小方式 (resize) 輸出結果

第一種方式的結果不難理解,會產生變形。第二種裁切後主體的位置和構圖會被影響。第三種方式填滿的部分是用邊界的像素顏色直接延伸,在上面的水平延伸情況剛好可以達到不錯的效果。但在下面垂直延伸的時候,除了腳變得很奇怪,上方的開口也很奇怪。第四種模式則是變形加上 latent upscale 採樣。

接著我們分別跑降噪強度 0.5 和 0.7 來看看效果,降噪強度 0.5:
不同影調整大小方式 (resize) 降噪強度 0.5 輸出結果

降噪強度 0.7:
不同影調整大小方式 (resize) 降噪強度 0.7 輸出結果

第三和第四種模式的時候,在強度 0.5 下看起來沒有處理掉奇怪的部分,但在 0.7 的時候有被修正看起來比較正常。

實際應用

最後我們就用這張圖來產生真人圖片試試看效果:
實際應用

可以看到結果能使用相當接近的構圖與人物姿勢,效果相當不錯。

延伸閱讀

上一篇 Stable Diffusion 教學 - web UI 文生圖 (txt2img)
下一篇 Stable Diffusion 教學 - web UI 圖像修復 (Inpaint)