更新於 2023/05/19閱讀時間約 4 分鐘

如何用 Stable Diffusion 產生高解析度的圖?

txt2img 時,會用 512、768 等等大小來測試算圖,反覆迭代找到一個適合的 prompt 和參數組合。如果想要以此組合算出高解析度的圖片,直接調整長寬會遇到畫面跑掉的問題。該如何在固定構圖的情況下增加圖片的解析度呢?本文提供三個方法讓大家嘗試看看!

目錄

法一:透過 img2img 放大

將 txt2img 算出的圖片送入 img2img ,並輸入一樣的 prompt,如此及能算出高度類似,但細節略為不同的圖片。

img2img 法詳細步驟
在 txt2img 得到適合的結果後,點選 send to img2img
或者將圖片拉到 png info,再點選 send to img2img
跳轉至 img2img tab,調整長寬放大圖片。調整 denoising strength 控制 AI 自由度。
denoising strength 以 0.5 作為臨界值,大於 0.5 表示 Stable Diffusion 算圖自由度越高,與原圖差異越大。反之小於 0.5 AI 自由度下降,與原圖較為相似。
原圖:
透過 img2img 放大
denoising strength = 0.15
enoising strength = 0.35
denoising strength = 0.55
denoising strength = 0.75img2img 算圖時拉高 denoising strength 構圖有可能跑掉,我們可以嘗試使用 ControlNet 控制畫面。ControlNet 使用方法將在另一篇文章中介紹。
原圖:
透過 img2img 放大:
denoising strength = 0.7
denoising strength = 0.7, enable ControlNet OpenPose

img2img 法小結
優點:
  • 因為是透過 Stable Diffusion Model 算圖,除了放大解析度外,還能增加細部細節!
  • 調整 prompt 和 denoising strength,在此階段同時對圖片作更進一步的優化
缺點:
  • 解析度拉越高,所需算圖時間越久,VRAM 也需要更多、甚至會爆顯存,因此提高的解析度有上限(以 google Colab 的 T4 為例,15 GB 的 VRAM 在接近 2000 x 2000 的時候就會爆掉)
  • 是本文篇文章三法中,放大到同等級解析度時最耗費 VRAM 的方法
  • 放大圖片的細節或構圖可能會改變,需要依照經驗調整 denoising strength,或者引入 ControlNet 來解決

法二:透過 AI Upscaler 放大

透過 ESRGAN 等 AI upscaler 的方式將原圖放大,相對於傳統的 upscaler(如 PhotoShop),放大時能夠增加細節,算圖速度也比 img2img 快。

AI Upscaler 詳細步驟
  • 切換到 Extras tab,點選 Single Image,將想放大的圖片丟到 Source 中
  • 調整 Resize 決定放大幾倍。比如說原圖為 512×512,Resize = 2x.....

延伸閱讀

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.