最後,在之前使用 Stable Diffusion XL 時,我們有做過一件事,就是使用了 Stable Diffusion XL 的特色,把 base、refiner 接在一起,產出更高品質的影像。
這件事當然也可以直接在 Comfyui 上完成。
原本的流程長這樣。
開始做點調整,我們先把原本的 KSampler 換成 KSampler (Advanced),
位置 sampling -> KSampler (Advanced),這算是進階版的 KSampler。
之前在測試把 base、refiner 串在一起的用法的時候,有討論過他的 denoising 是可以分開在兩個步驟完成的,KSampler (Advanced) 可以協助完成這件事。
https://comfyui-wiki.com/comfyui-nodes/sampling/k-sampler-advanced
看一下這個 node 就會發現,他是可以設定 start_at_step 跟 end_at_step,這就是之前在設定的 denoising_end 跟 denoising_star。
我們先把 KSampler (Advanced) 放進來,線重新拉上,拉法都一樣沒有差別。
設定稍微調整過,steps=40、start_at_step=0、end_at_step=32、return_with_leftover_noise=enable。
另外 positive的 prompt 改成 "A majestic lion jumping from a big stone at night",negative 的留空,主要就是要設定成跟之前測試時一樣的條件,但 random seed 之前沒有設定到,所以也就只能盡量一致。
接著我們再拉一組 Load Checkpoint、KSampler (Advanced)進來,可以按著 Alt 鍵不放,左鍵去拖曳想複製的 node,就可以直接複製一個出來,很方便。
原本的 Load Checkpoint 選 base,新的選 refiner,連到新的 KSampler (Advanced)上。
新的 KSampler (Advanced) 的設定改成 start_at_step=32、end_at_step=40。
把第一個 KSampler (Advanced) 的輸出改接到第二個 KSampler (Advanced) 的 latnet_image 上,最後才接上 VAE Decoder。
第二個 KSampler (Advanced) 也需要 positive 跟 negative 的 prompt,接下來我來不是很確定是不是最好的做法,先參考就好。
先加入兩個 CLIPTextEncodeSDXLRefiner,他在 advanced -> conditioning -> CLIPTextEncodeSDXLRefiner。
這是因為我在測試時遇到了 mat1 and mat2 shapes cannot be multiplied 的問題,為了解決 shape 的問題,我才把這兩個加上去設定 width 跟 height,讓他跟原本的 Empty Latnet Image 的大小一致,最後連起來的樣子參考下圖。
效果是蠻,不太對的,得再研究該怎麼調整。