No Code AI(肉寇)AI自動化兩日精通|實體6小時+線上6小時
|

如何以OpenVINO在Intel GPU上執行Stable Diffusion

   

作者:Raymond Lo

在OpenVINO Notebooks有不少AI案例,但你知道我們也可以執行最夯的Stable Diffusion圖片生成模型,並且將該模型轉換為OpenVINO的IR(Intermediate Representation)格式,讓它在CPU與GPU上高效率執行嗎?此外透過壓縮FP32模型至FP16格式,我們能把模型尺寸縮小(接近)一半,用更少的RAM/VRAM容量來執行。更重要的是,因為Intel的XMX(Xe Matrix Extensions)脈動陣列發揮作用,這也能大幅加快GPU處理速度。

以下是筆者用筆記型電腦執行的結果,非常有趣。用我的Intel Arc A770獨立顯示晶片,能取得大約每秒6.0次迭代(iterations,在沒有除錯模式的情況下)。這意味生成下方的高品質影像,通常只花不到10秒的時間。

用OpenVINO Notebooks與Intel Arc A770獨立顯示晶片產生的Stable Diffusion文生圖結果。

Stable Diffusion圖生圖範例,將照片轉成水彩畫。

首先,這裡是OpenVINO Notebooks程式庫,裡面有所有你會需要完成今天示範的東西:

https://github.com/openvinotoolkit/openvino_notebooks.git

Stable Diffusion位於225-stable-diffusion-text-to-image資料匣。

在示範筆記中,我們介紹的不只是知名的文生圖(Text-to-mage)流水線,還有圖生圖(Image-to-Image)生成流水線。不過,這實際上代表什麼意思,我們又要怎麼執行?

Stable Diffusion指令流水線。

如何安裝

要安裝OpenVINO Notebooks,如果你使用的是Windows平台,可以依照下面連結的指示:https://github.com/openvinotoolkit/openvino_notebooks/wiki/Windows

如果你是Linux平台使用者,就跟著以下的連結:

https://github.com/openvinotoolkit/openvino_notebooks/wiki/Ubuntu

在高階語言,只有以下幾個步驟:

python3 -m venv openvino_env
source openvino_env/bin/activate #for linux

Git複製目錄:

git <span class="hljs-built_in">clone</span> --depth=1 https://github.com/openvinotoolkit/openvino_notebooks.git
<span class="hljs-built_in">cd</span> openvino_notebooks

安裝所有的程式庫以及依賴項目:

pip install -r requirements.txt

執行Jupyter Notebooks:

jupyter lab notebooks

執行所有Cell然後耐心等待 =)

現在如果你仔細看程式碼,我們完成的是真正最佳化PyTorch流水線,並且以OpenVINO執行程式碼。

第一次下載與轉檔可能會花一點時間,一旦完成,你就會得到一組IR檔案。為了方便你使用,我已經把那些經過預訓練、最佳化的模型更新到Hugging Face:https://huggingface.co/bes-dev/stable-diffusion-v1-4-openvino/tree/main

現在,如果你很幸運是使用Intel Arc GPU,你就可以將程式碼改成「GPU」。在預設條件下,它使用AUTO,因此如果被偵測到就會自動切換到GPU。

在GPU上執行。

自動插件,一開始會使用CPU,然後自動切換到GPU。

在這個步驟,我將步數設置為30;理想狀況下,我會設為50以取得最好看的結果。你可以在這裡透過修改輸入文字來生成不同場景,如果你想得到一些真的看起來很酷的圖片,你可以嘗試社群所收集的一些排名最高的輸入提示:https://mpost.io/best-100-stable-diffusion-prompts-the-most-beautiful-ai-text-to-image-prompts/

最後,我們製作了GIF圖檔,方便你了解每個步驟之間會看到什麼。

圖生圖流水線

現在如果你還在Notebooks上,你會看到我們也使用了提示來「影響」最終影像的外觀,以下我們提供了一個把照片轉換成水彩畫的範例。

根據初始影像以及提示生成圖片,採用這種方式會引導至結果。

圖生圖結果。

結語

如果你現在就想學習Stable Diffusion如何運作,也想看看如何以Intel硬體實現硬體加速,OpenVINO Notebooks絕對是我的首選推薦。如果你有任何相關問題,或想秀一下你的最佳成果,歡迎在下面留言,或者是到我們的GitHub討論區聊聊。寫程式愉快!

進入討論區,與專家、同好交流本文主題
Raymond Lo
Latest posts by Raymond Lo (see all)

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: Raymond Lo

現任OpenVINO 邊緣AI 軟體傳教士。加入Intel 之前,Raymond創立了由 Y Combinator 支持的擴增實境 (AR)公司 Meta並擔任首席技術官,擁有許多AR 眼鏡發明和功能原型。他也擔任過三星 NEXT 的技術傳教士以及谷歌雲 AI 的技術解決方案顧問。Raymond將創業精神和實務經驗結合,將全球數百家初創公司與數千名開發人員聯繫在一起。

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *