首先先來一張復出AI繪的牛刀小試,話説現在的Model與Lora實在越來越強大了(;´Д`)ハァハァ
喜多川海夢
猶記Stable Diffusion WebUI問世之初,在下確實沉迷了好一陣子,無奈自身電腦的顯示卡記憶體只有少少的6G,如果要生成像素稍微大一點的圖片的話,不是要等上5分鐘以上,不然就是生成到一半直接給你來個Out of Memory。

後來透過網路上的文章輾轉得知可以利用Google Colab這個免費的平台,憑藉它強大的GPU運算能力,確實可以有效彌補硬體設備不足的問題,缺點就是常無緣無故斷線,以至於在下的對AI繪圖的熱情就在周而復始的斷線中消失殆盡了(笑

前一陣子因為將「ROみたいなカウンター」HTML5化的關係,突然覺得在下年紀越大,對Pixle Art越來越情有獨鍾,在把這個部落格的主要文字修改成Pixel風格之餘,順理而然地就把念頭轉向了這個部落格的看版圖以及MP-Ukagaka的shell,反正目前Civitai上面已經有不少可以生成Pixle Art的Lora,畫幾張滿意的應該不成問題吧…

只不過真的是太久沒碰這玩意兒了,免費版的Google Colab不給跑就算了,之前使用的Colab記事本不知道是太久沒更新還是怎樣,執行起來也是問題百出,輾轉之下在下找到了下面 TheLastBen這位仁兄所寫的記事本,只要在ngrok註冊後,先在user setting設定一個登入用的帳號密碼,然後填入它給的token,隨機生成的網址雖然斷線問題依然存在,但基本上還算堪用。

https://github.com/TheLastBen/fast-stable-diffusion

然而,天下終究沒有白吃的午餐,ngrok爽用了幾天問題又來了,原來免費版的在HTTP Requests次數有每月上限20,000次的限制,尤其在下是用來生成圖片,自然一下子就爆量了ヽ(´A`)ノ
ngrok
雖然付個$10就可以馬上解決這個問題,但一想到它斷線的頻率實在讓在下不敢苟同,不得不尋求更一勞永逸的解法,然後ChatGPT跟Claude都不約而同地推薦我使用Cloudflare Tunnel,不僅連線較為穩定,而且官方目前亦沒有公開HTTP Requests的數量限制,因此身為一個免費仔,當然要嘗試一下,所以問題只剩一個,就是要再找到使用Cloudflare Tunnel的Colab記事本…
ngrok V.S cloudflare tunnel
老實説在下上禮拜窮盡上班偷懶時間找了很久,只有找到這一個,只不過他用的Cloudflare Tunnel是不需要輸入token的版本,而且實際上如果沒有用token來生成網址的話,基本上系統只會顯示找不到可用網址,所以雖然這位仁兄寫的記事本很親切,在等待Google Colab構築Stable Diffusion WebUI環境時還可以讓你聽音樂,但不是在下所需要的Orz

しかし今はAIの時代。

既然網路上找不到,那請Claude幫我寫一個不就得了, 應該兩三下就搞定收工了吧?話雖如此, 由於上面TheLastBen老兄所寫的記事本是基於Python的Jupyter Notebook,而且是JSON 格式,不僅完全看不懂,再者如果沒另外要求的話,Claude也只會寫給你Python的語法,改了之後又常出現類似以下的錯誤,在下在這邊精疲力竭了很久,幾乎都要放棄準備掏荷包了(´⊥`*)

Expected ',' or ']' after array element in JSON at position 36210 (line 746 column 2)
SyntaxError: Expected ',' or ']' after array element in JSON at position 36210 (line 746 column 2)
    at JSON.parse ()
    at wa.program_ (https://ssl.gstatic.com/colaboratory-static/common/54ba745c864e58ac7e40ea59b5e04a36/external_binary_l10n__ja.js:2556:21)
    at za (https://ssl.gstatic.com/colaboratory-static/common/54ba745c864e58ac7e40ea59b5e04a36/external_binary_l10n__ja.js:16:57)
    at wa.next_ (https://ssl.gstatic.com/colaboratory-static/common/54ba745c864e58ac7e40ea59b5e04a36/external_binary_l10n__ja.js:14:195)
    at kaa.next (https://ssl.gstatic.com/colaboratory-static/common/54ba745c864e58ac7e40ea59b5e04a36/external_binary_l10n__ja.js:17:48)
    at b (https://ssl.gstatic.com/colaboratory-static/common/54ba745c864e58ac7e40ea59b5e04a36/external_binary_l10n__ja.js:17:309))

總算皇天不負苦心人,在三大AI的加持之下,在下又再次完成了這個完全守備範圍外的任務。改好的檔案連結就放在下面,也許哪一天有人會跟在下有相同的需求也説不定(´ー`)y-~~

Fast_Stable_Diffusion_AUTOMATIC1111(For Cloudflare Tunnel)

至於Cloudflare Tunnel的設定方法就簡單多了,首先還是要有Cloudflare的帳號,另外要自己準備一個網域,並且將它指向Cloudflare的DNS伺服器。接著在Cloudflare的左側儀表板點擊「Zero Trust」來到下一個頁面,然後在「網路」的地方點選Tunnels之後並建立通道。通道的類型就依照推薦選擇Cloudflare,然後為該通道取一個自己喜歡的名字之後儲存。
Cloudflare Tunnel Token
之後就可以在下個頁面取得這個通道的Token,因為我們是將連接器安裝在Google Colab上的,所以你只要另外用筆記本複製cloudflared.exe service install之後的一長串英數字即可。下一步就是命名自己想要的子網域名稱,填入Stable Diffusion WebUI預設的連接埠localhost:7860,類型選HTTP即可(用HTTPS的話會出現503 Service Unavailable的樣子)。
Cloudflare Tunnel
Cloudflare Tunnel設定完畢之後,就可以在Google Colab執行上面改好的Colab記事本,然後在use cloudflare tunnel的欄位貼上剛剛預先記下的token,登入Stable Diffusion WebUI的帳號密碼可設可不設,設定的話之後連線時就會要求你輸入帳號密碼。
Cloudflare Tunnel
最後就是執行這個Colab記事本,途中系統會詢問要不要連結你的Google Driver,連了之後未來你透過Civitai-Helper所下載的model、Lora、embeddings都會保存在裡面,往後再執行Stable Diffusion WebUI的時候也就不用再抓一次。當然啦,因為這些檔案模組都不小,所以你應該知道最少要花錢買個100GB以上的空間才夠用。まあ、跟5070Ti、5060Ti相比,這都算小錢了。
Stable Diffusion WebUI
以上本回作戰結束。

雖然在Google Colab買100個運算單元要價$10.49感覺小貴,但只要不要挑太強大的GPU基本上扣得不算快,生成一張圖約扣0.12單元。如以16G記憶體為基本需求的話,T4 GPU有15G基本上就很夠用了,要爽玩就用L4,唯一的缺點就是不管使用哪種GPU,在更換Model時的讀取速度都沒有自家PC來的快就是…是SSD的關係嗎?
Google Colab L4 GPU
然後在下想了很久,對看版圖要如何呈現到目前依然沒有頭緒,不過MP-Ukagaka那個仿仙境傳說人物風格的フリーレン就是用AI畫的,應該還不賴吧:D