• 首頁
  • 學習專欄
  • Rhino教學|使用Rhino+Grasshopper連動StableDiffusion進行AI繪圖
Rhino教學|使用Rhino+Grasshopper連動StableDiffusion進行AI繪圖
Rhino教學 2024-01-04

Rhino教學|使用Rhino+Grasshopper連動StableDiffusion進行AI繪圖

本篇文章轉載自HJ PLUS.DESIGN 加號設計 徐灝 老師,老師為Rhinoceros3D Lv.1 &0 Lv.2 原廠國際認證暨授權講師,擁有多年實作與教學經驗。
原文連結→ 
https://www.hjplusdesign.com/2024/01/01/rhino_grasshoppertostable_diffusion/
 

2024元旦當然要講個厲害的。
Rhino作為強大3D建模工具已經是眾所皆知的事情,其超強擴充能力使其與多數工具連動,進而解決早期跨平台容易發生的錯誤,以及補足某些設計工具的劣勢。那如果這樣的一個工具搭上近年發展相當迅速的AI計算會發生什麼事呢?
先讓我們看看下面幾張對比圖。

Rhino搭上AI技術

Rhino搭上AI技術

Rhino搭上AI技術


上圖是利用Rhino與Grasshopper(以下簡稱GH)中的外掛Ambrosinus-Toolkit將模型截圖交給StableDiffusion運算產出的結果。跟以往使用webui的方式不同,這種運算方式實現了模型即時連動,並且留存了生成歷程。

如果你正在尋找一個可以串連3D與SD的工作流程,那這篇文章可能可以給你帶來些想法。
 


為什麼又是Rhino?


以下以建築產業為例,簡單列舉選擇Rhino的理由:
 
1. 本身就足夠強大:相當精準又輕量的NURBS曲面工具,建模環境直覺好用,做什麼產業都滿適合,當然也適合需要精準製圖的建築業。

2. 可延展性高:以Rhino作為工作流程的中介工具,可以橋接多數主流BIM平台如Revit, ArchiCAD等。

3. 多種產業面向支援的外掛程式:例如針對建築與室內設計的VisualARQ,景觀水保設計的LandsDesign等,即便今天尚未導入BIM的環境,Rhino也可以作為專案DataFlow的核心。

4. Grasshopper:這個應該不用多說,2007年問世的程式語言視覺化界面。

2022我們也曾經為了這個工具寫了一篇小文章【在設計業的你要使用Grasshopper前必須知道的幾件事】,今天他又出現了,你看重不重要?反正不會GH那Rhino只能在地上跑(?)
GH在Rhino8中直接支援CPython,可以引用一般開發環境下的函式庫跟功能,同時也支援VB、C++等開發環境,對於有程式背景的人來說,可以說是要什麼功能都可以自己來。

5.價格便宜:比起多數改為訂閱制的工具,Rhino一樣是買斷並且給你滿滿的大平台吃到飽(當然有些外掛還是要錢的)。
 

光上以上幾點原因,選擇Rhino的理由應該很明確了,請記得一件事,既然都要做3D了就做一個有用的3D,不要只是為了效果圖做而已。
 


環境準備


要使用AI環境那當然要先建立環境,以下範例是以架設在自己的工作站撰寫,如果需要在辦公室建立專用的運算伺服器及檔案伺服器可以跟我們聯絡


StableDiffusion

安裝SD的順序如下,基本上跟一般安裝相同,除了ControlNet。

1. 安裝 git(64-bit):
點連結下載↓
Git – Downloads (git-scm.com)
※記得開啟 windows explorer integration

2. 安裝 python:
點連結下載↓
Download Python3.10 | Python.org
※記得要點Add Python……

安裝 python


3. 安裝 Stable Diffusion:
按下鍵盤上的window+R
輸入CMD

輸入CMD

再輸入”git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui  ”後按下Enter給他跑,會跑一段時間。

跑完之後,移動到路徑”C:\Users\使用者名稱\stable-diffusion-webui  ”下面執行”webui-user.bat  ”,如果前面的步驟沒有問題,程式會開始安裝Stable Diffusion,會下載大量資料,請確保網路順暢,中間如果有斷線或提示錯誤請關掉重新執行,安裝完成後程式會自動開啟webUI。

安裝 Stable Diffusion


4. 安裝ControlNET :

安裝ControlNET

在webUI裡面找到Extensions,install from URL輸入:
https://github.com/lllyasviel/webui-controlnet-v1-archived
※模型放置路徑:stable-diffusion-webui\extensions\sd-webui-controlnet\models
※連結是1.0版本,因為本篇文章使用的外掛建議用1.0。
※安裝完記得回到installed介面點選apply然後重新啟動webUI。


5. 下載Checkpoint:
https://civitai.com/models/114612?modelVersionId=123908

下載Checkpoint

這個是建築與室內常用的模型,建議兩個都下載。
※模型放置路徑:stable-diffusion-webui\models\Stable-diffusion


6. 測試運作
安裝完成後測試看看文生圖能不能正常運作,也同時測試controlnet使用canny能不能抓到參考圖片的邊緣。

--------------------------------------

Rhino&Grasshopper
Rhino8或裝有Cpython的Rhino7
安裝Ambrosinus-Toolkit:推薦使用packageManager安裝。
 


利用模型即時算圖


StableDiffusion環境部屬好之後,接下來就是利用我們的模型截圖餵給StableDiffusion算圖,整個流程如下:



流程釐清了之後就可以針對每一部份開始建立電池。

--------------------------------------
 

