用 Google Colab 玩 Stable Diffusion 應該是所有架設方式中最簡便的一種,安裝過程只需要跑大神們寫好的 Notebook,點擊吐出的連結立馬就能進入 WebUI 介面!但其中也有一些小細節需要注意,我們一起來看看怎麼做吧!

什麼是 Google Colab

Google Colab(Colaboratory)是 Google 推出的雲端深度學習服務,免費版即提供 GPU 加速,同時可以連結 Google Drive 作為儲存空間,非常佛心!

Google Colab 介面非常相似 Jupyter Notebook,也使用 Python 作為主要語言,因此可以無痛轉移。同時還支援從 github 安裝 library、以及 linux 原生指令,跟一台虛擬機沒有兩樣!

Google Colab 只要有 Google 帳號就能直接使用,不需要額外申請。但免費版有一些限制,比如說跑 code 的時候該瀏覽器頁面不能關掉(如果需要跑很久,電腦就要一直掛著),或者不能使用更快的 GPU 等等,但以跑 Stable Diffusion WebUI 來說已經相當夠用!

(最近測試免費版能用到 Tesla T4,相對用 AWS 自己開一樣規格的機器 還要花錢,已經很佛了!)

註:於 2023/5 初 Google Colab 免費版開始偵測使用者行為,當發現跑 stable diffusion 時會切掉連線。建議大家有需求的話可以付 10 美金購買 pay as you go 方案取得 100 運算單元(想像成使用點數),Tesla T4 每小時約扣 1.96 個運算單元,相當於每小時 0.2 美元左右,與同等級 AWS 機器價格差不多。如果善用 google 免費的雲端硬碟,可以省下放 stable diffusion 模型的硬碟費用,整體還是比 AWS 開機器划算!

免費用 Google Colab 玩 Stable Diffusion

如何建立一份自己的 Stable Diffusion WebUI on Google Colab?

首先前往 Stable Diffusion WebUI 官方 github 網頁:

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Online-Services

免費用 Google Colab 玩 Stable Diffusion WebUI

在 Google Colab 條目下有多個不同版本可以選擇,我們以 TheLastBen 的版本為例。

點擊後立刻跳轉至 Google Colab

免費用 Google Colab 玩 Stable Diffusion WebUI

這份是共用權限,修改後不能儲存,因此我們先複製一份到自己的 Google Drive 中

免費用 Google Colab 玩 Stable Diffusion WebUI

瀏覽器自動用新分頁開啟複製的 notebook,可以開始一步步設定囉!

免費用 Google Colab 玩 Stable Diffusion WebUI

安裝流程與參數說明

整個安裝流程相當清楚,我們先簡單 overview 一下所有步驟。

以目前(2023/4)的版本總共有六步:

  1. Connect Google Drive
  2. Install/Update AUTOMATIC1111 repo
  3. Requirements
  4. Model Donwload/Load
  5. ControlNet
  6. Start Stable-Diffusion

我們一步步說明。

Connect Google Drive

第一步設定是否要使用 Share Drive。你可以把 Google Colab 想像成一個「用完即丟的電腦」,因此資料不能儲存在「Google Colab」裡面,而是要放到 Google Drive 中。

免費用 Google Colab 玩 Stable Diffusion WebUI

Shared Drive 欄位留空,預設在 Google 雲端硬碟根目錄建立名為 sd 的資料夾放置 source code。反之若有設定,則會在給定的 Shared Drive (共用雲端硬碟)中建立。

Install/Update AUTOMATIC1111 repo

此步會透過 git 去 clone 整份 Stable Diffusion WebUI 的 source code 到 sd 資料夾中。

免費用 Google Colab 玩 Stable Diffusion WebUI

因為預設 clone 最新的 code,有時可能會有 bug,如果考量穩定性,可以將 Use Latest Working Commit 勾起,他會鎖在固定的版本。

但他是在 code 中寫死一個特定版本,除非自己去更新 commit sha code,否則是不會抓「真正最新穩定版本」的哦!

免費用 Google Colab 玩 Stable Diffusion WebUI

一般性建議,怕麻煩的話可以勾起,避免一些不必要的錯誤發生!

Requirement

這一步會安裝 Stable Diffusion WebUI 的 Python 依賴套件,不需要作額外的設定

免費用 Google Colab 玩 Stable Diffusion WebUI

Model Download/Load

這邊也建議不需要修改,讓他在 WebUI 第一起起來時去抓 Stable Diffusion 1.5 的 model 即可,後續我們可以透過 Google Drive 上傳自己從 Civitai 載的模型

免費用 Google Colab 玩 Stable Diffusion WebUI

ControlNet

此部分也保持預設即可,後續如果有用到 ControlNet 再自行上傳

免費用 Google Colab 玩 Stable Diffusion WebUI

Start Stable-Diffusion

最後一步!Google Colab 預設不讓使用者「架網站」,因此若要從外部連入 Colab 實體,需要用 tunnel 的技巧打通。

免費用 Google Colab 玩 Stable Diffusion WebUI

我建議使用 Ngrok 來作 reverse tunnel,請先到 Ngrok 申請一個免費帳號

免費用 Google Colab 玩 Stable Diffusion WebUI

切換到 Dashboard,點選左邊選單列 Your Authtoken ,再點選右邊的 copy 複製 token

免費用 Google Colab 玩 Stable Diffusion WebUI

將其貼到 Colab 的 Ngrok_token 欄位

免費用 Google Colab 玩 Stable Diffusion WebUI

下方 UserPassword 可選填,避免其他人能直接進入你的 Stable Diffusion WebUI

