我們接著來試試看怎麼用 Comfyui 實現圖生圖。
首先我們把 Stable Diffusion XL 的 Refinder 的模型下載下來,一樣放到 .\ComfyUI_windows_portable\ComfyUI\models\checkpoints 下。
https://huggingface.co/stabilityai/stable-diffusion-xl-refiner-1.0/tree/main
開啟 Comfyui 後把模型改成 Refinder,可以點 Load Checkpoint 的小箭頭選模型。
接著可以先看一下他的論文,你可以在裡面發現這張很多人拿來說明 Stable Diffusion XL 的圖。
可以看到,要用圖產圖的時候,我們是把 Promt 跟圖一起給 Refinder。
https://huggingface.co/papers/2307.01952
然後我們現在用 Comfyui 看看流程,長得跟論文描述得很像,文生圖的時候,在最後會接收一個 empty image 過去(左下的紅框),接著跟 Promt 一起產生 LATENT 格式的輸出,最後接了一個 VAE Decoder 才會輸出最後的圖。
這個 VAE Decoder 中,有一條線是從最左邊的 Load Checkpoint 來的,先直接理解成這個 VAE Decoder 是 Refinder 提供的。
我們要做的其實就是替換掉這個 empty image,在空白處按右鍵,選 Add Node -> image -> Load Image,就會產生一個新框框。點 choose file to upload 可以選自己的圖。
我們要用這個取代掉原本的 empty image,但原本的 empty image 是輸出一個 LATENT,我們得把 Load Image
的輸出轉換一下。
一樣在空白處按右鍵,選 Add Node -> latnet -> VAE Encode,就會產生一個新框框。
按著在 Load Image 那格右邊的標為 IMAGE 的點點,不放開往右拖會有一條線,把他連到 VAE Encode 左邊標為 pixels 的點,這樣流程就連上了。
VAE Encode 左邊的 vae,比照 VAE Decoder,直接用 Refinder 提供的。
最後把 VAE Encode 的輸出連回原本的 KSampler,就完成了,可以參考下圖(為方便觀察,我把輸入 promt 的框框縮小了)。
右邊的太空人就是運行後產出的圖。