● 啟動StableDiffusion


當你已經部屬好StableDiffusion之後,也確定webUI下canny可以如預期般的產出邊緣後,就可以開始嘗試使用Grasshopper的外掛連動webUI API。

首先建立電池組如下圖:



“FilePath”請指定到你的SD安裝路徑,CMDargs則是依照需求勾選,這邊用的是與預設執行的參數相同。

--------------------------------------

● 選擇checkpoint



這個電池組可以讀取你連線的SD伺服器中有安裝好的checkpoint,請按照需求調整前面的NumberSlider選擇。

--------------------------------------

● 指定路徑儲存截圖



接下來指定存放Rhino畫面截圖的路徑,輸入給ViewCapture,並且依據需求調整參數。

每一個輸入端需要的資料請看圖面說明。

後續是調整圖片大小,經過實測如果只是使用canny是可以跳過的,但是如果未來要用其他功能建議還是備著。

--------------------------------------

● 算圖



算圖的電池組如附圖,這邊有幾個要注意的點:

1. 由於目前webUI 的限制,外掛作者建議使用0,所以預設的”CN version”可以留空。

2.“Mode Pertrained”需要輸入數值,這個數值與uebUI上,controlNet的Mode順序相同,第一項為0,依此類推,所以照順序排下來canny是序號”1”。如果嫌麻煩也可以建立一個ValueList將名稱與序號對應起來,未來若要改模式也方便。<ValueList做好的圖>

3. 電池最下面的”start”建議給他一個”toggle”先關閉,避免每條一次參數就跑一次圖。

4. 其他參數設定跟webUI操作一樣,可以依照需求調整。


算好的圖可以使用LadyBug的ImageViewer直接在GH介面中顯示,”SeeOut”會將產出的圖路徑導出,但是記得如果有用到canny功能,最後一張會是Canny算完的線條圖,他的前一張才是這次運算的成品。


 


結論


如果你已經可以順利在Grasshopper中使用rhino模型進行運算,也可以透過Rhino inside for Revit (RIR)或Grasshopper – ArchiCAD Live Connection將BIM的幾何模型接入Rhino後,用Ambrosinus-Toolkit來產出圖。

以Revit為例,可以利用RIR將成果與該次運算的參數資訊寫入Revit的Drafting View,以利設計圖說整合,理論上ArchiCAD應該也可以做到類似的事情,這部分待測試。
 


線上免費教學

 
因為這一串操作比較複雜,我們針對這個外掛有製作了一個免費的線上課程影片,有需要的讀者歡迎透過下列網址觀看課程影片。
線上課程網址:【免費課程】使用Rhino+GH連動StableDiffusion進行AI繪圖(透過AmbrosinusToolKit外掛)
 

 

  • 參考資料
  1. https://github.com/lllyasviel/webui-controlnet-v1-archived
  2. https://github.com/lucianoambrosini/Ambrosinus-Toolkit/tree/main/AI_components/SD_ControlNET_locally
  3. https://ambrosinus.altervista.org/blog/ai-as-rendering-eng-sd-controlnet-locally



延伸閱讀:Rhino教學|什麼是參數設計工具?以Grasshopper為例

推薦文章:Rhino教學|Rhino中的幾何物件跟SubD的初步介紹
 
 

想了解更多Rhino資訊?


想了解更多關於Rhino如何應用在建築與室裝的業務上,或者NURBS建模軟體可以用來做什麼,都歡迎與HJ PLUS.DESIGN 加號設計的 徐灝 老師聊聊。

HJ PLUS.DESIGN 加號設計數位工程有限公司官方網站

HJ PLUS.DESIGN 加號設計數位工程有限公司FB粉絲專頁



#Rhino教學#Rhino資訊#Rhino7#NURBS#曲面#逆向工程#CAM#製圖#Rhino建築#Grasshopper#stablediffusion


作者

徐灝,建築背景,McNeel Asia授權Rhino3D講師,持有Autodesk Revit專業認證。
因為想不開,所以目前正在國立成功大學建築系博士班就讀中。
一個在營建產業載浮載沉的技術宅,最大的夢想就是離電腦越遠越好(看起來有點困難)。

作者徐灝

 
 

點擊加入我們的LINE好友,獲得更多即時訊息與限定好康


加入好友  
 
 

更多豐富的教學內容,歡迎點選下方按鈕連結我們的Youtube頻道!


太陽系官方youtube頻道

 

如果你喜歡我們分享的文章內容,歡迎點選右下方分享按鈕分享給你的好友!!

熱門文章
Enscape開啟後5%就崩潰關閉? 這個方式教你快速解決!
Vray 6 重大更新|Cosmos與打包存檔 – 做這一步不再讓材質遺失!
Enscape無法開啟或經常崩潰嗎!?四個方法教你快速解決這難題!
SketchUp外掛教學|三個實用又免費的材料貼圖調整外掛
Rhino教學|在設計業的你要使用Grasshopper前必須知道的幾件事
SketchUp教學|我的SketchUp好慢! 從第一步開始你就錯了!
最新文章
Enscape開啟後5%就崩潰關閉? 這個方式教你快速解決!
為什麼室內設計師都在用Enscape? 五大優勢改善你的接案流程!
What's new in SketchUp 2024 !? 六個你必須知道的更新功能!
SketchUp教學|如何下載與安裝SketchUp軟體
Rhino教學|VisualARQ 3 BETA版簡單測試分享
SketchUp外掛教學|Fredo6系列外掛如何安裝與中文化? (附外掛下載連結)
TOP