免費用 Google Colab 玩 Stable Diffusion WebUI

第一次啟動 Stable Diffusion WebUI

回到頁面最上方,點 執行階段 > 全部執行 ,Collab 會自動跑完所有步驟

免費用 Google Colab 玩 Stable Diffusion WebUI

過程中跳出「是否允許存取雲端硬碟」,請點選連線,並選擇正確的帳號授權給他

免費用 Google Colab 玩 Stable Diffusion WebUI

接著會自動下載 Stable Diffusion WebUI source code、安裝依賴套件、以及下載基本模型。第一次會跑比較久,請耐心等候

過一段時間就能看到如下畫面,點擊連結前往 Stable Diffusion WebUI

免費用 Google Colab 玩 Stable Diffusion WebUI

Ngrok 免費帳號第一次連入時會有提示,點 Visit Site 進入

免費用 Google Colab 玩 Stable Diffusion WebUI

剛剛若在最後一步有設定帳密,請在此輸入。若沒設定則不會有此畫面

免費用 Google Colab 玩 Stable Diffusion WebUI

馬上就能看到熟悉的畫面了!

免費用 Google Colab 玩 Stable Diffusion WebUI

特別注意,Google Colab 頁面不能關閉,一旦關閉 WebUI 就會死掉囉!

如何上傳新的模型?

切換至 Google 雲端硬碟,找到 sd 資料夾後進入,其中 stable-diffusin-webui 就是我們 WebUI 的根目錄,放模型的路徑與 local 架的 一模一樣

免費用 Google Colab 玩 Stable Diffusion WebUI

模型檔同樣放在 stable-diffusion-webui/models/Stable-diffusion 資料夾下。

免費用 Google Colab 玩 Stable Diffusion WebUI

這邊有個小技巧,因為模型檔非常大,很容易頂到雲端硬碟容量上限,此時可以用捷徑的方式,將網友分享的 model 備份 新增雲端硬碟捷徑models/Stable-diffusion 下,或是自己多開幾個帳號上傳,並分享給自己建立捷徑,就能突破容量上限並讓 Stable Diffusion WebUI 可以載入!

使用 Google Colab 跑 Stable Diffusion WebUI 的優缺點

先講講優點:

優點 1:免費!

這真的沒得說,不用買顯卡,只要有電腦、網路、google 帳號就能用,還有什麼比的上!

優點 2:雲端存儲

所有的檔案都會放在雲端硬碟上,可以直接共用並協作。

接下來看看缺點:

缺點 1:冷啟動速度慢

此網友分享的 notebook 偏向「第一次安裝並啟動」的風格,因此初次啟動完關閉後,再次啟動還是需要跑完所有步驟。雖然速度會比第一次快,但整體時間依然需要四到七分鐘不等。

若想跳過幾個步驟,如省略 Install/Update AUTOMATIC1111 repo,可能會遇到 python 變數沒定義到而出錯的問題,這部份需要自行改 code 來解決。

缺點 2:模型載入速度慢

前面提到,Google Colab 類似免洗電腦用完及丟,因此他「沒有記憶」,必須外掛雲端硬碟來放置模型檔案。但 Google Colab 從雲端硬碟抓檔案的速度相當慢,若算圖時常常切換模型,將會浪費很多時間在等待上面。

缺點 3:Colab 傳輸速度慢

推測 Google Colab 避免有心人士用此免費架站,因此對外流量作大幅度的限制。使用時發現算完的圖要大約要五秒不等才會顯示出來。不過這部份倒是還好,可以另開一個頁面,直接從雲端硬碟進去 Stable Diffusion WebUI 下的 output 資料夾下載圖檔即可。

缺點 4:資源分配不定

官方表示免費版不一定有足夠的 GPU 資源,但我這幾次試用起來都能拿到 Tesla T4,可能看使用的時間而定。

想知道自己拿到哪一種 GPU,可以在 notebook 中增加一行指令 !nvidia-smi ,即能看到如下畫面

免費用 Google Colab 玩 Stable Diffusion WebUI

缺點 5:可能未來會被 Google 禁用

最近 Google 會偵測 notebook 裡跑的 code,如果有從 Stable Diffusion WebUI github repo pull code,會跳出一個對話框「善意提醒」,但還是可以使用,只是不確定何時會被封鎖

作一個小結,以學習角度來說,使用 Google Colab 來試試水溫,不但不用負擔昂貴的硬體設備,還能輕易上手,避免複雜的環境問題。但若要專業製圖,可能還是考慮自行購買硬體,或者到 AWS 開一台有 GPU 的 EC2 來跑會比較穩定!以上希望能幫助到大家!

延伸閱讀

不用顯卡也能玩 Stable Diffusion WebUI – 使用 AWS 架設
LoRA 是什麼?如何使用?| Stable Diffusion
如何用 Stable Diffusion 產生高解析度的圖?
最詳細的 Stable diffusion WebUI 操作教學 – txt2img
如何在 M1 Macbook 上跑 Stable Diffusion?

Written by J
雖然大學唸的是生物,但持著興趣與熱情自學,畢業後轉戰硬體工程師,與宅宅工程師們一起過著沒日沒夜的生活,做著台灣最薄的 intel 筆電,要與 macbook air 比拼。 離開後,憑著一股傻勁與朋友創業,再度轉戰軟體工程師,一手扛起前後端、雙平台 app 開發,過程中雖跌跌撞撞,卻也累計不少經驗。 可惜不是那 1% 的成功人士,於是加入其他成功人士的新創公司,專職開發後端。沒想到卻在採前人坑的過程中,拓寬了眼界,得到了深層的領悟。